XFS Неверное утверждение «Нет места на устройстве»

3474
Purf

У меня есть настройка сервера раздела XFS на LVM на Ubuntu 14.04.1 LTS . При копировании файлов в домашний раздел отображается « Нет свободного места на устройстве ».

df -h отображает достаточно места:

/dev/mapper/prod--vg-home 35G 21G 15G 60% /home 

Я также использовал fallocate для почти полного заполнения диска в той же домашней учетной записи, чтобы гарантировать, что ни квота, ни другие проблемы с дисковым пространством не связаны:

/dev/mapper/prod--vg-home 35G 34G 1.5G 96% /home 

df -i также отображает достаточное количество инодов:

/dev/mapper/prod--vg-home 36700160 379390 36320770 2% /home 

Я также использовал большое количество маленьких случайных файлов в той же домашней учетной записи, что повторяло проблему :

mkdir 1 cd 1 dd if=/dev/zero of=masterfile bs=10000000 count=1 split -b 10 -a 10 masterfile cd .. cp -R 1 2 

Это привело к тому, что на устройстве снова не осталось места, почти не требуется дополнительного места (около 30 МБ), и df -i упоминает:

/dev/mapper/prod--vg-home 36700160 1310464 35389696 4% /home 

Я выполнил второй тест на той же машине (Ubuntu 14.04.1 LTS).

Я создал новый логический том объемом 5 ГБ и заполнил его небольшими файлами, используя процедуру dd и разделенную выше.

Я получил «Нет свободного места на устройстве» со следующим доступным дисковым пространством и inode:

/dev/mapper/prod--vg-test 5.0G 4.2G 811M 85% /mnt/test /dev/mapper/prod--vg-test 4257712 937920 3319792 23% /mnt/test 

Я провел этот тест с использованием привилегий root, чтобы убедиться, что зарезервированное пространство по-прежнему неактуально.

Я выполнил третий тест на другой машине (Debian 2.6.32-5).

Я создал новый логический том объемом 5 ГБ и заполнил его небольшими файлами, используя процедуру dd и разделенную выше.

Процедура удалась с помощью следующего дискового пространства и дескрипторов доступных:

/dev/mapper/data-test 5.0G 4.2G 909M 83% /mnt/test /dev/mapper/data-test 4721904 1000005 3721899 22% /mnt/test 

Я также выполнил этот тест с использованием привилегий root, чтобы зарезервировать место здесь по-прежнему неактуально.

Указывает ли это на ошибку в Ubuntu 14.04.1 LTS ?

Я проверил влияние изменения максимального процентного значения индексов на Ubuntu 14.04.1 LTS:

xfs_growfs -m 25 /dev/mapper/prod--vg-home 

Эта сумма может быть легко уменьшена и увеличена.

Экспериментируя с этим параметром, я заметил, что уменьшение его до 3% и его повторное увеличение до 25%, а также удаление некоторых файлов позволяет мне снова добавлять гораздо больше файлов, но все равно вызывает ошибку до заполнения хранилища или инодов. ,

xfs_info отображает:

meta-data=/dev/mapper/prod--vg-home isize=256 agcount=14, agsize=655360 blks = sectsz=512 attr=2 data = bsize=4096 blocks=9175040, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 log =internal bsize=4096 blocks=2560, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 

Существуют ли другие настройки, которые могут вызвать сообщение «Нет свободного места на устройстве»? Или я должен сделать вывод, что это ошибка?

Спасибо

5

2 ответа на вопрос

6
Daniel Stewart

There is a bug with xfs_growfs which causes inodes to not be properly distributed across a partition. The solution is to simply remount with the inode64 option. For example, if this was the /dev/vda1, you would do the following:

mount -o remount,inode64 /dev/vda1 

You can find more information about the bug here.

Спасибо, Даниэль, я выполнил перемонтирование и смог хранить небольшие файлы, пока диск не был заполнен. После xfs_growfs мне пришлось снова выполнить перемонтирование. Но после повторного выполнения вышеуказанной команды remount я снова смог заполнить диск. Purf 10 лет назад 0
0
Isaac

There is a situation where a directory (specially /home) might say the disk is full when it isn't, and that situation implies user's quotas. There might be some limitation on user's available space, check if that is the issue.

Привет Исаак, спасибо за предложение, но никакие квоты не установлены (поэтому также не настроены) на сервере. Purf 10 лет назад 0

Похожие вопросы