CentOS7.6 安装ZFS并创建Raid
ZFS是一个128位的文件系统,支持逻辑卷,Raid,快照和其他高级文件系统功能。
在linux下zfs的模块有两种加载到内核的方式dkms和kabi。
它们区别在于如果安装了基于dkms的zfs模块,以后如果更新了系统内核,则必须重新编译zfs内核模块,否则无法使用。
如果基于kabi的zfs模块则具有优势,因为更新了操作系统的内核,它并不需要重新编译。
系统为五盘20G环境sdb、sdc、sdd、sde、sdf
确定系统版本
cat /etc/redhat-release
安装对应系统版本的ZFS源
yum install http://download.zfsonlinux.org/epel/zfs-release.el7_6.noarch.rpm
编辑ZFS源,启用kabi
#zfs源默认是启用基于dkms,需要禁用dkms并启用kabi vi /etc/yum.repos.d/zfs.repo 找到[zfs]节点,将enabled=1改为enabled=0,禁用了dkms 找打[zfs-kmod]节点,将enabled=0改为enabled=1,开启kABI
安装ZFS
yum install -y zfs reboot
加载ZFS模块
lsmod | grep zfs #如果输出结果为空,则zfs内核模块没有被系统加载,需要手动加载zfs内核模块 modprobe zfs
创建ZFS Strip存储池
Stripe(RAID0)磁盘带条,至少需要一个磁盘
zpool create ZFS /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf zpool list
df -h
zpool status
创建了一个名字为ZFS的存储池,容量大小97G的空间,并挂载在/ZFS下
创建ZFS 2-way Mirror 存储池
Mirror(RAID1)磁盘镜像,至少需要两个磁盘
zpool create ZFS1 mirror sdb sdc mirror sdd sde
创建ZFS 3-Way Mirror 存储池
Mirror(RAID1)磁盘镜像,至少需要两个磁盘
zpool create ZFS31 mirror sdb sdc sdd
创建ZFS RaidZ1 存储池
RAIDZ1(RAID5)一重奇偶校验,至少需要三个磁盘
zpool create ZFS2 raidz sdb sdc sdd sde sdf
创建ZFS RaidZ2 存储池
RAIDZ2(RAID6)双重奇偶校验,至少需要四个磁盘
zpool create ZFS22 raidz2 sdb sdc sdd sde sdf
创建ZFS RaidZ3 存储池
RAIDZ3(ZFS特有)三重奇偶校验,至少需要五个磁盘
zpool create ZFS23 raidz3 sdb sdc sdd sde sdf
其他操作
1. 更改ZFS存储池使用权限
groupadd vmos_group useradd -g vmos_group vmos_user su - vmos mkdir /ZFS/test #系统提示mkdir: cannot create directory ‘/ZFS/test’: Permission denied #原因是默认情况下zfs存储池只允许root用户写入,如果普通用户需要写入zfs存储池,则必须更改zfs存储池权限 #chown -Rfv USERNAME:GROUPNAME /POOL_NAME chown -Rfv vmos_user:vmos_group /ZFS #系统提示changed ownership of ‘/ZFS’ from root:root to vmos_user:vmos_group
2. 删除zfs存储池
zpool destroy ZFS #如果系统提示umount: /ZFS: target is busy. # (In some cases useful info about processes that use # the device is found by lsof(8) or fuser(1)) # cannot unmount '/ZFS': umount failed # could not destroy 'ZFS': could not unmount datasets
yum install -y psmisc fuser -cu /ZFS fuser -ck /ZFS 再次执行销毁zfs命令
3. ZFS模拟故障
三块盘2G盘环境,sdb、sdc、sde,先创建一个2盘的mirror存储池,并不加入热备盘
zpool create TEST mirror sdb sdc
对sdc写满数据
dd if=/dev/zero of=/dev/sdc
对存储池进行查错
zpool scrub TEST zpool status
将sdd更换掉池中的故障sdc
zpool replace TEST sdc sdd; zpool status
过一会
存储池恢复正常
4. ZFS创建和删除文件系统
zfs create TEST/123 zfs create TEST/456 zfs destroy TEST/123 zfs destroy TEST/456
文件系统创建后,文件挂载点会自动挂上
5. ZFS文件系统压缩
zfs set compression=lz4 TEST/123 zfs get compressratio TEST/123
6. ZFS文件系统配额
zfs set quota=1000M TEST/123 zfs set reservation=1000M TEST/123 zfs list
7. ZFS存储池设备管理
先创建一个名为POOL的Strip两盘存储池
zpool create POOL sdb sdc
再向存储池中添加一块盘
zpool add POOL sdd
删除刚加入存储池的sdd
zpool remove POOL sdd #系统提示cannot remove sdd: only inactive hot spares, cache, or log devices can be removed 因为只有热备盘和缓存盘或者日志设备,才可以被这样移除
向存储池中添加一块热备盘
zpool add POOL spare sde zpool autoreplace=on POOL #加入热备盘后,可以在存储池中使用autoreplace特性 (zfs attribute)
存储池中删除刚添加的热备盘
zpool remove POOL sde
8. ZFS存储池io统计
zpool iostat -v
9. ZFS快照
原目录文件夹有三个
对此文件夹打快照并查看快照表
zfs snapshot TEST/456@2019-0220 zfs snapshot TEST/456@2019-02201 zfs list -t snapshot
删除一个文件夹aix,然后进入快照目录
rm -rf aix cd .zfs cd snapshot/ ls
原文件夹还在
删除快照
zfs destroy TEST/456@2019-02201
本站所有文章均可随意转载,转载时请保留原文链接及作者。