centos7.6進行軟raid5制作


 centos7.6進行軟raid5制作

 

備注(本次記錄源於同事的分享)

原分享地址:同事分享直達

一、系統版本說明

 

1、系統版本說明

這里要制作軟RAID 的操作系統版本是CentOS 7.6 64位。

 

2、檢查服務器是否已經安裝mdadm服務

[root@host2 ~]# rpm -qa |grep mdadm

 

3、安裝mdadm服務
如果上面的命令沒有結果輸出,那么進行安裝mdadm

[root@host2 ~]# yum install -y mdadm

 

4、查看磁盤情況
可以看到系統有/dev/sdb、/dev/sdc、/dev/sdd、/dev/sde四個沒有分區的磁盤。
注意:使用命令創建軟raid時磁盤可以分區也可以不分區,但是使用disk命令分區時,磁盤的分區類型可以修改成 Linux raid autodetect,這樣即使不配置 /etc/mdadm.conf 文件,系統重啟時raid也能自啟動。

 

[root@host2 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda
8:0 0 60G 0 disk ├─sda1 8:1 0 1G 0 part /boot ├─sda2 8:2 0 16G 0 part [SWAP] └─sda3 8:3 0 43G 0 part / sdb 8:16 0 5G 0 disk sdc 8:32 0 5G 0 disk sdd 8:48 0 5G 0 disk sde 8:64 0 5G 0 disk sr0 11:0 1 4.3G 0 rom

二、磁盤分區、制作raid


1、磁盤分區


1.1和1.2根據磁盤大小選擇其中一個命令去分區就行,一般選擇parted命令分區。

注意:fdisk分區采用的是MBR格式,MBR無法支持超過2TB的硬盤,超過2TB的硬盤需要使用GPT分區,這里GPT分區用的是parted命令。


1.1、fdisk分區

分區示例如下以磁盤/dev/sdb分區為例,/dev/sdc、/dev/sdd、/dev/sde這三個磁盤分區與/dev/sdb分區過程一樣。

[root@host2 ~]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0x8f2aa0c0.

Command (m for help): n                        # 開始創建分區
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p                          # p 開始創建主分區(e 是創建邏輯分區)
Partition number (1-4, default 1):             # 回車(分區默認編號為1)
First sector (2048-10485759, default 2048):    # 回車(分區大小默認從2048開始)
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-10485759, default 10485759): # 回車(分區默認最大)
Using default value 10485759
Partition 1 of type Linux and of size 5 GiB is set

Command (m for help): t                        # 開始修改分區類型
Selected partition 1
Hex code (type L to list all codes): fd        # 修改分區類型為Linux raid autodetect
Changed type of partition 'Linux' to 'Linux raid autodetect'

Command (m for help): p                        # 查詢分區結果

Disk /dev/sdb: 5368 MB, 5368709120 bytes, 10485760 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x8f2aa0c0

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    10485759     5241856   fd  Linux raid autodetect

Command (m for help): w                        # 保存分區並退出
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
[root@host2 ~]# partprobe                      # 更新磁盤分區

 

分區后查詢磁盤結果如下

[root@host2 ~]# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0   60G  0 disk 
├─sda1   8:1    0    1G  0 part /boot
├─sda2   8:2    0   16G  0 part [SWAP]
└─sda3   8:3    0   43G  0 part /
sdb      8:16   0    5G  0 disk 
└─sdb1   8:17   0    5G  0 part 
sdc      8:32   0    5G  0 disk 
└─sdc1   8:33   0    5G  0 part 
sdd      8:48   0    5G  0 disk 
└─sdd1   8:49   0    5G  0 part 
sde      8:64   0    5G  0 disk 
└─sde1   8:65   0    5G  0 part 
sr0     11:0    1  4.3G  0 rom  

 

1.2、parted分區

分區示例如下以磁盤/dev/sdg分區為例:

[root@host137 ~]# parted /dev/sdg
GNU Parted 3.1
Using /dev/sdg
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mklabel gpt                    # 創建一個gpt類型的分區表                                  
Warning: The existing disk label on /dev/sdg will be destroyed and all data on this disk will be lost. Do you want to continue?
Yes/No? yes                                                               
(parted) mkpart primary 0% 100%         # “primary” 是名稱,可以任意起,0% 100%指定分區的起始和結束位置                                  
(parted) p                              # 查看分區情況                                  
Model: ATA HUS726060ALE610 (scsi)
Disk /dev/sdg: 6001GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system  Name     Flags
 1      1049kB  6001GB  6001GB               primary

(parted) q                             # 保存分區並退出                                   
Information: You may need to update /etc/fstab.
[root@host137 ~]# partprobe            # 更新磁盤分區

 

2、創建raid並掛載

-C 指定創建raid名稱;-a yes 自動創建設備文件;-l 指定raid級別;-n 磁盤個數;-c 數據塊大小, 默認大小為64k,一般不用-c。
cat /proc/mdstat 命令可以看到raid里面的磁盤spare rebuilding同步的進度。
這里以raid5為例(raid5這里用了4塊磁盤做演示,一般組建軟raid5 3塊磁盤就可以):

[root@host2 ~]# mdadm -C /dev/md0 -a yes -l 5 -n 4 /dev/sd{b,c,d,e}1 -c 256       
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
[root@host2 ~]# mdadm -Ds                  # 查看raid信息
ARRAY /dev/md0 metadata=1.2 spares=1 name=host2:0 UUID=e2ea5580:d5f14d94:9365e4fe:cdfe1b92
[root@host2 ~]# echo 'DEVICE /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1' > /etc/mdadm.conf 
  # DEVICE為實際做RAID的磁盤盤符名
  
[root@host2 ~]# mdadm -Ds >> /etc/mdadm.conf 
# 將raid信息保存到配置文件/etc/mdadm.conf,如果配置文件不完整,
建議參考標准配置文件根據實際情況補全,否則沒有配置文件機器重啟后新建的分區盤符會變為默認的md127。

[root@host2 ~]# mkdir /data0               # 創建掛載點目錄
[root@host2 ~]# mkfs.xfs /dev/md0          # 創建raid磁盤文件系統為xfs
meta-data=/dev/md0               isize=512    agcount=16, agsize=245504 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=3927552, imaxpct=25
         =                       sunit=64     swidth=192 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=64 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@host2 ~]# blkid /dev/md0            # 查看raid磁盤文件系統和UUID
/dev/md0: UUID="43487c20-3b1f-477c-9a32-714d5982603a" TYPE="xfs"
[root@host2 ~]# 
sed -i '$a\UUID="43487c20-3b1f-477c-9a32-714d5982603a" /data0  xfs defaults,_netdev 0 0' /etc/fstab    
# 用/dev/md0的UUID添加永久掛載,_netdev參數是標明/dev/md0為網絡設備,
服務器重啟的時候系統找到/dev/md0設備就掛載,找不到就跳過掛載直接開機。如果沒有_netdev參數,
系統找不到/dev/md0設備就開不了機。
[root@host2 ~]# mount -a                 
# 驗證開機自動掛載配置文件/etc/fstab中剛才寫入的配置是否正確,然后可以用df -h命令查看/dev/md0是否掛載上

[root@host2 ~]# tail -n 1 /etc/fstab      # 查看永久掛載結果
UUID="43487c20-3b1f-477c-9a32-714d5982603a" /data0                   xfs defaults,_netdev 0 0
[root@host2 ~]# mdadm -D /dev/md0         # -D 查看raid詳細信息,可以發現4個都是working狀態的

/dev/md0:
           Version : 1.2
     Creation Time : Wed Dec 16 18:02:25 2020
        Raid Level : raid5
        Array Size : 15710208 (14.98 GiB 16.09 GB)
     Used Dev Size : 5236736 (4.99 GiB 5.36 GB)
      Raid Devices : 4
     Total Devices : 4
       Persistence : Superblock is persistent

       Update Time : Wed Dec 16 18:20:10 2020
             State : clean 
    Active Devices : 4
   Working Devices : 4
    Failed Devices : 0
     Spare Devices : 0

            Layout : left-symmetric
        Chunk Size : 256K

Consistency Policy : resync

              Name : host2:0  (local to host host2)
              UUID : e2ea5580:d5f14d94:9365e4fe:cdfe1b92
            Events : 22

    Number   Major   Minor   RaidDevice State
       0       8       17        0      active sync   /dev/sdb1
       1       8       33        1      active sync   /dev/sdc1
       2       8       49        2      active sync   /dev/sdd1
       4       8       65        3      active sync   /dev/sde1

 

如果對操作不放心,做完后可以重啟下測試raid磁盤狀態及掛載是否正常。

 

3、驗證raid

驗證命令:

lsblk
blkid
df -h
cat /etc/fstab
mdadm -D /dev/md0
mdadm -D /dev/md1
cat /proc/mdstat
cat /etc/mdadm.conf
mdadm -Ds

 

4、移除壞盤、添加新磁盤

 

1、模擬磁盤損壞
[root@host2 ~]# mdadm -f /dev/md0 /dev/sdb1
mdadm: set /dev/sdb1 faulty in /dev/md0
2、查看raid5信息
[root@host2 ~]# mdadm -D /dev/md0 
       0       8       17        -      faulty   /dev/sdb1

3、移除損壞磁盤
[root@host2 ~]# mdadm -r /dev/md0 /dev/sdb1
4、添加新的磁盤
[root@host2 ~]# mdadm -a /dev/md0 /dev/sdg1

 

5、刪除、重建raid

1、刪除軟raid:
(1)、umount /data0               # 刪除之前先要先卸載掛載點
(2)、mdadm --stop /dev/md0       # 停止raid
(2)、mdadm --misc --zero-superblock /dev/sdb1 /dev/sdd1 /dev/sdd1 /dev/sde1  
 # 清空/dev/sdb1磁盤raid信息
(3)、vim /etc/fstab                # 刪除或注釋/etc/fstab上的掛載信息
(4)、vim /etc/mdadm.conf           # 刪除或注釋/etc/mdadm.conf的RAID信息
如果做完上面所有的操作后,發現/dev/下還有md0這個設備文件存在,直接rm -f /dev/md0即可。

2、重建啟動軟raid的命令:
如果已經配置了/etc/mdadm.conf配置文件,則:mdadm -As /dev/md0
如果沒有配置/etc/mdadm.conf配置文件,則:mdadm -As /dev/md0 /dev/sd{b,c,d,e}1

 

三、注意事項

1、如果配置文件/etc/mdadm.conf不完整,建議參考標准配置文件根據實際情況補全,否則沒有配置文件機器重啟后新建的分區盤符會變為默認的md127。
可通過如下命令將raid信息保存到配置文件/etc/mdadm.conf中,DEVICE為實際做RAID的磁盤盤符名:

[root@host2 ~]# echo 'DEVICE /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1' > /etc/mdadm.conf
[root@host2 ~]# mdadm -Ds >> /etc/mdadm.conf

2、在配置文件/etc/fstab中掛載時,注意添加_netdev參數,這是標明/dev/md0為網絡設備,服務器重啟的時候系統找到/dev/md0設備就掛載,找不到就跳過掛載,直接開機。如果沒有_netdev參數,系統找不到/dev/md0設備就開不了機。

[root@host2 ~]# tail -n 1 /etc/fstab      # 查看永久掛載結果
UUID="43487c20-3b1f-477c-9a32-714d5982603a" /data0                   xfs defaults,_netdev 0 0

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM