大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

Docker教程
Docker安裝
Docker使用
Docker實(shí)例

Docker存儲(chǔ)驅(qū)動(dòng)

每個(gè) Docker 容器都有一個(gè)本地存儲(chǔ)空間,用于保存層疊的鏡像層(Image Layer)以及掛載的容器文件系統(tǒng)。

默認(rèn)情況下,容器的所有讀寫(xiě)操作都發(fā)生在其鏡像層上或掛載的文件系統(tǒng)中,所以存儲(chǔ)是每個(gè)容器的性能和穩(wěn)定性不可或缺的一個(gè)環(huán)節(jié)。

以往,本地存儲(chǔ)是通過(guò)存儲(chǔ)驅(qū)動(dòng)(Storage Driver)進(jìn)行管理的,有時(shí)候也被稱(chēng)為 Graph Driver 或者 GraphDriver。

雖然存儲(chǔ)驅(qū)動(dòng)在上層抽象設(shè)計(jì)中都采用了棧式鏡像層存儲(chǔ)和寫(xiě)時(shí)復(fù)制(Copy-on-Write)的設(shè)計(jì)思想,但是 Docker 在 Linux 底層支持幾種不同的存儲(chǔ)驅(qū)動(dòng)的具體實(shí)現(xiàn),每一種實(shí)現(xiàn)方式都采用不同方法實(shí)現(xiàn)了鏡像層和寫(xiě)時(shí)復(fù)制。

雖然底層實(shí)現(xiàn)的差異不影響用戶(hù)與 Docker 之間的交互,但是對(duì) Docker 的性能和穩(wěn)定性至關(guān)重要。

在 Linux 上,Docker 可選擇的一些存儲(chǔ)驅(qū)動(dòng)包括 AUFS(最原始也是最老的)、Overlay2(可能是未來(lái)的最佳選擇)、Device Mapper、Btrfs 和 ZFS。

Docker 在 Windows 操作系統(tǒng)上只支持一種存儲(chǔ)驅(qū)動(dòng),即 Windows Filter。

存儲(chǔ)驅(qū)動(dòng)的選擇是節(jié)點(diǎn)級(jí)別的。這意味著每個(gè) Docker 主機(jī)只能選擇一種存儲(chǔ)驅(qū)動(dòng),而不能為每個(gè)容器選擇不同的存儲(chǔ)驅(qū)動(dòng)。

在 Linux 上,讀者可以通過(guò)修改 /etc/docker/daemon.json 文件來(lái)修改存儲(chǔ)引擎配置,修改完成之后需要重啟 Docker 才能夠生效。

下面的代碼片段展示了如何將存儲(chǔ)驅(qū)動(dòng)設(shè)置為 overlay2。

{ "storage-driver": "overlay2" }

提示:如果配置所在行不是文件的最后一行,則需要在行尾處增加逗號(hào)。

如果讀者修改了正在運(yùn)行 Docker 主機(jī)的存儲(chǔ)引擎類(lèi)型,則現(xiàn)有的鏡像和容器在重啟之后將不可用,這是因?yàn)槊糠N存儲(chǔ)驅(qū)動(dòng)在主機(jī)上存儲(chǔ)鏡像層的位置是不同的(通常在 /var/lib/docker/ /... 目錄下)。

修改了存儲(chǔ)驅(qū)動(dòng)的類(lèi)型,Docker 就無(wú)法找到原有的鏡像和容器了。切換到原來(lái)的存儲(chǔ)驅(qū)動(dòng),之前的鏡像和容器就可以繼續(xù)使用了。

如果希望在切換存儲(chǔ)引擎之后還能夠繼續(xù)使用之前的鏡像和容器,需要將鏡像保存為 Docker 格式,上傳到某個(gè)鏡像倉(cāng)庫(kù),修改本地 Docker 存儲(chǔ)引擎并重啟,之后從鏡像倉(cāng)庫(kù)將鏡像拉取到本地,最后重啟容器。

通過(guò)下面的命令來(lái)檢查 Docker 當(dāng)前的存儲(chǔ)驅(qū)動(dòng)類(lèi)型。

$ docker system info

Storage Driver: overlay2
Backing Filesystem: xfs
Supports d_type: true
Native Overlay Diff: true

選擇存儲(chǔ)驅(qū)動(dòng)并正確地配置在 Docker 環(huán)境中是一件重要的事情,特別是在生產(chǎn)環(huán)境中。

下面的清單可以作為一個(gè)參考指南,幫助我們選擇合適的存儲(chǔ)驅(qū)動(dòng)。同時(shí)還可以參閱 Docker 官網(wǎng)上由 Linux 發(fā)行商提供的最新文檔來(lái)做出選擇。

? Red Hat Enterprise Linux:4.x版本內(nèi)核或更高版本 + Docker 17.06 版本或更高版本,建議使用 Overlay2。

? Red Hat Enterprise Linux:低版本內(nèi)核或低版本的 Docker,建議使用 Device Mapper。

? Ubuntu Linux:4.x 版本內(nèi)核或更高版本,建議使用 Overlay2。

? Ubuntu Linux:更早的版本建議使用 AUFS。

? SUSE Linux Enterprise Server:Btrfs。

我們需要時(shí)刻關(guān)注 Docker 文檔中關(guān)于存儲(chǔ)驅(qū)動(dòng)的最新支持和版本兼容列表。尤其是正在使用 Docker 企業(yè)版(EE),并且有售后支持合同的情況下,更有必要查閱最新文檔。

Device Mapper 配置

大部分 Linux 存儲(chǔ)驅(qū)動(dòng)不需要或需要很少的配置。但是,Device Mapper 通常需要合理配置之后才能表現(xiàn)出良好的性能。

默認(rèn)情況下,Device Mapper 采用 loopback mounted sparse file 作為底層實(shí)現(xiàn)來(lái)為 Docker 提供存儲(chǔ)支持。

如果需要的是開(kāi)箱即用并且對(duì)性能沒(méi)什么要求,那么這種方式是可行的。但這并不適用于生產(chǎn)環(huán)境。實(shí)際上,默認(rèn)方式的性能很差,并不支持生產(chǎn)環(huán)境。

為了達(dá)到 Device Mapper 在生產(chǎn)環(huán)境中的最佳性能,讀者需要將底層實(shí)現(xiàn)修改為 direct-lvm 模式。

這種模式下通過(guò)使用基于裸塊設(shè)備(Raw Block Device)的 LVM 精簡(jiǎn)池(LVM thin pool)來(lái)獲取更好的性能。

在 Docker 17.06 以及更高的版本中可以配置 direct-lvm 作為存儲(chǔ)驅(qū)動(dòng)。

其中最主要的一點(diǎn)是,這種方式只能配置一個(gè)塊設(shè)備,并且只有在第一次安裝后才能設(shè)置生效。未來(lái)可能會(huì)有改進(jìn),但就目前情況來(lái)看配置單一塊設(shè)備這種方式在性能和可靠性上都有一定的風(fēng)險(xiǎn)。

讓 Docker 自動(dòng)設(shè)置 direct-lvm

下面的步驟會(huì)將 Docker 配置存儲(chǔ)驅(qū)動(dòng)為 Device Mapper,并使用 direct-lvm 模式。

⒈ 將下面的存儲(chǔ)驅(qū)動(dòng)配置添加到 /etc/docker/daemon.json 當(dāng)中。

{
"storage-driver": "devicemapper",
"storage-opts": [
        "dm.directlvm_device=/dev/xdf",
        "dm.thinp_percent=95",
        "dm.thinp_metapercent=1",
        "dm.thinp_autoextend_threshold=80",
        "dm.thinp_autoextend_percent=20",
        "dm.directlvm_device_force=false"
    ]
}

Device Mapper 和 LVM 是很復(fù)雜的知識(shí)點(diǎn),下面簡(jiǎn)單介紹一下各配置項(xiàng)的含義。

? dm.directlvm_device:設(shè)置了塊設(shè)備的位置。為了存儲(chǔ)的最佳性能以及可用性,塊設(shè)備應(yīng)當(dāng)位于高性能存儲(chǔ)設(shè)備(如本地 SSD)或者外部 RAID 存儲(chǔ)陣列之上。

? dm.thinp_percent=95:設(shè)置了鏡像和容器允許使用的最大存儲(chǔ)空間占比,默認(rèn)是 95%。

? dm.thinp_metapercent:設(shè)置了元數(shù)據(jù)存儲(chǔ)(MetaData Storage)允許使用的存儲(chǔ)空間大小。默認(rèn)是 1%。

? dm.thinp_autoextend_threshold:設(shè)置了 LVM 自動(dòng)擴(kuò)展精簡(jiǎn)池的閾值,默認(rèn)是 80%。

? dm.thinp_autoextend_percent:表示當(dāng)觸發(fā)精簡(jiǎn)池(thin pool)自動(dòng)擴(kuò)容機(jī)制的時(shí)候,擴(kuò)容的大小應(yīng)當(dāng)占現(xiàn)有空間的比例。

? dm.directlvm_device_force:允許用戶(hù)決定是否將塊設(shè)備格式化為新的文件系統(tǒng)。

⒉ 重啟 Docker。

⒊ 確認(rèn) Docker 已成功運(yùn)行,并且塊設(shè)備配置已被成功加載。

$ docker version
Client:
Version: 18.01.0-ce

Server:
Version: 18.01.0-ce


$ docker system info

Storage Driver: devicemapper
Pool Name: docker-thinpool
Pool Blocksize: 524.3 kB
Base Device Size: 25 GB
Backing Filesystem: xfs
Data file: << Would show a loop file if in loopback mode
Metadata file: << Would show a loop file if in loopback mode
Data Space Used: 1.9 GB
Data Space Total: 23.75 GB
Data Space Available: 21.5 GB
Metadata Space Used: 180.5 kB
Metadata Space Total: 250 MB
Metadata Space Available: 250 MB

即使 Docker 在 direct-lvm 模式下只能設(shè)置單一塊設(shè)備,其性能也會(huì)顯著優(yōu)于 loopback 模式。

手動(dòng)配置 Device Mapper 的 direct-lvm

⒈ 塊設(shè)備(Block Device)

在使用 direct-lvm 模式的時(shí)候,讀者需要有可用的塊設(shè)備。這些塊設(shè)備應(yīng)該位于高性能的存儲(chǔ)設(shè)備之上,比如本地 SSD 或者外部高性能 LUN 存儲(chǔ)。

如果 Docker 環(huán)境部署在企業(yè)私有云(On-Premise)之上,那么外部 LUN 存儲(chǔ)可以使用 FC、iSCSI,或者其他支持塊設(shè)備協(xié)議的存儲(chǔ)陣列。

如果 Docker 環(huán)境部署在公有云之上,那么可以采用公有云廠商提供的任何高性能的塊設(shè)備(通常基于 SSD)。

⒉ LVM配置

Docker 的 Device Mapper 存儲(chǔ)驅(qū)動(dòng)底層利用 LVM(Logical Volume Manager)來(lái)實(shí)現(xiàn),因此需要配置 LVM 所需的物理設(shè)備、卷組、邏輯卷和精簡(jiǎn)池。

讀者應(yīng)當(dāng)使用專(zhuān)用的物理卷并將其配置在相同的卷組當(dāng)中。這個(gè)卷組不應(yīng)當(dāng)被 Docker 之外的工作負(fù)載所使用。

此外還需要配置額外兩個(gè)邏輯卷,分別用于存儲(chǔ)數(shù)據(jù)和源數(shù)據(jù)信息。另外,要?jiǎng)?chuàng)建 LVM 配置文件、指定 LVM 自動(dòng)擴(kuò)容的觸發(fā)閾值,以及自動(dòng)擴(kuò)容的大小,并且為自動(dòng)擴(kuò)容配置相應(yīng)的監(jiān)控,保證自動(dòng)擴(kuò)容會(huì)被觸發(fā)。

⒊ Docker 配置

修改 Docker 配置文件之前要先保存原始文件(etc/docker/daemon.json),然后再進(jìn)行修改。

環(huán)境中的 dm.thinpooldev 配置項(xiàng)對(duì)應(yīng)值可能跟下面的示例內(nèi)容有所不同,需要修改為合適的配置。

{
    "storage-driver": "devicemapper",
    "storage-opts": [
        "dm.thinpooldev=/dev/mapper/docker-thinpool",
        "dm.use_deferred_removal=true",
        "dm.use_deferred_deletion=true"
    ]
}

修改并保存配置后,讀者可以重啟 Docker daemon。

全部教程
主站蜘蛛池模板: 国内久久精品视频 | 欧美人与性动交α欧美精品图片 | 站长推荐国产精品视频 | 免费超爽大片黄网站 | www.天天射 | 国产精品一区伦免视频播放 | 五月激情丁香婷婷综合第九 | 特黄a大片免费视频 | 国产深夜福利 | 欧美日本一级在线播放 | 综合久久久久久久综合网 | 日韩精品中文字幕在线观看 | 国产99精品 | 午夜视频在线观看国产www | 黄色综合网站 | 国产精品免费视频播放 | 国产精品久久久久久久hd | 欧美激情在线播放一区二区 | 亚洲在线网| 久久精品国产线看观看亚洲 | 亚洲欧美中文字幕在线网站 | 99热久久这里只精品国产ww | 亚洲精品高清视频 | 97在线成人免费视频观看 | 日本免费的一级v一片 | 久久久久久久久久免免费精品 | 精品国产免费久久久久久 | 7799国产精品久久久久99 | 亚洲综合精品一区 | 亚洲视频网 | 99久9在线视频 | 四虎免费影视 | 国产精品美女流白浆视频 | 全部免费的毛片在线看青青 | 韩日中文字幕 | 欧美成人七十二式性视频教程 | 亚洲欧美日韩国产精品 | 综合欧美一区二区三区 | 成人黄色网 | 国产无套乱子伦精彩是白视频 | 奇米奇米777 |