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

[经验分享] btrfs文件系统

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-9-18 11:35:35 | 显示全部楼层 |阅读模式
1.btrfs文件系统简介
       Btrfs(B-tree, Butter FS, Better FS),由Oracle于2007年宣布并进行中的COW(copy-on-write写时复制)文件系统。目标是取代Linux目前的ext3/4文件系统,改善ext3/4的限制,特别是单一文件大小的限制,总文件系统大小限制以及加入文件校验和特性。加入目前ext3/4未支持的一些功能,例如可写的磁盘快照(snapshots),以及支持递归的快照(snapshots of snapshots),内建磁盘阵列(RAID)支持,支持子卷(Subvolumes)的概念,允许在线调整文件系统大小等。
2.btrfs文件系统的特性
(1)扩展性
       btrfs 最重要的设计目标是应对大型机器对文件系统的扩展性要求。 Extent,B-Tree和动态 inode 创建等特性保证了 btrfs 在大型机器上仍有卓越的表现,其整体性能而不会随着系统容量的增加而降低。
(2)数据一致性
       系统面临不可预料的硬件故障,Btrfs 采用 COW 事务技术来保证文件系统的一致性。 btrfs 还支持 checksum,避免了 silent corrupt 的出现。而传统文件系统则无法做到这一点。
(3)多物理卷支持
       Btrfs 支持创建快照 (snapshot),和克隆 (clone) 。 btrfs 还能够方便的管理多个物理设备,使得传统的卷管理软件变得多余。
(4)透明压缩
       btrfs支持文件已压缩方式存储到磁盘上,用户查看文件并不是已压缩文件。
3.创建btrfs文件系统
mkfs.btrfs:创建btrfs文件系统
       常用选项:
       -L  LABEL:创建卷标
       -d  <type>:指定数据存储方式
       -m  <profile>:元数据存储方式
       -O  <feature>:-O  list-all 列出支持的所有feature
[iyunv@bogon ~]# mkfs.btrfs -L mybtrfs /dev/sdb /dev/sdc  <-----创建btrfs文件系统
Btrfs v3.16.2
See http://btrfs.wiki.kernel.org for more information.

Turning ON incompat feature 'extref': increased hardlink limit per file to 65536
adding device /dev/sdc id 2
fs created label mybtrfs on /dev/sdb
        nodesize 16384 leafsize 16384 sectorsize 4096 size 40.00GiB
4.查看btrfs文件系统属性

btrfs filesystem show:查看btrfs文件系统的属性信息

[iyunv@bogon ~]# btrfs filesystem show    <------查看btrfs文件系统属性
Label: 'mybtrfs'  uuid: 55265c80-b45a-449c-b35e-df1d584bfc1a
        Total devices 2 FS bytes used 112.00KiB
        devid    1 size 20.00GiB used 2.03GiB path /dev/sdb
        devid    2 size 20.00GiB used 2.01GiB path /dev/sdc

Btrfs v3.16.2

[iyunv@bogon ~]# df -lh
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   50G  2.6G   48G   6% /
devtmpfs                 481M     0  481M   0% /dev
tmpfs                    490M     0  490M   0% /dev/shm
tmpfs                    490M  6.7M  484M   2% /run
tmpfs                    490M     0  490M   0% /sys/fs/cgroup
/dev/mapper/centos-home   68G   33M   68G   1% /home
/dev/sda1                497M  106M  392M  22% /boot
/dev/sdb                  40G  1.0M   38G   1% /mydata
5.挂载btrfs文件系统


[iyunv@bogon ~]# mkdir /mydata    <------创建/mydata目录
[iyunv@bogon ~]# mount -t btrfs /dev/sdb /mydata/    <------挂载文件系统
6.创建btrfs文件系统透明压缩机制


[iyunv@bogon ~]# umount /dev/sdb
[iyunv@bogon ~]# mount -o compress=lzo /dev/sdb /mydata/    <------透明压缩机
7.调整btrfs文件系统大小

[iyunv@bogon ~]# btrfs filesystem resize -10G /mydata    <------大小减少10G
Resize '/mydata' of '-10G'
[iyunv@bogon ~]# btrfs filesystem show
Label: 'mybtrfs'  uuid: 55265c80-b45a-449c-b35e-df1d584bfc1a
        Total devices 2 FS bytes used 896.00KiB
        devid    1 size 10.00GiB used 2.03GiB path /dev/sdb
        devid    2 size 20.00GiB used 2.01GiB path /dev/sdc

Btrfs v3.16.2

[iyunv@localhost ~]# btrfs filesystem resize +5G /mydata/    <------大小增加5G
Resize '/mydata/' of '+5G'
[iyunv@localhost ~]# df -lh
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   50G  2.6G   48G   6% /
devtmpfs                 481M     0  481M   0% /dev
tmpfs                    490M     0  490M   0% /dev/shm
tmpfs                    490M  6.7M  484M   2% /run
tmpfs                    490M     0  490M   0% /sys/fs/cgroup
/dev/mapper/centos-home   68G   33M   68G   1% /home
/dev/sda1                497M  106M  392M  22% /boot
/dev/sdb                  35G  1.0M   28G   1% /mydata

[iyunv@localhost ~]# btrfs filesystem resize max /mydata/   <------调整文件系统容量最大值
Resize '/mydata/' of 'max'
[iyunv@localhost ~]# df -lh
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   50G  2.6G   48G   6% /
devtmpfs                 481M     0  481M   0% /dev
tmpfs                    490M     0  490M   0% /dev/shm
tmpfs                    490M  6.7M  484M   2% /run
tmpfs                    490M     0  490M   0% /sys/fs/cgroup
/dev/mapper/centos-home   68G   33M   68G   1% /home
/dev/sda1                497M  106M  392M  22% /boot
/dev/sdb                  40G  1.0M   38G   1% /mydata
8.添加设备


[iyunv@localhost ~]# btrfs device add /dev/sdd /mydata    <------添加ssd[iyunv@localhost ~]# df -lh
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   50G  2.6G   48G   6% /
devtmpfs                 481M     0  481M   0% /dev
tmpfs                    490M     0  490M   0% /dev/shm
tmpfs                    490M  6.7M  484M   2% /run
tmpfs                    490M     0  490M   0% /sys/fs/cgroup
/dev/mapper/centos-home   68G   33M   68G   1% /home
/dev/sda1                497M  106M  392M  22% /boot
/dev/sdb                  60G  1.0M   56G   1% /mydata
9.删除设备


[iyunv@localhost ~]# btrfs device delete /dev/sdd /mydata    <------删除sdd设备[iyunv@localhost ~]# df -lh
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   50G  2.6G   48G   6% /
devtmpfs                 481M     0  481M   0% /dev
tmpfs                    490M     0  490M   0% /dev/shm
tmpfs                    490M  6.7M  484M   2% /run
tmpfs                    490M     0  490M   0% /sys/fs/cgroup
/dev/mapper/centos-home   68G   33M   68G   1% /home
/dev/sda1                497M  106M  392M  22% /boot
/dev/sdb                  40G  1.0M   38G   1% /mydata
10.创建子卷


[iyunv@localhost ~]# btrfs subvolume create /mydata/logs <------在mydata目录下创建子卷logs
Create subvolume '/mydata/logs'
[iyunv@localhost ~]# btrfs subvolume list /mydata/
ID 258 gen 13 top level 5 path logs
11.挂载子卷


[iyunv@localhost ~]# umount /mydata
[iyunv@localhost ~]# mount -o subvol=logs /dev/sdb /mnt
12.创建快照

[iyunv@localhost ~]# btrfs subvolume snapshot /mydata/logs/ /mydata/logs_snapshotCreate a snapshot of '/mydata/logs/' in '/mydata/logs_snapshot'
[iyunv@localhost ~]# btrfs subvolume list /mydata
ID 258 gen 16 top level 5 path logs
ID 259 gen 16 top level 5 path logs_snapshot


运维网声明 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-115325-1-1.html 上篇帖子: 源码安装Bind 9.10 正式版 开启DLZ数据库支持 下篇帖子: Maven本地仓库中jar包更新的依据
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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