RAID磁盤列陣

                        RAID

  RAID是英文Redundant Array of Independent Disks的縮寫,中文簡稱為獨立冗余磁盤陣列。簡單的說,RAID是一種把多塊獨立的硬盤(物理硬盤)按不同的方式組合起來形成一個硬盤組(邏輯硬盤),從而提供比單個硬盤更高的存儲性能和提供數據備份技術。組成磁盤陣列的不同方式稱為RAID級別(RAID Levels)。在用戶看起來,組成的磁盤組就像是一個硬盤,用戶可以對它進行分區,格式化等等??傊?,對磁盤陣列的操作與單個硬盤一模一樣。不同的是,磁盤陣列的存儲速度要比單個硬盤高很多,而且可以提供自動數據備份。數據備份的功能是在用戶數據一旦發生損壞后,利用備份信息可以使損壞數據得以恢復,從而保障了用戶數據的安全性

通過把多個磁盤組織在一起作為一個邏輯卷提供磁盤跨越功能;

通過把數據分成多個數據塊(Block)并行寫入/讀出多個磁盤以提高訪問磁盤的速度;

通過鏡像或校驗操作提供容錯能力;

RAID技術分為幾種不同的等級,分別可以提供不同的速度,安全性和性價比。根據實際情況選擇適當的RAID級別可以滿足用戶對存儲系統可用性、性能和容量的要求。常用的RAID級別有以下幾種:RAID0,RAID1,RAID4 RAID5 RAID6,RAID10,RAID01等。目前經常使用的是RAID5和RAID(1+0)。

RAID-0 :也叫條帶卷,它代表了所有RAID級別中最高的存儲性能。它把數據分塊存儲提高性能,所有也會影響它的冗余能力。

    讀寫性能提升

    可用空間:N*min(S1,S2,…)

    無容錯能力

    最少磁盤數:2,2+

RAID-1:也稱鏡像卷,把同一數據分開存儲到2個相同的磁盤里從而提高數據的冗余能力。

    讀性能提升、寫略有下降

    可用空間:1*nub(S1,S2…)

    有容錯能力

    最少磁盤數:2,2+

RAID-4: RAID4即帶奇偶校驗碼的獨立磁盤結構,二塊寫入數據,一塊寫入校驗碼,校驗碼磁盤容易損壞,在獨立訪問陣列中,每個磁盤都是獨立運轉的,因此不同的I/O請求可以并行地滿足

   

RAID-5:和RAID4類似,但它把校驗碼通過運算存儲到各個磁盤上從而提升數據的冗余

    讀、寫性能提升

    可用空間:(N-1)*min(S1,S2…)

    有容錯能力:1塊磁盤

    最少磁盤:3,3+

RAID-6:是RAID-5的增強版,通過校驗,讓數據更加冗余安全,但寫入較差

    讀、寫性能提升

    可用空間:(N-2)*min(S1,S2…)

    有容錯能力:2塊磁盤

    最少磁盤:4,4+

混合類型

RAID-10: Raid 10是一個Raid 0與Raid1的組合體,它是利用奇偶校驗實現條帶集鏡像,所以它繼承了Raid0的快速和Raid1的安全

            RAID-10.jpg

    讀、寫性能提升

    可用空間:N*min(S1,S2,….)/2

    有容錯能力:每組鏡像最多只能壞一塊

    最少磁盤數:4, 4+

RAID-01:

    

    性能表現:讀、寫提升

    冗余能力:有

    空間利用率:1/2

    至少需要4塊盤

RAID-50:它具有RAID 5和RAID 0的共同特性。它由兩組RAID 5磁盤組成(每組最少3個),每一組都使用了分布式奇偶位,而兩組硬盤再組建成RAID 0,實現跨磁盤抽取數據。

    

    性能表現:讀、寫提升

    冗余能力:有

    空間利用率:(n-2)/n

    至少需要6塊盤

    

RAID-7 可以理解為一個獨立存儲計算機,自身帶有操作系統和管理工具,可以獨立運行,理論上性能最高的RAID模式

JBOD:Just a Bunch Of Disks

    功能:將多塊磁盤的空間合并以個大的連續空間使用

    可用空間:sum(S1,S2,…)

常用級別:RAID-0,RAID-1,RAID-5,RAID-10,RAID-50,JBOD

RAID實現方式:

        硬件實現方式

        軟件實現方式

     

mdadm: 用于建設,管理和監控RAID陣列

語法

    mdadm [mode] <raiddevice> [options] <component-devices>

模式:

創建:-C

    -a {yes|no}:自動創建目標RAID設備的設備文件

    –create或-C –help :查看創建幫助

    –chunk=      -c #:設置cunk大小

    –level=      -l #:設置RAID等級

    –scan        -s #掃描

    –spare-devices= -x #:指明空閑盤的個數

    –raid-devices= -n #:使用#個塊設備來創建此RAID

顯示: -D   

    –display或-D –hrlp:獲取顯示幫助

    –stop        -S  

裝配: -A

監控: -F

管理:

    

    -f: 標記指定磁盤為損壞

    -a: 添加磁盤

    -r: 移除磁盤

做RAID卷時,磁盤分區要分為Linux raid autodetect 用fdisk /dev/[sh]d[a-z] 下 t該為fd分區

[root@Cloud /]#fdisk -l /dev/sdc #查看已經分為Linux raid autodetect分區
Disk /dev/sdc: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x47d02b82
   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1               1         654     5253223+  fd  Linux raid autodetect #raid分區
/dev/sdc2             655        1308     5253255   fd  Linux raid autodetect
/dev/sdc3            1309        1962     5253255   fd  Linux raid autodetect

創建RAID-5卷

[root@Cloud /]#mdadm -C /dev/md0 -a yes -n 3 -x 1 -l 5 /dev/sdc{1,2,3} /dev/sdb1
mdadm: /dev/sdc1 appears to be part of a raid array:
       level=raid5 devices=3 ctime=Mon Aug  1 22:54:30 2016
mdadm: /dev/sdc2 appears to be part of a raid array:
       level=raid5 devices=3 ctime=Mon Aug  1 22:54:30 2016
mdadm: /dev/sdc3 appears to be part of a raid array:
       level=raid5 devices=3 ctime=Mon Aug  1 22:54:30 2016
mdadm: /dev/sdb1 appears to contain an ext2fs file system
       size=1060256K  mtime=Thu Jan  1 08:00:00 1970
mdadm: /dev/sdb1 appears to be part of a raid array:
       level=raid0 devices=2 ctime=Mon Aug  1 23:26:23 2016
Continue creating array? yes         
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.

顯示創建的RAID卷

[root@Cloud /]#mdadm -D /dev/md0
/dev/md0:
        Version : 1.2
  Creation Time : Tue Aug  2 00:11:50 2016
     Raid Level : raid5 #rai級別
     Array Size : 10498048 (10.01 GiB 10.75 GB)
  Used Dev Size : 5249024 (5.01 GiB 5.38 GB)
   Raid Devices : 3 #raid存儲設備
  Total Devices : 4 #raid全部設備
    Persistence : Superblock is persistent
    Update Time : Tue Aug  2 00:12:35 2016
          State : clean, degraded, recovering 
 Active Devices : 2
Working Devices : 4
 Failed Devices : 0
  Spare Devices : 2
         Layout : left-symmetric
     Chunk Size : 512K #chunk大小
 Rebuild Status : 45% complete
           Name : Cloud.GO:0  (local to host Cloud.GO)
           UUID : 39ef8aa5:5b789569:b425534d:a32cc64e
         Events : 8
    Number   Major   Minor   RaidDevice State
       0       8       33        0      active sync   /dev/sdc1
       1       8       34        1      active sync   /dev/sdc2
       4       8       35        2      spare rebuilding   /dev/sdc3
       3       8       17        -      spare   /dev/sdb1 #備用

模擬損壞磁盤

[root@Cloud /]#mdadm /dev/md0 -f /dev/sdc3
mdadm: set /dev/sdc3 faulty in /dev/md0

查看raid狀態

[root@Cloud /]#cat /proc/mdstat 
Personalities : [raid6] [raid5] [raid4] [raid0] 
md0 : active raid5 sdc3[4](F) sdb1[3] sdc2[1] sdc1[0]
      10498048 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [UU_]
      [======>..............]  recovery = 30.8% (1621760/5249024) finish=1.0min speed=57920K/sec
      
unused devices: <none>

[root@Cloud /]#mdadm -D /dev/md0 #查看raid信息
/dev/md0:
        Version : 1.2
  Creation Time : Tue Aug  2 00:11:50 2016
     Raid Level : raid5
     Array Size : 10498048 (10.01 GiB 10.75 GB)
  Used Dev Size : 5249024 (5.01 GiB 5.38 GB)
   Raid Devices : 3
  Total Devices : 4
    Persistence : Superblock is persistent
    Update Time : Tue Aug  2 00:16:15 2016
          State : clean 
 Active Devices : 3
Working Devices : 3
 Failed Devices : 1
  Spare Devices : 0
         Layout : left-symmetric
     Chunk Size : 512K
           Name : Cloud.GO:0  (local to host Cloud.GO)
           UUID : 39ef8aa5:5b789569:b425534d:a32cc64e
         Events : 37
    Number   Major   Minor   RaidDevice State
       0       8       33        0      active sync   /dev/sdc1
       1       8       34        1      active sync   /dev/sdc2
       3       8       17        2      active sync   /dev/sdb1
       4       8       35        -      faulty   /dev/sdc3 #損壞磁盤

移除損壞磁盤

[root@Cloud /]#mdadm /dev/md0 -r /dev/sdc3
mdadm: hot removed /dev/sdc3 from /dev/md0

新增磁盤

[root@Cloud /]#mdadm /dev/md0 -a /dev/sdb2
mdadm: added /dev/sdb2
[root@Cloud /]#mdadm /dev/md0 -a /dev/sdc3
mdadm: added /dev/sdc3

[root@Cloud /]#mdadm -D /dev/md0 #顯示
/dev/md0:
        Version : 1.2
  Creation Time : Tue Aug  2 00:11:50 2016
     Raid Level : raid5
     Array Size : 10498048 (10.01 GiB 10.75 GB)
  Used Dev Size : 5249024 (5.01 GiB 5.38 GB)
   Raid Devices : 3
  Total Devices : 5
    Persistence : Superblock is persistent
    Update Time : Tue Aug  2 00:18:31 2016
          State : clean 
 Active Devices : 3
Working Devices : 5
 Failed Devices : 0
  Spare Devices : 2
         Layout : left-symmetric
     Chunk Size : 512K
           Name : Cloud.GO:0  (local to host Cloud.GO)
           UUID : 39ef8aa5:5b789569:b425534d:a32cc64e
         Events : 40
    Number   Major   Minor   RaidDevice State
       0       8       33        0      active sync   /dev/sdc1
       1       8       34        1      active sync   /dev/sdc2
       3       8       17        2      active sync   /dev/sdb1
       4       8       18        -      spare   /dev/sdb2 #新增的磁盤
       5       8       35        -      spare   /dev/sdc3 #新增的磁盤

生成配置文件: 保存配置。

    mdadm –D –s >> /etc/mdadm.conf

radi在掛載的時候盡量使用UUID或lebel掛載,因為raid卷的名字會自動更改!

停止raid服務

[root@Cloud /]#mdadm -S /dev/md0 #停止raid服務
mdadm: stopped /dev/md0
[root@Cloud /]#cat /proc/mdstat #查無raid狀態
Personalities : [raid6] [raid5] [raid4] [raid0] 
unused devices: <none>

激活raid服務

[root@Cloud /]#cat /proc/mdstat #激活raid服務
Personalities : [raid6] [raid5] [raid4] [raid0] 
unused devices: <none>
[root@Cloud /]#mdadm -A -s /dev/md0 
mdadm: /dev/md0 has been started with 3 drives and 1 spare.
[root@Cloud /]#cat /proc/mdstat  #顯示raid5活躍
Personalities : [raid6] [raid5] [raid4] [raid0] 
md0 : active raid5 sdc1[0] sdb1[3](S) sdc3[4] sdc2[1]
      10498048 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]
      
unused devices: <none>

徹底刪除raid卷

[root@Cloud /MYDATA]#mdadm --zero-superblock /dev/sdc1#刪除成員
[root@Cloud /MYDATA]#mdadm --zero-superblock /dev/sdc2#刪除成員
[root@Cloud /MYDATA]#mdadm --zero-superblock /dev/sdc3#刪除成員
[root@Cloud /MYDATA]#mdadm --zero-superblock /dev/sdb2#刪除成員
[root@Cloud /MYDATA]#rm -fr /etc/mdadm.conf #刪除配置文件

原創文章,作者:ladsdm,如若轉載,請注明出處:http://www.www58058.com/44370

(0)
ladsdmladsdm
上一篇 2016-09-07
下一篇 2016-09-07

相關推薦

  • Linux軟件包管理之rpm和yum的使用

    rpm命令的使用 什么是RPM? rpm:RPM Package Manager (原Redhat Package Manager) Linux 軟件包管理工具 特定的程序由應用程序組成;     GPL:源碼     glibs:標準的C庫 常見Linux發行版的軟件包管理器:…

    Linux干貨 2016-08-25
  • 第七周

    第七周 1 創建一個10G分區,并格式為ext4文件系統;    (1) 要求其block大小為2048, 預留空間百分比為2, 卷標為MYDATA, 默認掛載屬性包含acl;    (2) 掛載至/data/mydata目錄,要求掛載時禁止程序自動…

    Linux干貨 2017-02-20
  • vsftpd基于mysql存儲認證(centos7)

    (1)首先開發包組和服務器平平臺開發包組 (2)yum安裝需要的依賴包 (3)編譯安裝pam_mysql模塊 (4)配置mysql,并添加mysql中的vsftpd進程用戶,且創建vsftpd數據庫,并將vsftpd數據庫授權給vsftpd用戶,且創建vsftpd.users表,并在表中添加用戶tom (5)創建vsftpd要上傳和下載的URL (6)創建基…

    Linux干貨 2016-10-15
  • [轉]百萬級訪問網站前期的技術準備

       [轉]百萬級訪問網站前期的技術準備 開了自己域名的博客,第一篇就得來個重磅一點的才對得起這4美金的域名。作為一個技術從業者十年,逛了十年發現有些知識東一榔頭西一棒槌的得滿世界  看個遍才整理出個頭緒,那咱就系統點的從頭一步一步的說,一個從日幾千訪問的小小網站,到日訪問一兩百萬的小網站,怎么才能讓它平滑的度過這個階段,別在 …

    Linux干貨 2016-10-29
  • 網絡班N22期第五周博客作業

    1、顯示當前系統上root、fedora或user1用戶的默認shell; [root@bogon ~]# cat /etc/passwd | grep -E "^(root|fedora|user1)\>" | cut -d:&nb…

    Linux干貨 2016-09-15
  • PHP中引用的詳解(引用計數、寫時拷貝)

    《PHP5中文手冊》內容中"引用的解釋"一文的摘要: 1. PHP中引用的特性 PHP中引用意味著用不同的名字訪問同一個變量內容,引用不是C的指針(C語言中的指針里面存儲的是變量的內容,在內存中存放的地址),是變量的另外一個別名或者映射。注意在 PHP 中,變量名和變量內容是不一樣的,因此同樣的內容可以有不同的名字。最接近的比喻是 Uni…

    Linux干貨 2015-04-10
欧美性久久久久