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. hudi clustering 数据聚集(一)

    概要 数据湖的业务场景主要包括对数据库.日志.文件的分析,而管理数据湖有两点比较重要:写入的吞吐量和查询性能,这里主要说明以下问题: 1.为了获得更好的写入吞吐量,通常把数据直接写入文件中,这种情况下 ...

  2. k8s endpoints controller分析

    k8s endpoints controller分析 endpoints controller简介 endpoints controller是kube-controller-manager组件中众多控 ...

  3. FZU ICPC 2020 寒假训练 5 —— 排序

    P1177 [模板]快速排序 题目描述 利用快速排序算法将读入的 N 个数从小到大排序后输出.快速排序是信息学竞赛的必备算法之一.对于快速排序不是很了解的同学可以自行上网查询相关资料,掌握后独立完成. ...

  4. Hi3516开发笔记(二):Hi3516虚拟机基础环境搭建之串口调试、网络连接以及sftp文件传输

    前言   搭建Hi3516的基础虚拟机,为交叉编译环境搭建前期工作.后续会编译一个基本的C语言程序Demo,在HI3516上跑.   虚拟机   开发本对虚拟机做了一些基本要求,如下图:    其实重 ...

  5. webpack--初试webpack( 核心、体验、资源打包)

    前言 webpack是当前前端项目中最常用的资源构建工具,从本文开始,来总结记录一下关于webpack的学习. 正文 1.webpack简介 webpack官网(https://webpack.doc ...

  6. Qt Creator 源码学习笔记02,认识框架结构

    阅读本文大概需要 6 分钟 在上一篇大概了解了关于Qt Creator 基础知识后[1],本篇先学习下框架基本结构,这样能够清晰的知道这个框架当中包含哪些文件.文件夹.工程文件,这些文件分别代表什么意 ...

  7. [cf1479E]School Clubs

    对于当前班级状态$S$,定义一个函数$\varphi(S)$,要求其满足: 令结束状态为$S_{end}$,对于任意$S\ne S_{end}$,若其下一个状态为$S'$,则$E(\varphi(S) ...

  8. 关于 RocketMQ ClientID 相同引发的消息堆积的问题

    首先,造成这个问题的 BUG RocketMQ 官方已经在 3月16号 的这个提交中修复了,这里只是探讨一下在修复之前造成问题的具体细节,更多的上下文可以参考我之前写的 <RocketMQ Co ...

  9. Break up CF700C

    Break up CF700C 首先考虑只能删一条边的做法,我们可以找出所有的桥,然后随便跑一条 S 到 T 路径,如果这条路径上有桥就说明可以,否则不行 发现这个做法其实是 O(M) 的 那么可以先 ...

  10. .NET6控制台程序使用quartz.net

    1.新建一个名为"ConsoleQuartz"的.NET6控制台程序. 2.nuget中安装Quartz和Quartz.Plugins,这2个DLL. 3.新建一个HelloQua ...