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

Snapshot driver failing with cow file max size exceeded #87

Closed venugopalnaidu closed 7 years ago

venugopalnaidu commented 7 years ago

dattobd driver failling with cow file size exceed error.

kernel version - 2.6.32-358.6.2.el6.x86_64. fileSystem - ext4 (Total Size:- 985G Used:- 514G Free:- 422G) CowFile Size - 100Gb

There is no huge data copies in snapshot mode(less than 2Gb), but after some time driver returning errors as below.

kernel: datto: cow file max size exceeded: -27 kernel: datto: error writing cow data: -27 kernel: datto: error writing cow data and mapping: -27 kernel: datto: error handling write bio: -27

I tried with datto-0.9.10 and datto-0.9.15.

nixomose commented 7 years ago

Then likely what's happening is that there are writes going on that you are not aware of. Some filesystems write metadata to disk every once in a while. atime updates could cause this, too.

venugopalnaidu commented 7 years ago

Thanks for the reply,

Why can't the cow file can grow on its own once it reaches max file size. Is there any driver level limitation to resize a cow file.Its happening for me continuously.

crawfxrd commented 7 years ago

What is the command you are using to snapshot the volume? How long do you have the volume in snapshot mode before you get the error?

For why we cannot resize the cow file after creation, see https://github.com/datto/dattobd/pull/10.

venugopalnaidu commented 7 years ago

I am getting cow file exceeded error with in 20 min of time after creating snapshot and i understand why the cow file resizing not allowed after creation.

I am using the below command to create a snapshot.

./snapCreator setup-snapshot /dev/sda5 /DataUp/.cowfile.snapshot 2 -f 102400

crawfxrd commented 7 years ago

Does this snapCreator correctly pass the size to use? (You can check the fallocate field in/proc/datto-info, which will be in bytes.)

If it does, then there is a lot of writes occurring. You would be able to verify this using a tool like iotop, iostat, or dstat (or some graphical equivalent).

crawfxrd commented 7 years ago

Reopen if you still have this issue.