두 개의 디스크 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
그런 다음 다음에 파일 시스템을 마운트할 때 "오버헤드 블록"에 대한 올바른 값이 다시 계산되어 채워집니다.
그 후에는 올바른 양의 디스크 공간을 다시 사용할 수 있게 됩니다.