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

[经验分享] btrfs文件系统的简介和用法

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-8-31 08:45:15 | 显示全部楼层 |阅读模式
btrfs文件系统:
      Btrfs(B-tree 档案系统, 通常念成 Butter FS,Better FS 或 Btree FS),采用 GPL 授权,是由 Oracle 于 2007 年宣布并进行中的支持写入 时复制(COW)的文件系统。目标是取代 Linux 目前的 ext3 文 件系统,改善 ext3 的限制,特别是单个文件的大小,总文件系统大小或文件检查和加入 ext3 未支持的功能,如可写快照(writable snapshots)、快照的快照 (snapshots of snapshots)、内建磁盘阵列(RAID),以及子卷 (subvolumes)。Btrfs 也宣称专注于“容错、修复及易于管理”。

     核心特性:
          多物理卷支持:btrfs可由多个底层物理卷组成;支持RAID,以联机“添加”、“移除”,“修改”;
          写时复制更新机制(CoW): 所谓 COW,即每次写磁盘数据时,先将更新数据写入一个新的 block,当新数据写入成功之后,再更新相关的数据结构指向新 block 。复制、更新及替换指针,而非“就地”更新;
          数据及元数据校验码(checksum):btrfs在读取数据的同时会读取其相应的 checksum 。如果最终从磁盘读取出来的数据和 checksum 不相同,btrfs 会首先尝试读取数据的镜像备份,如果数据没有镜像备份,btrfs 将返回错误。写入磁盘数据之前,btrfs 计算数据的 checksum 。然后将 checksum 和数据同时写入磁盘。
          子卷:Subvolume 是很优雅的一个概念。即把文件系统的一部分配置为一个完整的子文件系统,称之为 subvolume 。
采用 subvolume,一个大的文件系统可以被划分为多个子文件系统,这些子文件系统共享底层的设备空间,在需要磁盘空间时便从底层设备中分配,类似应用程序调用 malloc() 分配内存一样。可以称之为存储池。这种模型有很多优点,比如可以充分利用 disk 的带宽,可以简化磁盘空间的管理等
          快照:支持快照的快照;
          透明压缩:就是用户调用数据的过程其实是一个解压缩的过程,但是这个过程,对用户来说是透明的,是自动进行的。
    多设备管理:Btrfs 支持动态添加设备。用户在系统中增加新的磁盘之后,可以使用 btrfs 的命令将该设备添加到文件系统中。为了灵活利用设备空间,Btrfs 将磁盘空间划分为多个 chunk 。每个 chunk 可以使用不同的磁盘空间分配策略。比如某些 chunk 只存放 metadata,某些 chunk 只存放数据。一些 chunk 可以配置为 mirror,而另一些 chunk 则可以配置为 stripe 。这为用户提供了非常灵活的配置可能性。
     文件系统创建:
                mkfs.btrfs
               -L 'LABEL':建立卷标。
               -d <type>: raid0, raid1, raid5, raid6, raid10, single指明确文件系统的类型
               -m <profile>: raid0, raid1, raid5, raid6, raid10, single, dup指明类型
               -O <feature>指明格式化是,启动的特性
                    -O list-all: 列出支持的所有feature;
挂载文件系统:
               mount -t btrfs /dev/sdb MOUNT_POINT

          透明压缩机制:
               mount -o compress={lzo|zlib} DEVICE MOUNT_POINT
   一下是btrfs filesystem子命令的用法:        
btrfs filesystem show:显示详细信息
       btrfs filesystem show --mounted:显示已经挂载的文件系统的详细信息
       btrfs filesystem show --all-device:显示所有文件系统的详细信息
       btrfs filesystem show /PATH:    显示指定的文件系统的详细
    btrfs filesystem label:显示文件系统的label
    btrfs filesystem resize:缩减或者增大文件系统的容量
    btrfs filesystem df:显示已经挂载的文件系统的信息
    btrfs filesystem sync同步操作
接下来我们来操作操作吧如下图所示范:

     1.mkfs.btrfs -L mydata /dev/sdb /dev/sdc:就是把sdb和sdc两块硬盘格式化成以卷标为mydata的文件系统
      2.mount /dev/sdb 或者/dev/sdc都可以挂载
      3.btrfs filesystem df /mnt 可以看到挂载文件系统的详细信息
wKiom1Xh1BaS0XivAAHlrhV2cMI500.jpg
QQ截图20150831084501.png
       接着我们用blkid命令分别查看一下/dev/sdc和/dev/sdb
从下图中我们可以发现他们的UUID都是一样的,但是子UUID是不一样的,因此它是支持多卷的。
wKioL1Xh11XDLzdwAADqFY-Xnv4576.jpg
        btrfs filesystem resize -10G /MYDATA   df -lh 通过这两个命令可以看到Btree系统的size减小到30G了
        btrfs filesystem resize  +10G /MYDATA  df -lh 然后我给加回到40G了
如下图:
wKiom1Xh1P-ill3AAAIcExDk4TU411.jpg
  现在我们在认识认识btrfs device 下面的子命令吧:
btrfs device add <device> <path>:添加设备
btrfs device delete <device> <path>:从文件系统中移除或者去除设备
btrfs device ready <device>:
btrfs device stats [-z] <path>|<device>:
wKiom1Xh1WmRwriUAAD35NqQ6qM459.jpg
     从上面的执行结果中,可以看到新增加的/dev/sdd的利用率是0,怎么样均衡的分布,接下来我们就用到btrfs balance 的子命令了:
btrfs balance  start:开始均衡文件系统
btrfs balance start <path> -d<filters>convert:修改数据的组织机制,即raid级别
btrfs balance start <path> -m<filters>convert修改元数据的组织机制,即raid级别
btrfs balance start <path> -s<filters>convert:修改系统的组织机制,即raid级别
btrfs balance pause<path>:停止
btrfs balance cancel<path>取消
btrfs balance resume<path>继续
btrfs balance status   <path>查看均衡状态
     下图给出了均衡的过程
wKiom1Xh1f_xpx1UAAC4GiG2lug154.jpg
     从下图我们可以看出我们移除一个设备后,其之前的Btree系统里面的内容还可以查看,说明Btree可以自动的将卸载设备的文件保存到其他的地方。
wKioL1Xh2EbgxEnAAAHxDDwsERo785.jpg
wKiom1Xh1mXQcmQuAAIHFEpk9RE386.jpg

      从上图可以看到我们可以改变Btree文件系统或者里面存储的数据和元数据的raid级别。
如果我们想把Btree文件系统进行子卷操作的话,有一下命令可以供我们选择使用:
btrfs  subvolume create <name>:创建子卷
btrfs  subvolume  delete <subvloume>删除子卷
btrfs  subvolume   list:列出所有子卷
btrfs  subvolume snapshot <source> <dest> | <name>:创建快照
btrfs  subvolume  get-default<path>:默认卷
btrfs  subvolume set-default<path>:设置默认卷
btrfs  subvolume show:用来查看子卷的详细信息
在创建子卷的过程中,如果父卷挂载了,则表示子卷也挂载完毕,如果想单独挂载,那么就得先卸载父卷
wKiom1Xh1vjR7z3QAACNCxdN9us097.jpg

     下图是挂载子卷的过程:
wKioL1Xh2WmTUN9sAAG-42_klyQ797.jpg
     以下是创建快照的过程:

wKiom1Xh14uxXE0AAADGzUht7RY669.jpg
wKioL1Xh2aehesuxAADwE8tzzNo395.jpg
         以上的这些简介都是一个初学者的浅薄认知,如有不适当的地方,欢迎指正和修改。


运维网声明 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.iyunv.com/thread-106567-1-1.html 上篇帖子: BTRFS文件系统管理 下篇帖子: windows7搭建yum源的方法
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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