RHEL(Redhat)7.6源码编译安装zfs-0.7.13

存储设备 0 2050 左昆豫 收藏

源码编译安装zfs

yum -y install gcc gcc-c++ autoconf automake kernel*
yum install kernel-devel zlib-devel libuuid-devel libblkid-devel libselinux-devel parted lsscsi libattr-devel
tar zxvf spl-0.7.13.tar.gz
cd spl-0.7.13/
./configure && make all && make install all
tar zxvf zfs-0.7.13.tar.gz
cd zfs-0.7.13/
./configure && make all && make install all


开机加载zfs模块

vim /etc/rc.local


depmod -a
modprobe spl
modprobe zfs

zpool存储池

一旦创建一个池,从池中可以添加或删除热备件和缓存设备。

从镜像池和替换设备中连接或者分离,但是冗余和raidz设备不能从池中删除。

-f  强制使用vdev,即使它们出现在使用中或指定了冲突复制级别。并非所有设备都能以这种方式被覆盖。

创建raidz存储池

zpool create -f mydata raidz sdb sdc sdd sde sdf sdg sdh sdi sdj sdk

  #raidz镜像池

创建磁盘镜像存储池

zpool create -f mpool mirror sdc sdd mirror sde sdf

    # 每两个磁盘镜像池

存储池添加空闲磁盘

zpool add mydata spare sdg

存储池删除空闲磁盘:

zpool remove testpool sdf

存储池添加cache磁盘

zpool add mydata cache sdg

存储池删除cache磁盘:

zpool remove testpool sdf

查看存储池状态:

zpool  status

查看存储池列表

zpool list

销毁存储池:

zpool  destroy loongsonpool

检测损坏:

zpool scrub testpool

替换坏盘(sdd替换sdc):

zpool replace testpool sdc sdd

zpool导入导出:

    应显式导出存储池,以表明可随时将其迁移。此操作会将任何未写入的数据刷新到磁盘,将数据写入磁盘以表明导出已完成,并从系统中删除有关池的所有信息。如果不显式导出池,而是改为手动删除磁盘,则仍可以在其他系统中导入生成的池。但是,可能会丢失最后几秒的数据事务,并且由于设备不再存在,该池在原始系统中可能会显示为处于故障状态。

    缺省情况下,目标系统无法导入未显式导出的池。为防止意外导入包含仍在其他系统中使用的网络连接存储器的活动池,此条件是必要的。

    尝试取消挂载池中任何已挂载的文件系统,然后再继续执行。如果无法取消挂载任何文件系统,则可以使用 -f 选项强制取消挂载这些文件系统。执行此命令后,池 tank 在系统中即不再可见。如果在导出时设备不可用,则无法将设备标识为正常导出。如果之后将某个这样的设备附加到不包含任何工作设备的系统中,则该设备的状态会显示为“可能处于活动状态”。如果 ZFS 卷在池中处于使用状态,即使使用 -f 选项,也无法导出池。要导出包含 ZFS 卷的池,请首先确保卷的所有使用者都不再处于活动状态。

存储池强制导出

zpool export -f mydata

存储池导出

zpool export mydata

存储池导入

zpool import mydata

查看可导入的存储池

zpool import

存储池I/O统计查看

zpool iostat -v mydata


zfs文件系统

在文件系统创建时尽管没有挂载点,挂载点创建时使用相同的路径关系池。

ZFS创建允许使用-o选项可以指定使用像挂载点,压缩、定额、执行等。

查看zfs所有设置参数

zfs get all

创建zfs文件系统

zfs create mydata/students

查看zfs文件系统列表

zfs list

销毁文件系统

zfs destroy mydata/students



zfs压缩

压缩和解压缩将以透明模式发生在文件系统上面。

使用lz4算法压缩:

zfs set compression=lz4 mydata/students

查看压缩比

zfs get compressratio mydata/students


zfs去重

去重会消耗较多内存和CPU,影响系统性能,ZFS默认关闭

开启去重:zfs set dedup=on mydata/students

指定指纹的计算算法:zfs set dedup=fletcher4 mydata/students



配额、预定

配额确保文件系统使用的磁盘空间的数量不超过规定的限度。

预定有助于在实际分配和保证所需的磁盘空间的数量是可用的文件系统。

配额:

zfs set quota=2G mydata/students

预定:

zfs set reservation=2G mydata/students


zfs快照

创建根池的递归快照:

zfs snapshot -r mydata@20190411

zfs文件系统创建快照:

zfs snapshot mydata/students@20190411

zfs文件系统快照路径:

/mydata/students/.zfs/snapshot/20190411

查看zfs快照列表

zfs list -t snapshot

zfs销毁快照

zfs destroy mydata/students@20190411


可以使用 zfs rollback 命令放弃自特定快照创建以来对文件系统所做的全部更改。

文件系统恢复到创建快照时的状态。缺省情况下,该命令无法回滚到除最新快照以外的快照。

要回滚到早期快照,必须销毁所有的中间快照。可以通过指定 -r 选项销毁早期的快照。

如果存在任何中间快照的克隆,则还必须指定 -R 选项以销毁克隆

快照恢复:

zfs rollback mydata/students@20190411

快照强制恢复:

zfs rollback -r mydata/students@20190411

恢复部分文件:

进入快照路径,恢复(拷贝出)文件,".zfs"目录隐藏不可见。

 

挂载zfs文件系统:

zfs set mountpoint=/mydata/students  mydata/students


卸载zfs文件系统:

  1. zfs set      mountpoint=none mydata/students
  2. umount       /mydata/students

nfs共享

在 sharenfs 或 sharesmb 属性设置为 on 之前,不会发布共享。

不需修改配置文件/etc/export设置nfs

创建nfs共享:

zfs set sharenfs=on mypool/students
zfs share mypool/students


创建smb共享:

zfs set sharesmb=on mypool/students
zfs share mypool/students


客户端挂载zfs文件系统

mount -t nfs 10.100.20.49:/mypool/students /media

相关推荐:

网友留言:

您需要 登录账户 后才能发表评论

我要评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。
验证码