Mat*_*hew 6 disk raid mdadm disk-management
我有一个三磁盘 RAID 0 阵列并运行以下命令添加第四个磁盘:
mdadm --manage /dev/md127 --add /dev/xvdi
Run Code Online (Sandbox Code Playgroud)
每个磁盘是一个 1TB EC2 卷。阵列花了大约 40 个小时来重塑。大约 1 小时后,重塑停止并且体积变得无法访问。我重新启动机器并继续重塑,然后看似成功完成,但阵列级别现在报告为 RAID 4,可用容量没有改变。
mdadm --detail /dev/md127
现在报告以下内容:
/dev/md127:
Version : 1.2
Creation Time : Wed Jul 1 22:26:36 2015
Raid Level : raid4
Array Size : 4294965248 (4096.00 GiB 4398.04 GB)
Used Dev Size : 1073741312 (1024.00 GiB 1099.51 GB)
Raid Devices : 5
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Sun Oct 11 07:40:48 2015
State : clean, degraded
Active Devices : 4
Working Devices : 4
Failed Devices : 0
Spare Devices : 0
Chunk Size : 512K
Name : [removed]
UUID : [removed]
Events : 63530
Number Major Minor RaidDevice State
0 202 160 0 active sync /dev/xvdk
1 202 144 1 active sync /dev/xvdj
2 202 80 2 active sync /dev/xvdf
4 202 128 3 active sync /dev/xvdi
4 0 0 4 removed
Run Code Online (Sandbox Code Playgroud)
我的目标是拥有一个 4TB RAID 0 阵列。我不需要冗余,因为我是通过在 AWS 中拍摄卷快照来备份的。我正在运行 Ubuntu Server 14.04.3。
考虑到状态是 ,我如何切换到 RAID 0,而不会丢失任何数据clean, degraded
?
我知道这很旧,但这些步骤可能对人们有所帮助。
如何将磁盘添加到 RAID-0?
环境:
最初设定:
$ sudo mdadm --create --verbose /dev/md0 --level=0 --name=DB_RAID2 --raid-devices=3 /dev/xvdh /dev/xvdi /dev/xvdj
$ sudo mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Tue Sep 5 14:25:10 2017
Raid Level : raid0
Array Size : 31432704 (29.98 GiB 32.19 GB)
Raid Devices : 3
Total Devices : 3
Persistence : Superblock is persistent
Update Time : Tue Sep 5 14:25:10 2017
State : clean
Active Devices : 3
Working Devices : 3
Failed Devices : 0
Spare Devices : 0
Chunk Size : 512K
Name : temp:DB_RAID2 (local to host temp)
UUID : e8780813:5adbe875:ffb0ab8a:05f1352d
Events : 0
Number Major Minor RaidDevice State
0 202 112 0 active sync /dev/xvdh
1 202 128 1 active sync /dev/xvdi
2 202 144 2 active sync /dev/xvdj
$ sudo mkfs -t ext4 /dev/md0
$ sudo mount /dev/md0 /mnt/test
Run Code Online (Sandbox Code Playgroud)
一步将磁盘添加到 RAID-0(不起作用):
$ sudo mdadm --grow /dev/md0 --raid-devices=4 --add /dev/xvdk
mdadm: level of /dev/md0 changed to raid4
mdadm: added /dev/xvdk
mdadm: Failed to initiate reshape!
Run Code Online (Sandbox Code Playgroud)
可能,由于这个错误,这失败了。
步骤 1:转换为 RAID-4:
$ sudo mdadm --grow --level 4 /dev/md0
mdadm: level of /dev/md0 changed to raid4
$ cat /proc/mdstat
Personalities : [raid0] [raid6] [raid5] [raid4]
md0 : active raid4 xvdj[2] xvdi[1] xvdh[0]
31432704 blocks super 1.2 level 4, 512k chunk, algorithm 5 [4/3] [UUU_]
unused devices: <none>
Run Code Online (Sandbox Code Playgroud)
步骤 2:添加磁盘:
$ sudo mdadm --manage /dev/md0 --add /dev/xvdk
mdadm: added /dev/xvdk
Run Code Online (Sandbox Code Playgroud)
等到恢复:
$ cat /proc/mdstat
Personalities : [raid0] [raid6] [raid5] [raid4]
md0 : active raid4 xvdk[4] xvdj[2] xvdi[1] xvdh[0]
31432704 blocks super 1.2 level 4, 512k chunk, algorithm 5 [4/3] [UUU_]
[=>...................] recovery = 8.5% (893572/10477568) finish=3.5min speed=44678K/sec
$ cat /proc/mdstat
Personalities : [raid0] [raid6] [raid5] [raid4]
md0 : active raid4 xvdk[4] xvdj[2] xvdi[1] xvdh[0]
31432704 blocks super 1.2 level 4, 512k chunk, algorithm 5 [4/4] [UUUU]
unused devices: <none>
Run Code Online (Sandbox Code Playgroud)
步骤 3:转换回 RAID-0:
$ sudo mdadm --grow --level 0 --raid-devices=4 /dev/md0
$
Run Code Online (Sandbox Code Playgroud)
等到它重塑:
$ cat /proc/mdstat
Personalities : [raid0] [raid6] [raid5] [raid4]
md0 : active raid4 xvdk[4] xvdj[2] xvdi[1] xvdh[0]
31432704 blocks super 1.2 level 4, 512k chunk, algorithm 5 [5/4] [UUUU_]
[===>.................] reshape = 16.2% (1702156/10477568) finish=6.1min speed=23912K/sec
$ cat /proc/mdstat
Personalities : [raid0] [raid6] [raid5] [raid4]
md0 : active raid0 xvdk[4] xvdj[2] xvdi[1] xvdh[0]
41910272 blocks super 1.2 512k chunks
Run Code Online (Sandbox Code Playgroud)
第 4 步:调整文件系统的大小:
$ sudo mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Tue Sep 5 14:25:10 2017
Raid Level : raid0
Array Size : 41910272 (39.97 GiB 42.92 GB)
Raid Devices : 4
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Tue Sep 5 14:55:46 2017
State : clean
Active Devices : 4
Working Devices : 4
Failed Devices : 0
Spare Devices : 0
Chunk Size : 512K
Name : temp:DB_RAID2 (local to host temp)
UUID : e8780813:5adbe875:ffb0ab8a:05f1352d
Events : 107
Number Major Minor RaidDevice State
0 202 112 0 active sync /dev/xvdh
1 202 128 1 active sync /dev/xvdi
2 202 144 2 active sync /dev/xvdj
4 202 160 3 active sync /dev/xvdk
$ df -h
/dev/md0 30G 45M 28G 1% /mnt/test
Run Code Online (Sandbox Code Playgroud)
实际调整大小和调整大小后:
$ sudo resize2fs /dev/md0
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/md0 is mounted on /mnt/test; on-line resizing required
old_desc_blocks = 4, new_desc_blocks = 5
The filesystem on /dev/md0 is now 10477568 blocks long.
$ df -h /dev/md0
Filesystem Size Used Avail Use% Mounted on
/dev/md0 40G 48M 38G 1% /mnt/test
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4354 次 |
最近记录: |