Btrfs文件系统之subvolume与snapshot

本文介绍了Linux下一代文件系统Btrfs中的subvolume和snapshot特性。subvolume是Btrfs中的虚拟设备,可理解为特殊目录,支持创建、删除、挂载和设置只读。同时,文章详细阐述了如何创建、删除快照,以及快照的可写性和高效COW机制,强调快照在系统版本切换和回滚中的应用。
摘要由CSDN通过智能技术生成

对于大部分文件系统来说,在磁盘上创建好文件系统,然后再挂载到系统中去就完事了。但对于Btrfs来说,除了在格式化和挂载的时候指定不同的参数外,还支持很多其他的功能,比如管理多块硬盘,支持LVM和RAID等,具体的可以参考它的官方文档或者Linux下常见文件系统对比

Btrfs是Linux下大家公认的将会替代ext4的下一代文件系统,功能非常强大。本篇不会介绍Btrfs的原理,也不会介绍Btrfs的所有功能,只是挑了其中的subvolume和snapshot这两个特性来进行介绍

本篇所有例子都在ubuntu-server-x86_64 16.04下执行通过

准备环境

先创建一个虚拟的硬盘,然后将它格式化成Btrfs,最后将它挂载到目录/mnt/btrfs


#为了简单起见,这里只使用一块硬盘来做测试(Btrfs可以管理多块硬盘或分区)。
#新建一个文件,用来虚拟一块硬盘
dev@ubuntu:~$ fallocate -l 512M /tmp/btrfs.img

#在上面创建Btrfs文件系统
dev@ubuntu:~$ mkfs.btrfs /tmp/btrfs.img
btrfs-progs v4.4
See http://btrfs.wiki.kernel.org for more information.

Label:              (null)
UUID:               fd5efcd3-adc2-406b-a684-e6c87dde99a1
Node size:          16384
Sector size:        4096
Filesystem size:    512.00MiB
Block group profiles:
  Data:             single            8.00MiB
  Metadata:         DUP              40.00MiB
  System:           DUP              12.00MiB
SSD detected:       no
Incompat features:  extref, skinny-metadata
Number of devices:  1
Devices:
   ID        SIZE  PATH
    1   512.00MiB  /tmp/btrfs.img

#创建文件夹并挂载
dev@ubuntu:~$ sudo mkdir /mnt/btrfs
dev@ubuntu:~$ sudo mount /tmp/btrfs.img /mnt/btrfs

#修改权限,这样后面的部分操作就不再需要sudo
dev@ubuntu:~$ sudo chmod 777 /mnt/btrfs

subvolume

可以把subvolume理解为一个虚拟的设备,由Btrfs管理,创建好了之后就自动挂载到了Btrfs文件系统的一个目录上,所以我们在文件系统里面看到的subvolume就是一个目录,但它是一个特殊的目录,具有挂载点的一些属性。

新创建的Btrfs文件系统会创建一个路径为“/”的默认subvolume,即root subvolume,其ID为5(别名为0),这是一个ID和目录都预设好的subvolume。

#这里从mount的参数“subvolid=5,subvol=/”就可以看出来,
#默认的root
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值