An's Blog
收藏、分享 …
Toggle navigation
Home
Cesium
SuperMap
ArcGIS
MapboxGL
CentOS
GeoServer
Favorites
Archives
Tags
CentOS7配置RAID5实操(4块硬盘,3块做RAID,1块做备份)
2022-12-08 16:46:12
4
0
0
admin
## **一、修改主机名、配置网络** ## **二、mdadm安全及详解** ### **1、安装** yum install mdadm -y ### **2、帮助文档** [root@localhost ~]# mdadm --help mdadm is used for building, managing, and monitoring Linux md devices (aka RAID arrays) Usage: mdadm --create device options... Create a new array from unused devices. mdadm --assemble device options... Assemble a previously created array. mdadm --build device options... Create or assemble an array without metadata. mdadm --manage device options... make changes to an existing array. mdadm --misc options... devices report on or modify various md related devices. mdadm --grow options device resize/reshape an active array mdadm --incremental device add/remove a device to/from an array as appropriate mdadm --monitor options... Monitor one or more array for significant changes. mdadm device options... Shorthand for --manage. Any parameter that does not start with '-' is treated as a device name or, for --examine-bitmap, a file name. The first such name is often the name of an md device. Subsequent names are often names of component devices. For detailed help on the above major modes use --help after the mode e.g. mdadm --assemble --help For general help on options use mdadm --help-options [root@localhost ~]# ### **3、常用命令** **(1) 项目创建阵列** mdadm -Cv /dev/md5 -l 5 -n 2 /dev/sdb /dev/sdc /dev/sdd 或 mdadm -Cv /dev/md5 --level=5 --raid-devices=3 /dev/sdb /dev/sdc /dev/sdd *参数详解:* > -C 创建阵列 > -l 指定raid级别 5 > -v 显示细节 > -x, --spare-devices=:指定初始阵列的富余device 数目 > -n,--raid-devices=指定磁盘的个数2 后面接具体的磁盘编号 **(2) 格式化阵列** mkfs.xfs /dev/md5 **(3) 挂载** mount /dev/md5 /mnt ## **三、软件磁盘阵列的配置** ### **1、分区** [root@bkserver ~]# gdisk /dev/sdd # 通过gdisk命令创建分区,也可使用fdisk GPT fdisk (gdisk) version 0.8.10 Partition table scan: MBR: not present BSD: not present APM: not present GPT: not present Creating new GPT entries. Command (? for help): n # 添加一个新分区 Partition number (1-128, default 1): # 分区号为1 First sector (34-15628053134, default = 2048) or {+-}size{KMGTP}: Last sector (2048-15628053134, default = 15628053134) or {+-}size{KMGTP}: # 大小为整个磁盘 Current type is 'Linux filesystem' Hex code or GUID (L to show codes, Enter = 8300): # GUID号 Changed type of partition to 'Linux filesystem' Command (? for help): w # 保存分区 Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING PARTITIONS!! Do you want to proceed? (Y/N): y OK; writing new GUID partition table (GPT) to /dev/sdd. The operation has completed successfully. [root@bkserver ~]# lsblk # 查看磁盘列表 NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 7.3T 0 disk # 看到我们sdb磁盘上已经分出了三个分区 └─sda1 8:1 0 7.3T 0 part sdb 8:16 0 7.3T 0 disk └─sdb1 8:17 0 7.3T 0 part sdc 8:32 0 7.3T 0 disk └─sdc1 8:33 0 7.3T 0 part sdd 8:48 0 7.3T 0 disk # 第四个是预留磁盘 └─sdd1 8:49 0 7.3T 0 part sde 8:64 0 111.8G 0 disk ├─sde1 8:65 0 200M 0 part /boot/efi ├─sde2 8:66 0 1G 0 part /boot └─sde3 8:67 0 110.6G 0 part ├─centos-root 253:0 0 50G 0 lvm / ├─centos-swap 253:1 0 7.8G 0 lvm [SWAP] └─centos-home 253:2 0 52.8G 0 lvm /home [root@bkserver ~]# ### **2、创建** [root@bkserver ~]# mdadm --create /dev/md0 --auto=yes --level=5 --chunk=512K --raid-devices=3 --spare-devices=1 /dev/sda /dev/sdb /dev/sdc /dev/sdd mdadm: partition table exists on /dev/sda mdadm: partition table exists on /dev/sda but will be lost or meaningless after creating array mdadm: partition table exists on /dev/sdb mdadm: partition table exists on /dev/sdb but will be lost or meaningless after creating array mdadm: partition table exists on /dev/sdc mdadm: partition table exists on /dev/sdc but will be lost or meaningless after creating array mdadm: partition table exists on /dev/sdd mdadm: partition table exists on /dev/sdd but will be lost or meaningless after creating array Continue creating array? y mdadm: Defaulting to version 1.2 metadata mdadm: array /dev/md0 started. [root@bkserver ~]# --create:为创建RAID的选项 --auto=yes:决定创建后面接的软件磁盘阵列设备,即md [0-9] --chunk=256K:决定这个设备的chunk大小,也可以当成 stripe 大小,一般是64K或512K --raid-devices=4:使用几个磁盘或分区作为磁盘阵列的设备 --spare-devices=1:使用几个磁盘或分区作为备用设备 --level=5:设置这组磁盘阵列的等级,建议只用0、1、5即可 --detail:后面所接的那个磁盘阵列设备的详细信息 [root@bkserver ~]# mdadm --detail /dev/md0 /dev/md0: # RAID的设备文件名 Version : 1.2 Creation Time : Wed Nov 23 14:52:52 2022 # 创建时间 Raid Level : raid5 # RAID 的等级 Array Size : 15627788288 (14.55 TiB 16.00 TB) # 整组RAID的可用容量 Used Dev Size : 7813894144 (7.28 TiB 8.00 TB) # 每颗磁盘的容量 Raid Devices : 3 # 组成RAID的磁盘数量 Total Devices : 4 # 包括spare的总磁盘数 Persistence : Superblock is persistent Intent Bitmap : Internal Update Time : Wed Nov 23 14:55:54 2022 State : clean, degraded, recovering # 目前这个磁盘阵列的使用状态 Active Devices : 2 # 启动的设备数量 Working Devices : 4 Failed Devices : 0 # 损坏的设备数 Spare Devices : 2 # 预留磁盘的数量 Layout : left-symmetric Chunk Size : 512K # 这就是chunk的小区块容量 Consistency Policy : bitmap Rebuild Status : 0% complete Name : bkserver:0 (local to host bkserver) UUID : e9a40409:72b50aec:16107bf9:524153e4 Events : 37 Number Major Minor RaidDevice State 0 8 0 0 active sync /dev/sda 1 8 16 1 active sync /dev/sdb 4 8 32 2 spare rebuilding /dev/sdc 3 8 48 - spare /dev/sdd [root@bkserver ~]# > 1、最后4行就是这4个设备目前的状况,RaidDevice指的是此Raid内的磁盘顺序; > 2、**sdc:** spare rebuilding热备重建中,也就是sda、sdb会把自己的数据同步到sdc; > 3、**sdd:** 作为备用设备在候场区; *查看RAID5信息* [root@bkserver ~]# cat /proc/mdstat Personalities : [raid6] [raid5] [raid4] md0 : active raid5 sdc[4] sdd[3](S) sdb[1] sda[0] # 第一行 15627788288 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [UU_] # 第二行 [>....................] recovery = 2.5% (199782400/7813894144) finish=716.4min speed=177127K/sec # 第三行 bitmap: 0/59 pages [0KB], 65536KB chunk unused devices: <none> > **第一行部分:**指出 md0 为 raid5 ,且使用了 sdb1,sdb2,sdb3,sdb4,等四颗磁盘设备。每个设备后面的中括号 [] > 内的数字为此磁盘在 RAID 中的顺序(RaidDevice);至于 sdb5 后面的 [S] 则代表 sdb5 为 spare 之意。 > **第二行部分:**此磁盘阵列拥有 3142656 个block(每个 block 单位为 1K),所以总容量约为 3GB,使用 RAID 5 > 等级,写入磁盘的小区块(chunk)大小为 256K,使用 algorithm 2 磁盘阵列演算法。 [m/n] 代表此阵列需要 m > 个设备,且 n 个设备正常运行。因此本 md0 需要 4 个设备且这 4 个设备均正常运行。后面的 [UUUU] > 代表的是四个所需的设备(就是 [m/n] 里面的 m)的启动情况,U 代表正常运行,若为 _ 则代表不正常。 > **第三行部分:**3个8T的硬盘,重建检校大概需要12小时。 ### **3、格式化并挂载使用** [root@raid5 /]# mkfs.xfs -f -d su=512k,sw=3 -r extsize=768k /dev/md0 # 要注意,这块格式化的是 md0 meta-data=/dev/md0 isize=512 agcount=8, agsize=98176 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0, sparse=0 data = bsize=4096 blocks=785408, imaxpct=25 = sunit=128 swidth=384 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal log bsize=4096 blocks=2560, version=2 = sectsz=512 sunit=8 blks, lazy-count=1 realtime =none extsz=1572864 blocks=0, rtextents=0 [root@raid5 /]# mkdir /srv/raid [root@raid5 /]# mount /dev/md0 /srv/raid/ [root@raid5 /]# df -TH /srv/raid/ # 看到我们已经挂载成功了 Filesystem Type Size Used Avail Use% Mounted on /dev/md0 xfs 3.3G 34M 3.2G 2% /srv/raid ### **4、仿真RAID错误的救援** 俗话说“天有不测风云,人有旦夕祸福”,谁也不知道你的磁盘阵列内的设备啥时候会出错,因此了解一下软件磁盘阵列的救援是必须的!下面我们就来模仿一下RAID错误并救援。 [root@raid5 /]# cp -a /var/log/ /srv/raid/ # 先复制一些数据到挂载点 [root@raid5 /]# df -TH /srv/raid/ ; du -sm /srv/raid/* # 看到里面已经有了数据 Filesystem Type Size Used Avail Use% Mounted on /dev/md0 xfs 17T 97M 17T 1% /srv/raid 58 /srv/raid/log [root@raid5 /]# mdadm --manage /dev/md0 --fail /dev/sdb3 mdadm: set /dev/sdb3 faulty in /dev/md0 # 显示已经成为了错误的设备 .............................. // 省略部分内容 Update Time : Thu Nov 7 20:55:31 2019 State : clean Active Devices : 4 Working Devices : 4 Failed Devices : 1 # 出错一个磁盘 Spare Devices : 0 # 这里预备已经变为0,说明已经顶替工作了,这里截得有点慢了,不然还是1 ............................ // 省略部分内容 Number Major Minor RaidDevice State 0 8 17 0 active sync /dev/sdb1 1 8 18 1 active sync /dev/sdb2 4 8 21 2 active sync /dev/sdb5 # 这里可以看到sdb5 已经顶替工作了 5 8 20 3 active sync /dev/sdb4 2 8 19 - faulty /dev/sdb3 # sdb3 死掉了 ### **5、设置开机自启动RAID并自动挂载** [root@bkserver /]# mdadm --detail /dev/md0 | grep -i uuid UUID : e9a40409:72b50aec:16107bf9:524153e4 [root@bkserver /]# nano /etc/mdadm.conf ARRAY /dev/md0 UUID=e9a40409:72b50aec:16107bf9:524153e4 # RAID设备 识别码内容 [root@bkserver /]# blkid /dev/md0 /dev/md0: UUID="df15c701-6c6b-4ab2-bda5-48301791a102" TYPE="xfs" [root@bkserver /]# nano /etc/fstab # 设置开机自动挂载 ............................ // 省略部分内容 /dev/md0 /srv/raid xfs defaults 0 0 #开头也可填写为UUID [root@bkserver /]# df -Th /srv/raid/ # 可以进行重启测试 Filesystem Type Size Used Avail Use% Mounted on /dev/md0 xfs 3.0G 37M 3.0G 2% /srv/raid ## **四、模拟故障并修复操作** mdadm --manage /dev/md9 --fail /dev/sdb 模拟损坏sdb盘 mdadm /dev/md0 -f /dev/sdc 模拟损坏sdc盘 mdadm /dev/md5 -a /dev/sdd 加入一块修复盘 mdadm /dev/md0 -r /dev/sdc 移除故障盘 ## **五、扩容阵列** 1、将这两块磁盘直接加入到raid阵列 mdadm /dev/md0 -add /dev/sdc1 先添加两个设备到阵列中 2、扩容 mdadm --grow /dev/md1 --raid-devices=8扩容阵列设备增加到8个 3、刷新pv 键入pvresize /dev/md1命令将剩余的空间全部可加参数指定再分配的空间大小分配给物理卷 4、刷新lv lvresize –l +2G /dev/raid5vg/raid5lv 5、调整文件系统的大小 使用resize2fs /dev/raid5vg/raid5lv命令(可能提示你先运行e2fsck先进行检测),调整逻辑卷上文件系统大小; ## **五、其他阵列操作** ## **一、修改主机名、配置网络** ## **二、mdadm安全及详解** ### **1、安装** yum install mdadm -y ### **2、帮助文档** [root@localhost ~]# mdadm --help mdadm is used for building, managing, and monitoring Linux md devices (aka RAID arrays) Usage: mdadm --create device options... Create a new array from unused devices. mdadm --assemble device options... Assemble a previously created array. mdadm --build device options... Create or assemble an array without metadata. mdadm --manage device options... make changes to an existing array. mdadm --misc options... devices report on or modify various md related devices. mdadm --grow options device resize/reshape an active array mdadm --incremental device add/remove a device to/from an array as appropriate mdadm --monitor options... Monitor one or more array for significant changes. mdadm device options... Shorthand for --manage. Any parameter that does not start with '-' is treated as a device name or, for --examine-bitmap, a file name. The first such name is often the name of an md device. Subsequent names are often names of component devices. For detailed help on the above major modes use --help after the mode e.g. mdadm --assemble --help For general help on options use mdadm --help-options [root@localhost ~]# ### **3、常用命令** **(1) 项目创建阵列** mdadm -Cv /dev/md5 -l 5 -n 2 /dev/sdb /dev/sdc /dev/sdd 或 mdadm -Cv /dev/md5 --level=5 --raid-devices=3 /dev/sdb /dev/sdc /dev/sdd *参数详解:* > -C 创建阵列 > -l 指定raid级别 5 > -v 显示细节 > -x, --spare-devices=:指定初始阵列的富余device 数目 > -n,--raid-devices=指定磁盘的个数2 后面接具体的磁盘编号 **(2) 格式化阵列** mkfs.xfs /dev/md5 **(3) 挂载** mount /dev/md5 /mnt ## **三、软件磁盘阵列的配置** ### **1、分区** [root@bkserver ~]# gdisk /dev/sdd # 通过gdisk命令创建分区,也可使用fdisk GPT fdisk (gdisk) version 0.8.10 Partition table scan: MBR: not present BSD: not present APM: not present GPT: not present Creating new GPT entries. Command (? for help): n # 添加一个新分区 Partition number (1-128, default 1): # 分区号为1 First sector (34-15628053134, default = 2048) or {+-}size{KMGTP}: Last sector (2048-15628053134, default = 15628053134) or {+-}size{KMGTP}: # 大小为整个磁盘 Current type is 'Linux filesystem' Hex code or GUID (L to show codes, Enter = 8300): # GUID号 Changed type of partition to 'Linux filesystem' Command (? for help): w # 保存分区 Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING PARTITIONS!! Do you want to proceed? (Y/N): y OK; writing new GUID partition table (GPT) to /dev/sdd. The operation has completed successfully. [root@bkserver ~]# lsblk # 查看磁盘列表 NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 7.3T 0 disk # 看到我们sdb磁盘上已经分出了三个分区 └─sda1 8:1 0 7.3T 0 part sdb 8:16 0 7.3T 0 disk └─sdb1 8:17 0 7.3T 0 part sdc 8:32 0 7.3T 0 disk └─sdc1 8:33 0 7.3T 0 part sdd 8:48 0 7.3T 0 disk # 第四个是预留磁盘 └─sdd1 8:49 0 7.3T 0 part sde 8:64 0 111.8G 0 disk ├─sde1 8:65 0 200M 0 part /boot/efi ├─sde2 8:66 0 1G 0 part /boot └─sde3 8:67 0 110.6G 0 part ├─centos-root 253:0 0 50G 0 lvm / ├─centos-swap 253:1 0 7.8G 0 lvm [SWAP] └─centos-home 253:2 0 52.8G 0 lvm /home [root@bkserver ~]# ### **2、创建** [root@bkserver ~]# mdadm --create /dev/md0 --auto=yes --level=5 --chunk=512K --raid-devices=3 --spare-devices=1 /dev/sda /dev/sdb /dev/sdc /dev/sdd mdadm: partition table exists on /dev/sda mdadm: partition table exists on /dev/sda but will be lost or meaningless after creating array mdadm: partition table exists on /dev/sdb mdadm: partition table exists on /dev/sdb but will be lost or meaningless after creating array mdadm: partition table exists on /dev/sdc mdadm: partition table exists on /dev/sdc but will be lost or meaningless after creating array mdadm: partition table exists on /dev/sdd mdadm: partition table exists on /dev/sdd but will be lost or meaningless after creating array Continue creating array? y mdadm: Defaulting to version 1.2 metadata mdadm: array /dev/md0 started. [root@bkserver ~]# --create:为创建RAID的选项 --auto=yes:决定创建后面接的软件磁盘阵列设备,即md [0-9] --chunk=256K:决定这个设备的chunk大小,也可以当成 stripe 大小,一般是64K或512K --raid-devices=4:使用几个磁盘或分区作为磁盘阵列的设备 --spare-devices=1:使用几个磁盘或分区作为备用设备 --level=5:设置这组磁盘阵列的等级,建议只用0、1、5即可 --detail:后面所接的那个磁盘阵列设备的详细信息 [root@bkserver ~]# mdadm --detail /dev/md0 /dev/md0: # RAID的设备文件名 Version : 1.2 Creation Time : Wed Nov 23 14:52:52 2022 # 创建时间 Raid Level : raid5 # RAID 的等级 Array Size : 15627788288 (14.55 TiB 16.00 TB) # 整组RAID的可用容量 Used Dev Size : 7813894144 (7.28 TiB 8.00 TB) # 每颗磁盘的容量 Raid Devices : 3 # 组成RAID的磁盘数量 Total Devices : 4 # 包括spare的总磁盘数 Persistence : Superblock is persistent Intent Bitmap : Internal Update Time : Wed Nov 23 14:55:54 2022 State : clean, degraded, recovering # 目前这个磁盘阵列的使用状态 Active Devices : 2 # 启动的设备数量 Working Devices : 4 Failed Devices : 0 # 损坏的设备数 Spare Devices : 2 # 预留磁盘的数量 Layout : left-symmetric Chunk Size : 512K # 这就是chunk的小区块容量 Consistency Policy : bitmap Rebuild Status : 0% complete Name : bkserver:0 (local to host bkserver) UUID : e9a40409:72b50aec:16107bf9:524153e4 Events : 37 Number Major Minor RaidDevice State 0 8 0 0 active sync /dev/sda 1 8 16 1 active sync /dev/sdb 4 8 32 2 spare rebuilding /dev/sdc 3 8 48 - spare /dev/sdd [root@bkserver ~]# > 1、最后4行就是这4个设备目前的状况,RaidDevice指的是此Raid内的磁盘顺序; > 2、**sdc:** spare rebuilding热备重建中,也就是sda、sdb会把自己的数据同步到sdc; > 3、**sdd:** 作为备用设备在候场区; *查看RAID5信息* [root@bkserver ~]# cat /proc/mdstat Personalities : [raid6] [raid5] [raid4] md0 : active raid5 sdc[4] sdd[3](S) sdb[1] sda[0] # 第一行 15627788288 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [UU_] # 第二行 [>....................] recovery = 2.5% (199782400/7813894144) finish=716.4min speed=177127K/sec # 第三行 bitmap: 0/59 pages [0KB], 65536KB chunk unused devices: <none> > **第一行部分:**指出 md0 为 raid5 ,且使用了 sdb1,sdb2,sdb3,sdb4,等四颗磁盘设备。每个设备后面的中括号 [] > 内的数字为此磁盘在 RAID 中的顺序(RaidDevice);至于 sdb5 后面的 [S] 则代表 sdb5 为 spare 之意。 > **第二行部分:**此磁盘阵列拥有 3142656 个block(每个 block 单位为 1K),所以总容量约为 3GB,使用 RAID 5 > 等级,写入磁盘的小区块(chunk)大小为 256K,使用 algorithm 2 磁盘阵列演算法。 [m/n] 代表此阵列需要 m > 个设备,且 n 个设备正常运行。因此本 md0 需要 4 个设备且这 4 个设备均正常运行。后面的 [UUUU] > 代表的是四个所需的设备(就是 [m/n] 里面的 m)的启动情况,U 代表正常运行,若为 _ 则代表不正常。 > **第三行部分:**3个8T的硬盘,重建检校大概需要12小时。 ### **3、格式化并挂载使用** [root@raid5 /]# mkfs.xfs -f -d su=512k,sw=3 -r extsize=768k /dev/md0 # 要注意,这块格式化的是 md0 meta-data=/dev/md0 isize=512 agcount=8, agsize=98176 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0, sparse=0 data = bsize=4096 blocks=785408, imaxpct=25 = sunit=128 swidth=384 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal log bsize=4096 blocks=2560, version=2 = sectsz=512 sunit=8 blks, lazy-count=1 realtime =none extsz=1572864 blocks=0, rtextents=0 [root@raid5 /]# mkdir /srv/raid [root@raid5 /]# mount /dev/md0 /srv/raid/ [root@raid5 /]# df -TH /srv/raid/ # 看到我们已经挂载成功了 Filesystem Type Size Used Avail Use% Mounted on /dev/md0 xfs 3.3G 34M 3.2G 2% /srv/raid ### **4、仿真RAID错误的救援** 俗话说“天有不测风云,人有旦夕祸福”,谁也不知道你的磁盘阵列内的设备啥时候会出错,因此了解一下软件磁盘阵列的救援是必须的!下面我们就来模仿一下RAID错误并救援。 [root@raid5 /]# cp -a /var/log/ /srv/raid/ # 先复制一些数据到挂载点 [root@raid5 /]# df -TH /srv/raid/ ; du -sm /srv/raid/* # 看到里面已经有了数据 Filesystem Type Size Used Avail Use% Mounted on /dev/md0 xfs 17T 97M 17T 1% /srv/raid 58 /srv/raid/log [root@raid5 /]# mdadm --manage /dev/md0 --fail /dev/sdb3 mdadm: set /dev/sdb3 faulty in /dev/md0 # 显示已经成为了错误的设备 .............................. // 省略部分内容 Update Time : Thu Nov 7 20:55:31 2019 State : clean Active Devices : 4 Working Devices : 4 Failed Devices : 1 # 出错一个磁盘 Spare Devices : 0 # 这里预备已经变为0,说明已经顶替工作了,这里截得有点慢了,不然还是1 ............................ // 省略部分内容 Number Major Minor RaidDevice State 0 8 17 0 active sync /dev/sdb1 1 8 18 1 active sync /dev/sdb2 4 8 21 2 active sync /dev/sdb5 # 这里可以看到sdb5 已经顶替工作了 5 8 20 3 active sync /dev/sdb4 2 8 19 - faulty /dev/sdb3 # sdb3 死掉了 ### **5、设置开机自启动RAID并自动挂载** [root@bkserver /]# mdadm --detail /dev/md0 | grep -i uuid UUID : e9a40409:72b50aec:16107bf9:524153e4 [root@bkserver /]# nano /etc/mdadm.conf ARRAY /dev/md0 UUID=e9a40409:72b50aec:16107bf9:524153e4 # RAID设备 识别码内容 [root@bkserver /]# blkid /dev/md0 /dev/md0: UUID="df15c701-6c6b-4ab2-bda5-48301791a102" TYPE="xfs" [root@bkserver /]# nano /etc/fstab # 设置开机自动挂载 ............................ // 省略部分内容 /dev/md0 /srv/raid xfs defaults 0 0 #开头也可填写为UUID [root@bkserver /]# df -Th /srv/raid/ # 可以进行重启测试 Filesystem Type Size Used Avail Use% Mounted on /dev/md0 xfs 3.0G 37M 3.0G 2% /srv/raid ## **四、模拟故障并修复操作** mdadm --manage /dev/md9 --fail /dev/sdb 模拟损坏sdb盘 mdadm /dev/md0 -f /dev/sdc 模拟损坏sdc盘 mdadm /dev/md5 -a /dev/sdd 加入一块修复盘 mdadm /dev/md0 -r /dev/sdc 移除故障盘 ## **五、扩容阵列** 1、将这两块磁盘直接加入到raid阵列 mdadm /dev/md0 -add /dev/sdc1 先添加两个设备到阵列中 2、扩容 mdadm --grow /dev/md1 --raid-devices=8扩容阵列设备增加到8个 3、刷新pv 键入pvresize /dev/md1命令将剩余的空间全部可加参数指定再分配的空间大小分配给物理卷 4、刷新lv lvresize –l +2G /dev/raid5vg/raid5lv 5、调整文件系统的大小 使用resize2fs /dev/raid5vg/raid5lv命令(可能提示你先运行e2fsck先进行检测),调整逻辑卷上文件系统大小; ## **五、其他阵列操作** ## **一、修改主机名、配置网络** ## **二、mdadm安全及详解** ### **1、安装** yum install mdadm -y ### **2、帮助文档** [root@localhost ~]# mdadm --help mdadm is used for building, managing, and monitoring Linux md devices (aka RAID arrays) Usage: mdadm --create device options... Create a new array from unused devices. mdadm --assemble device options... Assemble a previously created array. mdadm --build device options... Create or assemble an array without metadata. mdadm --manage device options... make changes to an existing array. mdadm --misc options... devices report on or modify various md related devices. mdadm --grow options device resize/reshape an active array mdadm --incremental device add/remove a device to/from an array as appropriate mdadm --monitor options... Monitor one or more array for significant changes. mdadm device options... Shorthand for --manage. Any parameter that does not start with '-' is treated as a device name or, for --examine-bitmap, a file name. The first such name is often the name of an md device. Subsequent names are often names of component devices. For detailed help on the above major modes use --help after the mode e.g. mdadm --assemble --help For general help on options use mdadm --help-options [root@localhost ~]# ### **3、常用命令** **(1) 项目创建阵列** mdadm -Cv /dev/md5 -l 5 -n 2 /dev/sdb /dev/sdc /dev/sdd 或 mdadm -Cv /dev/md5 --level=5 --raid-devices=3 /dev/sdb /dev/sdc /dev/sdd *参数详解:* > -C 创建阵列 > -l 指定raid级别 5 > -v 显示细节 > -x, --spare-devices=:指定初始阵列的富余device 数目 > -n,--raid-devices=指定磁盘的个数2 后面接具体的磁盘编号 **(2) 格式化阵列** mkfs.xfs /dev/md5 **(3) 挂载** mount /dev/md5 /mnt ## **三、软件磁盘阵列的配置** ### **1、分区** [root@bkserver ~]# gdisk /dev/sdd # 通过gdisk命令创建分区,也可使用fdisk GPT fdisk (gdisk) version 0.8.10 Partition table scan: MBR: not present BSD: not present APM: not present GPT: not present Creating new GPT entries. Command (? for help): n # 添加一个新分区 Partition number (1-128, default 1): # 分区号为1 First sector (34-15628053134, default = 2048) or {+-}size{KMGTP}: Last sector (2048-15628053134, default = 15628053134) or {+-}size{KMGTP}: # 大小为整个磁盘 Current type is 'Linux filesystem' Hex code or GUID (L to show codes, Enter = 8300): # GUID号 Changed type of partition to 'Linux filesystem' Command (? for help): w # 保存分区 Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING PARTITIONS!! Do you want to proceed? (Y/N): y OK; writing new GUID partition table (GPT) to /dev/sdd. The operation has completed successfully. [root@bkserver ~]# lsblk # 查看磁盘列表 NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 7.3T 0 disk # 看到我们sdb磁盘上已经分出了三个分区 └─sda1 8:1 0 7.3T 0 part sdb 8:16 0 7.3T 0 disk └─sdb1 8:17 0 7.3T 0 part sdc 8:32 0 7.3T 0 disk └─sdc1 8:33 0 7.3T 0 part sdd 8:48 0 7.3T 0 disk # 第四个是预留磁盘 └─sdd1 8:49 0 7.3T 0 part sde 8:64 0 111.8G 0 disk ├─sde1 8:65 0 200M 0 part /boot/efi ├─sde2 8:66 0 1G 0 part /boot └─sde3 8:67 0 110.6G 0 part ├─centos-root 253:0 0 50G 0 lvm / ├─centos-swap 253:1 0 7.8G 0 lvm [SWAP] └─centos-home 253:2 0 52.8G 0 lvm /home [root@bkserver ~]# ### **2、创建** [root@bkserver ~]# mdadm --create /dev/md0 --auto=yes --level=5 --chunk=512K --raid-devices=3 --spare-devices=1 /dev/sda /dev/sdb /dev/sdc /dev/sdd mdadm: partition table exists on /dev/sda mdadm: partition table exists on /dev/sda but will be lost or meaningless after creating array mdadm: partition table exists on /dev/sdb mdadm: partition table exists on /dev/sdb but will be lost or meaningless after creating array mdadm: partition table exists on /dev/sdc mdadm: partition table exists on /dev/sdc but will be lost or meaningless after creating array mdadm: partition table exists on /dev/sdd mdadm: partition table exists on /dev/sdd but will be lost or meaningless after creating array Continue creating array? y mdadm: Defaulting to version 1.2 metadata mdadm: array /dev/md0 started. [root@bkserver ~]# --create:为创建RAID的选项 --auto=yes:决定创建后面接的软件磁盘阵列设备,即md [0-9] --chunk=256K:决定这个设备的chunk大小,也可以当成 stripe 大小,一般是64K或512K --raid-devices=4:使用几个磁盘或分区作为磁盘阵列的设备 --spare-devices=1:使用几个磁盘或分区作为备用设备 --level=5:设置这组磁盘阵列的等级,建议只用0、1、5即可 --detail:后面所接的那个磁盘阵列设备的详细信息 [root@bkserver ~]# mdadm --detail /dev/md0 /dev/md0: # RAID的设备文件名 Version : 1.2 Creation Time : Wed Nov 23 14:52:52 2022 # 创建时间 Raid Level : raid5 # RAID 的等级 Array Size : 15627788288 (14.55 TiB 16.00 TB) # 整组RAID的可用容量 Used Dev Size : 7813894144 (7.28 TiB 8.00 TB) # 每颗磁盘的容量 Raid Devices : 3 # 组成RAID的磁盘数量 Total Devices : 4 # 包括spare的总磁盘数 Persistence : Superblock is persistent Intent Bitmap : Internal Update Time : Wed Nov 23 14:55:54 2022 State : clean, degraded, recovering # 目前这个磁盘阵列的使用状态 Active Devices : 2 # 启动的设备数量 Working Devices : 4 Failed Devices : 0 # 损坏的设备数 Spare Devices : 2 # 预留磁盘的数量 Layout : left-symmetric Chunk Size : 512K # 这就是chunk的小区块容量 Consistency Policy : bitmap Rebuild Status : 0% complete Name : bkserver:0 (local to host bkserver) UUID : e9a40409:72b50aec:16107bf9:524153e4 Events : 37 Number Major Minor RaidDevice State 0 8 0 0 active sync /dev/sda 1 8 16 1 active sync /dev/sdb 4 8 32 2 spare rebuilding /dev/sdc 3 8 48 - spare /dev/sdd [root@bkserver ~]# > 1、最后4行就是这4个设备目前的状况,RaidDevice指的是此Raid内的磁盘顺序; > 2、**sdc:** spare rebuilding热备重建中,也就是sda、sdb会把自己的数据同步到sdc; > 3、**sdd:** 作为备用设备在候场区; *查看RAID5信息* [root@bkserver ~]# cat /proc/mdstat Personalities : [raid6] [raid5] [raid4] md0 : active raid5 sdc[4] sdd[3](S) sdb[1] sda[0] # 第一行 15627788288 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [UU_] # 第二行 [>....................] recovery = 2.5% (199782400/7813894144) finish=716.4min speed=177127K/sec # 第三行 bitmap: 0/59 pages [0KB], 65536KB chunk unused devices: <none> > **第一行部分:**指出 md0 为 raid5 ,且使用了 sdb1,sdb2,sdb3,sdb4,等四颗磁盘设备。每个设备后面的中括号 [] > 内的数字为此磁盘在 RAID 中的顺序(RaidDevice);至于 sdb5 后面的 [S] 则代表 sdb5 为 spare 之意。 > **第二行部分:**此磁盘阵列拥有 3142656 个block(每个 block 单位为 1K),所以总容量约为 3GB,使用 RAID 5 > 等级,写入磁盘的小区块(chunk)大小为 256K,使用 algorithm 2 磁盘阵列演算法。 [m/n] 代表此阵列需要 m > 个设备,且 n 个设备正常运行。因此本 md0 需要 4 个设备且这 4 个设备均正常运行。后面的 [UUUU] > 代表的是四个所需的设备(就是 [m/n] 里面的 m)的启动情况,U 代表正常运行,若为 _ 则代表不正常。 > **第三行部分:**3个8T的硬盘,重建检校大概需要12小时。 ### **3、格式化并挂载使用** [root@raid5 /]# mkfs.xfs -f -d su=512k,sw=3 -r extsize=768k /dev/md0 # 要注意,这块格式化的是 md0 meta-data=/dev/md0 isize=512 agcount=8, agsize=98176 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0, sparse=0 data = bsize=4096 blocks=785408, imaxpct=25 = sunit=128 swidth=384 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal log bsize=4096 blocks=2560, version=2 = sectsz=512 sunit=8 blks, lazy-count=1 realtime =none extsz=1572864 blocks=0, rtextents=0 [root@raid5 /]# mkdir /srv/raid [root@raid5 /]# mount /dev/md0 /srv/raid/ [root@raid5 /]# df -TH /srv/raid/ # 看到我们已经挂载成功了 Filesystem Type Size Used Avail Use% Mounted on /dev/md0 xfs 3.3G 34M 3.2G 2% /srv/raid ### **4、仿真RAID错误的救援** 俗话说“天有不测风云,人有旦夕祸福”,谁也不知道你的磁盘阵列内的设备啥时候会出错,因此了解一下软件磁盘阵列的救援是必须的!下面我们就来模仿一下RAID错误并救援。 [root@raid5 /]# cp -a /var/log/ /srv/raid/ # 先复制一些数据到挂载点 [root@raid5 /]# df -TH /srv/raid/ ; du -sm /srv/raid/* # 看到里面已经有了数据 Filesystem Type Size Used Avail Use% Mounted on /dev/md0 xfs 17T 97M 17T 1% /srv/raid 58 /srv/raid/log [root@raid5 /]# mdadm --manage /dev/md0 --fail /dev/sdb3 mdadm: set /dev/sdb3 faulty in /dev/md0 # 显示已经成为了错误的设备 .............................. // 省略部分内容 Update Time : Thu Nov 7 20:55:31 2019 State : clean Active Devices : 4 Working Devices : 4 Failed Devices : 1 # 出错一个磁盘 Spare Devices : 0 # 这里预备已经变为0,说明已经顶替工作了,这里截得有点慢了,不然还是1 ............................ // 省略部分内容 Number Major Minor RaidDevice State 0 8 17 0 active sync /dev/sdb1 1 8 18 1 active sync /dev/sdb2 4 8 21 2 active sync /dev/sdb5 # 这里可以看到sdb5 已经顶替工作了 5 8 20 3 active sync /dev/sdb4 2 8 19 - faulty /dev/sdb3 # sdb3 死掉了 ### **5、设置开机自启动RAID并自动挂载** [root@bkserver /]# mdadm --detail /dev/md0 | grep -i uuid UUID : e9a40409:72b50aec:16107bf9:524153e4 [root@bkserver /]# nano /etc/mdadm.conf ARRAY /dev/md0 UUID=e9a40409:72b50aec:16107bf9:524153e4 # RAID设备 识别码内容 [root@bkserver /]# blkid /dev/md0 /dev/md0: UUID="df15c701-6c6b-4ab2-bda5-48301791a102" TYPE="xfs" [root@bkserver /]# nano /etc/fstab # 设置开机自动挂载 ............................ // 省略部分内容 /dev/md0 /srv/raid xfs defaults 0 0 #开头也可填写为UUID [root@bkserver /]# df -Th /srv/raid/ # 可以进行重启测试 Filesystem Type Size Used Avail Use% Mounted on /dev/md0 xfs 3.0G 37M 3.0G 2% /srv/raid ## **四、模拟故障并修复操作** mdadm --manage /dev/md9 --fail /dev/sdb 模拟损坏sdb盘 mdadm /dev/md0 -f /dev/sdc 模拟损坏sdc盘 mdadm /dev/md5 -a /dev/sdd 加入一块修复盘 mdadm /dev/md0 -r /dev/sdc 移除故障盘 ## **五、扩容阵列** 1、将这两块磁盘直接加入到raid阵列 mdadm /dev/md0 -add /dev/sdc1 先添加两个设备到阵列中 2、扩容 mdadm --grow /dev/md1 --raid-devices=8扩容阵列设备增加到8个 3、刷新pv 键入pvresize /dev/md1命令将剩余的空间全部可加参数指定再分配的空间大小分配给物理卷 4、刷新lv lvresize –l +2G /dev/raid5vg/raid5lv 5、调整文件系统的大小 使用resize2fs /dev/raid5vg/raid5lv命令(可能提示你先运行e2fsck先进行检测),调整逻辑卷上文件系统大小; ## **五、其他阵列操作**  mdadm -D --scan>/etc/mdadm.conf 进行配置更新 mdadm -Q /dev/md5 简单查看/dev/md5磁盘阵列的详细信息 mdadm -D /dev/md5 查看/dev/md5磁盘阵列的详细信息 mdadm –stop /dev/md0 停止阵列 cat /proc/mdstat : 当前md(软RAID)的状态信息 /etc/mdadm.conf 配置文件 ## **六、常见问题** 如果挂载磁盘阵列,如md5时,提示mount: /dev/md5:不能读超级块。 则需要重新装载磁盘阵列(可能是由于新加了硬盘导致原来的盘符变动,我是这个原因) 1、先停掉原阵列: mdadm -S /dev/md5 2、重新装载阵列: mdadm --assemble /dev/md5 /dev/sdb /dev/sdc /dev/sdd /dev/sde --force (会自动识别到原来的主盘和热备盘) 3、检查阵列详情 :cat /proc/mdstat 4、重新挂载:mount /dev/md5 /mnt mdadm -D --scan>/etc/mdadm.conf 进行配置更新 mdadm -Q /dev/md5 简单查看/dev/md5磁盘阵列的详细信息 mdadm -D /dev/md5 查看/dev/md5磁盘阵列的详细信息 mdadm –stop /dev/md0 停止阵列 cat /proc/mdstat : 当前md(软RAID)的状态信息 /etc/mdadm.conf 配置文件 ## **六、常见问题** 如果挂载磁盘阵列,如md5时,提示mount: /dev/md5:不能读超级块。 则需要重新装载磁盘阵列(可能是由于新加了硬盘导致原来的盘符变动,我是这个原因) 1、先停掉原阵列: mdadm -S /dev/md5 2、重新装载阵列: mdadm --assemble /dev/md5 /dev/sdb /dev/sdc /dev/sdd /dev/sde --force (会自动识别到原来的主盘和热备盘) 3、检查阵列详情 :cat /proc/mdstat 4、重新挂载:mount /dev/md5 /mnt mdadm -D --scan>/etc/mdadm.conf 进行配置更新 mdadm -Q /dev/md5 简单查看/dev/md5磁盘阵列的详细信息 mdadm -D /dev/md5 查看/dev/md5磁盘阵列的详细信息 mdadm –stop /dev/md0 停止阵列 cat /proc/mdstat : 当前md(软RAID)的状态信息 /etc/mdadm.conf 配置文件 ## **六、常见问题** 如果挂载磁盘阵列,如md5时,提示mount: /dev/md5:不能读超级块。 则需要重新装载磁盘阵列(可能是由于新加了硬盘导致原来的盘符变动,我是这个原因) 1、先停掉原阵列: mdadm -S /dev/md5 2、重新装载阵列: mdadm --assemble /dev/md5 /dev/sdb /dev/sdc /dev/sdd /dev/sde --force (会自动识别到原来的主盘和热备盘) 3、检查阵列详情 :cat /proc/mdstat 4、重新挂载:mount /dev/md5 /mnt
Pre:
CentOS7中安装Samba服务器
Next:
Debian 9常用软件安装与配置
0
likes
4
Weibo
Wechat
Tencent Weibo
QQ Zone
RenRen
Table of content