1. 简介:

据说zfs有去除重复数据的功能,无良人士继续要求吧samba共享盘使用的centos7上自带的xfs改成zfs,并且开启去重功能。samba配置见

http://www.cnblogs.com/demonzk/p/6518675.html

2. 环境:

OS:RHEL 7.3

kernel:

zfs:http://download.zfsonlinux.org/epel/zfs-release.el7_3.noarch.rpm

一些有用的文档:

官方网站:http://zfsonlinux.org/

RHEL & CentOS:https://github.com/zfsonlinux/zfs/wiki/RHEL-%26-CentOS

http://docs.huihoo.com/solaris/11.1/simplified-chinese/html/E36658/gayne.html#scrolltoc

3. 下载与安装:

由于zfs并不在安装盘或者epel中携带,需要去zfs的网站上下载yum源并且安装,并且配置好epel源。

yum源:yum localinstall --nogpgcheck http://download.zfsonlinux.org/epel/zfs-release.el7.noarch.rpm

yum安装:yum install -y zfs

Dependencies Resolved

===============================================================================================================================================================================================
Package Arch Version Repository Size
===============================================================================================================================================================================================
Installing:
zfs x86_64 0.6.5.9-1.el7_3.centos zfs 336 k
Installing for dependencies:
cpp x86_64 4.8.5-11.el7 ftp 5.9 M
dkms noarch 2.3-1.20161202gitde1dca9.el7 epel 78 k
gcc x86_64 4.8.5-11.el7 ftp 16 M
glibc-devel x86_64 2.17-157.el7 ftp 1.1 M
glibc-headers x86_64 2.17-157.el7 ftp 668 k
kernel-devel x86_64 3.10.0-514.el7 ftp 13 M
kernel-headers x86_64 3.10.0-514.el7 ftp 4.8 M
libmpc x86_64 1.0.1-3.el7 ftp 51 k
libnvpair1 x86_64 0.6.5.9-1.el7_3.centos zfs 38 k
libuutil1 x86_64 0.6.5.9-1.el7_3.centos zfs 43 k
libzfs2 x86_64 0.6.5.9-1.el7_3.centos zfs 125 k
libzpool2 x86_64 0.6.5.9-1.el7_3.centos zfs 425 k
mpfr x86_64 3.1.1-4.el7 ftp 203 k
perl x86_64 4:5.16.3-291.el7 ftp 8.0 M
perl-Carp noarch 1.26-244.el7 ftp 19 k
perl-Encode x86_64 2.51-7.el7 ftp 1.5 M
perl-Exporter noarch 5.68-3.el7 ftp 28 k
perl-File-Path noarch 2.09-2.el7 ftp 27 k
perl-File-Temp noarch 0.23.01-3.el7 ftp 56 k
perl-Filter x86_64 1.49-3.el7 ftp 76 k
perl-Getopt-Long noarch 2.40-2.el7 ftp 56 k
perl-HTTP-Tiny noarch 0.033-3.el7 ftp 38 k
perl-PathTools x86_64 3.40-5.el7 ftp 83 k
perl-Pod-Escapes noarch 1:1.04-291.el7 ftp 51 k
perl-Pod-Perldoc noarch 3.20-4.el7 ftp 87 k
perl-Pod-Simple noarch 1:3.28-4.el7 ftp 216 k
perl-Pod-Usage noarch 1.63-3.el7 ftp 27 k
perl-Scalar-List-Utils x86_64 1.27-248.el7 ftp 36 k
perl-Socket x86_64 2.010-4.el7 ftp 49 k
perl-Storable x86_64 2.45-3.el7 ftp 77 k
perl-Text-ParseWords noarch 3.29-4.el7 ftp 14 k
perl-Time-HiRes x86_64 4:1.9725-3.el7 ftp 45 k
perl-Time-Local noarch 1.2300-2.el7 ftp 24 k
perl-constant noarch 1.27-2.el7 ftp 19 k
perl-libs x86_64 4:5.16.3-291.el7 ftp 688 k
perl-macros x86_64 4:5.16.3-291.el7 ftp 43 k
perl-parent noarch 1:0.225-244.el7 ftp 12 k
perl-podlators noarch 2.5.1-3.el7 ftp 112 k
perl-threads x86_64 1.87-4.el7 ftp 49 k
perl-threads-shared x86_64 1.43-6.el7 ftp 39 k
spl x86_64 0.6.5.9-1.el7_3.centos zfs 29 k
spl-dkms noarch 0.6.5.9-1.el7_3.centos zfs 444 k
zfs-dkms noarch 0.6.5.9-1.el7_3.centos zfs 1.9 M Transaction Summary
===============================================================================================================================================================================================
Install 1 Package (+43 Dependent packages)

  

注意:一定要出现内核编译的提示才说明zfs的模块被正确编译进了内核,否则一定检查内核,我在第一次安装的时候由于是别人用过的机器,内核在装docker的时候被修改过,导致无法正确吧zfs编译进内核

Building for 3.10.0-514.el7.x86_64
Building initial module for 3.10.0-514.el7.x86_64
Done. spl:
Running module version sanity check.
- Original module
- No original module exists within this kernel
- Installation
- Installing to /lib/modules/3.10.0-514.el7.x86_64/extra/ splat.ko:
Running module version sanity check.
- Original module
- No original module exists within this kernel
- Installation
- Installing to /lib/modules/3.10.0-514.el7.x86_64/extra/
Adding any weak-modules depmod... DKMS: install completed.
Installing : spl-0.6.5.9-1.el7_3.centos.x86_64 42/44
Installing : zfs-dkms-0.6.5.9-1.el7_3.centos.noarch 43/44
Loading new zfs-0.6.5.9 DKMS files...
Building for 3.10.0-514.el7.x86_64
Building initial module for 3.10.0-514.el7.x86_64
Done. zavl:
Running module version sanity check.
- Original module
- No original module exists within this kernel
- Installation
- Installing to /lib/modules/3.10.0-514.el7.x86_64/extra/ znvpair.ko:
Running module version sanity check.
- Original module
- No original module exists within this kernel
- Installation
- Installing to /lib/modules/3.10.0-514.el7.x86_64/extra/ zunicode.ko:
Running module version sanity check.
- Original module
- No original module exists within this kernel
- Installation
- Installing to /lib/modules/3.10.0-514.el7.x86_64/extra/ zcommon.ko:
Running module version sanity check.
- Original module
- No original module exists within this kernel
- Installation
- Installing to /lib/modules/3.10.0-514.el7.x86_64/extra/ zfs.ko:
Running module version sanity check.
- Original module
- No original module exists within this kernel
- Installation
- Installing to /lib/modules/3.10.0-514.el7.x86_64/extra/ zpios.ko:
Running module version sanity check.
- Original module
- No original module exists within this kernel
- Installation
- Installing to /lib/modules/3.10.0-514.el7.x86_64/extra/
Adding any weak-modules depmod...

  

4. 配置

#加载模块
modprobe zfs
#创建资源池,资源池可以直接当做文件系统使用
zpool create -f zfspool sdb sdc
#打开数据去除重复功能
zfs set dedup=on zfspool
#打开压缩功能
zfs set compression=on zfspool
#最后记得修改文件夹的权限
chown :fred /zfspool
chmod g+w /zfspool

  

【Linux】【Services】【Disks】zfs的更多相关文章

  1. 【linux之挂载,Raid,LVM】

    一.挂载,卸载 挂载:将新的文件系统关联至当前根文件系统卸载:将某文件系统与当前根文件系统的关联关系移除 cat /etc/mtab 存储着已经挂载的文件系统 (跟 mount 一样) mount:显 ...

  2. 【Linux&Unix--open/close/write/read系统调用】

    个人学习整理.如有不足之处,请不吝不吝赐教. 转载请注明:@CSU-Max 系列博文:      Linux&Unix学习第一弹 -- 文件描写叙述符与权限  Linux&Unix学习 ...

  3. 【linux之设备,分区,文件系统】

    一.设备 IDE磁盘的设备文件采用/dev/hdx来命名,分区则采用/dev/hdxy来命名,其中x表示磁盘(a是第一块磁盘,b是第二块磁盘,以此类推), y代表分区的号码(由1开始,..3以此类推) ...

  4. 【linux之进程管理,系统监控】

    一.进程管理 前台进程:一般是指占据着标准输入和/或标准输出的进程后台进程:不占据默认开启的进程都是前台进程ctrl+C 中断ctrl+z 从前台转入后台bg 后台进程编号 让其在后台运行ls -R ...

  5. 【Linux磁盘优化管理--RAID和LVM】

    在现阶段的企业环境中,为了数据的安全性及完整性必须要有一个合理的存储方案.面对着每秒可能产生超过几TB的数据,考虑到磁盘能不能实现 热冗余,及扩容,缩容.Linux给出了RAID(磁盘阵列)以及LVM ...

  6. 【Linux 内核网络协议栈源码剖析】网络栈主要结构介绍(socket、sock、sk_buff,etc)

    原文:http://blog.csdn.net/wenqian1991/article/details/46700177 通过前面的分析,可以发现,网络协议栈中的数据处理,都是基于各类结构体,所有有关 ...

  7. 【linux之链接,函数,随机数】

    一.链接 硬链接(hard link):同一个文件使用了多个别名.新建文件是已经存在的一个别名,,当原文件删除时,新建的文件仍然可以使用.硬链接和原来的文件没有什么区别,而且共享一个inode号.通过 ...

  8. 【Linux运维-集群技术进阶】Nginx+Keepalived+Tomcat搭建高可用/负载均衡/动静分离的Webserver集群

    额.博客名字有点长.. . 前言 最终到这篇文章了,心情是有点激动的. 由于这篇文章会集中曾经博客讲到的全部Nginx功能点.包含主要的负载均衡,还有动静分离技术再加上这篇文章的重点.通过Keepal ...

  9. 5.2【Linux 内核网络协议栈源码剖析】socket 函数剖析 ☆☆☆

    深度剖析网络协议栈中的 socket 函数,可以说是把前面介绍的串联起来,将网络协议栈各层关联起来. 应用层 FTP SMTP HTTP ... 传输层 TCP UDP 网络层 IP ICMP ARP ...

  10. 【Linux下安装使用virtualenv与virtualenvwrapper】

    virtualenv virtualenv是一个可以帮助我们管理不同Python环境的绝好工具. virtualenv是一个可以在系统中建立多个不同且相互不干扰的虚拟环境. 下面的步骤将创建两个独立的 ...

随机推荐

  1. redis数据存储的细节

    redis是一个K-V NoSql非关系型数据库,redis有物种数据类型,分别是String,Hash,list,set,zset:这五种类型都是针对K-V中的V设计的. 1.总体介绍:关于redi ...

  2. Python学习周总结(一)

    Python-FirstWeek知识汇总 学习了一周python,最大的感触就是要有自己的逻辑思维和发散性思维,考虑事物的广度,层层相扣即使数学逻辑不会,基本的程序功能还是可以实现的,共勉,加油~ 一 ...

  3. CrawlSpider_获取图片名称地址,及入库

    1.继承自scrapy.Spider 2.独门秘笈 CrawlSpider可以定义规则,再解析html内容的时候,可以根据链接规则提取出指定的链接,然后再向这些链接发送请求 所以,如果有需要跟进链接的 ...

  4. python实现轮廓发现

    目录: (一)轮廓发现的介绍 (二)代码实现 (1)使用直接使用阈值方法threshold方法获取二值化图像来选择轮廓 (2)使用canny边缘检测获取二值化图像 (一)轮廓发现的介绍与API的介绍 ...

  5. [loj3284]Exercise

    对于一个排列$p_{i}$,假设循环长度依次为$x_{1},x_{2},...,x_{m}$,那么所需步数即${\rm lcm}_{i=1}^{m}x_{i}$ 由于是乘积,因此可以枚举素数$p$,并 ...

  6. [gym102769L]Lost Temple

    考虑第$i$列的答案,即找到一个区间$[l,r]$,使得: 1.$l$和$r$要同奇偶,令$ans=\frac{r-l}{2}$,要求尽量大($ans+1$即为该列答案) 2.$\forall 0\l ...

  7. [bzoj3329]Xorque

    首先将问题转化为2x^x=3x,那么相当于让x右移一位和原数的1不相交,即不含有相邻的1,第一个问题可以直接数位dp,第二个问题可以类似dp+矩乘优化即可 1 #include<bits/std ...

  8. JVM的Xms Xmx PermSize MaxPermSize区别

    Eclipse崩溃,错误提示:MyEclipse has detected that less than 5% of the 64MB of Perm Gen (Non-heap memory) sp ...

  9. jvm的小练习

    代码如下: public static void main(String[] args) { byte[] array= new byte[1024*1024]; array=new byte[102 ...

  10. SpringCloud微服务实战——搭建企业级开发框架(二十五):实现多租户多平台短信通知服务

    目前系统集成短信似乎是必不可少的部分,由于各种云平台都提供了不同的短信通道,这里我们增加多租户多通道的短信验证码,并增加配置项,使系统可以支持多家云平台提供的短信服务.这里以阿里云和腾讯云为例,集成短 ...