Я создал наборы данных ZFS и установил в них виртуальные серверы. Внезапно на моем томе ZFS закончилось свободное пространство, но не все пространство используется в каждом наборе данных. Я хочу ввести тонкое обеспечение (использовать разреженный том ZFS).
Можно ли преобразовать наборы данных в разреженные тома, не удаляя их? Спасибо.
Я не думаю, что принятый ответ на самом деле правильный, но у меня недостаточно комментариев для комментариев.
Предполагая, что когда OP говорит «наборы данных», они имеют в виду «том ZFS» (или ZVOL).
Единственная разница между ZVOL с тонким предоставлением (он же разреженный) и обычным заключается в том, зарезервирован ли полный размер через refreservation
свойство например
# zfs create -V 10G tank/test_full
# zfs create -s -V 10G tank/test_sparse
# zfs list -o name,used,usedbydataset,usedbyrefreservation,logicalused,logicalreferenced,refreservation tank/test_sparse tank/test_full
NAME USED USEDDS USEDREFRESERV LUSED LREFER REFRESERV
tank/test_full 10.3G 136K 10.3G 30K 30K 10.3G
tank/test_sparse 136K 136K 0 30K 30K none
Так что вы жестяная банка преобразовать существующий ZVOL в разреженный, изменив refreservation
для существующего ZVOL, например
# zfs set refreservation=none tank/test_full
# zfs list -o name,used,usedbydataset,usedbyrefreservation,logicalused,logicalreferenced,refreservation tank/test_sparse tank/test_full
NAME USED USEDDS USEDREFRESERV LUSED LREFER REFRESERV
tank/test_full 136K 136K 0 30K 30K none
tank/test_sparse 136K 136K 0 30K 30K none
Насколько мне известно, преобразовать существующий zvol в разреженный невозможно; для начала они должны быть редкими.
Однако вы можете создать новый разреженный звол и zfs send
из старого и zfs recv
на новый, а затем поменяйте их имена.