use*_*914 0 linux raid centos raid1
我的服务器设置了 RAID-1,几天前一个驱动器出现故障。我替换了它并将其添加回数组。问题是 3TB 驱动器有 2 个分区:
root@s01 [~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_server01-LogVol01
2.7T 419G 2.2T 17% /
tmpfs 7.8G 0 7.8G 0% /dev/shm
/dev/md0 477M 149M 303M 33% /boot
/dev/md2 32G 6.5G 24G 22% /mysql
/usr/tmpDSK 4.0G 223M 3.6G 6% /tmp
root@s01 [~]#
Run Code Online (Sandbox Code Playgroud)
所以基本上 2.7TB for /
,7.8GB fortmpfs
和 477MB for boot
.
因此,无论md0
并且md1
是相同的驱动器上。然后将故障驱动器重新添加为mdadm --manage /dev/md1 --add /dev/sdc2
正如您所看到的,现在的问题md1
是已同步但md0
被遗漏了:
root@s01 [~]# cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 sdd1[1]
511988 blocks super 1.0 [2/1] [_U]
md2 : active raid1 sda1[0] sdb1[1]
33558657 blocks super 1.2 [2/2] [UU]
md1 : active raid1 sdc1[2] sdd2[1]
2929751932 blocks super 1.1 [2/2] [UU]
bitmap: 6/22 pages [24KB], 65536KB chunk
unused devices: <none>
root@s01 [~]#
Run Code Online (Sandbox Code Playgroud)
有没有办法安全地重新添加md0
而无需重新格式化所有内容?
md0
现在看起来像:
root@s01 [~]# mdadm --detail /dev/md0
/dev/md0:
Version : 1.0
Creation Time : Sat Jul 7 18:23:23 2012
Raid Level : raid1
Array Size : 511988 (499.99 MiB 524.28 MB)
Used Dev Size : 511988 (499.99 MiB 524.28 MB)
Raid Devices : 2
Total Devices : 1
Persistence : Superblock is persistent
Update Time : Thu Jul 7 00:59:54 2016
State : clean, degraded
Active Devices : 1
Working Devices : 1
Failed Devices : 0
Spare Devices : 0
Name : server01.domain.com:0
UUID : 2ca3a4dc:db3ef0ca:b3d37d49:b43e826f
Events : 726
Number Major Minor RaidDevice State
0 0 0 0 removed
1 8 49 1 active sync /dev/sdd1
root@s01 [~]#
Run Code Online (Sandbox Code Playgroud)
和md1
看起来像:
root@s01 [~]# mdadm --detail /dev/md1
/dev/md1:
Version : 1.1
Creation Time : Sat Jul 7 18:23:24 2012
Raid Level : raid1
Array Size : 2929751932 (2794.03 GiB 3000.07 GB)
Used Dev Size : 2929751932 (2794.03 GiB 3000.07 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Intent Bitmap : Internal
Update Time : Thu Jul 7 20:33:31 2016
State : active
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Name : server01.domain.com:1
UUID : 58600fc5:5348d92c:a7d25465:20d42940
Events : 2359606
Number Major Minor RaidDevice State
2 8 33 0 active sync /dev/sdc1
1 8 50 1 active sync /dev/sdd2
root@s01 [~]#
Run Code Online (Sandbox Code Playgroud)
所以 md0 和 md1 都在同一个驱动器上。然后使用 mdadm --manage /dev/md1 --add /dev/sdc2 重新添加故障驱动器
正如您所看到的,现在的问题是 md1 已同步但 md0 被排除在外:
这是因为您只读取了丢失的驱动器/dev/md1
,您需要对/dev/md0
,例如
mdadm --manage /dev/md0 --add /dev/sdcX
sdcX
- 您现在需要使用哪个分区,我们无法知道。
有没有办法安全地重新添加 md0 而无需重新格式化所有内容?
您可以使用parted
, 并找出未使用的分区和分区。Mdadm
对此非常安全,它不允许您添加当前正在使用的设备。
我敢打赌你没有在那个新驱动器上创建第二个分区。Mdadm
允许您读取不同大小的分区(在您的情况下更大)。您应该创建与 on 相同的分区布局/dev/sdd
。Parted 也会帮助你解决这个问题。您可以/dev/sdd
像这样检查布局:parted /dev/sdd unit MiB print
,然后将其与/dev/sdc
.
确保正确对齐分区,parted
这也将帮助您,在新磁盘上创建第一个分区后,您应该注意到它从 2048 扇区,第 1 个 MiB 开始。未对齐通常对磁盘性能不利。
在进行分区之前,您还需要:
mdadm --manage /dev/mdX --fail /dev/sdX
- 将磁盘标记为失败(非破坏性)
mdadm --manage /dev/mdX --remove /dev/sdX
- 从阵列中移除磁盘(非破坏性)
相应地对磁盘进行分区(在某些方面具有破坏性)并再次读取它(非破坏性,当然不是为了添加磁盘/分区到阵列)。
归档时间: |
|
查看次数: |
1052 次 |
最近记录: |