您的位置:首页 > 其它

overlayfs简介及使用

2016-10-10 15:19 155 查看
overlayfs是目前使用比较广泛的层次文件系统,实现简单,性能较好. 可以充分利用不同或则相同overlay文件系统的page cache,具有
上下合并
同名遮盖
写时拷贝 

等特点。

下面我们举1个简单的例子。

1, 首先加载overlayfs内核模块

我使用的是3.10的内核,里面已经加载了overlay

[root@hz01-orp-centos00.hz01.baidu.com olfs]# lsmod  | grep over
overlay                29855  1


如果输出为空,就通过下面命令加载一下
modprobe overlay


没有报错,就说明加载成功了。2, 挂载overlay文件系统
[root@olfs]# tree
.
|-- lower
|   `-- l1.txt
|-- merged
|-- upper
|   `-- u2.txt
`-- work

4 directories, 1 file
### 这里指定lower是-o,也就是只读
[root@olfs]# mount -t overlay overlay -olowerdir=./lower,upperdir=./upper,workdir=./work ./merged
[root@olfs]# df -h
...
overlay                19G   12G  6.8G  63% /root/docker/olfs/merged


可以看到, /root/docker/olfs/merged已经挂载成为一个overlayfs了。

3, 下面我们测试一下

上下合并
刚才通过tree命令,我们看到lower目录下,有一个l1.txt,我们进入merged目录,

[root@olfs]# cd merged/
[root@merged]# ls
l1.txt  u2.txt
[root@merged]# cat l1.txt
american


这就说明, 2个目录的文件进行了合并。

同名遮盖
那我们再修改一下这个文件, 再看下文件内容

[root@hz01-orp-centos00.hz01.baidu.com merged]# echo "russia" > l1.txt
[root@hz01-orp-centos00.hz01.baidu.com merged]# cat l1.txt
russia


返回去,看下lower目录,
[root@hz01-orp-centos00.hz01.baidu.com olfs]# cd ../lower/
[root@hz01-orp-centos00.hz01.baidu.com lower]# cat l1.txt
american


文件内容并没有变化,在看下upper目录
[root@hz01-orp-centos00.hz01.baidu.com lower]# cd ../upper/
[root@hz01-orp-centos00.hz01.baidu.com upper]# cat l1.txt
russia
[root@hz01-orp-centos00.hz01.baidu.com upper]# ll
total 8
-rw-r--r-- 1 root root 7 Dec 13 20:52 l1.txt
-rw-r--r-- 1 root root 6 Dec 13 20:48 u2.txt


出现了2个文件,原来的u2.txt,和现在的l1.txt,l1.txt就是merged下面我们看到的l1.txt的内容。并且2这的inode号是一样的
[root@hz01-orp-centos00.hz01.baidu.com upper]# ls -i l1.txt
2329235 l1.txt
[root@hz01-orp-centos00.hz01.baidu.com upper]# ls -i ../merged/l1.txt
2329235 ../merged/l1.txt


删除文件
我们在merged目录下,删除l1.txt,

[root@hz01-orp-centos00.hz01.baidu.com merged]# ll ../lower/
total 4
-rw-r--r-- 1 root root 9 Dec 13 20:38 l1.txt
[root@hz01-orp-centos00.hz01.baidu.com merged]# ll ../upper/
total 4
c--------- 1 root root 0, 0 Dec 13 20:56 l1.txt
-rw-r--r-- 1 root root    6 Dec 13 20:48 u2.txt


可以看到, 这个文件在lower目录,依然不变, 但是在upper下面, 变成了一个,任何用户都没有任何权限,大小为0的字符设备。 overlay也就是一这种方式来标记文件删除的。

【参考】

1)内核官方文档:https://www.kernel.org/doc/Documentation/filesystems/overlayfs.txt

2)overlayfs原理:http://wenku.baidu.com/link?url=gSV2u1YJGs20Y_d1R8fOP9wE6tOsHjbTBJUiMFKyv812fLe2uUifddIZ7cUKUbGrqIe5Hku52AxjQWAZCUuqmWi3gYSPZz9gs24StKQG0He

3)Flash Layout/Flash 布局:https://wiki.openwrt.org/zh-cn/doc/techref/flash.layout

转自:http://www.tuicool.com/articles/6ri2Ej7
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: