Я не знаю, включено ли это или отключено по умолчанию, но mkdir может кэшироваться:
http://goo.gl/QIW4V (cache_mkdir)
Даже при том, что сама команда mkdir выглядит атомарной и достаточно ориентированной на многопотоковое исполнение...
http://goo.gl/LC1Ze (sshfs_mkdir)
http://goo.gl/NHkNH (sftp_request_send)
Я рискнул бы и сказал бы, что mkdir по sshfs не является атомарным из-за кэширования.
Я смог удалить эти снимки первым монтированием целого btrfs объема (не @
подобъем) и затем работающий оттуда:
# mount /dev/mapper/whatever /mnt -o subvol=/
# ls /mnt
@
@apt-snapshot-2013-04-17_21:44:30
...
Таким образом в этой точке, все подобъемы (включая броское apt-snapshot
), видимы в /mnt
, таким образом, мы можем удалить их:
# btrfs subvol delete /mnt/@apt-snapshot-2013-04-17_21:44:30
# umount /mnt
Самый простой способ сделать это - использовать встроенные команды apt-btrfs-snapshot
:
В отличие от обычного удаления снимков, для удаления снимков вам не нужно монтировать файловую систему.
Сначала перечислите доступные apt-btrfs-snapshot
снимки с помощью следующей команды:
sudo apt-btrfs-snapshot list
Вот пример вывода этой команды:
@apt-snapshot-old-root-2015-10-19_20:20:10
@apt-snapshot-2015-10-28_19:00:46
@apt-snapshot-2015-10-28_19:09:14
@apt-snapshot-2015-10-29_04:40:07
@apt-snapshot-2015-10-29_06:35:57
@apt-snapshot-2015-10-29_07:03:39
@apt-snapshot-2015-10-30_03:49:05
@apt-snapshot-2015-10-30_17:53:59
Чтобы удалить снимок @apt-snapshot-2015-10-30_17:53:59
, выполните:
sudo apt-btrfs-snapshot delete @apt-snapshot-2015-10-30_17:53:59
Вы также можете удалить несколько снимков по дате. Вот пример команды, которая удалит все моментальные снимки, которые старше 0 дней.
sudo apt-btrfs-snapshot delete-older-than 0d
Вот пример вывода этой команды:
Delete subvolume (no-commit): '/tmp/apt-btrfs-snapshot-mp-odfe0o4g/@apt-snapshot-old-root-2015-10-19_20:20:10'
ERROR: cannot delete '/tmp/apt-btrfs-snapshot-mp-odfe0o4g/@apt-snapshot-old-root-2015-10-19_20:20:10' - Directory not empty
Delete subvolume (no-commit): '/tmp/apt-btrfs-snapshot-mp-b2zv18qr/@apt-snapshot-2015-10-28_19:00:46'
Delete subvolume (no-commit): '/tmp/apt-btrfs-snapshot-mp-zjglvefe/@apt-snapshot-2015-10-28_19:09:14'
Delete subvolume (no-commit): '/tmp/apt-btrfs-snapshot-mp-lj3v74qa/@apt-snapshot-2015-10-29_04:40:07'
Delete subvolume (no-commit): '/tmp/apt-btrfs-snapshot-mp-vztc82zr/@apt-snapshot-2015-10-29_06:35:57'
Delete subvolume (no-commit): '/tmp/apt-btrfs-snapshot-mp-q0ou8e24/@apt-snapshot-2015-10-29_07:03:39'
Delete subvolume (no-commit): '/tmp/apt-btrfs-snapshot-mp-dw8eq0vv/@apt-snapshot-2015-10-30_03:49:05'
Delete subvolume (no-commit): '/tmp/apt-btrfs-snapshot-mp-vgo2yuf2/@apt-snapshot-2015-10-30_17:53:59'
Как вы можете видеть, доступные снимки были удалены. Однако самый старый снимок "old-root" не был удален, и его все еще можно использовать для отката, несмотря на то, что он намного старше 0 дней.
Выполните следующую команду для получения полного списка возможностей:
apt-btrfs-snapshot --help
@
из той же файловой системы. – Cactus 07.03.2015, 03:25