Paul Lawrence ezt írta (időpont: 2018. okt. 23., K, 23:27): > > bow == backup on write > > Similar to dm-snap, add the ability to take a snapshot of a device. > Unlike dm-snap, a separate volume is not required. > The concept intrigued me, so I actually went on to try your prototype. I could apply it on v4.12 mainline (newer kernel versions introduce changes in "struct bio" in "include/linux/blk_types.h" those don't let the module compile – I think minor changes would be necessary to adapt to the new struct, though I didn't go into that). My test scenario: On a KVM, I created a 64M partition and formatted it to ext4, then put some random files on it and unmounted the FS. I then called "dmsetup create bowdev --table "0 131072 bow /dev/vdb1"". The "/dev/mapper/bowdev" file appeared as expected. I mounted it in read-only mode ("mount -vo ro /dev/mapper/bowdev /mnt") and run "fstrim -v /mnt". At this point, I tried to advance to STATE 1 ("echo 1 > /sys/block/dm-2/bow/state"), but I got a kernel BUG alert. The STATE did not change. I unmounted bowdev and removed the device ("dmsetup remove bowdev") which resulted in 2 subsequent kernel alerts. The device disappeared but it brought the kernel to an unstable state (various actions, like sync or trying to recreate the bow device, resulted in a hang). I could not get any further than this. I attached all the 3 kernel alerts in "dm-bow.dmesg.log". I have some questions about dm-bow: – How file system agnostic this feature is planned to be? While it is designed with ext4 in mind, is it going to work when used over other file systems, like FAT or BTRFS for example? – Especially that BTRFS uses a CoW mechanism for even overwriting files (overwritten segments are written to a free area and only then gets the old data freed – except some specific conditions when NO_COW/nodatacow is involved). Won't BTRFS CoW mechanism confuse BoW, e.g. BTRFS will try to use space that BoW wants to use for backups? Note however, using BoW on BTRFS wouldn't have much point, since BTRFS has built-in features for snapshots. This leads me to my next question. – Why don't you just use BTRFS on Android? It basically provides a similar feature like BoW, and it is matured enough, switching snapshots are easy, etc.. However I see why it wouldn't be feasible for you, e.g. it is slower than ext4, which would matter for an Android device. – What if you run out of free disk space while updating? I guess you can just revert to the original state with BoW, but an update might require more disk space with BoW (and this is a thing, my Android always complains about not having enough space). – Can I really expect dm-bow to work on non-Android systems (like I tried it on an Ubuntu KVM)? – Do you have any prototype for the command line utility to be used for recovery? MegaBrutal