Ahoj, používám ZFS volume pro KVM Windows virtuál, ale vytvořil jsem ho se špatným (defaultním) volblocksize=8K. Chtěl bych ho změnit na vyšší hodnotu, což nejde in-place.
Vytvořil jsem proto nové volume o stejné velikosti, jako původní:
zfs create -s -V 2.50T -b 128k -o compression=lz4 tank/kvm/vm-160-disk-1
Ale kopírování pomocí dd skončí chybou:
# dd if=/dev/zvol/single1/kvm/vm-160-disk-1 of=/dev/zvol/tank/kvm/vm-160-disk-1 bs=200M conv=sync,noerror
dd: error writing '/dev/zvol/tank/kvm/vm-160-disk-1': No space left on device
13107+1 records in
13107+0 records out
2748779069440 bytes (2.7 TB, 2.5 TiB) copied, 42918.2 s, 64.0 MB/s
Tento postup mi u některých datasetů fungoval, ale u jiných vůbec. Jak to prosím mohu udělat? Děkuji.
Ještě na to koukám, že se to tam asi nevejde, protože usedbydataset je větší než volsize. Tak by mohlo stačit vytvořit větší volume a pak ho případně zmenšit?
# zfs get volsize,used,volblocksize,usedbydataset,logicalreferenced tank/kvm/vm-160-disk-1
NAME PROPERTY VALUE SOURCE
tank/kvm/vm-160-disk-1 volsize 2.50T local
tank/kvm/vm-160-disk-1 used 2.42T -
tank/kvm/vm-160-disk-1 volblocksize 1M -
tank/kvm/vm-160-disk-1 usedbydataset 2.42T -
tank/kvm/vm-160-disk-1 logicalreferenced 2.50T -
# zfs get volsize,used,volblocksize,usedbydataset,logicalreferenced single1/kvm/vm-160-disk-1
NAME PROPERTY VALUE SOURCE
single1/kvm/vm-160-disk-1 volsize 2.50T local
single1/kvm/vm-160-disk-1 used 2.52T -
single1/kvm/vm-160-disk-1 volblocksize 8K default
single1/kvm/vm-160-disk-1 usedbydataset 2.52T -
single1/kvm/vm-160-disk-1 logicalreferenced 2.51T -