Зомби lxc файл подкачки: текстовый файл занят, но нет pid

У меня есть сервер под управлением Ubuntu 12.04.5 LTS (Precise Pangolin). На этом сервере я создал новый контейнер Linux:

$ sudo lxc-create -n mycontainer

Через некоторое время я решил избавиться от этого контейнера:

$ sudo lxc-destroy -n mycontainer

Однако я получил следующую ошибку:

rm: cannot remove `/var/lib/lxc/mycontainer/rootfs/swapfile': Operation not permitted

Я попытался удалить поврежденный файл вручную:

$ sudo rm /var/lib/lxc/mycontainer/rootfs/swapfile

Но, конечно же, это дало мне то же сообщение об ошибке.

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

$ sudo lsattr /var/lib/lxc/mycontainer/rootfs/swapfile
-------------e- /var/lib/lxc/mycontainer/rootfs/swapfile

В качестве эксперимента я попытался перезаписать файл:

$ echo '' > /var/lib/lxc/mycontainer/rootfs/swapfile

Это дало мне новое сообщение об ошибке:

bash: /var/lib/lxc/mycontainer/rootfs/swapfile: Text file busy

Поэтому я попытался использовать lsof, чтобы получить pid процесса, который использует файл:

$ sudo lsof /var/lib/lxc/mycontainer/rootfs/swapfile

Это не произвело никакого выхода. Я попробовал то же самое с фьюзером:

$ sudo fuser /var/lib/lxc/mycontainer/rootfs/swapfile

Опять нет выхода.

Я также упомяну, что я проверил размер файла:

$ sudo du -h /var/lib/lxc/mycontainer/rootfs/swapfile
1.1G    /var/lib/lxc/mycontainer/rootfs/swapfile

Что здесь происходит и как мне избавиться от этого файла?

1 ответ

Решение

Имя swapfile дает очень сильный намек относительно цели файла и того, что его использует.

То есть: система использует его как подкачку, потому что кто-то создал файл подкачки и добавил его в систему с помощью swapon,

Попробуйте удалить его из активного свопа с swapoff:

swapoff /var/lib/lxc/mycontainer/rootfs/swapfile
Другие вопросы по тегам