PPT | Docker定義儲存-讓應用無痛執行

有容雲發表於2016-09-29

編者注: 本文為9月27日晚上8點有容雲平臺儲存架構師張朝潞在騰訊課堂中演講的PPT,本次課堂為有容雲主辦的線上直播Docker Live時代●Online Meetup-第三期:Docker定義儲存--讓應用無痛執行中,文中跟大家討論瞭如何為容器選擇合適的儲存方案,具體詳情見以下PPT分享內容。

enter image description here

enter image description here

enter image description here

enter image description here

enter image description here

enter image description here

enter image description here

enter image description here

enter image description here

enter image description here

enter image description here

enter image description here

enter image description here

enter image description here

enter image description here

enter image description here

enter image description here

enter image description here

enter image description here

Q&A

Q:Docker使用外部儲存,把外部儲存直接給宿主機掛載,容器再使用宿主機掛載的外部儲存效率會不會更高? A:這種方式正是volume plugin的實現方式,容器直接mount宿主機的目錄,避免通過容器網路訪問外部儲存,效能肯定會更高。

Q:如何具體定製volume_plugin?不同主機掛同一個lun,這樣可以直接給volume 使用 同一業務 只要塊儲存速度可以那就不會影響業務 包括峰值和低值的應用 只是增加中間處理容器的數量,這樣可不可行? A:為了方便實現volume plugin,docker提供go-plugins-helper包(https://github.com/docker/go-plugins-helpers),提供基礎的功能,僅僅需要實現一個介面volume.Driver,並啟動http server便可。例子:GlusterFS就是使用這個包,基於glusterfs提供volume。https://github.com/calavera/docker-volume-glusterfs; 不同主機掛同一個lun,再格式化檔案系統,每個主機都由自身的檔案系統後設資料並不會立刻flush到塊裝置,所以多個主機掛同一個lun並不可行。

Q:對於一個容器,每次run都會下載大量的資料,如果多大50GB的話,如何去處理? A:將大量的資料儲存在外部共享儲存系統中,通過塊或檔案的方式掛載給容器使用,就可避免載入大量資料到本地。

Q:對於容器儲存也好或虛擬機器、雲主機儲存也好,都是大同小異,看你業務用途如何,再根據現有資源來決定是塊儲存還是分散式檔案或是物件儲存? A:確實儲存介面並沒有什麼根本性的改變,容器和虛擬機器在儲存的角度來看最大的區別就是容器中執行的是應用,而虛擬機器執行的是作業系統,使得容器儲存更加貼近應用,能夠根據具體應用的特性提供更合適的儲存服務。

Q:假如有一個lun,要對應一個host上的很多的container,我是把所有的container mount 到同一個目錄的不同子目錄速度快,還是先對這個lun進行分割槽格式化,然後在不同的container對不同的分割槽速度快呢? A:把所有的container mount 到同一個目錄的不同子目錄,表示多個程式對應1個檔案系統;先對這個lun進行分割槽格式化,然後在不同的container對不同的分割槽,表示1個程式對1個檔案系統;對於非IO密集型的程式,應該是後者更快,每個檔案系統都帶有cache,所以效能會更高一些。而對於IO密集型的程式,估計效能差別不大。

相關文章