ZFS导出和导入

zpool导出/导入(含重命名)

导出(export)

警告

ZFS不能直接修改zpool名字(你可以理解成ZFS挂载点挂载时不能 mv ),所以只有 export / import 时候才能对zpool进行重命名

导出(export) zpool-data ,相当于 umount
zpool export zpool-data

导入(import)

  • 检查当前可以导入的zpool,实际上就是 import 命令不带任何参数就能显示所有连接在系统上可供导入的zpool情况

不带参数运行 zpool import 可以显示系统可导入的zpool
zpool import

在我的实践案例中,可以看到前面 export 出去的 zpool-data :

不带参数运行 zpool import 看到可供导入的zpool
   pool: zpool-data
     id: 5275725886441536744
  state: ONLINE
 action: The pool can be imported using its name or numeric identifier.
 config:

	zpool-data                                      ONLINE
	  raidz1-0                                      ONLINE
	    media-24ED9B14-3BCA-5A40-AA78-B7BD9519C46A  ONLINE
	    media-91637621-ADB1-924E-8E42-8559BA206FB5  ONLINE
	    media-8F29B602-B301-CA4C-B9E8-BFD002D4352E  ONLINE
	    media-5B35033C-4D3E-3348-A941-0E8C08FCF975  ONLINE

可以看到待导入的zpool名字是 zpool-data ,并且是一个 raidz1 存储池

  • 导入存储池 zpool-data ,且重命名为 zpool-dataz

导入 zpool-data 存储池且重命名为 zpool-dataz
zpool import zpool-data zpool-dataz
  • 再次 zpool 检查:

检查zpool
zpool list

此时可以看到导入的zpool存储池已经被重命名成 zpool-dataz

可以看到zpool存储池名字已经改成了 zpool-dataz
NAME          SIZE  ALLOC   FREE  CKPOINT  EXPANDSZ   FRAG    CAP  DEDUP    HEALTH  ALTROOT
zpool-dataz  53.5G  8.96M  53.5G        -         -     0%     0%  1.00x    ONLINE  -
  • 检查 zfs :

zfs list
zfs list

可以看到 zpool-dataz 数据集被挂载为 /Volumes/zpool-dataz

zfs list
NAME          USED  AVAIL  REFER  MOUNTPOINT
zpool-dataz  2.02M  38.8G  1.76M  /Volumes/zpool-dataz

zpool导出/导入多个卷的存储池

zpool 导出( export ) 和 导入( import )存储池时候,会自动 umountmount 存储池中包含的子卷,所以操作非常方便。以下实践是 ZFS RaidZ 中为 zpool-dataz 创建过多个子卷的 导出/导入 操作:

  • 当前卷情况 zfs list :

zfs list 列出创建的卷
NAME                  USED  AVAIL  REFER  MOUNTPOINT
zpool-dataz          9.15M  38.8G  1.76M  /Volumes/zpool-dataz
zpool-dataz/docs     1.75M  38.8G  1.75M  /Volumes/zpool-dataz/docs
zpool-dataz/ebooks   1.75M  38.8G  1.75M  /Volumes/zpool-dataz/ebooks
zpool-dataz/movices  1.75M  38.8G  1.75M  /Volumes/zpool-dataz/movices
zpool-dataz/music    1.75M  38.8G  1.75M  /Volumes/zpool-dataz/music
  • 当前卷情况 df -h 显示已经挂载

df 可以看到创建的zfs卷
Filesystem             Size    Used   Avail Capacity iused ifree %iused  Mounted on
...
/dev/disk8s1           39Gi   1.8Mi    39Gi     1%     135   81M    0%   /Volumes/zpool-dataz
zpool-dataz/docs       39Gi   1.7Mi    39Gi     1%     115   81M    0%   /Volumes/zpool-dataz/docs
zpool-dataz/ebooks     39Gi   1.8Mi    39Gi     1%     115   81M    0%   /Volumes/zpool-dataz/ebooks
zpool-dataz/music      39Gi   1.7Mi    39Gi     1%     115   81M    0%   /Volumes/zpool-dataz/music
zpool-dataz/movices    39Gi   1.8Mi    39Gi     1%     115   81M    0%   /Volumes/zpool-dataz/movices
  • 执行 zpool export 导出存储池(卸载):

zpool export 存储池 zpool-dataz
zpool export zpool-dataz

可以看到子卷和存储卷都会自动卸载:

zpool export 存储池 zpool-dataz 卸载同时会umount所有子卷
Unmount successful for /Volumes/zpool-dataz/music
Unmount successful for /Volumes/zpool-dataz/movices
Unmount successful for /Volumes/zpool-dataz/ebooks
Unmount successful for /Volumes/zpool-dataz/docs
Volume zpool-dataz on disk8s1 unmounted

此时 df -h 将看不到 zpool-dataz 存储池和卷、子卷

  • 再次导入 zpool-dataz

zpool import 导入存储池 zpool-dataz
zpool import zpool-dataz

此时没有任何输出,但是观察 df -h 可以看到所有存储池中的卷都已经自动挂载:

df 可以看到导入存储池 zpool-dataz 后所有存储卷都自动挂载
Filesystem             Size    Used   Avail Capacity iused ifree %iused  Mounted on
...
/dev/disk8s1           39Gi   1.8Mi    39Gi     1%     135   81M    0%   /Volumes/zpool-dataz
zpool-dataz/docs       39Gi   1.7Mi    39Gi     1%     115   81M    0%   /Volumes/zpool-dataz/docs
zpool-dataz/ebooks     39Gi   1.8Mi    39Gi     1%     115   81M    0%   /Volumes/zpool-dataz/ebooks
zpool-dataz/music      39Gi   1.7Mi    39Gi     1%     115   81M    0%   /Volumes/zpool-dataz/music
zpool-dataz/movices    39Gi   1.8Mi    39Gi     1%     115   81M    0%   /Volumes/zpool-dataz/movices

参考