Intereting Posts
Терминал открыть (возможно скрытый) файл с помощью TextEdit grub не загружает новое ядро Проверьте, установлены ли все перечисленные пакеты в bash как установить более 3 уровней разрешений доступа для одного файла / папки? Как включить и выключить глобус? Как монтировать / загружать из LiveCD (FreeBSD 11 ZFS) Должен ли я увеличить счетчик inode для объема резервной копии rsync? Как определить, каким образом программное обеспечение установлено на Linux Файл управления Debian «Обеспечивает» не удовлетворяет зависимости Как поместить три тонкие страницы в PDF-страницу формата А4? Установка mysql-сервера в сценарии оболочки брандмауэра (как пропустить настройку?) Как изменить значок приложения на панели KDE? "Предупреждение! Вторичный раздел перекрывает последний раздел x-блоками «в gdisk, безопасно ли здесь использовать gdisk? Какие типы поддержки регулярных выражений поддерживают (например) отрицательный lookbehind? Rsync (Нет необходимости копировать отметку времени)

При удалении файла под OpenSolaris нет места на устройстве

При попытке монтировать общий ресурс NFS (экспортированный с сервера OpenIndiana ) в окне клиента, сервер OI разбился. Я получил черный экран смерти, что было похоже на бревенчатый свалку, затем система пересказала. Он никогда не возвращался, и после завершения загрузки я получаю сообщение об ошибке:

svc.startd[9] Could not log for svc:/network/dns/mulitcast:default: write(30) failed with No space left on device?

У меня нет ничего другого на загрузочном диске, кроме ОС, поэтому … Я не уверен, что может заполнить диск? Может быть, файл журнала какой-то? Кажется, я ничего не могу удалить. Это дает мне ошибку пространства, когда я пытаюсь удалить что-либо:

 $ rm filename cannot remove 'filename' : No space left on device 

Я могу войти в «Режим обслуживания», но не стандартную подсказку пользователя.

Выходной сигнал df :

 rpool/ROOT/openindiana-baseline 4133493 4133493 0 100% / swap 83097900 11028 830386872 1% /etc/svc/volatile /usr/lib/libc/libc_hwcap1.so.1 4133493 4133493 0 100% /lib/libc.so.1 

Выходной сигнал mount :

 / on rpool/ROOT/openindiana-baseline read/write/setuid/devices/dev:2d9002 on Wed Dec 31 16:00:00 1969 /devices on /devices read/write/setuid/devices/dev:8b40000 on Fri Jul 8 14:56:54 2011 /dev on /dev read/write/setuid/devices/dev:8b80000 on Fri Jul 8 14:56:54 2011 /system/contract on ctfs read/write/setuid/devices/dev:8c40001 on Fri Jul 8 14:56:54 2011 /proc on proc read/write/setuid/devices/dev:8bc0000 on Fri Jul 8 14:56:54 2011 /etc/mnttab on mnttab read/write/setuid/devices/dev:8c80001 on Fri Jul 8 14:56:54 2011 /etc/svc/volatile on swap read/write/setuid/devices/xattr/dev:8cc0001 on Fri Ju8 14:56:54 2011 /system/object on objfs read/write/setuid/devices/dev:8d00001 on Fri Jul 8 14:6:54 2011 /etc/dfs/sharetab on sharefs read/write/setuid/devices/dev:8d40001 on Fri Jul 14:56:54 2011 /lib/libc.s0.1 on /usr/lib/libc/libc_hucap1.s0.1 read/write/setuid/devices/dev:d90002 on Fri Jul 8 14:57:06 2011 

Вывод списка «zfs -t all»:

 rpool 36.4G 0 47.5K /rpool rpool/ROOT 4.23G 0 31K legacy rpool/ROOT/openindiana 57.5M 0 3.99G / rpool/ROOT/openindiana-baseline 61K 0 3.94G / rpoo1/ROOT/openindiana-system-edge 4.17G 0 3.98G / rpool/ROOT/openindiana-system-edge@install 19.9M - 3 38G - rpoo1/ROOT/openindiana-system-edge@2011-07-06-20:45:08 73.1M - 3.57G - rpoo1/ROOT/openindiana-system-edge@2011-07-06-20:48:53 75.9M - 3 82G - rpoo1/ROOT/openindiana-system-edge@2011-07-07-02:14:04 61K - 3.94G - rpoo1/ROOT/openindiana-system-edge@2011-07-07-02:15:14 61K - 3.94G - rpoo1/ROOT/openindiana-system-edge@2011-07-07-02:28:14 61K - 3.94G - rpool/ROOT/openindiana-system-stable 61K 0 3.94G / rpoo1/ROOT/pre_first_update_07.06 108K 0 3 82G / rpool/ROOT/pre_second_update_07.06 90K 0 3.57G / rpool/dump 9.07G 0 9.07G - rpool/export 3.85G 0 32K /export rpool/export/home 3.85G 0 32K /export/home rpool/export/home/admin 3.85G 0 3.85G /export/home/admin rpool/swap 19.3G 19.1G 126M - 

Хорошо, это странно … недостаточно места для удаления файла!

Это, по-видимому, довольно распространенная проблема с ZFS, хотя она потенциально может возникнуть в любой файловой системе, имеющей моментальные снимки .

Объяснение состоит в том, что файл, который вы пытаетесь удалить, все еще существует в моментальном снимке. Поэтому, когда вы удаляете его, содержимое сохраняется (только в моментальном снимке); и система должна дополнительно записать информацию о том, что в снимке есть файл, но текущее состояние этого не делает. Для этого лишнего немного информации нет.

Кратковременное исправление заключается в том, чтобы найти файл, который был создан после последнего моментального снимка, и удалить его. Другая возможность – найти файл, который был добавлен после последнего моментального снимка, и усечь его до размера, который он имел во время последнего моментального снимка. Если ваш диск полон, потому что что-то рассылает ваши журналы, попробуйте обрезать самые большие файлы журналов.

Более общеприменимым решением является удаление некоторых снимков. Вы можете перечислить моментальные снимки с помощью zfs list -t snapshot . Кажется, нет простого способа предсказать, сколько места будет восстановлено, если вы уничтожите определенный моментальный снимок, потому что хранящиеся в нем данные могут оказаться необходимыми для других снимков, и так будет жить, если вы уничтожите этот снимок. Поэтому при необходимости создайте резервные копии данных на другой диск, определите один или несколько снимков, которые вам больше не нужны, и запустите zfs destroy name/of/snap@shot .

Существует расширенное обсуждение этой проблемы в этом форуме OpenSolaris .

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

(Это не проблема файловых систем со снимками, так как есть другие способы их реализации, чем просто копирование на запись)

Способы вытеснения:

  • выпустить снимок (в случае, если есть …)
  • увеличивайте пул (в случае, если у вас есть запасные остатки, которые вы можете назначить ему)
  • уничтожить другую файловую систему в пуле, а затем развернуть жесткую файловую систему
  • обрезать файл, а затем удалить его (хотя, как только я был слишком жестким, чтобы иметь возможность сделать это, см. поток в ZFS Обсудить )
  • отсоедините файл. (как указано выше)

Несколько лет назад я столкнулся с той же ловушкой, и у меня не было снимков, которые я мог бы освободить, чтобы освободить меня. Смотрите тему в ZFS Обсудите, где эта проблема была подробно обсуждена.

4.Z3G (rpool / root USED column) сомнительна.

В любом случае, rpool / export / home / admin слишком велик (3,85 ГБ), вероятно, является основной причиной. Посмотрите его содержимое и удалите ненужные файлы. Поскольку в файловой системе администратора нет снимков, это должно немедленно освободить некоторое пространство в пуле.

У меня это было, и я потратил некоторое время, пытаясь понять, что нужно. Мое решение состояло в том, чтобы обнулить пространство файлов, прежде чем пытаться их удалить.

У нас есть некоторые неправильные процессы, которые иногда сходят с ума и заполняют диск основными файлами (заканчивающимися на число), поэтому я создал сценарий, который содержит что-то вроде этого, чтобы сохранить одну копию.

 for file in core*[0-9] do coreFile=${file%.[0-9]*} mv $file $coreFile if [[ $? == 0 ]] then chmod 644 $coreFile else truncate -s 0 $file # we can't just delete if disk is full so zero out first rm $file fi done 

Когда я запустил свой скрипт, он произвел одну ошибку:

 mv: cannot rename core.200000 to core: No space left on device 

и был функциональным очисткой файлов.

Чтобы проверить это, я заполнил диск:

 for ((ii=0; ii<100000; ii++)) do mkfile 1m core.$ii done