![]() |
|
以作者查詢圖書館館藏 、以作者查詢臺灣博碩士 、以作者查詢全國書目 、勘誤回報 、線上人數:10 、訪客IP:3.149.28.134
姓名 黃泓霖(Hung-Lin Huang) 查詢紙本館藏 畢業系所 資訊工程學系 論文名稱 在支援Overlay Network與Shared Volume之Docker Swarm叢集上提供高可用性軟體容器服務
(Providing High-Availability Software Containers as a Service on Docker Swarm Clusters with Overlay Network and Shared Volume)相關論文 檔案 [Endnote RIS 格式]
[Bibtex 格式]
[相關文章]
[文章引用]
[完整記錄]
[館藏目錄]
[檢視]
[下載]
- 本電子論文使用權限為同意立即開放。
- 已達開放權限電子全文僅授權使用者為學術研究之目的,進行個人非營利性質之檢索、閱讀、列印。
- 請遵守中華民國著作權法之相關規定,切勿任意重製、散佈、改作、轉貼、播送,以免觸法。
摘要(中) 隨著雲端運算技術的進展,虛擬化技術被廣泛應用於各種運算環境之中。而在近幾年來的IT產業裡,作業系統容器化(OS Containerization)的概念正逐漸被重視,這種概念就是在作業系統層級開啟虛擬而且獨立的作業環境,亦即是軟體容器(Software Container) ,並讓應用程式在軟體容器執行。這種方式與虛擬機器相較而言,具有較輕量的額外效能負擔,因此逐漸受到企業所青睞。然而,對於企業而言,服務的高可用性(High Availability, HA)永遠是其所注重的問題,因此需要一套機制來支援軟體容器的高可用性需求。在軟體容器平台的管理與建置工具中,Docker是目前最被廣泛重視與應用的開源專案。Docker Swarm則是一個用來建立Docker容器運算叢集的開源專案。而在我們的研究中發現,目前Docker Swarm的版本對於Docker容器的HA功能並未非常完善,例如對於以多個容器互相連結提供服務的容器叢集發生錯誤時,Docker Swarm無法確實回復服務。針對這些HA的需求,我們提出一個輕量型的HA架構,並於Docker Swarm上實作高可用性Docker容器叢集之功能。這個HA架構利用Docker容器共享數據卷(shared Docker volume)來確保資料不會在軟體容器復原後遺失。這個架構也使用Docker層疊網路(Overlay Network)動態配置容器位址讓軟體容器間可以跨主機彼此溝通。HA架構中最重要的是本研究所提出的容器錯誤監測與回復機制,讓軟體容器可以在發生錯誤後快速重啟,並且彌補了Docker Swarm 在容錯回復機制的缺陷。我們的實驗結果指出,本研究所提出的HA機制可以大幅降低Docker Container的服務停止時間(Downtime),並提升以容器運行的應用程式或服務之可用性。 摘要(英) Hardware virtualization fulfills users’ computing demands by providing users software compute instances namely virtual machines, which emulate how physical machines work. It is widely used in various computing platforms in the cloud era due to its manageability, flexibility and elasticity. In recent years, a similar light-weight technology, usually called OS containerization (or OS-level virtualization), has gradually become a hot issue in IT industry. The OS containerization technology provides a logical compute instance, known as the software container, as the fundamental compute unit to host applications or services. A software container is emulated by the host OS. Therefore, it has light-weight overheads in terms of instance creation/deletion time and consumed memory space, when compared with hardware virtualization. Docker is one of the popular open-source projects for OS containerization. It allows people to create and to manage software containers on a host OS. Docker Swarm is another open-source project for building a compute pool of Docker containers. Based on our study, Docker Swarm does not well support the high availability (HA) feature for its Docker containers in the current version. For example, the failover mechanism of Docker Swarm cannot handle failures on linked containers, which can be viewed as a virtual container cluster where each member can directly or indirectly communicate with each other. To this end, this research focuses on the HA issue of Docker Swarm. In this paper, we present a light-weight HA architecture as well as its implementation based on Docker Swarm. The HA architecture uses shared Docker volume to prevent data loss. It also uses Docker overlay networks to enable communication among software containers on different hosts. We also implement a light-weight monitoring mechanism to detect whether a software container fails, as well as a recovery mechanism to recover a failed software container in a second. With the proposed mechanisms, we can reduce the downtime of any failed software container on Docker Swarm, and improve the ability of the applications/services running on the software containers consequently. 關鍵字(中) ★ 高可用性
★ 作業系統容器化
★ 作業系統虛擬化
★ 軟體容器
★ Docker
★ Docker Swarm關鍵字(英) ★ High availability
★ OS containerization
★ OS-level virtualization
★ Software container
★ Docker
★ Docker Swarm論文目次 摘要 i
Abstract ii
誌謝 iii
目錄 iv
圖目錄 vi
表目錄 viii
第一章 緒論 1
1-1研究背景 1
1-2研究問題與動機 3
1-3實作目標與研究貢獻 6
1-4論文架構 6
第二章 相關研究 7
2-1背景知識 7
2-1-1高可用性叢集(High Available Cluster) 7
2-1-2 Docker 7
2-1-3 Docker Swarm 8
2-1-4 GlusterFS 10
2-1-5 Docker容器持久化數據保存 11
2-1-6 Docker 容器網路 17
2-2相關容器HA研究 19
2-3 相關Docker叢集管理工具 19
2-3-1 Kubernetes 19
2-3-2 Mesos + Marathon 21
2-3-3 叢集HA機制探討 22
第三章 系統架構介紹 24
3-1系統架構模型 24
3-2系統架構元件 25
3-2-1 Convoy Storage Pool 25
3-2-2 Docker Swarm Cluster 26
3-2-3 Overlay Network 28
3-2-4 Container Health Checker 29
3-3系統錯誤處理 31
3-3-1 Manager Failure 31
3-3-2 Container Failure 31
3-3-3 Node Failure 32
第四章 實驗環境與測量 34
4-1實驗環境設定 34
4-2實驗環境假設 36
4-3實驗案例 37
4-3-1 Simple Container測試 38
4-3-2 Persistent Linked Container測試 38
4-4實驗結果 40
4-4-1 Manager Failure 40
4-4-2 Container Failure 41
4-4-3 Node Failure 43
第五章 結論與未來研究方向 45
參考文獻 46參考文獻 [1] Sam Newman, “Building Microservices,” O’Reilly, 2015.
[2] “High availability in Docker Swarm.” Accessed: June 30, 2016 [Online].
Available: https://docs.docker.com/swarm/multi-manager-setup/
[3] Anderson, Charles, “Docker,” IEEE Software, vol. 32, pp.102-c3, May-June 2015.
[4] “Docker - Build, Ship, and Run Any App, Anywhere.” Accessed: May 5, 2016. [Online] Available: https://www.docker.com/
[5] “Docker Swarm.” Accessed: April 30, 2016. [Online] Available: https://docs.docker.com/swarm/
[6] “Etcd.” Accessed: April 30, 2016. [Online] Available: https://coreos.com/etcd/docs/latest/
[7] “Consul.” Accessed: April 30, 2016. [Online] Available: https://www.consul.io/
[8] Patrick Hunt, Mahadev Konar, Flavio P. Junqueira, Benjamin Reed, “ZooKeeper: Wait-free Coordination for Internet-scale Systems,” USENIX Annual Technical Conference, Berkeley, CA, USA, vol. 8, pp. 11-11, 2010.
[9] “Storage for your Cloud¬—GlusterFS.” Accessed: April 30, 2016. [Online]. Available: https://www.gluster.org/
[10] “Rancher Convoy.” Accessed: April 30, 2016. [Online]. Available:
https://github.com/rancher/convoy
[11] 孫宏亮,Docker源碼分析,第一版,機械工業出版社,中國北京市,2015年8月。
[12] “Manage data in Containers. ” Accessed: April 30, 2016. [Online]. Available: https://docs.docker.com/engine/userguide/containers/dockervolumes/
[13] “Storage solutions & data volume manager for Docker—Flocker.” Accessed: April 30, 2016. [Online]. Available:https://clusterhq.com/flocker/introduction/
[14] 華為Docker實踐小組,Docker進階與實戰,第一版,機械工業出版社,中國三河市,2016年2月
[15] “Docker Compose,” Accessed: April 30. [Online] Available: https://docs.docker.com/compose/
[16] Li, Wubin, Ali Kanso, and Abdelouahed Gherbi. “Leveraging Linux Containers to Achieve High Availability for Cloud Services,” Cloud Engineering (IC2E), 2015 IEEE International Conference on. IEEE, Tempe, AZ, pp. 76-83, March, 2015.
[17] “CRIU. Checkpoint/Restore In Userspace.” Accessed: April 30, 2016. [Online] Available: http://criu.org/
[18] Jianhua Che, Congcong Shi, Yong Yu, Weimin Lin, “A Synthetical Performance Evaluation of OpenVZ, Xen and KVM,” 2010 IEEE Asia-Pacific Services Computing Conference (APSCC), Hangzhou, pp. 587-594, December, 2010
[19] Peinl, René, Florian Holzschuher, and Florian Pfitzer. “Docker Cluster Management for the Cloud-Survey Results and Own Solution,” Journal of Grid Computing 14.2, pp265-282, 2016
[20] David Bernstein, “Containers and Cloud: From LXC to Docker to Kubernetes,” IEEE Cloud Computing, vol. 1, no. 3, pp. 81–84. , September, 2014
[21] Hindman, Benjamin, Matei Zaharia, Ali Ghodsi, Anthony D. Joseph, Randy Katz, Scott Shenker, Ion Stoica, “Mesos: A Platform for Fine-Grained Resource Sharing in the Data Center,” NSDI, Vol. 11, pp.22-22, 2011.
[22] “Docker Restart Policy.” Accessed: May 5, 2016 . [Online] Available: https://docs.docker.com/engine/reference/commandline/run/
[23] Li, Wubin, and Ali Kanso, “Comparing Containers versus Virtual Machines for Achieving High Availability,” Cloud Engineering (IC2E), 2015 IEEE International Conference, Tempe, AZ, pp. 353-358, March, 2015.
[24] Liu, Di, and Libin Zhao, “The Research and Implementation of Cloud Computing Platform Based on Docker,” Wavelet Active Media Technology and Information Processing (ICCWAMTIP), 2014 11th International Computer Conference on. IEEE, Chengdu, pp. 475-478, December, 2014.
[25] Mathijs Jeroen Scheepers, “Virtualization and containerization of application infrastructure: A comparison,” University of Twente, Enschede, The Netherlands, 2014.
[26] Stubbs, Joe, Walter Moreira, and Rion Dooley, “Distributed Systems of Microservices Using Docker and Serfnode,” Science Gateways (IWSG), 2015 7th International Workshop on. IEEE, Budapest, pp. 34-39, June, 2015.
[27] Marmol, Victor, Rohit Jnagal, and Tim Hockin, “Networking in Containers and Container Clusters,” Proceedings of Netdev 0.1, Ottawa, On, Canada, February, 2015.
[28] Betty Junod, “Container as a Service (CAAS) as Your New Platform For Application Development ans Operatioms.” Accessed: March 29, 2016 .[Online]. Available: https://blog.docker.com/2016/02/containers-as-a-service-caas/.指導教授 王尉任(Wei-Jen Wang) 審核日期 2016-8-5 推文 plurk
funp
live
udn
HD
myshare
netvibes
friend
youpush
delicious
baidu
網路書籤 Google bookmarks
del.icio.us
hemidemi
myshare