Comments (3)
Greetings;
The physical_block_size is the smallest unit that the device can address without doing read-modify-write operations. VDO is coded to do all IO (including all deduplication and compression) in 4096-byte units -- we found in our test datasets that deduplication in 4k chunks is a good balance of deduplication success and deduplication metadata usage.
What are you trying to do? Do you have a device which has 8k physical_block_size under VDO? Are you trying to get a filesystem atop VDO to use 8k block size? I'm happy to help make VDO work for your usecase.
from kvdo.
Hi,
I have the same question that is it able to change VDO_BLOCK_SIZE to 8K or more? I'm looking forward to adding some feature to compression and wondering if 4K block size is too small.
from kvdo.
Sorry to leave this hanging, but trying to operate VDO with a larger block size is most likely difficult if not impossible and probably won't achieve what you are looking to do. Absent an answer to the question sweettea posed in response to the original issue, I'll try to cover a few possibilities.
First off we chose a 4K block size for VDO both because, at least on x86, it is the default linux page size, and this is convenient, but also because our experiments showed that 4K was the best tradeoff between deduplication savings and metadata size. As the block size gets smaller, the amount of mapping data grows and with it a reduction in space saving (due to increased overhead) and poorer performance (due to increased metadata updates). On the other hand, as the block size gets bigger, for most real-world datasets the number of duplicate blocks falls rapidly. Above 4K, VDO can't generally save enough space to make it worth the memory and performance costs.
Using VDO on top of devices whose block size is larger than 4K does work (although there may still be some bugs related to this as we have limited ability to test in such environments). It is less performant since the layers below VDO are forced to do read-modify-writes.
If the goal is to have VDO actually read and write in larger chunks, that is probably not possible at this time. While it would be possible to change the value of the VDO_BLOCK_SIZE constant and recompile the module, it is likely that there will be some problems either in the on-disk layout or the assumptions about the number of entries which can fit in VDO's journals and other data structures. At best, the efficiency of the on-disk data strcutures would be reduced, and at worst, the correctness of the device would be compromised.
from kvdo.
Related Issues (20)
- vdo 6.2.6.3 crash on kernel 4.19 HOT 22
- Make failing to compile kvdo & uds modules on Debian HOT 8
- Running out of slabs HOT 1
- Installation steps of kvdo on Debian 11(.3) HOT 1
- kvdo-6.2.6.3 does not build against 5.17.4-200.fc35 HOT 11
- RFE: support for separate metadata volume HOT 3
- Compile Error for 6.2.6.14 for 5.18.5 kernel HOT 17
- Compile Error for 6.2.7.17 for kernel 6.0 HOT 2
- kvdo 6.2.7.17 storage read/write issue with kernel 6.0 from KVM VMs HOT 2
- Extrem Slow Write in VM KVM/QEMU HOT 10
- Data loss after power outage HOT 1
- fstrim on a xfs lv backed by vdo renders my computer useless for a very long time HOT 9
- Throughput is caped on VDO volume HOT 4
- Release 8.2.2.2 : Why ? HOT 3
- Make failed with clang built kernel 6.4.0 HOT 4
- Version 8.2.3.3 : changelog missing HOT 2
- kvdo builds just fine with kernel 6.6 but it fails to boot with vdo root device HOT 3
- Question: main differences between kvdo versions 8.x and 6.x HOT 2
- How to update version of lvm HOT 5
- alternate scheduling HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from kvdo.