在 Oracle® Solaris 11.2 中管理 ZFS 文件系统

退出打印视图

更新时间: 2014 年 12 月
 
 

向存储池中添加设备

通过添加新的顶层虚拟设备,可以向池中动态添加磁盘空间。此磁盘空间立即可供池中的所有数据集使用。要向池中添加新虚拟设备,请使用 zpool add 命令。例如:

# zpool add zeepool mirror c2t1d0 c2t2d0

用于指定虚拟设备的格式与 zpool create 命令中使用的虚拟设备格式相同。将对设备进行检查,确定是否正在使用这些设备,此命令在不使用 –f 选项的情况下无法更改冗余级别。此命令还支持 –n 选项,以便可以执行预运行。例如:

# zpool add -n zeepool mirror c3t1d0 c3t2d0
would update 'zeepool' to the following configuration:
zeepool
mirror
c1t0d0
c1t1d0
mirror
c2t1d0
c2t2d0
mirror
c3t1d0
c3t2d0

此命令语法会将镜像设备 c3t1d0c3t2d0 添加到 zeepool 池的现有配置中。

有关如何执行虚拟设备验证的更多信息,请参见检测使用中的设备

示例 3-1  向镜像 ZFS 配置中添加磁盘

在以下示例中,向现有的镜像 ZFS 配置添加了另一个镜像。

# zpool status tank
pool: tank
state: ONLINE
scrub: none requested
config:

NAME           STATE     READ  WRITE  CKSUM
tank           ONLINE       0      0      0
   mirror-0    ONLINE       0      0      0
      c0t1d0   ONLINE       0      0      0
      c1t1d0   ONLINE       0      0      0
   mirror-1    ONLINE       0      0      0
      c0t2d0   ONLINE       0      0      0
      c1t2d0   ONLINE       0      0      0

errors: No known data errors
# zpool add tank mirror c0t3d0 c1t3d0
# zpool status tank
pool: tank
state: ONLINE
scrub: none requested
config:

NAME           STATE     READ  WRITE  CKSUM
tank           ONLINE       0      0      0
   mirror-0    ONLINE       0      0      0
      c0t1d0   ONLINE       0      0      0
      c1t1d0   ONLINE       0      0      0
   mirror-1    ONLINE       0      0      0
      c0t2d0   ONLINE       0      0      0
      c1t2d0   ONLINE       0      0      0
   mirror-2    ONLINE       0      0      0
      c0t3d0   ONLINE       0      0      0
      c1t3d0   ONLINE       0      0      0

errors: No known data errors
示例 3-2  向 RAID-Z 配置中添加磁盘

可按类似方式向 RAID-Z 配置中添加其他磁盘。以下示例说明如何将包含一个 RAID-Z 设备(含 3 个磁盘)的存储池转换为包含两个 RAID-Z 设备(各含 3 个磁盘)的存储池。

# zpool status rzpool
pool: rzpool
state: ONLINE
scrub: none requested
config:

NAME           STATE     READ  WRITE  CKSUM
rzpool         ONLINE       0      0      0
   raidz1-0    ONLINE       0      0      0
      c1t2d0   ONLINE       0      0      0
      c1t3d0   ONLINE       0      0      0
      c1t4d0   ONLINE       0      0      0

errors: No known data errors
# zpool add rzpool raidz c2t2d0 c2t3d0 c2t4d0
# zpool status rzpool
pool: rzpool
state: ONLINE
scrub: none requested
config:

NAME           STATE     READ  WRITE  CKSUM
rzpool         ONLINE       0      0      0
   raidz1-0    ONLINE       0      0      0
      c1t2d0   ONLINE       0      0      0
      c1t3d0   ONLINE       0      0      0
      c1t4d0   ONLINE       0      0      0
   raidz1-1    ONLINE       0      0      0
      c2t2d0   ONLINE       0      0      0
      c2t3d0   ONLINE       0      0      0
      c2t4d0   ONLINE       0      0      0

errors: No known data errors
示例 3-3  添加和删除镜像日志设备

以下示例说明如何向镜像存储池中添加镜像日志设备。

# zpool status newpool
pool: newpool
state: ONLINE
scrub: none requested
config:

NAME           STATE     READ  WRITE  CKSUM
newpool        ONLINE       0      0      0
   mirror-0    ONLINE       0      0      0
      c0t4d0   ONLINE       0      0      0
      c0t5d0   ONLINE       0      0      0

errors: No known data errors
# zpool add newpool log mirror c0t6d0 c0t7d0
# zpool status newpool
pool: newpool
state: ONLINE
scrub: none requested
config:


NAME           STATE     READ  WRITE  CKSUM
newpool        ONLINE       0      0      0
   mirror-0    ONLINE       0      0      0
      c0t4d0   ONLINE       0      0      0
      c0t5d0   ONLINE       0      0      0
logs
   mirror-1    ONLINE       0      0      0
      c0t6d0   ONLINE       0      0      0
      c0t7d0   ONLINE       0      0      0

errors: No known data errors

可以将日志设备附加到现有日志设备,以创建镜像日志设备。此操作等同于在未镜像的存储池中附加设备。

您可以使用 zpool remove 命令移除日志设备。通过指定 mirror-1 参数,可以删除上例中的镜像日志设备。例如:

# zpool remove newpool mirror-1
# zpool status newpool
pool: newpool
state: ONLINE
scrub: none requested
config:

NAME           STATE     READ  WRITE  CKSUM
newpool        ONLINE         WRITE  CKSUM
   mirror-0    ONLINE       0      0      0
      c0t4d0   ONLINE       0      0      0
      c0t5d0   ONLINE       0      0      0

errors: No known data errors

如果池配置仅包含一个日志设备,应通过指定设备名称的方式移除该日志设备。例如:

# zpool status pool
pool: pool
state: ONLINE
scrub: none requested
config:

NAME           STATE     READ  WRITE  CKSUM
pool           ONLINE       0      0      0
   raidz1-0    ONLINE       0      0      0
      c0t8d0   ONLINE       0      0      0
      c0t9d0   ONLINE       0      0      0
   logs
      c0t10d0     ONLINE    0     0     0

errors: No known data errors
# zpool remove pool c0t10d0
示例 3-4  添加和删除高速缓存设备

可以向 ZFS 存储池中添加高速缓存设备,不再需要时可以删除。

可使用 zpool add 命令添加高速缓存设备。例如:

# zpool add tank cache c2t5d0 c2t8d0
# zpool status tank
pool: tank
state: ONLINE
scrub: none requested
config:

NAME           STATE     READ  WRITE  CKSUM
tank           ONLINE       0      0      0
   mirror-0    ONLINE       0      0      0
      c2t0d0   ONLINE       0      0      0
      c2t1d0   ONLINE       0      0      0
      c2t3d0   ONLINE       0      0      0
   cache
      c2t5d0   ONLINE       0      0      0
      c2t8d0   ONLINE       0      0      0

errors: No known data errors

高速缓存设备不能镜像或成为 RAID-Z 配置的一部分。

可使用 zpool remove 命令删除高速缓存设备。例如:

# zpool remove tank c2t5d0 c2t8d0
# zpool status tank
pool: tank
state: ONLINE
scrub: none requested
config:

NAME           STATE     READ  WRITE  CKSUM
tank           ONLINE       0      0      0
   mirror-0    ONLINE       0      0      0
      c2t0d0   ONLINE       0      0      0
      c2t1d0   ONLINE       0      0      0
      c2t3d0   ONLINE       0      0      0

errors: No known data errors

目前,zpool remove 命令仅支持删除热备件、日志设备和高速缓存设备。可以使用 zpool detach 命令删除属于主镜像池配置的设备。非冗余设备和 RAID-Z 设备无法从池中删除。

有关在 ZFS 存储池中使用高速缓存设备的更多信息,请参见创建使用高速缓存设备的 ZFS 存储池