1. 程式人生 > >linux之raid

linux之raid

started cte device 命令 ear redundant 條帶 主板 row

什麽是raid

??raid:RedundantArrays of Inexpensive(Independent)Disks 簡稱RAID、早期是為了降低成本問題,1988年由加利福尼亞大學伯克利分校提出“A Case for Redundant Arrays of Inexpensive Disks”廉價的磁盤冗余陣列、後來成為服務器領域的標配
??把多個硬盤邏輯的組合在一起、形成一個集合叫做陣列、兩大突出優勢
????一:性能提升、比單塊磁盤性能強。
????二:實現冗余性

RAID:

?1、提高I/O能力;
? ? ?磁盤並行讀寫
? 2、提高耐用性
? ? ?磁盤冗余來實現

?3、級別:多塊磁盤組織在一起的工作方式有所不同
? 4、raid實現的方式:
? ? ? 外接式磁盤陣列:通過擴展卡提供適配能力
? ? ?內接式raid:主板集成raid控制器
? ? ? 在安裝OS前在BIOS裏面配置
? ? ? 軟件raid:通過OS來實現
? ? ? 生產中都是用硬件raid來實現

raid的多種級別
    0:條帶卷
        讀、寫性能提升;
        可用空間:N*min(S1,S2,...)
        無容錯能力
        最少磁盤數:2, 2+
    1:鏡像卷
        讀性能提升、寫性能略有下降;
        可用空間:1*min(S1,S2,...)
        有冗余能力
        最少磁盤數:2, 2N
    4:
        多塊數據盤異或運算值存於專用校驗盤
    5:帶校驗位的條帶集
        讀、寫性能提升
        可用空間:(N-1)*min(S1,S2,...)
        有容錯能力:允許最多1塊磁盤損壞
        最少磁盤數:3, 3+
    6:
        讀、寫性能提升
        可用空間:(N-2)*min(S1,S2,...)
        有容錯能力:允許最多2塊磁盤損壞
        最少磁盤數:4, 4+

    10
        讀、寫性能提升
        可用空間:N*min(S1,S2,...)/2
        有容錯能力:每組鏡像最多只能壞一塊
        最少磁盤數:4, 4+
    01
        多塊磁盤先實現RAID0,再組合成RAID1

軟raid:
    mdadm:為軟RAID提供管理界面
    為空余磁盤添加冗余
    結合內核中的md(multi devices)

軟raid5的實現方式:raid0的話最少得2塊盤才能組這裏實驗給他4塊盤
    先分區,大小為1G,因為這裏拿分區做的時候,分完之後別著急退出還得修改下格式,軟raid的格式改成fd即可。
        [root@centos6 ~]#fdisk /dev/sdb
        .......
        Command (m for help): t
        Selected partition 1
        Hex code (type L to list codes): fd
        Changed system type of partition 1 to fd (Linux raid autodetect)
    Command (m for help): p
    ......
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         132     1060258+  fd  Linux raid autodetect
再把其它幾個盤分出來一個分區大小為1G,盤太多了所以這裏用了dd命令來復制上一個磁盤裏的信息,重復幾次即可,這樣是不是比fdisk /dev/sdd 命令簡單快捷呢
[root@centos6 ~]#dd if=/dev/sdb of=/dev/sdc bs=1 count=66 skip=446 seek=446
[root@centos6 ~]#dd if=/dev/sdb of=/dev/sdd bs=1 count=66 skip=446 seek=446
[root@centos6 ~]#dd if=/dev/sdb of=/dev/sde bs=1 count=66 skip=446 seek=446
[root@centos6 ~]#dd if=/dev/sdb of=/dev/sdf bs=1 count=66 skip=446 seek=446

創建raid級別,並且把剛才剛分區的幾個盤添加進去
[root@centos6 ~]#mdadm -C /dev/md0 -a yes -l0 -n4 /dev/sd{b,c,d,e}1
mdadm: /dev/sdb1 appears to contain an ext2fs file system
       size=1060256K  mtime=Sat Aug 11 11:40:55 2018
mdadm: /dev/sdb1 appears to be part of a raid array:
       level=raid0 devices=0 ctime=Thu Jan  1 08:00:00 1970
mdadm: partition table exists on /dev/sdb1 but will be lost or
       meaningless after creating array
Continue creating array? ^C  #這塊提示在/dev/sdb1這塊磁盤上已經有了文件系統了 ,提示你是否創建文件系統,之前的會被抹掉,如果不想出現這提示的話 可以用下面命令來清零

[root@centos6 ~]#dd if=/dev/zero of=/dev/sdb1 

然後你再創建raid就沒有剛才上面那提示了
[root@centos6 ~]#mdadm -C /dev/md0 -a yes -l0 -n4 /dev/sd{b,c,d,e}1
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.

查看剛創建好的raid的詳細信息
[root@centos6 ~]#mdadm -D /dev/md0

配置文件
[root@centos7 raid0]# mdadm -Ds /dev/md0
ARRAY /dev/md0 metadata=1.2 name=centos7:0 UUID=f4b5305a:5525f6dc:8921eed9:a309a089
[root@centos7 raid0]# mdadm -Ds /dev/md0 > /etc/mdadm.conf

測試速度
[root@centos7 raid0]# dd if=/dev/zero of=f1 bs=1M count=1024 conv=fdatasync

測試讀速度
[root@centos7 raid5]# dd if=f2 of=/dev/null

不想要raid0先取消掛載
[root@centos7 ~]# umount /mnt/raid0/
停止raid
[root@centos7 ~]# mdadm -S /dev/md0
刪除之前生成的配置文件,以免後續有時候寫在配置文件裏面開機自動啟動
[root@centos7 ~]# rm -rf /etc/mdadm.conf

清除分區上的raid信息
[root@centos7 ~]# mdadm --zero-superblock /dev/sdb1
[root@centos7 ~]# mdadm --zero-superblock /dev/sdc1
[root@centos7 ~]# mdadm --zero-superblock /dev/sdd1
[root@centos7 ~]# mdadm --zero-superblock /dev/sde1

raid 5 增加空間
[root@centos7 ~]# mdadm -G /dev/md5 -n 5 -a /dev/sdc1
增加完之後需要同步centos7上同步文件系統
[root@centos7 ~]# xfs_growfs /mnt/raid5 
ext系列同步的話需要用到以下命令
[root@centos7 ~]# resize2fs /dev/md5

raid10 創建

先創建兩組raid1
mdadm -C /dev/md0 -a yes -l 1 -n 2 /dev/sd{c,d}1
mdadm -C /dev/md1 -a yes -l 1 -n 2 /dev/sd{e,f}1

然後再創建一組raid0
mdadm -C /dev/md2 -a yes -l0 -n2 /dev/md{0,1}

再把剛創建好的raid10格式化成xfs文件系統,再掛載到/mnt/raid10
mkfs.xfs /dev/md2
mkdir /mnt/raid10
mount /dev/md2 /mnt/raid10

linux之raid