On 12/21/20 7:26 PM, Andrei Borzenkov wrote:
21.12.2020 20:37, Roman Mamedov пишет:
[...]
Having dedicated subvolume containing snapshots makes it easy to switch
your root between subvolumes (either for roll back or transactional
updates or whatever) and retain access to snapshots by simply mounting
containing subvolume. Having them in subdirectory of your (root)
subvolume means you can no more remove this subvolume without also
destroying snapshots before, so you are stuck with it.
So it makes all sort of sense to think in advance and prepare dedicated
subvolume for this purpose.
There is an asymmetry of the '/' subvolume; it can't be deleted, so it is not
easy and cheap to swap it with its snapshot.
In my setup, I uses the '/' subvolume as container of all the other subvolumes,
one of these is the root of my filesystem. Then each subvolume is mounted where
it is needed:
$ findmnt | egrep sdg3
/ /dev/sdg3[/@rootfs] btrfs
rw,noatime,nodiratime,nossd,space_cache,subvolid=448,subvol=/@rootfs
├─/boot /dev/sdg3[/@boot] btrfs
rw,noatime,nodiratime,nossd,space_cache,subvolid=258,subvol=/@boot
├─/var/btrfs /dev/sdg3 btrfs
rw,noatime,nodiratime,nossd,space_cache,subvolid=5,subvol=/
├─/var/lib/machines/vm-sqlserver /dev/sdg3[/@vm-sqlserver] btrfs
rw,noatime,nodiratime,nossd,space_cache,subvolid=454,subvol=/@vm-sqlserver
├─/var/lib/portables /dev/sdg3[/@portables] btrfs
rw,noatime,nodiratime,nossd,space_cache,subvolid=282,subvol=/@portables
├─/var/log /dev/sdg3[/@log] btrfs
rw,noatime,nodiratime,nossd,space_cache,subvolid=447,subvol=/@log
I mount the '/' subvolume under /var/btrfs, where i manage the subvolume. With
this setup is easy to snapshot the root filesystem (/dev/sdg3[/@rootfs]) and
mount the snapshot instead the old root. The other part of the filesystem which
are better to not involve in the snapshot-rollback process (like /boot,
/var/log...) are in a separate subvolumes which are mounted at boot time using
/etc/fstab
I tough quite often that mkfs.btrfs should allow to create a "default"
subvolume inside the '/'. It would simplify the management of the root filesystem in case
if the user want to srollback the system to a previous snapshot.
BR
not much of the "inside". Might as well just create a regular directory for
that -- and with less potential for confusion.
* - keep in mind that "snapshot" and "subvolume" mean the same thing in Btrfs,
the only difference being that "snapshot"-subvolume started its life as
being a full copy(-on-write) of some other subvolume.
--
gpg @keyserver.linux.it: Goffredo Baroncelli <kreijackATinwind.it>
Key fingerprint BBF5 1610 0B64 DAC6 5F7D 17B2 0EDA 9B37 8B82 E0B5