1. 程式人生 > >修改CentOs7 上Docker預設檔案系統DeviceMapper為OverlayFS

修改CentOs7 上Docker預設檔案系統DeviceMapper為OverlayFS

http://shanker.blog.51cto.com/1189689/1783910

最近一直在研究Mesos, Marathon跟Docker結合的容器雲平臺,Mesos 框架已經搭好,並且Marathon也可以實現簡單的Docker應用管理了,然後今天嘗試搭建一下mesosphere公司的DC/OS平臺(https://dcos.io/),利用這個平臺可以很容易實現基於容器的雲端計算平臺的資源排程,管理,應用分配,負載均衡,動態擴充套件,故障轉移等。DC/OS底層系統也是基於Docker的,根據官方文件建議,我們把CentOS7系統上Docker預設的檔案系統DeviceMapper改為OverlayFS。

Docker最開始支援的檔案系統是Aufs的,是一種Union File System,原理就是將多個目錄掛在到同一個虛擬目錄下,整個檔案系統是一個分層的概念,請看圖:

wKiom1dIIWXAoDIbAAJ5OoZjH4s479.png

然後RedHat系列的系統是不支援Aufs的,當Docker變得越來越流行的時候,RedHat公司發行我也得插一腳進去,然後RedHat公司就對這個Aufs研究了一下,然後說“恩,我們牛逼,我要開發一套新的檔案系統用來執行Docker”。後來這套系統就是基於自家的在kernel2.6之後被引進的DeviceMapper技術。主要用到Docker上的就是Snapshot和Thinly-provisioned Snapshot, 這個Snapshot在LVM邏輯卷管理場景下用來建立虛擬快照的,Thin-Provisioning是一項利用虛擬化方法減少物理儲存部署的技術,可最大限度提升儲存空間利用率。當這兩個技術結合起來就是DeviceMapper給RedHat系統實現Docker檔案系統的最後方案了。其實這個方案也是基於分層的理論給每一層映象建立快照。如圖:

wKioL1dIJdHwqFDHAAD_qU7DrCc141.jpg

然而DeviceMapper的效能並不是那麼的好,DC/OS官網給出的解釋是會出現unknown issue並且不能再Docker裡面執行Docker,DeviceMapper預設情況下建立loop-lvm的方式來構建映象和容器的snapshots。但是在生產環境下Docker官方建議採用直連的lvm捲來構建映象和容器,然後在啟動Docker Daemon的時候使用如下方式來載入:

1 2 3 4 5 { "storage-driver""devicemapper", "storage-opts"
: [         "dm.thinpooldev=/dev/mapper/docker-thinpool",         "dm.use_deferred_removal=true" ] }

在系統裡執行docker info即可檢視到使用的是什麼檔案系統:

這是Cent6.5系統的,發現使用的是devicemapper,而且Data File是loop0:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 # docker info Containers: 11 Images: 63 Storage Driver: devicemapper Pool Name: docker-252:1-679218-pool Pool Blocksize: 65.54 kB Backing Filesystem: extfs Data file/dev/loop0 Metadata file/dev/loop1 Data Space Used: 2.221 GB Data Space Total: 107.4 GB Data Space Available: 9.648 GB Metadata Space Used: 4.166 MB Metadata Space Total: 2.147 GB Metadata Space Available: 2.143 GB Udev Sync Supported: true Deferred Removal Enabled: false Data loop 

相關推薦

修改CentOs7 Docker預設檔案系統DeviceMapperOverlayFS

http://shanker.blog.51cto.com/1189689/1783910 最近一直在研究Mesos, Marathon跟Docker結合的容器雲平臺,Mesos 框架已經搭好,並且Marathon也可以實現簡單的Docker應用管理了,然後今天

Centos7 修改docker文件系統引擎overlayfs

rri 查看 system inf pre ecs pause container version 查看默認docker文件系統引擎信息 [[email protected] ~]# docker info Containers: 19 Running: 16

CentOS7.x使用overlay檔案系統

當我檢視docker詳細資訊時會看到如下警告: WARNING: devicemapper: usage of loopback devices is strongly discouraged for production use. Use `--storage-opt dm.thi

怎樣在 Ubuntu 使用 ZFS 檔案系統 | Linux 中國

在 Linux 系統上,有大量的檔案系統能夠使用,那麼我們為什麼還要嘗試一個新的檔案系統?它們都工作的很好。不是嗎?可是它們並不全然同樣,當中的一些檔案系統具有很突出的長處。比如 ZFS。-- Nick Congleton 本文導航◈ 為什麼選擇 ZFS

關於Docker聯合檔案系統Union File System

Union File System Union File System, 簡稱UnionFS,是一種為Linux,FreeBSD,和NetBSD作業系統設計的把其他檔案系統聯合掛載到一個掛載點的檔案系統服務。 它通過使用branch把不同檔案系統的檔案和目錄覆蓋,形成一個一致的檔案系統。這些branch是

修改window7docker中國科技大學源

 在使用docker前,最好先將docker源修改一下,從官方源切換為其它國內源( 阿里雲等) .    我的環境:  window 7 64位,               &

Docker基礎 檔案系統之AUFS

為了更好的理解docker,除了namespace和cgroups之外,在docker中如何進行儲存檔案也是需要進行進一步理解的。在docker中叫做storage driver,在本文中將會介紹一下docker最早支援的storage driver的AUFS,並在ubuntu上簡單模擬AUFS

【親測】centos7下掛載ntfs檔案系統型別的行動硬碟

【親測】centos7下掛載ntfs檔案系統型別的行動硬碟 【參考】 【流程】 2.解壓,配置,編譯,安裝 $tar zxvf ntfs-3g_ntfsprogs-2017.3.23.tgz $ cdntfs-3g_ntfsprogs-2017.3.23/

docker 架構 (檔案系統, 層, 容器)

按照docker官網上的說法,docker的檔案系統分為兩層:bootfs和rootfs bootfs包含了bootloader和linux核心。使用者是不能對這層作任何修改的。在核心啟動之後,bootfs實際上會unmount掉。 rootfs則包含了一般系統上的常見

centos7下glusterFs 分散式檔案系統環境搭建

1、GlusterFS簡介: GlusterFS是一個開源的分散式檔案系統 相關術語如下: - Brick:GFS中的儲存單元,通過是一個受信儲存池中的伺服器的一個匯出目錄。可以通過主機名和目錄名來標識,如’SERVER:EXPORT’ - Clien

docker更換檔案系統(Overlay2)

docker 有時候會報 Either use `--storage-opt dm.thinpooldev` or use `--storage-opt dm.no_warn_on_loop_devices=true` to suppress this warning. 這

centos6使用xfs檔案系統

   ext4目前也還沒有真的支援16TB以上的單分割槽空間,由於工具的限制,只能建立最大為16T的單分割槽決定直接用xfs 安裝xfs [[email protected] ~]$ yum install kmod-xfs xfsprogs [[emai

移植核心學習筆記2-----修改分割槽及製作根檔案系統

1、製作分割槽 (1)分析 在上節實驗中出現以下問題:無法掛載根檔案系統 在以前u-boot燒寫檔案系統時是燒寫到某個地方,以前的分割槽是下面那樣劃分的,劃分為4個分割槽,但是上面有8個分割槽 分割槽修改參考(分割槽是在程式碼裡面寫死的,u-boot怎麼設定不會影響核心

centos7下MFS分散式檔案系統-實測沒問題!!!

實驗原理:MFS是一個具有容錯性的網路分散式檔案系統,它把資料分散在多個物理伺服器上,而呈現給使用者的則是一個統一的資源。實驗拓撲:192.168.80.181 Master server(主機名:www.aa.com)(元資料伺服器,在整個體系中負責管理檔案系統,維護元資料

Centos7筆記六】檔案系統與磁碟操作

1. redhat檔案系統結構 目錄名稱 應放置檔案的內容 /boot 開機所需檔案——核心,開機選單及所需配置檔案等 /dev 任何裝置與介面都以檔案形式存放在此目錄 /etc 配置檔案 /home 使用者主目錄 /bin 單使用者維護模式下還能夠被操作的命令 /lib

在Linux PC掛載JFFS2檔案系統

Mounting JFFS2 Images on a Linux PC It is possible to mount a binary JFFS2 image on a Linux PC without a flash device. This ca

CentOS7Docker安裝與解除安裝

原文地址:https://www.cnblogs.com/xuezhigu/p/6553936.html 安裝 1、安裝Docker 參見:https://docs.docker.com/engine/installation/linux/centos/ 2、直接使用roo

如何在 Linux 虛擬機器擴充套件根檔案系統

問題描述 通過 Azure 平臺部署的 Linux 虛擬機器預設的根檔案系統容量有限,需要進行擴充套件。 問題分析 由於 Azure 平臺部署的 Linux 虛擬機器預設根檔案系統容量比較小,客戶在使用過程中,經常會出現根檔案系統用滿,導致虛擬機器不可用的情況,需要

修改 IntelliJ IDEA 的預設檔案編碼

有兩種辦法可以修改 IntelliJ IDEA 的檔案編碼(IDE 版本為 14.1.4) File->Settings->Editor->File Encodings 這種方式修改的檔案編碼方式只對當前 project 起作用,每次新建了

在NAND FLASH建立YAFFS2檔案系統

針對於flash的檔案系統有很多,據我瞭解有jffs(1,2,3),yaffs(1,2)。還有商業的三星開發的RFS(健壯檔案系統),專門針對三星自己的nand和onenand,從底層驅動到上層檔案系統一條龍服務,而且號稱和fat格式100%相容。當時看得我直流口水,心裡把三星恨的咬牙切齒。 下面主要介紹一下