因centos9默认没有配置zfs的repo源,所以直接yum无法安装,需要先安装zfs-release的源,然后就很顺利了。
1、zfs简介
ZFS文件系统的英文名称为Zettabyte File System,也叫动态文件系统(Dynamic File System),是第一个128位文件系统。最初是由Sun公司为Solaris 10操作系统开发的文件系统。作为OpenSolaris开源计划的一部分,ZFS于2005年11月发布,被Sun称为是终极文件系统,经历了 10 年的活跃开发。而最新的开发将全面开放,并重新命名为 OpenZFS。
没啥好说的直接百度了。
个人对zfs介绍: zfs 俗称软raid或raidz,无需专用的raid卡硬件即可使用zpool命令来组raid阵列,同时也可以在已有硬件raid基础上继续组软raid,还可以在自己raidz的基础上再组raidz,方便无专业硬件但需要做raid阵列的朋友。另外,zfs的raidz的数据恢复,导出备份等相比硬件raid更快,无需全盘扫描,添加和删除raid中的磁盘也非常方便。当然raidz需要消耗一定的cpu和内存资源,其速度也与自己配置缓存和raid类型及层级结构有关系。具体不在详细介绍,先装上使用再说:
2、zfs源的安装配置
####安装zfs源
yum install http://download.zfsonlinux.org/epel/zfs-release-2-2.el9.noarch.rpm
####需要安装其他版本或其他系统对应的源可以浏览前面链接,直接在浏览器打开即可:
http://download.zfsonlinux.org/epel/
安装中的key之类的直接yes同意就行, 需要安装的依赖很长,这里不展示了。
安装完后需要启用zfs的内核:
###按提示操作即可:
modprobe zfs
新安装未配置raidz,所以无pool可查看
但如果系统之前已安装并配置过zpool,可直接import就行了。
3、已有zpool 导入
注意事项:写在前面哈,注意以后pool导入前一定要确认磁盘没有多余的外来zpool,否则可能会乱并丢失数据。
###导入已有zpool
zpool import
[root@n2 Downloads]# zpool import
pool: zfs2
id: 9815308018763595151
state: ONLINE
status: The pool was last accessed by another system.
action: The pool can be imported using its name or numeric identifier and
the '-f' flag.
see: https://openzfs.github.io/openzfs-docs/msg/ZFS-8000-EY
config:
zfs2 ONLINE
raidz1-0 ONLINE
scsi-350014ee268306522 ONLINE
scsi-35000039a3288bb85 ONLINE
sdc ONLINE
因被识别到之前是在其他系统建立的,要import需要添加-f,强制导入,zfs版本跨度大时导入有一定风险,一般建议提前导出后再在新系统中导入。
##导入时直接指定zpool的名称,并添加 -f参数
zpool import -f zfs2
导入完成后使用df 查看即可看到新导入的zfs文件。
3. 新raidz建立
先查看需要组raidz的硬盘,无论新盘还是老盘,最好先擦除一遍,防止以后raid信息扰乱
###查看可需要组raid的磁盘
[root@n2 /]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 1.9T 0 disk
sdb 8:16 0 1.9T 0 disk
sdc 8:32 0 1.8T 0 disk
sdd 8:48 0 558.4G 0 disk
├─sdd1 8:49 0 1G 0 part /boot
└─sdd2 8:50 0 557.4G 0 part
├─cs-root 253:0 0 70G 0 lvm /
├─cs-swap 253:1 0 4G 0 lvm [SWAP]
└─cs-home 253:4 0 483.4G 0 lvm /home
sde 8:64 0 1.8T 0 disk
sdf 8:80 0 1.8T 0 disk
sr0 11:0 1 1024M 0 rom
###我这里是sdc、sde、sdf
然后组raid的命令根据自己需要进行执行,三个盘可组raidz1,相当于硬件raid5
###组raidz1,加-f强制删除磁盘已有数据
zpool create -f zfs2 raidz1 sdc sde sdf
###成功后,lsblk查看组raidz的盘每个都有两个分区。
[root@n2 /]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 1.9T 0 disk
sdb 8:16 0 1.9T 0 disk
sdc 8:32 0 1.8T 0 disk
├─sdc1 8:33 0 1.8T 0 part
└─sdc9 8:41 0 8M 0 part
sdd 8:48 0 558.4G 0 disk
├─sdd1 8:49 0 1G 0 part /boot
└─sdd2 8:50 0 557.4G 0 part
├─cs-root 253:0 0 70G 0 lvm /
├─cs-swap 253:1 0 4G 0 lvm [SWAP]
└─cs-home 253:4 0 483.4G 0 lvm /home
sde 8:64 0 1.8T 0 disk
├─sde1 8:65 0 1.8T 0 part
└─sde9 8:73 0 8M 0 part
sdf 8:80 0 1.8T 0 disk
├─sdf1 8:81 0 1.8T 0 part
└─sdf9 8:89 0 8M 0 part
sr0 11:0 1 1024M 0 rom
###查看pool状态
[root@n2 /]# zpool status
pool: zfs2
state: ONLINE
config:
NAME STATE READ WRITE CKSUM
zfs2 ONLINE 0 0 0
raidz1-0 ONLINE 0 0 0
scsi-350014ee268306522 ONLINE 0 0 0
scsi-35000039a3288bb85 ONLINE 0 0 0
sdc ONLINE 0 0 0
errors: No known data errors
其他zfs相关操作请查看本人博客或直接搜索吧。
有不足之处请指出。