Solaris 10:如何使用当前挂载的/ usr从zpool中移除设备?

我在SPARC上使用Solaris 10。 我将/ usr旧版挂载在zpool'usr-pool'上。

我现在需要将usr-pool中的一些设备移动到另一个空间不足的zpool。

什么是最安全的方式来做到这一点? 我已经知道(因为我的zpool没有镜像),我需要销毁并重新创buildzpool。 我知道如何备份和恢复zfs快照。 但是,我很难如何卸载usr-pool,而不会失去对/ usr上需要的命令的访问来完成备份/恢复。

Cursory的研究表明,我应该引导到OpenBoot(init 0),然后“启动光盘-s”。 我这样做了,但是没有任何一个zpools可以在这个运行级别访问。

我也读了我可以复制/ usr到另一个位置,符号链接/ usr到那个位置,然后做我的备份/恢复。 这是安全的吗?

我将不胜感激一些指导。

S.

不幸的是,ZFS目前不支持收缩池。

既然你已经提到你的意图是摧毁和重新创build池,这是做什么。 但首先…

警告:破坏您的游泳池将破坏您的数据。 你的血液是你自己的头上。

现在,就这样,

  1. /usr-new上创build一个新的池
  2. 使用从usr-pool的快照到usr-new zfs-send (您还需要考虑任何后代数据集)。
  3. zfs unmount usr-new
  4. usr-new的挂载点改为/usr (可能会报错,但是应该可以正常工作,请检查zfs get mountpoint usr-new
  5. 设置usr-pool (即旧的)使用传统挂载与zfs set mountpoint=legacy usr-pool (这将导致它不会在启动时自动挂载,但也不会立即卸载它)。
  6. 重启。

您将使用/usr上的新usr-new启动,并且旧的usr-pool未挂载。 然后,您可以根据需要自由销毁usr-pool并重新使用磁盘。