关于zfs

之前从B站视频里面了解到了btrfs这个文件系统,说是能够实现cow,然后我第一时间觉得这是个极好的特性,结果后来才发现,使用的时候并不多,而且只能通过cp --reflink的方式使用,但是绝大多数情况下的复制都是伴随着修改的。所以这个功能并不常用,能够节省的空间也确实有限。

然后无意间发现了zfs系统,它的去重功能才是我想要的那种东西,而且去重功能能够实现块级的去重,而要付出的代价就是会消耗大量的内存。这个根据网友的数据,大概1t的数据会吃掉2g的内存(实际上我自己测试大概是1.4g),其实在我看来也不是不能接受的样子。而且这个功能真的很酷的不是?而且一定程度上也能节约ssd的写入次数。

基础使用

  • 安装zfs

    在ubuntu系统上,已经自带了对这个的支持,尤其是在安装系统的时候就能够选择直接安装在zfs分区上,这点好评(但是没有开启去重功能)

  • 创建zfs池

    zpool create -f pool2 /dev/sda -m /export

    这样就能把/dev/sda 作为zfs分区,然后挂载到/export目录

  • 查看状态

    zpool status

    能看到这个zfs池的设备构成

  • 查看开启去重的分区

    zfs get dedup pool1

  • 设置开启去重

    zfs set dedup=on pool1

  • 创建文件系统

    zfs create pool1/fs1

    我觉得这个更像是子卷一类的东西,可以对某些文件夹单独做出规则设置

测试去重

通过cp -r /var /export/指令复制文件夹到zfs分区,然后看下面的结果

  • zpool list显示分区只使用了2.07G
  • df -sh var 显示这个文件夹占用3.0G
  • df -h 也认为占用了3.0G

[Linux] ubuntu系统使用zfs记录的更多相关文章

  1. Ubuntu系统---FeiQ安装记录

    Ubuntu系统---FeiQ安装记录 linux下安装飞秋/飞鸽传书之类的软件iptux信使,可以与windows在一个局域网下聊天与传书文件,安装很简单. 首先,直接运行下面的语句即可:sudo ...

  2. linux ubuntu系统下,adb不是内部命令 (如何才能让adb命令可以使用)

    linux ubuntu系统下,adb不是内部命令 原文地址 linux ubuntu系统下,adb不是内部命令 解决方法: 1.sudo gedit ~/.bashrc 2.将下面的两句加到上面打开 ...

  3. Linux Ubuntu系统版本通过Crontab设置定时任务的执行

    Linux Ubuntu系统版本通过Crontab设置定时任务的执行 本文由本人收集网络信息总结而来 特别鸣谢:https://linux.zone/2258 1 crontab 简单介绍以及语法使用 ...

  4. Ubuntu系统---EasyECD安装记录

    说明:因解决Ubuntu花屏和频繁死机的问题(后来证实本人的电脑显卡驱动有问题),手残毁坏了系统,需重装.之前从未装过系统,经过三天,反复折腾装了近十次的系统,现总结如下. 第一步:Windows 系 ...

  5. 搭建Linux(Ubuntu)系统下的Differential Datalog运行环境

    DDlog is a bottom-up, incremental, in-memory, typed Datalog engine. It is well suited for writing pr ...

  6. 利用workbench对linux/Ubuntu系统中的mysql数据库进行操作

    在上一篇文章中,我分享了在linux中如何安装mysql数据库,但是这只是安装了mysql的服务,并没有图形化管理界面,所以这样子操作起来并没有那么方便,那么现在我们就来实现如何利用在window中安 ...

  7. linux/Ubuntu系统上安装mysql数据库(附图详解)

    在前面的文章中,我已经分享了如何在Ubuntu系统中安装以及搭建java开发环境,那么当我们需要跟数据打交道的时候,那么就需要在ubuntu系统中安装一个数据库了,那么废话就不多说了,我们这里主要是分 ...

  8. Linux(Ubuntu)系统下使用crontab定期执行任务

    安装cron(Ubuntu系统自带) apt-get install cron 开启crontab日志 默认情况下的日志是没有开启的,我们需要找到 /etc/rsyslog.d/50-default. ...

  9. Linux Ubuntu系统之PPP拨号经验分享

    近期,工作需要,我负责开发PPP拨号模块. 说起拨号,算算时间,我已经做过2次了, 暴露年龄了,呵呵. 第一次是刚毕业做的PPOE拨号,给电信做拨号软件,在河北石家庄工作过一段时间,基于windows ...

  10. MacBook Pro/Air 下使用 linux ubuntu 系统 波浪号“~”变成其他 符号 的完美解决办法

    打开终端,输入: sudo su - > /sys/module/hid_apple/parameters/iso_layout sudo su -需要root权限,所以使用前请注意已下载roo ...

随机推荐

  1. 学习MySQL,创建表,数据类型

    连接本地mysql语句 mysql -hlocalhost -uroot -proot MySQL通用语法 DDL数据库操作 DDL:数据定义语言,用来定义数据库对象(数据库,表,字段) 查询所有数据 ...

  2. MyBatis 源码系列:MyBatis 体系结构、六大解析器

    体系结构 MyBatis是一个持久层框架,其体系结构分为三层:基础支持层.核心处理层和接口层. 基础支持层包括数据源模块.事务管理模块.缓存模块.Binding模块.反射模块.类型转换模块.日志模块. ...

  3. TienChin 渠道管理-配置字典常量

    在字典管理当中添加渠道状态 channel_status:渠道状态 分别为: 正常,键值为1,回显样式为 success 禁用,键值为0,回显样式为 info !> 有个注意点:Vue3 当中 ...

  4. 【构建docker镜像之插件篇】使用插件实战演示:docker-maven-plugin和jib-maven-plugin

    1.说明: docker容器化部署是非常流行的,Java应用如果要运行在docker环境,就要制作包含该应用的docker镜像,可以手动使用dockerfile和docker-compose制作镜像, ...

  5. 小白学k8s(2)理解flannel网络

    理解flannel网络 简介 Kubernetes中的网络 flannel 总结 参考 理解flannel网络 简介 Flannel是CoreOS团队针对Kubernetes设计的一个网络规划服务,简 ...

  6. 7.3 Windows驱动开发:内核监视LoadImage映像回调

    在笔者上一篇文章<内核注册并监控对象回调>介绍了如何运用ObRegisterCallbacks注册进程与线程回调,并通过该回调实现了拦截指定进行运行的效果,本章LyShark将带大家继续探 ...

  7. Redis中的key的生存时间和过期时间

    目录 1.说明 2.指令 2.1.删除和更新 3.过期时间的保存 4.计算剩余生存时间 5.过期键的删除策略 5.1.定时删除 5.2.惰性删除 5.3.定期删除 1.说明 生存时间: (Time T ...

  8. 取代传统BIOS的EFI和UEFI究竟是什么?

    传统的蓝白BIOS界面可以说是陪伴着很多玩家共同成长,不过在英特尔发布Sandy Bridge架构处理器的时候,传统BIOS也到了和我们说再见的时间,采用图形化界面的EFI以及UEFI很快就取代了传统 ...

  9. 《ASP.NET Core 微服务实战》-- 读书笔记(第4章)

    第 4 章 后端服务 现实中的服务不可能处于真空之中,大多数服务都需要与其他服务通信才能完成功能. 我们将这些支持性服务称为后端服务,接下来我们将通过创建一个新的服务并修改之前的团队服务与这个服务通信 ...

  10. 扒开源安卓性能测试工具moblieperf源码——开发属于你自己的性能稳定性测试工具

    moblieperf下载和使用 moblieperf由阿里巴巴开源的Android性能测试工具 下载:官方源码地址mobileperf github 使用: 使用pycharm打开下载的项目 使用只需 ...