Назад | Перейти на главную страницу

Не удается удалить снимок btrfs

У меня есть система, которая периодически создает снимки состояния btrfs и удаляет старые. Сегодня я начал получать предупреждения о том, что система не может удалить некоторые старые снимки.

Вот результат, который я получаю:

root@machine:/path# btrfs sub del 2014-10-26--01-50-01-@ten_minutely
Delete subvolume '/path/2014-10-26--01-50-01-@ten_minutely'
ERROR: cannot delete '/path/2014-10-26--01-50-01-@ten_minutely'

Я могу без проблем создавать и удалять новые снимки - всего несколько из них, созданных сегодня, демонстрируют такое поведение.

Разрешения выглядят нормально. Системный журнал не показывает ничего связанного. Я проверил btrfs filesystem df, и есть место для файловой системы - как для метаданных, так и для данных.

Пример команды удаления показывает:

#...
ioctl(3, 0x5000940f, 0xffa1d1f0)        = -1 ENOTEMPTY (Directory not empty)
close(3)                                = 0
#...

Какие дальнейшие шаги я могу предпринять для расследования причины?

Покопавшись, я нашел корень проблемы

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

Для записи я использую btrfs-снимок вращения через простой cron. Поскольку у меня было несколько частот моментальных снимков, две должны были выполняться за одну секунду. Возможное решение - перейти на anacron.