overlayfs简介及使用
2016-10-10 15:19
211 查看
overlayfs是目前使用比较广泛的层次文件系统,实现简单,性能较好. 可以充分利用不同或则相同overlay文件系统的page cache,具有
上下合并
同名遮盖
写时拷贝
等特点。
下面我们举1个简单的例子。
1, 首先加载overlayfs内核模块
我使用的是3.10的内核,里面已经加载了overlay
如果输出为空,就通过下面命令加载一下
没有报错,就说明加载成功了。2, 挂载overlay文件系统
可以看到, /root/docker/olfs/merged已经挂载成为一个overlayfs了。
3, 下面我们测试一下
上下合并
刚才通过tree命令,我们看到lower目录下,有一个l1.txt,我们进入merged目录,
这就说明, 2个目录的文件进行了合并。
同名遮盖
那我们再修改一下这个文件, 再看下文件内容
返回去,看下lower目录,
文件内容并没有变化,在看下upper目录
出现了2个文件,原来的u2.txt,和现在的l1.txt,l1.txt就是merged下面我们看到的l1.txt的内容。并且2这的inode号是一样的
删除文件
我们在merged目录下,删除l1.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
上下合并
同名遮盖
写时拷贝
等特点。
下面我们举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
相关文章推荐
- overlayfs简介及使用
- overlayfs简介及使用
- overlayfs简介及使用
- overlayfs简介及使用
- overlayfs简介及使用
- AWStats: Apache/IIS的日志分析工具——在GNU/Linux和Windows平台上的使用简介
- Hibernate的简介及使用规则
- TreeCellRenderer使用方法简介
- 消息队列(Message Queue)简介及其使用
- SSH简介及配置使用SSH登陆远程主机
- 转贴(CSDN):项目管理(MS Project Server 2002)使用简介
- 使用委托数组的一个例子简介一下委托
- 使用 Microsoft Visual C# 2005 Express Edition 编程简介
- .Net服务组件(ServicedComponent)简介及其使用
- DOM4J 使用简介(转)
- 简介使用ASP.NET访问Oracle数据库的方法
- [Struts]使用StrutsTestCase对Action进行单元测试简介
- (转)Eclipse入门-- Eclipse的使用简介及插件开发
- 简介使用ASP.NET访问Oracle数据库的方法
- 简介使用ASP.NET访问Oracle数据库的方法