Solaris ZFS文件系统rpool扩容

ZFS文件系统简介

Solaris10默认的文件系统是ufs(Unix Filesystem),当然也可以选装zfs;Solaris11默认的文件系统是zfs(Zettabyte Filesystem)。

ZFS文件系统的英文名称为Zettabyte File System,也叫动态文件系统(Dynamic File System),是第一个128位文件系统。最初是由Sun公司为Solaris 10操作系统开发的文件系统。作为OpenSolaris开源计划的一部分,ZFS于2005年11月发布,被Sun称为是终极文件系统。ZFS是基于存储池,与典型的映射物理存储设备的传统文件系ZFS统不同,ZFS所有在存储池中的文件系统都可以使用存储池的资源。

ZFS 是一个组合文件系统和逻辑卷管理器。

ZFS 的功能包括防止数据损坏、高存储容量 (256 ZiB)、快照和写入时复制克隆以及连续完整性检查等。

如果您正在处理大量数据,或者为虚拟化提供后备文件系统,ZFS 是一个不错的选择。

ZFS和OpenZFS

2013年,OpenZFS成立,旨在协调开源ZFS的开发。截至2019年,OpenZFS中超过50%的原始OpenSolaris ZFS代码已经被社区贡献的代码所取代,使得“Oracle ZFS”和“OpenZFS”在体制上和技术上不兼容。
OpenZFS是一个开源存储平台。它包括传统文件系统和卷管理器的功能(此为独特之处)。它具有许多高级功能。

存储池及其分类

存储池是一种设备集合,提供 ZFS 数据集的物理存储和数据复制。存储池内的所有数据集共享同一个空间。ZFS 存储池是为数据集提供空间的设备的逻辑集合。存储池也是 ZFS 文件系统分层结构的根。

zpool 命令配置 ZFS 存储池。

Basic Storage Pool

# zpool create tank c1t0d0 c1t1d0

Mirrored Storage Pool

# zpool create tank mirror c1d0 c2d0 mirror c3d0 c4d0

RAID-Z Storage Pool

# zpool create tank raidz c1t0d0 c2t0d0 c3t0d0 c4t0d0 /dev/dsk/c5t0d0

ZFS Root Pool

根池在所有类型的存储池中,属于比较特殊的:

1、根池必须创建为镜像配置或单磁盘配置。使用zpool add命令不能增加磁盘以创建多个镜像顶级虚拟设备,但可以使用zpool attach命令扩展镜像虚拟设备。

2、根池不支持RAID-Z和striped 配置。

3、根池不能有单独的日志设备。

扩展根池

这里说是硬盘扩容,不如说是更换硬盘。案例:将15G的系统盘替换为50G的系统盘(并不能想LVM一样将两块盘都绑定到LV,然后挂载到/)。

1、查看当前的存储池,目前只有rpool,大小为15G

# zpool list
NAME    SIZE  ALLOC  FREE  CAP  DEDUP  HEALTH  ALTROOT
rpool  15.6G  15.0G  618M  96%  1.00x  ONLINE  -
# zpool status  rpool 
  pool: rpool
 state: ONLINE
  scan: none requested
config:

        NAME      STATE      READ WRITE CKSUM
        rpool     ONLINE        0     0     0
          c2t0d0  ONLINE        0     0     0

2、查看当前磁盘设备

# format
Searching for disks...done


AVAILABLE DISK SELECTIONS:
       0. c2t0d0 <VMware-Virtual disk-2.0-16.00GB>
          /pci@0,0/pci15ad,1976@10/sd@0,0
       1. c2t1d0 <VMware-Virtual disk-2.0-50.00GB>
          /pci@0,0/pci15ad,1976@10/sd@1,0

3、将new_device附加到storage pool,前面我们说过rpool不支持zpool add 只支持zpool attach。attach后会将old_device的数据同步到new_device,并且rpool也从“单磁盘”配置自动转换为“镜像”配置。

# 命令解释:

zpool attach [-f] pool  device new_device

将new_device附加到现有的zpool设备。现有设备不能作为raidz配置的一部分。如果device当前不是镜像配置的一部分,则device自动转换为device和new_device的双向镜像。如果device是双向镜像的一部分,则附加new_device将创建一个三向镜像,依此类推。在任何一种情况下,new_device都立即开始恢复。

zpool add [-f] [-n [-l]] pool vdev ...

将指定的虚拟设备添加到给定的池中。

# zpool attach rpool c2t0d0 c2t1d0

Make sure to wait until resilver is done before rebooting.
# zpool status  rpool
  pool: rpool
 state: DEGRADED
status: One or more devices are currently being resilvered.  The pool will
        continue to function in a degraded state.
action: Wait for the resilver to complete.
        Run 'zpool status -v' to see device specific details.
  scan: resilver in progress since Fri Mar 23 16:06:21 2001
    284M scanned out of 15.0G at 3.11M/s, 1h20m to go
    271M resilvered, 1.85% done
config:

        NAME        STATE      READ WRITE CKSUM
        rpool       DEGRADED      0     0     0
          mirror-0  DEGRADED      0     0     0
            c2t0d0  ONLINE        0     0     0
            c2t1d0  DEGRADED      0     0     0  (resilvering)
# zpool status  rpool
  pool: rpool
 state: ONLINE
  scan: resilvered 14.0G in 32m36s with 0 errors on Fri Mar 23 16:38:57 2001

config:

        NAME        STATE      READ WRITE CKSUM
        rpool       ONLINE        0     0     0
          mirror-0  ONLINE        0     0     0
            c2t0d0  ONLINE        0     0     0
            c2t1d0  ONLINE        0     0     0

errors: No known data errors

4、将old_device从rpool中分离

命令解释:

zpool detach pool  device

该命令用于从镜像存储池中分离设备或备件。如果物理更换了RAID-Z存储池中的设备,也可以将备用设备从RAID-Z存储池中分离出来。或者,如果RAID-Z存储池中已有设备被备用设备替换,则可以卸载该设备。如果没有其他有效的数据副本,则拒绝该操作。

# zpool detach rpool c2t0d0 

5、设置rpool自动扩展

命令解释:

zpool set autoexpand=on | off

控制底层LUN扩容时自动扩容池。

如果设置为on,池的大小将根据扩展设备的大小进行调整。如果该设备是镜像或raidz的一部分,那么在池使用新空间之前,必须对该镜像或raidz组中的所有设备进行扩展。默认off。可以使用缩写expand来代替autoexpand。

请勿使用format命令获取新的LUN大小,并对其重新打标签。zpool会自动反映新的LUN大小。

# zpool set autoexpand=on rpool

6、检验是否成功

# zfs list
NAME                               USED  AVAIL  REFER  MOUNTPOINT
rpool                             15.0G  33.8G  4.33M  /rpool
rpool/ROOT                        3.01G  33.8G    31K  none
rpool/ROOT/solaris                3.01G  33.8G  2.64G  /
rpool/ROOT/solaris/var             315M  33.8G   315M  /var
rpool/VARSHARE                    35.4M  33.8G  2.74M  /var/share
rpool/VARSHARE/kvol               27.7M  33.8G    31K  /var/share/kvol
rpool/VARSHARE/kvol/dump_summary  1.22M  33.8G  1.02M  -
rpool/VARSHARE/kvol/ereports      10.2M  33.8G  10.0M  -
rpool/VARSHARE/kvol/kernel_log    16.2M  33.8G  16.0M  -
rpool/VARSHARE/pkg                  63K  33.8G    32K  /var/share/pkg
rpool/VARSHARE/pkg/repositories     31K  33.8G    31K  /var/share/pkg/repositories
rpool/VARSHARE/sstore             4.75M  33.8G  4.75M  /var/share/sstore/repo
rpool/VARSHARE/tmp                  31K  33.8G    31K  /var/tmp
rpool/VARSHARE/zones                31K  33.8G    31K  /system/zones
rpool/dump                        2.00G  33.8G  2.00G  -
rpool/export                      8.97G  33.8G    32K  /export
rpool/export/home                 8.97G  33.8G    32K  /export/home
rpool/export/home/xiao            8.97G  33.8G  8.97G  /export/home/xiao
rpool/swap                        1.00G  33.8G  1.00G  -
# zpool list
NAME    SIZE  ALLOC   FREE  CAP  DEDUP  HEALTH  ALTROOT
rpool  49.6G  15.0G  34.6G  30%  1.00x  ONLINE  -
# zpool status  rpool
  pool: rpool
 state: ONLINE
  scan: resilvered 14.0G in 32m36s with 0 errors on Fri Mar 23 16:38:57 2001

config:

        NAME      STATE      READ WRITE CKSUM
        rpool     ONLINE        0     0     0
          c2t1d0  ONLINE        0     0     0

errors: No known data errors
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值