我调整了由两个磁盘 sda3 和 sdb3 组成的 ext4 软件 RAID1 的大小(在救援模式下,即未安装磁盘):
e2fsck -f /dev/md126
resize2fs /dev/md126 39G
mdadm --grow /dev/md126 --size 40G
mdadm /dev/md126 --fail /dev/sda3
mdadm /dev/md126 --remove /dev/sda3
parted /dev/sda
(parted) print
Number Start End Size Type File system Flags
1 1049kB 537MB 536MB primary linux-swap(v1)
2 537MB 1166MB 629MB primary boot, raid
3 1166MB 1024GB 1023GB primary raid
(parted) resizepart
Partition number? 3
End? 48GB
mdadm /dev/md126 --add /dev/sda3
然后对 sdb3 进行相同的过程。
RAID 成功重建,我能够以正常模式启动。
但是,现在我得到了负的已用空间:
root@server:~# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/md126 23G -13G 34G - /mnt/md126
深层发掘:
root@server:~# tune2fs -l /dev/md126
Filesystem state: clean
Filesystem OS type: Linux
Block count: 10223616
Reserved block count: 511180
Overhead blocks: 4201607
Free blocks: 9411982
First block: 0
Block size: 4096
Reserved GDT blocks: 1024
Blocks per group: 32768
看起来罪魁祸首是“开销块”,它在调整 RAID 大小后没有改变(它仍然是相同的数字)。原来sda3和sdb3分区大小为952.8G
我是否正确地认为“负”磁盘使用率是由“开销块”引起的?其次,有什么方法可以减少这些块,从而消除负的“已用”磁盘空间?
答案1
在卸载文件系统的情况下运行以下命令:
debugfs -w -R "set_super_value overhead_blocks 0" /dev/sdXX
然后,下次挂载文件系统时,将重新计算并填写“开销块”的正确值。
之后,正确数量的磁盘空间将再次可用。