我在 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 目前不支持缩小池。
由于您已经提到您的意图是销毁并重建池,因此请按照以下步骤操作。但首先...
警告:破坏你的矿池将会破坏你的数据。你的血要归咎于你自己。
现在,解决了这个问题:
- 创建新池,安装于
/usr-new
- 使用
zfs-send
从的快照usr-pool
到usr-new
(您还需要考虑任何后代数据集)。 zfs unmount usr-new
。usr-new
将的挂载点更改为/usr
(它可能会发出抱怨,但应该可以工作。使用 进行检查zfs get mountpoint usr-new
)- 设置
usr-pool
(即旧的)以使用旧式挂载zfs set mountpoint=legacy usr-pool
(这将导致它不会在启动时自动挂载但也不会立即卸载它)。 - 重启。
您将在启动时安装新usr-new
磁盘,而不安装/usr
旧磁盘。然后您可以根据需要随意销毁和重新使用磁盘。usr-pool
usr-pool