XFS: brak miejsca na urządzeniu, (ale mam 850 GB wolnego miejsca!)

7

Używam kombinacji mdadm, lvm2 i XFS na Amazon EC2.

Do tej pory udało mi się uruchomić wolumin RAID 5 zbudowany z wielu woluminów EBS. Woluminy EBS są dołączone i używane z mdadm do utworzenia RAID 5. Następnie używam LVM, aby przedstawić wynikowy RAID jako pojedynczy wolumin fizyczny i pojedynczy wolumin logiczny.

W przeszłości byłem w stanie rozbudować system plików, dodając nowy wolumin EBS, dołączając go, a następnie uruchamiając następujący proces.


mdadm --add /dev/md0 /dev/xvdi

# grow the raid... (could take a while for a large disk!)
mdadm --grow /dev/md0 --raid-devices=4

# grow the LVM physical volume
pvresize /dev/md0

# grow the LVM logical volume ... fairly certain
# -l100%PVS will make the extents use as much space
# as possible on physical disks (and hopefully won't overwrite anything)
lvresize -l100%PVS /dev/data_vg/data_lv

# resize the file system, too!
xfs_growfs /dev/data_vg/data_lv

# yay!
df -h

Moja ostatnia próba zrobienia tego zadziałała dobrze, pozornie. Uruchomienie df -ih / fh pokazuje, że mam podłączony system plików z dodatkowym terabajtem, zgodnie z oczekiwaniami. Ponadto łączna liczba użytych i-węzłów wynosi TYLKO 1%. Również pvdisplay i lvdisplay pokazują również odpowiednie rozmiary woluminów.

Od czasu jego powiększenia udało mi się nawet dodać trochę danych (około 150 GB). Jednak dzisiaj próbuję utworzyć katalog i uzyskać

mkdir: brak miejsca na urządzeniu

Dlaczego miałbym spotkać się z tym problemem, skoro rzekomo mam dużo dostępnych i-węzłów?

Odmontowałem dysk i uruchomiłem xfs_check, ale to nie zgłasza żadnych problemów.

Dzięki!

Tomek
źródło
jaki jest sens pojedynczej grupy lvm PV z pojedynczą LV? Jeśli to właśnie robisz, dlaczego nie sformatować woluminu md jako xfs i zrezygnować z lvm middleman?
SingleNegationElimination
To dobre pytanie. Zostało to polecone na forum i chociaż przyczyny miały wówczas sens, nie pamiętam ich.
Tom

Odpowiedzi:

7

Byłem w stanie rozwiązać problem w następujący sposób:

umount [the mountpoint]
mount /dev/data_vg/data_lv -o inode64 [the mountpoint]

Najwyraźniej domyślne (32-bitowe i-węzły?) Xfs będą przechowywać wszystkie i-węzły w pierwszej części dysku o pojemności 1 TB. Oznacza to, że jeśli pierwszy 1 TB jest pełny, nie zabraknie Ci miejsca na błędach dysku, nawet jeśli wydaje się, że masz dużo miejsca / i-węzłów. Dodając opcję inode64, węzły mogą być przechowywane w dowolnym miejscu na dysku, jeśli dobrze rozumiem.

Źródło: FAQ XFS.

Tomek
źródło