Вопрос или проблема
У меня возникла проблема с моим NAS-диском, который сообщает, что на устройстве нет свободного места.
После проверки я обнаружил, что mdadm
сообщил, что файл система была ухудшена из-за того, что один из двух дисков вышел из строя. Я заменил диск, и массив был восстановлен, завершив это через 24 часа.
Все выводы из df
, mdadm
и т.д. указывают, что файловая система здорова и должно быть 1,6 ТБ свободного места.
Но попытка сохранить файл, даже совсем маленький, приводит к сообщению о том, что на устройстве нет свободного места.
Диагностические выводы следующие. Файловая система RAID1 смонтирована на /mnt/pools/A/A0
.
Проверка пространства:
df -h
Filesystem Size Used Avail Use% Mounted on
rootfs 50M 3.0M 48M 6% /
/dev/root.old 6.5M 2.1M 4.4M 33% /initrd
none 50M 3.0M 48M 6% /
/dev/md0_vg/BFDlv 4.0G 624M 3.2G 17% /boot
/dev/loop0 592M 538M 54M 91% /mnt/apps
/dev/loop1 4.9M 2.2M 2.5M 47% /etc
/dev/loop2 260K 260K 0 100% /oem
tmpfs 122M 0 122M 0% /mnt/apps/lib/init/rw
tmpfs 122M 0 122M 0% /dev/shm
/dev/mapper/md0_vg-vol1
16G 1.5G 15G 10% /mnt/system
/dev/mapper/5244dd0f_vg-lv58141b0d
3.7T 2.0T 1.7T 55% /mnt/pools/A/A0
Проверка i-node:
df -ih
Filesystem Inodes IUsed IFree IUse% Mounted on
rootfs 31K 565 30K 2% /
/dev/root.old 1.7K 130 1.6K 8% /initrd
none 31K 565 30K 2% /
/dev/md0_vg/BFDlv 256K 20 256K 1% /boot
/dev/loop0 25K 25K 11 100% /mnt/apps
/dev/loop1 1.3K 1.1K 152 88% /etc
/dev/loop2 21 21 0 100% /oem
tmpfs 31K 4 31K 1% /mnt/apps/lib/init/rw
tmpfs 31K 1 31K 1% /dev/shm
/dev/mapper/md0_vg-vol1
17M 9.7K 16M 1% /mnt/system
/dev/mapper/5244dd0f_vg-lv58141b0d
742M 2.6M 739M 1% /mnt/pools/A/A0
Статус RAID:
mdadm --detail /dev/md1
/dev/md1:
Version : 01.00
Creation Time : Mon Mar 7 08:45:49 2011
Raid Level : raid1
Array Size : 3886037488 (3706.01 GiB 3979.30 GB)
Used Dev Size : 7772074976 (7412.03 GiB 7958.60 GB)
Raid Devices : 2
Total Devices : 2
Preferred Minor : 1
Persistence : Superblock is persistent
Update Time : Thu Jan 30 03:16:36 2025
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Name : ix2-200-DC386F:1
UUID : 8a192f2c:9829df88:a6961d81:20478f62
Events : 365739
Number Major Minor RaidDevice State
3 8 18 0 active sync /dev/sdb2
2 8 2 1 active sync /dev/sda2
Разделы:
sfdisk -l /dev/sda
WARNING: GPT (GUID Partition Table) detected on '/dev/sda'! The util sfdisk doesn't support GPT. Use GNU Parted.
Disk /dev/sda: 486401 cylinders, 255 heads, 63 sectors/track
Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0
Device Boot Start End #cyls #blocks Id System
/dev/sda1 0+ - 0- 2147483647+ ee EFI GPT
start: (c,h,s) expected (0,0,2) found (0,0,1)
/dev/sda2 0 - 0 0 0 Empty
/dev/sda3 0 - 0 0 0 Empty
/dev/sda4 0 - 0 0 0 Empty
sfdisk -l /dev/sdb
WARNING: GPT (GUID Partition Table) detected on '/dev/sdb'! The util sfdisk doesn't support GPT. Use GNU Parted.
Disk /dev/sdb: 486401 cylinders, 255 heads, 63 sectors/track
Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0
Device Boot Start End #cyls #blocks Id System
/dev/sdb1 0+ - 0- 2147483647+ ee EFI GPT
start: (c,h,s) expected (0,0,2) found (0,0,1)
/dev/sdb2 0 - 0 0 0 Empty
/dev/sdb3 0 - 0 0 0 Empty
/dev/sdb4 0 - 0 0 0 Empty
выводы pvs, lvs, vgs:
pvs
PV VG Fmt Attr PSize PFree
/dev/md0 md0_vg lvm2 a- 20.01G 0
/dev/md1 5244dd0f_vg lvm2 a- 3.62T 0
lvs
LV VG Attr LSize Origin Snap% Move Log Copy% Convert
lv58141b0d 5244dd0f_vg -wi-ao 3.62T
BFDlv md0_vg -wi-ao 4.00G
vol1 md0_vg -wi-ao 16.01G
vgs
VG #PV #LV #SN Attr VSize VFree
5244dd0f_vg 1 1 0 wz--n- 3.62T 0
md0_vg 1 2 0 wz--n- 20.01G 0
выводы lvdisplay, pvdisplay и vgdispaly:
lvdisplay
--- Logical volume ---
LV Name /dev/5244dd0f_vg/lv58141b0d
VG Name 5244dd0f_vg
LV UUID hLUJyo-C8ge-1SRc-gvdg-dlLn-5A7e-D55XeO
LV Write Access read/write
LV Status available
# open 1
LV Size 3.62 TB
Current LE 948739
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:2
--- Logical volume ---
LV Name /dev/md0_vg/BFDlv
VG Name md0_vg
LV UUID N48AUD-nucp-gP18-wmQi-Ym12-3G1L-7wE1jd
LV Write Access read/write
LV Status available
# open 1
LV Size 4.00 GB
Current LE 1024
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
--- Logical volume ---
LV Name /dev/md0_vg/vol1
VG Name md0_vg
LV UUID 73CtS1-b4KB-cLrG-hgUz-Qsli-Mlte-QhaUzy
LV Write Access read/write
LV Status available
# open 1
LV Size 16.01 GB
Current LE 4098
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:1
pvdisplay
--- Physical volume ---
PV Name /dev/md1
VG Name 5244dd0f_vg
PV Size 3.62 TB / not usable 2.30 MB
Allocatable yes (but full)
PE Size (KByte) 4096
Total PE 948739
Free PE 0
Allocated PE 948739
PV UUID mdm9UZ-dhcm-T26Z-LRAB-Pevo-4y7t-OHRDRr
--- Physical volume ---
PV Name /dev/md0
VG Name md0_vg
PV Size 20.01 GB / not usable 1.06 MB
Allocatable yes (but full)
PE Size (KByte) 4096
Total PE 5122
Free PE 0
Allocated PE 5122
PV UUID AGH7Ci-jGbF-bLsB-pMKr-IttE-7GtR-e5Rf9k
vgdisplay
--- Volume group ---
VG Name 5244dd0f_vg
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 8
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 1
Max PV 0
Cur PV 1
Act PV 1
VG Size 3.62 TB
PE Size 4.00 MB
Total PE 948739
Alloc PE / Size 948739 / 3.62 TB
Free PE / Size 0 / 0
VG UUID FB2tzp-8Gr2-6Dlj-9Dck-Tyc4-Gxx5-HHIsBD
--- Volume group ---
VG Name md0_vg
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 3
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 1
Act PV 1
VG Size 20.01 GB
PE Size 4.00 MB
Total PE 5122
Alloc PE / Size 5122 / 20.01 GB
Free PE / Size 0 / 0
VG UUID EA3tJR-nVdm-0Dcf-YtBE-t1Qj-peHc-Sh0zXe
Я в растерянности, что делать дальше.
Обновление:
Количество каталогов в этой файловой системе составляет 280,286.
$ cd /mnt/pools/A/A0/
$ ls
Backups Documents Movies Music Pictures QuikTransfer stls_userdata TimeMachine
$ find . -type d | wc -l
280286
Ответ или решение
Очевидно, что ваша проблема связана с операцией RAID1 на NAS (сетевом хранилище). Ситуация, когда устройство отображает "Нет свободного места на устройстве", даже после замены диска и успешного восстановления массива, может быть обусловлена несколькими потенциальными причинами. Ниже я представлю теоретическую базу, подкреплю примерами и предложу практические шаги для решения проблемы.
Теория: Потенциальные причины проблемы
-
Проблемы с количеством i-node: Как следует из вывода команды
df -ih
, файловая система может испытывать нехватку i-node, что зачастую ограничивает возможность хранения новых файлов, несмотря на доступное пространство. -
Некорректное обновление метаданных файловой системы: Возможно, что после восстановления RAID массив не были правильно обновлены или синхронизированы метаданные файловой системы, что могло привести к отображению неверного статуса доступного пространства.
-
Проблемы на уровне объемов логического тома: На основе предоставленных выходных данных команд
pvs
,lvs
иvgs
, ваши логические тома корректно отображают доступное пространство, однако физически оно может быть заблокировано. -
Проблемы с доступом или разрешениями: Бывает, что при некорректной настройке доступов или разрешений пользователи могут испытывать проблемы с записью данных на диск.
Пример: Реальные кейсы
-
Недостаток i-node: Даже в условиях имеющегося пространства, предел может быть достигнут за счет многочисленных маленьких файлов. Так, на корпоративных серверах подобные случаи часто встречаются в разделах с большим количеством мелких файлов, таких как логи или временные файлы программного обеспечения.
-
Проблемы с синхронизацией данных: После перестройки RAID-массива, некоторые администраторы замечали, что файловая система не отображает изменения в пространстве из-за несоответствия в метаданных.
-
Проблемы с LVM: Были случаи, когда после восстановления массива RAID в результате сбоя оборудования, администраторы забывали обновить метаданные логических томов, что приводило к отображению неверного статуса доступного пространства.
Применение: Шаги для решения
-
Проверка i-node: Запустите
df -i
и получите полный список устройств, где есть проблемы с i-node. Если i-node закончились, вам необходимо оптимизировать количество хранимых файлов, например, путем их объединения. -
Проверка и обновление файловой системы: Используйте
fsck
на не примонтированном разделе, чтобы проверить целостность файловой системы и внести, если потребуется, автоисправления. -
Пересборка метаданных LVM:
- Убедитесь, что все физические тома добавлены и синхронизированы корректно.
- Используйте
vgdisplay
иlvdisplay
для верификации состояния логических томов, их отображаемой емкости и состояния. - При необходимости используйте
lvextend
для перераспределения пространства (в случае добавления новых физических дисков).
-
Проверка и обновление прав доступа:
- Убедитесь, что у пользователя или процесса, который пытается записать данные, есть соответствующие права на файловую систему. Проверьте и обновите разрешения командой
chmod
илиchown
.
- Убедитесь, что у пользователя или процесса, который пытается записать данные, есть соответствующие права на файловую систему. Проверьте и обновите разрешения командой
-
Мониторинг состояния RAID:
- Регулярно проверяйте статус RAID команды
mdadm --detail
, особенно после крупных изменений, таких как замена диска или восстановление массива.
- Регулярно проверяйте статус RAID команды
Обратите внимание, что в зависимости от специфики вашего оборудования и конфигурации, не все шаги могут быть применимы. Однако, применяя предложенные шаги, вы сможете, с большой вероятностью, выявить и устранить корень проблемы.