![将 zpool 迁移到 zfs 分区](https://linux22.com/image/582413/%E5%B0%86%20zpool%20%E8%BF%81%E7%A7%BB%E5%88%B0%20zfs%20%E5%88%86%E5%8C%BA.png)
我有一个 zpool,其中有两个磁盘处于镜像模式。zpool 直接挂载到 /tank。现在我想创建 zfs 分区,不再挂载整个池。因此,我需要以某种方式将所有数据从 /tank 移动到新位置。
我可以创建一个带有一些分区的新 zpool,然后简单地将整个 /tank dd 到其中一个新分区吗?或者这很愚蠢?
做这个的最好方式是什么?
答案1
您可以卸载 ZFS 驱动器,但是不存在所谓的 ZFS“分区”,它的工作方式并非如此。ZFS 既是文件系统(如 EXT 或 UFS)和卷管理器(如 RAID HBA 或 Linux LVM);您无法分离这些功能。
如果您想在同一个容器中创建另一个 ZFS 文件系统,只需使用zfs create tank/new_fs
。如果您想模仿老式分区,您可以在 zpool 中为每个文件系统分配一个空间预留,但这也不是必需的。您还可以为每个文件系统设置单独的预留或配额,具体取决于您想要实现的目标。
答案2
据我所知,该池将始终处于挂载状态。不过,不用担心。
将文件系统的属性设置mountpoint
为您想要挂载它的位置。
zfs set mountpoint=/some/mountpoint tank/filesystemname
答案3
如果我理解正确的话,您想将 ZFS 池内容移动到另一个池。
dd 可能会在假设源池处于非活动状态(处于导出状态)并且您稍后不会尝试同时导入两个池的情况下工作。但是,受支持且更安全的方法是创建源池中存在的所有数据集的快照并递归发送/接收它们。