首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ZFS如何使“接收”创建文件系统?

ZFS如何使“接收”创建文件系统?
EN

Stack Overflow用户
提问于 2022-11-22 10:02:54
回答 1查看 28关注 0票数 -1

我正在OmniOS上与NappIt UI一起运行ZFS。为了提高容量,我计划一个接一个地交换磁盘。但是这是不可能的,因为新磁盘有4096字节的块大小,但是池有ashift=9。

因此,我开始发送内容(zfs发送),销毁旧池,创建新池并恢复数据(zfs接收)。

我设置了一个虚拟机来测试这个进程。生成池的快照。

代码语言:javascript
运行
复制
zfs snapshot -r zpool@backup

然后使用以下方法导出快照

代码语言:javascript
运行
复制
zfs send -Rv zpool@backup > my_backup-file

销毁了池并创建了一个新的池,并通过

代码语言:javascript
运行
复制
zfs receive -F -d zpool < my_backup_file

进展得很好。但没有创建旧内容的文件系统。然而,数据是存在的。当我列出目录/zpool时,表示文件系统的所有文件夹都会出现,并包含所有数据。就像在最初的状态一样。但是,在“zfs列表”中列出文件系统并没有显示任何原始文件系统。它只显示游泳池。

当然,由于缺少文件系统,它们的所有属性都丢失了(NFS共享、all、.)

在第二次尝试中,我首先在接收之前创建了文件系统,一切都很好。当然,我必须手动设置所有属性。

是否有一种方法可以发送/接收整个ZFS并使其恢复文件系统和属性?

谢谢!

洛萨

简短摘要:我尝试快照ZFS池,发送和接收它,如上面描述所示。

预期:原始池和所有包含文件系统的完整副本,包括它们的属性。

EN

Stack Overflow用户

发布于 2022-11-22 20:39:44

必须在池的zfs send -R之前对池本身和每个文件系统进行快照。假设池名为zpool,并包含文件系统datamedia,则流程如下:

代码语言:javascript
运行
复制
zfs create zpool@now
zfs create zpool/data@now
zfs create zpool/media@now
zfs send -R zpool@now > <my_data_file>

然后在新的空池上

代码语言:javascript
运行
复制
zfs receive -F -d zpool < <my_data_file> 

恢复整个数据和文件系统。

请记住:如果您的一些文件系统被压缩,数据文件可能要比zfs list中显示的和文件系统大小大得多,因为数据在发送之前是被解压缩的。为了处理这个问题,可以使用zfs send命令的zfs send选项。

代码语言:javascript
运行
复制
zfs send -R -c zpool@now > <my_data_file>

它将生成一个压缩数据文件。它可以以与未压缩数据文件相同的方式接收。不需要特别的选择。

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74530776

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档