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. 团队作业3--需求改进&系统

    需求改进&系统设计 这个作业属于哪个课程 软件工程 这个作业要求在哪里 作业要求 这个作业的目标 需求改进&系统设计 目录 需求改进&系统设计 需求&原型改进 针对课堂 ...

  2. [hdu6989]Didn't I Say to Make My Abilities Average in the Next Life?!

    显然问题即求$\frac{\sum_{x\le l\le r\le y}(\max_{l\le i\le r}a_{i}+\min_{l\le i\le r}a_{i})}{(y-x+2)(y-x+1 ...

  3. ICCV2021 | 渐进采样式Vision Transformer

    ​  前言  ViT通过简单地将图像分割成固定长度的tokens,并使用transformer来学习这些tokens之间的关系.tokens化可能会破坏对象结构,将网格分配给背景等不感兴趣的区域,并引 ...

  4. Qt5 connect 重载信号和槽

    转载文章超哥的经验之谈---Qt5 connect使用之"重载信号和槽" 在Qt4中,关联信号与槽是要使用到SIGNAL()和SLOT()这两个宏. QLabel *label = ...

  5. Codeforces 251D - Two Sets(异或方程组)

    题面传送门 题意: 你有一个可重集 \(S=\{a_1,a_2,\dots,a_n\}\),你要把它划分成两个可重集 \(S_1,S_2\) 使得 \(S\) 中每个元素都恰好属于 \(S_1\) 与 ...

  6. Codeforces 650D - Zip-line(树状数组)

    Codeforces 题目传送门 & 洛谷题目传送门 我怕不是个 nt--一开始忽略了"询问独立"这个条件--然后就一直在想有什么办法维护全局 LIS--心态爆炸 首先离散 ...

  7. 洛谷 P4497 - [WC2011]拼点游戏(数据结构综合)

    题面传送门 神仙 DS. 首先关于第一问可以轻松想到一个 DP,\(dp_{i,j}\) 表示考虑到第 \(i\) 位,这一位奇偶性为 \(j\) 的最大权值,时间复杂度 \(n^2q\),可以拿到 ...

  8. PowerDotNet平台化软件架构设计与实现系列(05):ETCD分布式键值存储平台

    ETCD目前在PowerDotNet已经被用于注册中心和配置管理(常见的配置中心在PowerDotNet中仅仅是一个小小的模块而已)中,作为基础设施的重要组成部分,ETCD的重要性不言而喻. 本文简单 ...

  9. 有关[Http持久连接]的一切,撕碎给你看

    上文中我的结论是: HTTP Keep-Alive 是在应用层对TCP连接进行滑动续约复用, 如果客户端/服务器稳定续约,就成了名副其实的长连接. 目前所有的Http网络库都默认开启了HTTP Kee ...

  10. 【R读取报错】解决: Can't bind data because some arguments have the same name

    最近读取一个数据时,报如标题的错误. args[1] <- "RT_10-VS-RT_0" all <- read.delim(paste0(args[1]," ...