您的位置:首页 > 运维架构 > Linux

btrfs的子卷与快照功能--Linux下备份系统

2015-03-13 20:30 579 查看

关于Btrfs

什么是Btrfs,以及它的性能,可以在许多地方查阅得到.这里要提到的是,Btrfs文件系统本身就是由子卷(Subvolumes)构成的,它的top level是由B-tree结构的含有目录,文件和子卷等东西构成的子卷. 而在top level下的子卷, 其中又可以包含许许多多的子卷. 本文的执行环境为Ubuntu14.04

关于子卷和快照

在Btrfs文件系统下创建子卷十分简单, 只需要到你想要创建子卷的目录下, 执行以下代码即可(其中subvolume_name即是你想给子卷起的名字):

btrfs subvolume create subvolume_name


而快照(Snapshots)其实就是一种特殊的子卷, 它能记录下在创建它的那一刻,它所在的父子卷(parent subvolume)的所有内容. 如果想要创建一个文件或系统的备份, 那么就可以通过创建快照来快速实现.创建快照的方式如下:

btrfs subvolume snapshot pathname pathname/snapshot_path


其中, pathname即想要备份的文件路径, 而pathname/snapshot_path即创建的快照所放置的路径. 比如我想对根目录进行备份的话, 就可以执行下面的指令:

sudo btrfs subvolume snapshot / backup


于是就可以看到提示创建快照成功,并且在根目录下多出了一个backup目录. 如果想要查看某个目录下有哪些子卷和快照, 那么可以执行以下语句:

btrfs subvolume list pathname


比如我想查看当前目录下有哪些子卷,可以执行:

hydra@hydra:/$ sudo btrfs subvolume list ./


得到的输出结果是:

hydra@hydra:/$ sudo btrfs subvolume list ./ID 257 gen 881 top level 5 path @
ID 258 gen 881 top level 5 path @home
ID 266 gen 871 top level 257 path backup


可以看到刚才创建的backup快照的ID是266, 用这个方法就可以查看子卷和快照的ID了. 可以用以下命令来设定默认子卷(其中ID即为相应子卷或快照的ID):

btrfs subvolume set-default ID pathname


而后用重新挂在子卷的方法即可进入快照了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: