一周以来,我一直在尝试调整(--扩大)这个 RAID 阵列的大小,我知道答案很简单,可能就在我眼前,但我并没有睡眠不足和迷茫。
该阵列是 RAID1,以前由两个 2TB 硬盘组成,不是我配置的。客户端空间不足,我用两个 4TB 硬盘替换了这些硬盘。我使用 sgdisk 或类似程序复制了分区表,但后来删除了一些分区,并扩大了有问题的分区。
我故意移除了其中一个驱动器,这样就不会弄乱它们。您可能会在这里和那里看到对它的引用,这是意料之中的
TL;DR
--grow --size=max doesn't work, gives unchanged at 3896741888K
--update=devicesize shows larger size, but --grow still doesn't work
sda 和 sdb 相同,看起来像这样 sd{a,b}3 就是有问题的分区
Disk /dev/sda: 3.7 TiB, 4000787030016 bytes, 7814037168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: 4230A82E-F626-4A32-B4FD-F0A91A30F64C
Device Start End Sectors Size Type
/dev/sda1 2048 3905535 3903488 1.9G Linux RAID
/dev/sda2 3905536 3907583 2048 1M BIOS boot
/dev/sda3 3907584 7797653503 7793745920 3.6T Linux RAID
/dev/sda7 7797653504 7814037134 16383631 7.8G Linux RAID
如您所见,大约 3.6TB。目前看起来不错。让我们看看分区本身,两个驱动器再次看起来相同 mdadm --examine /dev/sda3
/dev/sda3:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x0
Array UUID : 49d82293:715e6baf:3f0a3f79:b2089367
Name : c4root:1
Creation Time : Wed Apr 2 20:56:22 2014
Raid Level : raid1
Raid Devices : 2
Avail Dev Size : 7793483776 (3716.22 GiB 3990.26 GB) #yay (hopes going up)
Array Size : 3896741888 (3716.22 GiB 3990.26 GB) #oldsize (as expected)
Data Offset : 262144 sectors
Super Offset : 8 sectors
Unused Space : before=262056 sectors, after=0 sectors
State : clean
Device UUID : 3aa675c5:761465e5:886a395d:95eac69d
Update Time : Mon Oct 25 04:35:56 2021
Bad Block Log : 512 entries available at offset 72 sectors
Checksum : 68eed7f7 - correct
Events : 1021990
Device Role : Active device 0
Array State : A. ('A' == active, '.' == missing, 'R' == replacing)
看起来又好了。我们的 Avail Dev Size 看起来不错,Array 大小与当前大小相同。让我们继续查看阵列信息 mdadm --details /dev/md1
/dev/md1:
Version : 1.2
Creation Time : Wed Apr 2 20:56:22 2014
Raid Level : raid1
Array Size : 3896741888 (3716.22 GiB 3990.26 GB)
Used Dev Size : 3896741888 (3716.22 GiB 3990.26 GB)
Raid Devices : 2
Total Devices : 1
Persistence : Superblock is persistent
Update Time : Mon Oct 25 04:35:56 2021
State : clean, degraded
Active Devices : 1
Working Devices : 1
Failed Devices : 0
Spare Devices : 0
Name : c4root:1
UUID : 49d82293:715e6baf:3f0a3f79:b2089367
Events : 1021990
Number Major Minor RaidDevice State
2 8 3 0 active sync /dev/sda3
2 0 0 2 removed
该数组大小仍显示旧大小。我在网上看到,在组装设备时可能需要更新设备大小。让我们这样做。
# mdadm -S /dev/md1
mdadm: stopped /dev/md1
# mdadm --assemble --update=devicesize /dev/md1
Size was 7793483776
Size is 7793483776
mdadm: /dev/md1 has been started with 1 drive (out of 2).
好的,看起来它知道还有生长空间。让我们试着让它生长吧!
# mdadm --grow --size=max /dev/md1
mdadm: component size of /dev/md1 unchanged at 3896741888K
并且 -D 详细信息仍然显示旧尺寸......
/dev/md1:
Version : 1.2
Creation Time : Wed Apr 2 20:56:22 2014
Raid Level : raid1
Array Size : 3896741888 (3716.22 GiB 3990.26 GB)
Used Dev Size : 3896741888 (3716.22 GiB 3990.26 GB)
Raid Devices : 2
Total Devices : 1
我到底错过了什么?
答案1
尝试使用:
sudo resize2fs /dev/md1 3700G
或者:
mdadm --grow /dev/md1 -z 3896741888