设为首页 收藏本站
查看: 871|回复: 0

[经验分享] btrfs文件系统管理及应用

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-9-23 08:21:41 | 显示全部楼层 |阅读模式
Btrfs:可以称为(B-treeFS,Butter FS,Better FS),支持CoW机制;暂时在CentOS 7上可用;
        CoW:copy on write,写时复制机制;


核心特性:
    多物理卷支持;一个btrfs可由多个底层物理卷,默认就可以支持RAID机制,支持联机“添加”、“移除”、“修改”;

    写时复制更新机制:复制、更新及替换指针,而不是在“就地”更新;
            在文件进行修改的时候,首先将文件复制一份出来,在复制出来的文件上进行修改,修改完成之后,将指向原有文件的指针修改指向到修改完成的文件上,若修改完成的文件出现了错误,则我们可以通过原文件进行修复。在某些情况下是很有用的。
    数据及元数据校验码:checksum,存储每一个文件时,元数据的校验码及数据的校验码,通过文件的某些扩展属性保存起来,在读取文件时,可检测文件是否受损,一旦文件受损,会自动尝试修复文件。

    子卷功能:sub volume ,在一个卷上创建多个子卷,在每一个子卷上创建文件系统,并挂载使用;

    快照:支持快照的快照,因此可以实现类似增量快照的机制;

    透明压缩:如果我们在存储文件时,进行压缩存储,那么在文件发往btrfs时,会自动的占用时钟周期,完成数据的压缩存放,而用户并不知道,在用户读取文件时,会自动的进行文件的解压缩,可以实现节约磁盘空间。但是压缩和解压缩会占用时钟周期;


mkfs.btrfs命令:
    mkfs.btrfs [OPTIONS]
        常用选项:
            -L|--label <name>:指定文件系统的卷标;
            -m|--metadata <profile>:指明元数据的存放方式,是否可跨越多个物理卷,支持RAID机制;

            -d|--data <type>:指明数据的存放方式,支持RAID机制;

            -O|--features <feature1>[,<feature2>...]:在格式化文件系统的时候,是否直接开启文件系统的某些特性,但是在一些老版本内核上未必支持所有特性;

                -O list-all: 列出支持的所有特性;


建议:在组织btrfs文件系统的时候,直接使用多块磁盘。
查看btrfs文件系统属性的方法:
    第一种:查看已经挂载的btrfs文件系统
         wKiom1YBZgegWug9AAA635YhM6E063.jpg
    第二种:查看所有的btrfs文件系统磁盘
         wKiom1YBZprB4zk2AAA-V84DYLo568.jpg
    第三种:查看指定的btrfs文件系统磁盘

创建btrfs文件系统:
        第一步:在虚拟机上添加两块磁盘。

        第二步:在新添加的两块磁盘上创建btrfs文件系统,并且指定卷标为mydata。
                wKiom1YBZuex4mFLAAFyLQrdR7Q815.jpg
        第三步:查看已经建立的btrfs文件系统。
                wKiom1YBZyqhvamaAAEOzG3v2rM038.jpg
                两个磁盘的UUID相同,但是UUID_SUB不同,故btrfs文件系统支持子卷功能。

                wKioL1YBZ1XTKvHqAAF4J-i2uxI648.jpg
        第四步:挂载已经建立好btrfs文件系统的磁盘。两个磁盘指定一个就可以,因为他们同属于卷组。
                wKioL1YBZ4rgAu7lAAA7JkejbNg310.jpg

透明压缩机制:
        mount -o compress={lzo|zlib} DEVICE MOUNT_POINT
                wKiom1YBZ97yYOzQAABDXSbx6fs189.jpg
        使挂载的磁盘分区支持透明压缩机制。


调整逻辑边界可以不用卸载直接进行缩减和扩展。
减小btrfs文件系统的逻辑边界大小:
        btrfs filesystem resize  [<devid>:]<size>[gkm]|[<devid>:]max <path>
         wKioL1YBaCzw322vAABhaCMFKrc029.jpg
        查看修改完之后的文件系统的大小:
         wKiom1YBaBTg9LtYAAGgGnAGqUQ192.jpg

扩展btrfs文件系统的逻辑边界大小:
         spacer.jpg wKiom1YBaGLC6kvGAABUxTY1knk341.jpg
        用法和缩减btrfs有些类似。

修改btrfs文件系统的物理边界的大小:
      支持联机扩展和缩减。

    使用btrfs add/delete/scan <dev>  MOUNT_POINT

    扩展btrfs文件系统的物理边界:
         wKioL1YBaOTRB85hAAA8wIklIm4140.jpg

    缩减btrfs文件系统的物理边界:

        当然,在缩减物理边界的时候,要首先保证缩减之后的大小可以存储已经存储的总文件的大小。

        使用btrfs delete命令实现。
             wKioL1YBaRDCrVhjAAA4_qA_L1Q616.jpg

使用balance子命令设置整个文件系统的负载均衡:

    支持start、pause、cancel、resume、status这几个子命令。
         wKioL1YBaVCw49zvAABW_Gz6f_c755.jpg              spacer.jpg
    设置负载均衡的时候,设置相关的RAID级别。

        注意:磁盘数量不够,相关的RAID级别无法进行设置。

        btrfs balance start [OPTIONS] <FILTERS> MOUNT_POINT

        常用选项:

                -d:改变数据的组织机制

                -m:改变元数据的组织机制

                -s:改变文件系统的组织机制

        FILETERS:

                convert:设置指定的RAID组织

        例:
             wKiom1YBaV6Ta_xPAABJYfUHr3o116.jpg


btrfs文件系统的子卷功能:
    创建子卷:

        btrfs subvolume create  /PATH

             wKioL1YBajuAhxHmAAA_6aARYBw359.jpg          
        注意:如果父卷挂载完成,那么子卷默认就已经挂载。

    只挂载子卷:

        mount -o subvol=logs /dev/sdb /mydata/
                子卷名称        设备名称   挂载点      
             wKioL1YBafzSERPgAABAsgeSjPM158.jpg

    显示子卷的相关信息:

        btrfs subvolume show MOUNT_POINT

             wKiom1YBamXSZHJ5AAAtYGkAv6o893.jpg        spacer.jpg

    删除某一目录下的子卷:

        例:删除mydata目录下的logs子卷。

            btrfs subvolume delete /mydata/logs
    在某一子卷上创建快照:

        注意:子卷的快照必须与子卷在同一个父卷中。
        例:在mydata目录下的logs子卷上创建快照

        [iyunv@centos-lcs ~]# btrfs subvolume snapshot /mydata/logs /mydata/logs_snapshot

将一个ext系列的文件系统转换为btrfs文件系统:
    第一步:先卸载要转换的ext系列的文件系统

    第二步:使用fsck -f进行强制文件检测

      第三步:使用btrfs-convert进行文件系统的转换。


使用btrfs-convert -r还可以将已经转换为btrfs文件系统的磁盘转换回原来的文件系统。





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-117433-1-1.html 上篇帖子: Centos 7.1 配置DNS view 下篇帖子: Linux之加密解密基础、openssl及CA基础应用
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表