Responsive image
博碩士論文 etd-0623114-201157 詳細資訊
Title page for etd-0623114-201157
論文名稱
Title
研究以Linux容器為基礎之平台即服務雲端作業系統
The Study of a Linux Container-Based Cloud Operating System for Platform as a Service
系所名稱
Department
畢業學年期
Year, semester
語文別
Language
學位類別
Degree
頁數
Number of pages
119
研究生
Author
指導教授
Advisor
召集委員
Convenor
口試委員
Advisory Committee
口試日期
Date of Exam
2014-06-30
繳交日期
Date of Submission
2014-07-24
關鍵字
Keywords
平台即服務、Linux容器、LXC、Docker、Linux虛擬伺服器、LVS、Open vSwitch、雲端運算
Linux containers, Docker, Linux Virtual Server, LXC, Platform as a Service, LVS, Open vSwitch, Cloud computing
統計
Statistics
本論文已被瀏覽 5689 次,被下載 112
The thesis/dissertation has been browsed 5689 times, has been downloaded 112 times.
中文摘要
隨著資訊科技與網際網路的快速發展,雲端運算成為許多企業佈署服務的選擇之一。雲端運算擁有許多優點:能省去建造與維護基礎建設所需的時間與支出成本、滿足服務與資源的最大彈性化,同時降低所需要的背景知識,並能夠快速針對企業服務需求做出立即回應與調整,因此IT人員不再需要到硬體層面問題,可專注於雲端應用服務的開發。雲端運算服務模式可分為三種:軟體即服務(SaaS,Software as a Service)、平台即服務(PaaS,Platform as a Service)、基礎建設即服務(IaaS,Infrastructure as a Service)。然而目前的平台即服務普遍有個限制:「服務開發者必須配合該平台所支援之程式語言、函式庫或作業系統。」這樣的限制使得該服務無法被任意地在任何平台上遷移。
本論文主要設計與實作一個以Linux Container(LXC)為基礎之平台即服務雲端作業系統,利用Linux Container技術來突破上述之限制。此雲端作業系統提供網頁控制介面讓服務管理者控制各項服務,並擁有一套自動化機制能將使用者製作好、提供特定服務之服務映像檔(Service Image)自動派送與部署至實體主機上運行的功能。可依據服務需求,動態調整服務叢集內的節點數量,隨時擴充處理能力。本雲端作業系統為所有客戶端提供統一服務存取入口,透過服務探索(Service Discovery)機制正確得引導使用者制所需要的服務節點上。同時在一個服務叢集內實現負載平衡(load balance)。
Abstract
With the rapid developments of information technology and internet, cloud computing become one of choices to deploy the company’s services. Cloud computing has many advantages. First, companies don’t need to spend time and money to build own infrastructures. Second, regulates services and resources at any time. Third, decrease IT’s needed knowledge for management. Lastly, on-demand self-service. Cloud computing let developers can focus on service development. From the NIST (National Institute of Standards and Technology) definition of cloud computing, there are 3 types of service models: “Software as a Service (SaaS)”, “Platform as a Service (PaaS)”, and “Infrastructure as a Service (IaaS)”. But there is a restriction on many vendors which provide platform as a service: “Developers must use the supported programing languages, libraries, and operating systems to develop and deploy services.” Because of it, the service cannot be moved to other platforms arbitrarily.
In this thesis, we design and implement a Linux container-based cloud operating system for platform as a service that use Linux container technology to break out the restriction. This cloud operation system has a web UI to provides the functions that user can manage all the resources and services on it. It has a mechanism that can dispatch and deploy the service image to the real host and launch it automatically. And it also can control amount of the service nodes in the service cluster dynamically to scale throughput. This cloud operating system provides a unified entry point for all clients, lead them to the specified service node correctly through the service discovery mechanism and load balancing.
目次 Table of Contents
論文審定書 i
誌謝 ii
摘要 iii
Abstract iv
目錄 v
圖次 ix
表次 xii
第一章 序論 1
1.1 研究動機 1
1.2 研究目的 2
1.3 論文架構 3
第二章 研究背景 4
2.1 Linux Containers(LXC) 4
2.2 Docker 6
2.3 Linux Virtual Server(LVS) 9
2.3.1 LVS功能簡介 9
2.3.2 Architecture 1: NAT 10
2.3.3 Architecture 2: IP tunneling 11
2.3.4 Architecture 3: direct routing 13
2.3.5 三種架構之比較 14
2.4 iptables 15
2.4.1 DNAT 16
2.4.2 MASQUERADE 17
2.5 JSON 17
2.6 MongoDB 20
2.6.1 BSON 22
2.7 ZeroMQ(ØMQ) 22
2.7.1 ZeroMQ特色 23
2.7.2 四大通訊模式介紹 23
2.7.2.1 Request-Reply模式 23
2.7.2.2 Publish-Subscribe模式 25
2.7.2.3 Pipeline模式 26
2.7.2.4 Exclusive模式 26
2.7.3 ZeroMQ與傳統Socket比較 27
2.8 Open vSwitch 27
2.9 Pipework 29
2.10 Amazon S3 30
2.10.1 REST 30
第三章 雲端作業系統之設計 31
3.1 系統介紹 31
3.1.1 名詞解釋 31
3.1.2 系統特色 33
3.2 系統硬體主機架構 34
3.3 叢集式自治系統之架構 34
3.3.2 單一自治系統之架構 35
3.4 系統網路架構 37
3.4.1 實體網路架構 37
3.4.2 虛擬網路架構 38
3.5 系統軟體架構 41
3.5.1 Manager軟體架構 41
3.5.2 Ingress軟體架構 42
3.5.3 Proxy軟體架構 43
3.5.4 Real host軟體架構 44
3.5.5 DDMS軟體架構 45
3.5.6 LVS軟體架構 46
3.6 結論 46
第四章 雲端作業系統之實作 47
4.1 系統開發環境 47
4.1.1 主機硬體資訊 47
4.1.2 軟體與函式庫版本 48
4.1.3 主機網路地址配置 48
4.2 DDMS訊令系統 49
4.2.1 網路Socket結構 49
4.2.2 訊令之格式 51
4.2.3 訊令佇列設計 53
4.2.4 訊令處理程序 55
4.2.5 資料庫結構 57
4.3 服務流程實作 58
4.3.1 System Resource Management(系統資源管理) 58
4.3.2 Service Image Storage(服務映像檔儲存) 59
4.3.3 Service Launch & Deployment(服務啟動與部署) 61
4.3.4 Service Discovery(服務探索) 63
4.3.5 Service Termination(服務終止) 65
4.3.6 Dynamic Service Node Quantity Control(動態調節) 66
4.3.7 Service Data Storage(服務資料儲存) 68
第五章 系統成果展示 69
第六章 與CoreOS之比較分析 75
第七章 結論與未來展望 77
參考文獻 78
附錄A 81
附錄B 95
參考文獻 References
[1] Peter Mell, Timothy Grance, The NIST Definition of Cloud Computing, 9/2011
[2] Gmail, 6/2014, http://mail.google.com/
[3] Dropbox, 6/2014, https://www.dropbox.com/
[4] Evernote, 6/2014, http://evernote.com/
[5] Google App Engine, 6/2014, https://appengine.google.com/
[6] Heroku | Cloud Application Platform, 6/2014, https://www.heroku.com/
[7] Azure: Microsoft's Cloud Platform | Cloud Hosting | Cloud Services, 6/2014, http://azure.microsoft.com/en-us/
[8] Amazon Web Services (AWS) - Cloud Computing Services, 6/2014, http://aws.amazon.com/
[9] Linode: SSD Cloud Hosting, 6/2014, https://www.linode.com/
[10] LXC - Linux Containers, 6/2014, https://linuxcontainers.org/
[11] cgroups - Wikipedia, the free encyclopedia, 6/2014, http://en.wikipedia.org/wiki/Cgroups
[12] Docker - Build, Ship, and Run Any App, Anywhere, 6/2014, http://www.docker.com/
[13] Docker Hub, 6/2014, https://hub.docker.com/
[14] dotcloud/docker-registry • GitHub, 6/2014, https://github.com/dotcloud/docker-registry
[15] Docker Blog, 6/2014, http://blog.docker.com/
[16] The Linux Virtual Server Project - Linux Server Cluster for Load Balancing, 6/2014, http://www.linuxvirtualserver.org/
[17] LVS-HOWTO, 6/2014, http://www.austintek.com/LVS/LVS-HOWTO/HOWTO/
[18] 6. LVS: The ARP Problem, 6/2014, http://www.austintek.com/LVS/LVS-HOWTO/HOWTO/LVS-HOWTO.arp_problem.html
[19] Lvs之NAT、DR、TUN三种模式的应用配置案例, 6/2013, http://lansgg.blog.51cto.com/5675165/1229421
[20] netfilter/iptables project homepage - The netfilter.org "iptables" project, 6/2014, http://www.netfilter.org/projects/iptables/index.html
[21] 鳥哥的Linux私房菜--Linux防火牆與NAT伺服器, 7/2011, http://linux.vbird.org/linux_server/0250simple_firewall.php#netfilter
[22] JSON, 6/2014, http://json.org/
[23] MongoDB, 6/2014, http://www.mongodb.org/
[24] BSON - Binary JSON, 6/2014, http://bsonspec.org/
[25] Code Connected – zeromq, 6/2014, http://zeromq.org/
[26] ØMQ - The Guide, 6/2014, http://zguide.zeromq.org/page:all
[27] Open vSwitch, 6/2014, http://openvswitch.org/
[28] jpetazzo/pipework • GitHub, 6/2014, https://github.com/jpetazzo/pipework
[29] AWS | Amazon Simple Storage Service (S3) - Online Cloud Storage for Data & Files, 6/2014, http://aws.amazon.com/s3/
[30] Representational state transfer - Wikipedia, the free encyclopedia, 6/2014, http://en.wikipedia.org/wiki/Representational_state_transfer
[31] Home • json-c/json-c Wiki • GitHub, 6/2014, https://github.com/json-c/json-c/wiki
[32] libmongo-client: libmongo-client, 6/2014, http://algernon.github.io/libmongo-client/
[33] CoreOS is Linux for Massive Server Deployments, 6/2014, https://coreos.com/
[34] coreos/etcd • GitHub, 6/2014, https://github.com/coreos/etcd
[35] systemd - Wikipedia, the free encyclopedia, 6/2014, http://en.wikipedia.org/wiki/Systemd
[36] Marek Goldmann | Connecting Docker containers on multiple hosts, 1/2014, http://goldmann.pl/blog/2014/01/21/connecting-docker-containers-on-multiple-hosts/
[37] Start a New Journey: 如何將Linux打造成OpenFlow Switch:Openvswitch, 10/2013, http://neokentblog.blogspot.tw/2013/10/linuxopenflow-switchopenvswitch.html
[38] Mozilla Developer Network, 6/2014, https://developer.mozilla.org/zh-TW/
[39] Application靠軟體貨櫃跑遍全世界 | iThome, 6/2014, http://www.ithome.com.tw/voice/88617
[40] 新一代虛擬化快速部署工具Docker正式出爐,連Google都買單 | iThome, 6/2014, http://www.ithome.com.tw/news/88543
[41] Google App Engine將支援Docker | iThome, 6/2014, http://www.ithome.com.tw/news/88547
[42] Docker與紅帽擴大容器技術合作, 6/2014, http://www.ithome.com.tw/pr/87044
[43] 輕量型Linux 版本 CoreOS正式登上Google雲端平台 | iThome, 5/2014, http://www.ithome.com.tw/news/88025
電子全文 Fulltext
本電子全文僅授權使用者為學術研究之目的,進行個人非營利性質之檢索、閱讀、列印。請遵守中華民國著作權法之相關規定,切勿任意重製、散佈、改作、轉貼、播送,以免觸法。
論文使用權限 Thesis access permission:自定論文開放時間 user define
開放時間 Available:
校內 Campus: 已公開 available
校外 Off-campus: 已公開 available


紙本論文 Printed copies
紙本論文的公開資訊在102學年度以後相對較為完整。如果需要查詢101學年度以前的紙本論文公開資訊,請聯繫圖資處紙本論文服務櫃台。如有不便之處敬請見諒。
開放時間 available 已公開 available

QR Code