https://bugzilla.suse.com/show_bug.cgi?id=1172566 https://bugzilla.suse.com/show_bug.cgi?id=1172566#c11 --- Comment #11 from heming zhao <heming.zhao@suse.com> --- items values for calc min_metadata_size: extent_size: 0x2000 (4MB @ 512B sector size, can be get by vgdisplay) poolmetadatasize: 0x0 (if without --poolmetadatasize parameter) min_meta_size should be calac by _cache_min_metadata_size(), formular: chunk_overhead = DM_BYTES_PER_BLOCK + DM_MAX_HINT_WIDTH + DM_HINT_OVERHEAD_PER_BLOCK => 16 + (4 + 16) + 8 => 44 => 0x2c (fixed value) transaction_overhead = 4MB (0x400000, fixed value) nr_chunks = pool_lv->size / chunk_size (variable value) => 128GB/128k => 0x100000 (or 96G/128k => 0xc0000, 96G/256K=>0x60000 , 128G/256K => 0x8000) so, we can get from above: the pool_lv size is bigger, the nr_chunks is bigger. the chunk_size is bigger, the nr_chunks is smaller. min_meta_size = (transaction_overhead + nr_chunks * chunk_overhead + (SECTOR_SIZE - 1)) >> SECTOR_SHIFT; || \/ min_meta_size = (0x400000 + 0xc0000 * 0x2c + (0x200 - 1)) >> 9 => 0x12800 => 0x12800 * 0x200 (sector size) => 37 MB if the chunk size change to 256K, but others values no change. the min_meta_size will become: (0x400000 + 0x60000 * 0x2c + (0x200 - 1)) >> 9 => 0x4400 => 20.5MB when lv_pool change from 96G to 128G, chunk size from 128K to 256K, but others no change. the min_meta_size become: (0x400000 + 0x80000 * 0x2c + (0x200 - 1)) >> 9 => 0xd000 => 26MB if lv_pool is 128G, chunk size is 512K, others no change, the min_meta_size become: (0x400000 + 0x40000 * 0x2c + (0x200 - 1)) >> 9 => 0x7800 => 15MB ---------- for easy calculate, with following formular: min_metadata_size = {(0x400000 + (pool_lv->size / chunk_size) * 0x2c + (sector_size - 1)) >> (sector_size shift bit) } + extent_size sector_size shift bits: - 512 Bytes: 9 - 1024: 10 - 2048: 11 - 4096: 12 pool_lv->size: - the cache lv size. in this bug, it is test/giant-cache size, (96GB or 128GB). chunk_size: - default 4MB - can be set by parameter: "--chunksize XX" - in this bug, it is 256 or 512. (please note, 128k -> 256 sectors, (512B sector size)) -------------- at last, use the calculated min_metadata_size to execute lvconvert: lvconvert --type cache --cachevol giant-cache --cachemode writeback --chunksize 256 test/giant --poolmetadatasize 30m -- You are receiving this mail because: You are on the CC list for the bug.