Solaris 10:如何从当前已安装 /usr 的 zpool 中删除设备?

Solaris 10:如何从当前已安装 /usr 的 zpool 中删除设备?

我在 SPARC 上使用 Solaris 10。我在 zpool“usr-pool”上安装了 /usr legacy。

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

对我来说,最安全的方法是什么?我已经知道(因为我的 zpool 没有镜像)我需要销毁并重新创建 zpool。我知道如何备份和恢复 zfs 快照。但是……我不知道如何卸载 usr-pool,同时又不失去对完成备份/恢复所需的 /usr 命令的访问权限。

粗略研究表明我应该启动到 OpenBoot (init 0),然后“boot cdrom -s”。我这样做了,但在该运行级别上无法访问任何 zpools。

我还读到,我可以将 /usr 复制到另一个位置,将 /usr 符号链接到该位置,然后进行备份/恢复。这样做安全吗?

我将非常感激您的指导。

年代。

答案1

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

由于您已经提到您的意图是销毁并重建池,因此请按照以下步骤操作。但首先...

警告:破坏你的矿池将会破坏你的数据。你的血要归咎于你自己。

现在,解决了这个问题:

  1. 创建新池,安装于/usr-new
  2. 使用zfs-send从的快照usr-poolusr-new(您还需要考虑任何后代数据集)。
  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-new磁盘,而不安装/usr旧磁盘。然后您可以根据需要随意销毁和重新使用磁盘。usr-poolusr-pool

相关内容