1. 程式人生 > 其它 >|NO.Z.00017|——————————|CloudVirtualiZation|——|Cloud&Docker儲存.V02|-------------------------------------|儲存驅動|

|NO.Z.00017|——————————|CloudVirtualiZation|——|Cloud&Docker儲存.V02|-------------------------------------|儲存驅動|



[CloudVirtualiZation:Cloud&Docker儲存.V02]                                              [Applications.CloudVirtualiZation] [|docker|docker資料儲存|資料卷特性|容器中的資料卷Volume|儲存驅動|overlay]








一、儲存驅動
### --- Docker儲存驅動(storage driver)是docker的核心元件,

~~~     它是docker實現分成映象的基礎
~~~     device mapper(DM):效能和穩定性存在問題,
~~~     不推薦生產環境中使用;DM會在centos7中較為老的版本中使用,
~~~     若是centos7的核心版本低於歐3.18版本;
~~~     overlayfs還沒有進入主線版本,那主線版本呢當時是DM,
~~~     docker會退格使用DM的儲存驅動。
~~~     # docker info:效能和穩定存在問題是相對與overlayfs來說的,
~~~     並不是差到不能用,推薦還是使用overlayfs
~~~     # Storage Driver: overlay:我們在安裝的時候加入update的更新,
~~~     把版本更新到最新版本。若是沒有更新,使用的centos7的版本比較老的話預設儲存驅動就會是DM

~~~     # btrfs:社群實現了btrfs driver穩定性和效能存在問題;
~~~     是居於docker社群實現的,在非docker容器中也有在使用;對於DM來說相對好一點
~~~     # overlayfs:核心3.18overlayfs進入主線,效能和穩定性優異,第一選擇;
~~~     在3.18以後,在centos中Redhat系列中才會進入到主線,Ubuntu16已進入主線。
[root@hub volumes]# docker info 
Storage Driver: overlay                 
btrfs
overlayf

### --- Docker  overlayfs driver 

[root@hub ~]# mount -t overlay overlay -olowerdir=./low,upperdir=./upper,workdir=./work ./merged
二、overlay工作過程
### --- overlay工作過程

[root@hub ~]# mkdir /var/overlay
[root@hub ~]# cd /var/overlay/
### --- 在overlay目錄下建立這四個目錄
[root@hub overlay]# mkdir low work upper merged 
~~~     work:       工作目錄
~~~     low:        最下層 
~~~     upper:      中間層 
~~~     merged:     使用者的掛載層,最上層。

[root@hub overlay]# mount -t overlay overlay -olowerdir=./low,upperdir=./upper,workdir=./work ./merged      //掛載
[root@hub overlay]# mount 
overlay on /var/overlay/merged type overlay (rw,relatime,lowerdir=./low,upperdir=./upper,workdir=./work)    //顯示掛載成功
[root@hub overlay]# vim low/1.txt
aaaaaaaaaaa
[root@hub overlay]# vim upper/2.txt
bbbbbbbbbbb
[root@hub overlay]# tree
.
├──low
│   └── 1.txt
├── merged                                          // merged為什麼會出現1.txt和2.txt檔案
│   └── 1.txt                                       // 自上而下去看,若是上面有的,下面都會顯示出來;若是上面有的會把下面的覆蓋掉;
│   └── 2.txt                                       // 顯示覆制的機制,自上而下的去看。
├── upper
│   └── 2.txt
└── work
    └── work
[root@hub overlay]# cat merged/1.txt 
aaaaaaaaaaaaaaaaaaaaaaaa
[root@hub overlay]# cat merged/2.txt 
bbbbbbbbbbbbbbbbbbbbbb
[root@hub overlay]# vim merged/1.txt 
aaaaaaaaaaaaaaaaaaaaaaaa
bbbbbbbbbbbbbbbbbbbbbbbb
[root@hub overlay]# cat low/1.txt                   // 最低層low層1.txt檔案內容沒有修改
aaaaaaaaaaaaaaaaaaaaaaaa
[root@hub overlay]# ls upper/                       // 而中間層upper出現了一個1.txt檔案,
1.txt  2.txt                
[root@hub overlay]# cat upper/1.txt                 // 且1.txt檔案變成我修改後的檔案,而low層1.txt檔案內容沒有變化
aaaaaaaaaaaaaaaaaaaaaaaa
bbbbbbbbbbbbbbbbbbbbbbbb
[root@hub overlay]# rm -rf merged/1.txt             // 在使用者掛載層最上層刪除1.txt檔案,
[root@hub overlay]# cat low/1.txt                   // 而low裡面1.txt檔案還是存在,檔案內容還是aaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaa                                
[root@hub overlay]# ls -l  upper/                   // upper下1.txt檔案依然存在,但是它的顏色發生變化了
c--------- 1 root root 0, 0 Jan  6 19:02 1.txt      // c標籤,在overlay下代表這個檔案已經被刪除了
-rw-r--r-- 1 root root   23 Jan  6 18:48 2.txt      
[root@hub overlay]# rm -rf upper/1.txt              // 把upper下的1.txt檔案刪除掉
[root@hub overlay]# cat merged/1.txt                // merged下的1.txt檔案又回來了,並且是之前的檔案內容
aaaaaaaaaaaaaaaaaaaaaaaa
### --- 修改為overlayfs儲存驅動:若我們的儲存引擎不是overlay的情況下,建議改為overlay。

[root@hub ~]# echo "overlay" >/etc/modules-load.d/overlay.conf  // 先把overlay載入到模組載入中
[root@hub ~]# cat /proc/modules|grep overlay                    // 再去檢視當前的模組載入方式
[root@hub ~]# reboot                                            // 重啟
[root@hub ~]# vim /etc/systemd/system/docker.service                    
                    --storage-driver=overlay \                  // 並且把儲存驅動改為overlay即可








===============================END===============================


Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart                                                                                                                                                    ——W.S.Landor



來自為知筆記(Wiz)