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

Reply via email to