1. 程式人生 > 實用技巧 >實戰案例——伺服器製作raid磁碟陣列並管理

實戰案例——伺服器製作raid磁碟陣列並管理

3.3 實戰案例——伺服器製作raid磁碟陣列並管理
3.3.1 案例目標
(1)掌握RAID的構建,掛載和使用。
(2)掌握RAID的基礎運維。
Raid磁碟冗餘

RAID LEVEL1:N塊相同空間,同一份資料,拷貝N份,提高資料安全性,浪費儲存空間
RAID LEVEL5:最少三塊空間,兩塊空間儲存分割的資料,第三塊空間校驗,(1:1 2:0 3:0可逆運算)硬碟可以損壞一塊,讀寫速度變慢,資料利用率高,資料安全性有一定提高
RAIDLEVEL10 1+0 四塊
RAIDLEVEL50 5+0 六塊
實現:硬體RAID
Madam新增若干個分割槽或硬碟針對分割槽和硬碟
RAID0,RAID1,RAID5產生名稱md0,md1,md2虛擬儲存裝置
3.3.2 案例分析
1.規劃節點
主機規劃,見表3-3-1。
表3-3-1 規劃節點
IP 主機名 節點
192.168.100.10 localhost 控制節點
2.基礎準備
使用VMWare Workstation軟體安裝CentOS 7.2作業系統,映象使用提供的CentOS-7-x86_64-DVD-1511.iso,並新增4塊20 GB硬碟。YUM源使用提供的mdadm_yum資料夾。
3.3.3 案例實施
1.建立raid
建立raid 0
利用磁碟分割槽新建2個磁碟分割槽,每個大小為20 GB。
()
用這2個20 GB的分割槽來模擬1個40 GB的硬碟。
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 500M 0 part /boot
└─sda2 8:2 0 19.5G 0 part
├─centos-root 253:0 0 17.5G 0 lvm /
└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 20G 0 disk
sdc 8:32 0 20G 0 disk
sr0 11:0 1 4G 0 rom
配置本地YUM安裝源,將提供的mdadm_yum資料夾上傳至/opt目錄,示例程式碼如下:
[root@localhost ~]# mv /etc/yum.repos.d/* /media/
[root@localhost ~]# vi /etc/yum.repos.d/yum.repo
[mdadm]
name=mdadm
baseurl=file:///opt/mdadm_yum/
gpgcheck=0
enabled=1
安裝工具mdadm,使用已有YUM源進行安裝,命令如下:
[root@localhost ~]# yum install -y mdadm
建立一個RAID 0裝置:這裡使用/dev/sdb和/dev/sdc做實驗。
將/dev/sdb和/dev/sdc建立RAID等級為RAID 0的md0(裝置名)。
[root@localhost ~]# mdadm -C -v /dev/md0 -l 0 -n 2 /dev/sdb /dev/sdc
mdadm: chunk size defaults to 512K
mdadm: Fail create md0 when using /sys/module/md_mod/parameters/new_array
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
命令解析:
-C v:建立裝置,並顯示資訊。
-l 0:RAID的等級為RAID 0。
-n 2:建立RAID的裝置為2塊。
檢視系統上的RAID,命令及返回結果如下。
[root@localhost ~]# cat /proc/mdstat
Personalities : [raid0]
md0 : active raid0 sdc[1] sdb[0]
41908224 blocks super 1.2 512k chunks
unused devices:
檢視RAID詳細資訊,命令及返回結果如下。
[root@localhost ~]# mdadm -Ds
ARRAY /dev/md0 metadata=1.2 name=localhost.localdomain:0 UUID=35792eb3:51f58189:44cef502:cdcee441
[root@localhost ~]# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Sat Oct 5 10:21:41 2019
Raid Level : raid0
Array Size : 41908224 (39.97 GiB 42.91 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent

   Update Time : Sat Oct  5 10:21:41 2019
         State : clean 
Active Devices : 2

Working Devices : 2
Failed Devices : 0
Spare Devices : 0

    Chunk Size : 512K

Consistency Policy : unknown

          Name : localhost.localdomain:0  (local to host localhost.localdomain)
          UUID : 35792eb3:51f58189:44cef502:cdcee441
        Events : 0

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

生成配置檔案mdadm.conf,命令如下。
[root@localhost ~]# mdadm -Ds > /etc/mdadm.conf
對建立的RAID進行檔案系統建立並掛載,命令如下。
[root@localhost ~]# mdadm -Ds > /etc/mdadm.conf
[root@localhost ~]# mkfs.xfs /dev/md0
meta-data=/dev/md0 isize=256 agcount=16, agsize=654720 blks
= sectsz=512 attr=2, projid32bit=1
= crc=0 finobt=0
data = bsize=4096 blocks=10475520, imaxpct=25
= sunit=128 swidth=256 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=0
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@localhost ~]# mkdir /raid0/
[root@localhost ~]# mount /dev/md0 /raid0/
[root@localhost ~]# df -Th /raid0/
Filesystem Type Size Used Avail Use% Mounted on
/dev/md0 xfs 40G 33M 40G 1% /raid0
設定成開機自動掛載,命令如下。
[root@localhost ~]# blkid /dev/md0
/dev/md0: UUID="8eafdcb6-d46a-430a-8004-d58a68dc0751" TYPE="xfs"
[root@localhost ~]# echo "UUID=8eafdcb6-d46a-430a-8004-d58a68dc0751 /raid0 xfs defaults 0 0" >> /etc/fstab
刪除RAID操作,命令如下:
[root@localhost ~]# umount /raid0/
[root@localhost ~]# mdadm -S /dev/md0
[root@localhost ~]# rm -rf /etc/mdadm.conf
[root@localhost ~]# rm -rf /raid0/
[root@localhost ~]# mdadm --zero-superblock /dev/sdb
[root@localhost ~]# mdadm --zero-superblock /dev/sdc
[root@localhost ~]# vi /etc/fstab
UUID=8eafdcb6-d46a-430a-8004-d58a68dc0751 /raid0 xfs defaults 0 0 //刪除此行

  1. 運維操作
    (1)raid 5運維操作
    利用磁碟分割槽新建4個磁碟分割槽,每個大小為20 GB。用3個20 GB的分割槽來模擬raid 5,加一個熱備盤。
    [root@localhost ~]# mdadm -Cv /dev/md5 -l5 -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: Fail create md5 when using /sys/module/md_mod/parameters/new_array
    mdadm: Defaulting to version 1.2 metadata
    mdadm: array /dev/md5 started.

檢視RAID的詳細資訊,命令如下。
[root@localhost ~]# mdadm -D /dev/md5
/dev/md5:
Version : 1.2
Creation Time : Sat Oct 5 13:17:41 2019
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 : Sat Oct  5 13:19:27 2019
         State : clean 
Active Devices : 3

Working Devices : 4
Failed Devices : 0
Spare Devices : 1

        Layout : left-symmetric
    Chunk Size : 512K

Consistency Policy : unknown

          Name : localhost.localdomain:5  (local to host localhost.localdomain)
          UUID : f51467bd:1199242b:bcb73c7c:160d523a
        Events : 18

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      active sync   /dev/sdd

   3       8       64        -      spare   /dev/sde

(2)模擬硬碟故障
[root@localhost ~]# mdadm -f /dev/md5 /dev/sdb
mdadm: set /dev/sdb faulty in /dev/md5

  • 當磁碟已經損壞時,使用--remove(或者其縮寫--f)引數將這個磁碟從磁碟陣列中移走;但如果裝置還正在被陣列使用,則不能從陣列中移走

檢視RAID的詳細資訊,命令如下。
[root@localhost ~]# mdadm -D /dev/md5
/dev/md5:
Version : 1.2
Creation Time : Sat Oct 5 13:17:41 2019
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 : Sat Oct  5 13:28:54 2019
         State : clean 
Active Devices : 3

Working Devices : 3
Failed Devices : 1
Spare Devices : 0

        Layout : left-symmetric
    Chunk Size : 512K

Consistency Policy : unknown

          Name : localhost.localdomain:5  (local to host localhost.localdomain)
          UUID : f51467bd:1199242b:bcb73c7c:160d523a
        Events : 37

Number   Major   Minor   RaidDevice State
   3       8       64        0      active sync   /dev/sde
   1       8       32        1      active sync   /dev/sdc
   4       8       48        2      active sync   /dev/sdd

   0       8       16        -      faulty   /dev/sdb

從以上結果可以發現原來的熱備盤/dev/sde正在參與RAID 5的重建,而原來的/dev/sdb變成了壞盤。
熱移除故障盤,命令如下:
[root@localhost ~]# mdadm -r /dev/md5 /dev/sdb
mdadm: hot removed /dev/sdb from /dev/md5
檢視RAID的詳細資訊,命令如下:
[root@localhost ~]# mdadm -D /dev/md5
/dev/md5:
Version : 1.2
Creation Time : Sat Oct 5 13:17:41 2019
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 : 3
Persistence : Superblock is persistent

   Update Time : Sat Oct  5 13:35:54 2019
         State : clean 
Active Devices : 3

Working Devices : 3
Failed Devices : 0
Spare Devices : 0

        Layout : left-symmetric
    Chunk Size : 512K

Consistency Policy : unknown

          Name : localhost.localdomain:5  (local to host localhost.localdomain)
          UUID : f51467bd:1199242b:bcb73c7c:160d523a
        Events : 38

Number   Major   Minor   RaidDevice State
   3       8       64        0      active sync   /dev/sde
   1       8       32        1      active sync   /dev/sdc
   4       8       48        2      active sync   /dev/sdd

格式化RAID並進行掛載,命令如下:
[root@localhost ~]# mkfs.xfs /dev/md5
meta-data=/dev/md5 isize=256 agcount=16, agsize=654720 blks
= sectsz=512 attr=2, projid32bit=1
= crc=0 finobt=0
data = bsize=4096 blocks=10475520, imaxpct=25
= sunit=128 swidth=256 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=0
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@localhost ~]# mount /dev/md5 /mnt/
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 18G 906M 17G 6% /
devtmpfs 903M 0 903M 0% /dev
tmpfs 913M 0 913M 0% /dev/shm
tmpfs 913M 8.6M 904M 1% /run
tmpfs 913M 0 913M 0% /sys/fs/cgroup
/dev/sda1 497M 125M 373M 25% /boot
tmpfs 183M 0 183M 0% /run/user/0
/dev/md5 40G 33M 40G 1% /mnt