天天看点

use export and import move ZPOOL's underdev from one machine to another OR upgrade a zfs version OR recover destroyed pools

前面我们介绍了zfs的pool, 类似lvm. 由多个块设备组成.

如果这些块设备要从一个机器转移到另一台机器的话, 怎么实现呢?

zfs通过export和import来实现底层块设备的转移.

在已有pool的主机上, 先将会读写pool或dataset的正在运行的程序停止掉, 然后执行export.

执行export会把cache flush到底层的块设备, 同时卸载dataset和pool.

import时, 可能需要指定块设备的目录, 但是并不需要指定顺序.

例如 :

因为我这里用的是文件, 所以把文件拷贝到对应的其他主机, 然后指定文件所在目录,

如果是块设备的话, 不需要指定目录.

使用name 导入.

接下来我export后修改一下目录和文件名, 并且拷贝到另一台主机.

恢复destroy的zpool, 当pool被destroy后, 还可以恢复, 因为数据都还在, 只是pool删掉了.

zpool版本升级, 比如一个pool从版本20的机器迁移到版本28的机器, 那么可以升级到28, 但是这样的话, 这个pool就不能再回到版本20的机器上使用了.

[参考]1. https://pthree.org/2012/12/10/zfs-administration-part-v-exporting-and-importing-zpools/