天天看點

【 運維這些事兒 】- raid磁盤陣列

RAID簡述

Raid是把多張硬碟組成一個容量更大,安全性更高的磁盤組。并把資料分成多個區段分别存放在不同的實體硬碟裝置上,利用分散讀寫技術來提高整個磁盤組的性能。

類型

常見的Raid方案

  • RAID0:最少兩塊,是把多個磁盤合并成一個大磁盤,來提高讀寫,但資料安全性得不到保障
【 運維這些事兒 】- raid磁盤陣列
  • RAID1:最少兩塊,稱之為鏡像,與RAID0正好相反,為了提高資料安全性資料保留兩份,成本極高
【 運維這些事兒 】- raid磁盤陣列
  • RAID5:最少三塊,RAID5 技術是把硬碟裝置的資料奇偶校驗資訊儲存到其他硬碟裝置中。RAID 5 磁盤陣列組中資料的奇偶校驗資訊并不是單獨儲存到某一塊硬碟裝置中,而是存儲到除自身以外的其他每一塊硬碟裝置上,這樣的好處是其中任何一裝置損壞後不至于出現緻命缺陷
【 運維這些事兒 】- raid磁盤陣列
  • RAID10:最少四塊,RAID 10 技術是 RAID 1+RAID 0 技術的一個“組合體”。其中先分别

    兩兩制作成 RAID 1 磁盤陣列,以保證資料的安全性;然後再對兩個 RAID 1磁盤陣列實施 RAID 0 技

    術,進一步提高硬碟裝置的讀寫速度。這樣從理論上來講,隻要壞的不是同一組中的所有硬碟,那麼最

    多可以損壞 50%的硬碟裝置而不丢失資料。

【 運維這些事兒 】- raid磁盤陣列

實操

環境:Centos7 ,

VMWare Workstation添加四塊硬碟

【 運維這些事兒 】- raid磁盤陣列

添加好之後重新開機機器,檢視磁盤是否添加成功

[root@master ~]# lsblk 
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   50G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   49G  0 part 
  ├─centos-root 253:0    0 45.1G  0 lvm  /
  └─centos-swap 253:1    0  3.9G  0 lvm  [SWAP]
sdb               8:16   0   20G  0 disk 
sdc               8:32   0   20G  0 disk 
sdd               8:48   0   20G  0 disk 
sde               8:64   0   20G  0 disk 
sr0              11:0    1  4.4G  0 rom  
           

建立RAID0

利用磁盤分區建立2個磁盤分區,每個大小為20 GB。用這2個20 GB的分區來模拟1個40 GB的硬碟。

最後檢視磁盤名稱

1.安裝mdadm工具(預裝好epel源)

mdadm是一個用于建立、管理、監控RAID裝置的工具,它使用linux中的md驅動。

yum install -y mdadm

2.建立raid

将/dev/sdb和/dev/sdc建立RAID等級為RAID 0的md0(裝置名)

[root@master ~]# mdadm -C -v /dev/md0 -l 0 -n 2 /dev/sdb /dev/sdc
mdadm: chunk size defaults to 512K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
           
  1. xfs 格式化
[root@master ~]# mkfs.xfs /dev/md0
meta-data=/dev/md0               isize=512    agcount=16, agsize=654720 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=10475520, imaxpct=25
         =                       sunit=128    swidth=256 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=5120, version=2
         =                       sectsz=512   sunit=8 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
           

4.挂載

建立一個使用目錄将裝置md0挂載到目錄下面

[root@master ~]# mkdir /raid0
[root@master ~]# mount /dev/md0 /raid0
[root@master ~]# df -h
Filesystem               Size  Used Avail Use% Mounted on
devtmpfs                 1.9G     0  1.9G   0% /dev
tmpfs                    1.9G     0  1.9G   0% /dev/shm
tmpfs                    1.9G   12M  1.9G   1% /run
tmpfs                    1.9G     0  1.9G   0% /sys/fs/cgroup
/dev/mapper/centos-root   46G  1.4G   44G   4% /
/dev/sda1               1014M  150M  865M  15% /boot
tmpfs                    378M     0  378M   0% /run/user/0
/dev/md0                  40G   33M   40G   1% /raid0
           

可以看到有一個40G名為md0裝置的大硬碟

5.永久挂載

mount隻是臨時對檔案進行挂載,當機器當機重新開機,将需要重新挂載,我們這裡通過修改配置檔案,來進行永久挂載

[root@master ~]# blkid /dev/md0
/dev/md0: UUID="e3073c81-ecdd-4de4-88bd-2161bac56acc" TYPE="xfs" 
           
blkid指令檢視塊裝置的檔案系統類型、LABEL、UUID等資訊
[root@master ~]# echo "/dev/md0 /raid0 xfs defaults 0 0" >> /etc/fstab
           
系統重新開機時會主動讀取/etc/fstab這個檔案中的内容,根據檔案裡面的配置挂載磁盤。這樣我們隻需要将磁盤的挂載資訊寫入這個檔案中,就不需要手動進行挂載了

6.查詢raid的詳細資訊

[root@master ~]# mdadm -D /dev/md0
/dev/md0:
           Version : 1.2
     Creation Time : Tue Oct  4 21:54:44 2022
        Raid Level : raid0
        Array Size : 41908224 (39.97 GiB 42.91 GB)
      Raid Devices : 2
     Total Devices : 2
       Persistence : Superblock is persistent

       Update Time : Tue Oct  4 21:54:44 2022
             State : clean 
    Active Devices : 2
   Working Devices : 2
    Failed Devices : 0
     Spare Devices : 0

        Chunk Size : 512K

Consistency Policy : none

              Name : master:0  (local to host master)
              UUID : fc14cd19:77d3eecf:04f2b081:a0008bbc
            Events : 0

    Number   Major   Minor   RaidDevice State
       0       8       16        0      active sync   /dev/sdb
       1       8       32        1      active sync   /dev/sdc
           

删除RAID0

[root@master ~]# umount /raid0    ##去挂載
[root@master ~]# mdadm -S /dev/md0  ## 停止RAID
mdadm: stopped /dev/md0
[root@master ~]# mdadm --zero-superblock /dev/sdb  
[root@master ~]# mdadm --zero-superblock /dev/sdc
           
--zero-superblock 來清空磁盤中RAID陣列的超級塊資訊。

RAID運維操作

1.利用磁盤分區建立4個磁盤分區,每個大小為20 GB。用3個20 GB的分區來模拟raid 5,加一個熱備盤。

[root@master ~]# mdadm -Cv /dev/md5 -l 5 -n3 /dev/sdb /dev/sdc /dev/sdd --spare-devices=1 /dev/sde
mdadm: layout defaults to left-symmetric
mdadm: layout defaults to left-symmetric
mdadm: chunk size defaults to 512K
mdadm: size set to 20954112K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md5 started.
           

2.檢視RAID的詳細資訊,

[root@master ~]# mdadm -D /dev/md5
/dev/md5:
           Version : 1.2
     Creation Time : Tue Oct  4 23:23:22 2022
        Raid Level : raid5
        Array Size : 41908224 (39.97 GiB 42.91 GB)
     Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
      Raid Devices : 3
     Total Devices : 4
       Persistence : Superblock is persistent

       Update Time : Tue Oct  4 23:24:16 2022
             State : clean, degraded, recovering 
    Active Devices : 2
   Working Devices : 4
    Failed Devices : 0
     Spare Devices : 2

            Layout : left-symmetric
        Chunk Size : 512K

Consistency Policy : resync

    Rebuild Status : 50% complete

              Name : master:5  (local to host master)
              UUID : 14f81915:11b1621e:d8737c7f:b60cbc26
            Events : 9

    Number   Major   Minor   RaidDevice State
       0       8       16        0      active sync   /dev/sdb
       1       8       32        1      active sync   /dev/sdc
       4       8       48        2      spare rebuilding   /dev/sdd

       3       8       64        -      spare   /dev/sde
           

3.模拟硬碟故障

[root@master ~]# mdadm -f /dev/md5 /dev/sdb
mdadm: set /dev/sdb faulty in /dev/md5
           

4.檢視RAID的詳細資訊

[root@master ~]# mdadm -D /dev/md5
/dev/md5:
·······

Consistency Policy : resync

              Name : master:5  (local to host master)
              UUID : 14f81915:11b1621e:d8737c7f:b60cbc26
            Events : 20

    Number   Major   Minor   RaidDevice State
       -       0        0        0      removed
       1       8       32        1      active sync   /dev/sdc
       -       0        0        2      removed

       0       8       16        -      faulty   /dev/sdb
       3       8       64        -      spare   /dev/sde
       4       8       48        -      spare   /dev/sdd
           

5.原來的熱備盤/dev/sde正在參與RAID 5的重建,而原來的/dev/sdb變成了壞盤,熱移除故障盤,并重新添加磁盤

[root@master ~]# mdadm -r /dev/md5 /dev/sdb
mdadm: hot removed /dev/sdb from /dev/md5
[root@master ~]# mdadm -a /dev/md5 /dev/sdb
mdadm: added /dev/sdb
           
[root@master ~]# mdadm -a /dev/md5 /dev/sdb
mdadm: added /dev/sdb
[root@master ~]# mkfs.xfs /dev/md5
meta-data=/dev/md5               isize=512    agcount=16, agsize=654720 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=10475520, imaxpct=25
         =                       sunit=128    swidth=256 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=5120, version=2
         =                       sectsz=512   sunit=8 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@master ~]# mkdir /raid5
[root@master ~]# mount /dev/md5 /raid5/
[root@master ~]# df -h
Filesystem               Size  Used Avail Use% Mounted on
devtmpfs                 1.9G     0  1.9G   0% /dev
tmpfs                    1.9G     0  1.9G   0% /dev/shm
tmpfs                    1.9G   12M  1.9G   1% /run
tmpfs                    1.9G     0  1.9G   0% /sys/fs/cgroup
/dev/mapper/centos-root   46G  1.4G   44G   4% /
/dev/sda1               1014M  150M  865M  15% /boot
tmpfs                    378M     0  378M   0% /run/user/0
/dev/md5                  40G   33M   40G   1% /raid5
           

結論

繼續閱讀