Можно ли преобразовать набор данных в разреженный объем (тонкая подготовка)?

Я создал наборы данных ZFS и установил в них виртуальные серверы. Внезапно мое свободное пространство на томе ZFS исчезло, но не все пространство используется в каждом наборе данных. Я хочу представить тонкую инициализацию (используйте редкий том ZFS).

Можно ли конвертировать наборы данных в разреженные тома, не удаляя их? Благодарю.

2 ответа

Решение

Насколько я знаю, невозможно преобразовать существующий zvol в разреженный; они должны быть редкими для начала.

Тем не менее, вы можете создать новый разреженный zvol, и zfs send от старого и zfs recv на новый, а затем поменяйте местами их имена.

Я не думаю, что принятый ответ на самом деле правильный, но у меня недостаточно представителей, чтобы комментировать.

Предполагая, что когда 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
Другие вопросы по тегам