Docker文件系统基本概述

先来看一下docker文件系统的一览图

在这里插入图片描述

这张图可以基本说明docker存储结构的两种大的基本方式:

  1. 数据卷

数据卷即是我们可以通过-v 参数将主机目录或者主机设备挂载在我们的docker container中,这种方式是在I/O传输中最快的方式,因为不用通过docker文件系统,直接到达主机目录,适用于数据持久化和大文件传输。下面是数据卷系统的一览图:
在这里插入图片描述

顺带一提的是,有不少研究docker存储系统与PM(持久化内存)结合的论文,都是用数据卷来进行研究。
从上面的volume存储层次可以看到:
Data Volume(数据卷) --> Backing File system(XFS,EXT4,etc.) -->就直接到了主机的设计(逻辑卷+物理卷)–> 到设备

  1. 不使用数据卷

如果不使用数据卷的话,就要通过一次的Storage Driver。由于有两种不同的文件系统,分别针对不同linux的发行版来定制,我们所采用的系统是centos,所以就以devicemapper为例:
在这里插入图片描述

对于Docker来说,devicemapper存储驱动直接控制的是block device,我们利用LVM将block device视为我们的物理卷,然后进行对于不同的存储层分出逻辑卷来进行操作。
所以,针对于Docker 文件系统的层次,先由的APP -> Docker本身的分层文件系统的相关机制 -> 然后再到Backing File System(我们要针对block device 进行刷盘的操作):EXT4 -> 然后才是我们分出的逻辑卷的block device。

接下来就是我们的Host机,我们先来做一个验证,验证host上的块设备:
在这里插入图片描述
Host机中,可以看到有loop1这个块设备,然后下面每一个挂载上去的子设备都是一个container,即每一个container的存储实际上是在对docker进行一个挂载。

在这里插入图片描述

这是在Host机上面的所对应的两种映射方式,一个Direct-LVM ,一个Loop-LVM
在这里插入图片描述

在Loop-LVM情况下,对于docker机来说的device,对于host机就成为了一个Data,MetaData两个文件。
如果是文件,那自然是要通过Host机的相关文件系统,才能到我们实际的SSD设备。
Direct-LVM可以直接拿Host机的块设备来使用,但不提供持久化的功能。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值