datto / dattobd

kernel module for taking block-level snapshots and incremental backups of Linux block devices
GNU General Public License v2.0
576 stars 122 forks source link

QUESTION: dattodb and NFS root #250

Open Talkabout opened 3 years ago

Talkabout commented 3 years ago

Hi all,

I am considering to use dattodb on a Raspberry Pi with UrBackup to create snapshots. Currently this device is running on NFS root (root file system is located on a NFS share), is it possible for dattodb to handle such a configuration? Will snapshotting work as expected?

Thanks!

Bye

nixomose commented 3 years ago

well there's two things here: getting dattobd to run on a raspi (which I've managed to do, but as is, it won't work) and will it work on nfs. I have to admit, that I don't know where nfs is in the stack of the top of my head, my instinct would be to say that it wouldn't work, but nfs might be a snappable block device. Not sure. I'd say easiest thing to do is make an nfs mount on an x86 system, see if dattobd will snap it. if it does, then you can work on getting dattobd to build and run on a raspi.

Talkabout commented 3 years ago

Thank you for your feedback! Can you tell me more about "managing to run dattobd on raspi"? What challenges will I face here? Is it about building it? I have some raspis lying around so instead of testing on x86 I'd like to perform the test directly on the Raspberry, if possible.

nixomose commented 3 years ago

I can refer you to this issue:

https://github.com/datto/dattobd/issues/248

Talkabout commented 3 years ago

Thank you, will take a look.

Talkabout commented 3 years ago

Was not able to make it work, facing following issue:

./include/asm-generic/div64.h:239:22: error: passing argument 1 of ‘__div64_32’ from incompatible pointer type [-Werror=incompatible-pointer-types] __rem = __div64_32(&(n), __base);

Any idea why this line fails?

Thanks!

nixomose commented 3 years ago

sorry that one's new to me. Haven't seen that before.

check the parameter type of n? apparently it's supposed be 64 bits and I guess it's not, which probably means it's size_t and not u64. but I didn't take a close look at it.