Responsive image
博碩士論文 etd-0807116-131845 詳細資訊
Title page for etd-0807116-131845
論文名稱
Title
叢集下之Linux容器管理系統設計與實作
The Design and Implementation of Linux Containers Management System for Host Cluster
系所名稱
Department
畢業學年期
Year, semester
語文別
Language
學位類別
Degree
頁數
Number of pages
91
研究生
Author
指導教授
Advisor
召集委員
Convenor
口試委員
Advisory Committee
口試日期
Date of Exam
2016-07-25
繳交日期
Date of Submission
2016-09-07
關鍵字
Keywords
Node.js、Web Service、Shell Script、LXC、Linux容器、分散式運算
Distributed Computing, Shell Script, Node.js, Web Service, LXC
統計
Statistics
本論文已被瀏覽 5680 次,被下載 90
The thesis/dissertation has been browsed 5680 times, has been downloaded 90 times.
中文摘要
近年開始,傳統的單機個人電腦的計算方式,已無法負擔龐大的資料量運算,Big Data、分散式運算以及平行運算等解決方法的開始成為研究之顯學。利用多台市售個人電腦或者專業的伺服器組成一叢集,以叢集來提高整體運算能力和擴充儲存的空間。而如何管理叢集為必要且重要的部分,藉以提高機器之計算與儲存空間之利用率。因為虛擬化技術與分散式運算之架構日趨成熟與複雜,架構設計與應用息息相關,故管理系統的設計會採用應用導向,其中在管理面上,應具備虛擬化解決方案中的重要技術Linux容器(container)管理,快速建立多個互相獨立隔離的容器,以增加安全性,也讓主機達到最大化的效能,而在部屬快速、移植簡單、輕量化等優點讓使用上都具有效率與彈性的優勢。
而本論文完成以Linux容器(LXC)虛擬技術為核心的主機叢集管理系統。以達到分散式運算架構的需求為設計主軸,實作一個主機叢集管理系統,具備良好的擴充性,快速提供使用者所需要的分散運算的平臺,做為軟體開發、測試環境或大數據分析等應用。本系統採用LXC技術,而LXC建立的容器Container就如同一台完整的實體機器,在佈署與管理上更有彈性自由。系統利用Node.js建構一個提供簡單易用的平臺,以Express框架實現RESTful API處理管理操作的內容,針對操作內容加以進行運作,再使用Shell Script提供LXC虛擬主機管理或內容設定,幫助使用者減少應用環境建置的複雜流程。如此一來,透過系統的設定和操作讓使用者擁有較低的建置成本、更彈性的擴充能力、龐大的運算能力、提高硬體機器的使用效能。
Abstract
In recent years, Big Data, distributed computing and parallel computing became popular. The traditional method of calculation has been unable to afford the huge amount of data computing. Through a combination of multiple servers into a cluster. Using cluster computing to improve performance and expand storage space. But it must afford the expensive servers, physical machine space, labor costs, low utilization of these costs do not meet the interests. So companies gradually replacing server via a small PC. Use virtualization technology to construct the distributed computing architecture. Virtualization technology can help developers quickly build independent of each other isolated containers. Container is using the system hardware and software resources, play host to the maximum efficiency. Through the powerful API and simple tool to easily create and manage the system, it has the advantage of efficiency and flexibility.
Our system is designed to construct a decentralized architecture. Implement a system that provides the user to set up and manage a cluster architecture. Use containers to develop software, test environment or data analysis. The system uses LXC, and Container like a small machine. The user can enter the Container to test the environment, upload and download data or other application programs. We use Node.js construct a simple-to-use platform. Express framework to implement RESTful API, then execute Shell Script. To help users reduce the complexity of process architecture environment. As a result, users have a lower implementation costs, more flexible expansion capabilities, huge computing power, and improve the performance of the machine.
目次 Table of Contents
論文審定書 i
誌謝 ii
摘要 iii
Abstract iv
目錄 v
圖次 ix
表次 xii
第一章 緒論 1
1.1. 研究動機與目的 1
1.2. 論文架構 2
第二章 研究背景與相關研究 3
2.1. 研究背景 3
2.1.1. Linux Containers(LXC) 3
2.1.2. Shell Script 5
2.1.3. iptables 5
2.1.4. Node.js 7
2.1.4.1. Express框架 8
2.1.5. JavaScript 8
2.1.6. JSON 9
2.1.7. MongoDB 10
2.1.8. HTML 12
2.1.8.1. Bootstrap 13
2.2. 相關研究 14
2.2.1. Mesos 14
2.2.1.1. Marathon 15
2.2.2. Kubernetes 16
第三章 系統架構 19
3.1. 系統介紹 19
3.1.1. 系統特色 19
3.2. 系統架構 20
3.2.1. 叢集機器架構 20
3.2.2. 管理系統網頁介面 21
3.3. 叢集主機網路架構 23
3.3.1. 對內網路設定 24
3.3.2. 對外網路設定 25
3.4. 叢集機器Container之佈署策略 27
第四章 系統實作 29
4.1. 系統開發環境 29
4.1.1. 主機硬體資訊 29
4.1.2. 軟體與函數庫版本 30
4.2. 系統安裝說明 30
4.3. Host頁面功能 31
4.3.1. ADD Host按鈕 31
4.3.2. DEL Host按鈕 32
4.3.3. Migration 按鈕 33
4.4. Container頁面功能 34
4.4.1. Container狀態 35
4.4.2. Add/ Delete project 36
4.3.2.1 Add project 36
4.3.2.2 Delete project 38
4.4.3. Add/Destroy container 39
4.3.3.1 Add container 39
4.3.3.2 Destroy container 43
第五章 系統成果展示 45
5.1. 系統登入介面 45
5.2. 系統主要介面 45
5.2.1. 頁面選項 45
5.2.2. Home頁面 46
5.2.3. Host頁面 47
5.2.3.1 ADD 47
5.2.3.2 DEL 48
5.2.3.3 Migration 49
5.2.3.4 錯誤訊息 50
5.2.4. Container頁面 50
5.2.4.1 ADD Container 51
5.2.4.2 DEL Container 54
5.2.4.3 ADD Project 54
5.2.4.4 DEL Project 56
5.2.5. Log 56
5.3. 系統登出介面 57
5.4. 系統比較 58
第六章 結論與未來展望 62
參考文獻 63
附錄A 67
參考文獻 References
[1] B. Hindman, A. Konwinski, M. Zaharia, A. Ghodsi, A. D. Joseph, R. H. Katz, S. Shenker, and I. Stoica. “Mesos: A platform for fine-grained resource sharing in the data center.” NSDI, 2011.
[2] A.M. Joy. “Performance comparison between Linux containers and virtual machines”. International Conference on Advanced Computer Engineering and Applications (ICACEA), 2015.
[3] LXC - Linux Containers, https://linuxcontainers.org/, 2016/06.
[4] LXC(Linux containers)的組成, http://www.kryptosx.info/archives/833.html, 2014/10.
[5] 零與壹的生活雜記-初識 Container, http://doctorabro.blogspot.tw/2015/07/container.html, 2015/07.
[6] Linux KVM 研究室-Linux 容器虛擬系統, http://tobala.net/download/lxc/ch03.pdf , 2016/07.
[7] KVM - Kernel-based Virtual Machine, http://www.linux-kvm.org/page/Main_Page, 2016/06.
[8] VirtualBox, https://www.virtualbox.org/, 06/2016.
[9] Cgroups, Wiki, the free encyclopedia, https://en.wikipedia.org/wiki/Cgroups (cgroup)
[10] 鳥哥的Linux私房菜:第十二章、學習 Shell Scripts, http://linux.vbird.org/linux_basic/0340bashshell-scripts.php#script, 2011/07.
[11] 網路農夫 UNIX C Shell:第二章認識Shell, http://linux.vbird.org/linux_basic/0320bash/csh/no2-1.html, 2001/05.
[12] 鳥哥的Linux私房菜:第九章、防火牆與 NAT 伺服器, http://linux.vbird.org/linux_server/0250simple_firewall.php#netfilter, 07/2011.
[13] wangkangluo1-iptables 命令介紹, http://www.cnblogs.com/wangkangluo1/archive/2012/04/19/2457072.html, 2012/04.
[14] 平林新袖:iptables 詳解, http://www.cnblogs.com/plxx/p/5470296.html, 2016/05/08.
[15] Node.js, https://nodejs.org/en/, 2016/06.
[16] 深入淺出Node.js(一):什麼是Node.js, http://www.infoq.com/cn/articles/what-is-nodejs, 2011/10.
[17] 華文維基平臺:Node.js開發大全, http://wiki.nodejs.tw/nodejs_from_scratch, 2016/10.
[18] 郭家寶,Google御用網頁語言:Node.js一流程式設計師養成精華,佳魁資訊股份有限公司,2014/05第二版。
[19] 樸靈,深入淺出Node.js,博碩文化股份有限公司,2014/07初版。
[20] 錢逢祥、蔡政崇、林政毅,不一樣的Node.js:用Javascipt打造高效能的前後台網頁程式,松崗資產管理股份有限公司,2014/05初版。
[21] Javascipt,Wiki, the free encyclopedia, https://zh.wikipedia.org/wiki/JavaScript
[22] 程式語言教學誌-JavaScript教材, 張凱慶, http://pydoing.blogspot.tw/2012/10/javascript-tutorial.html, 2012/10.
[23] Express, http://expressjs.com/, 2016/06.
[24] JSON, http://json.org/, 2014/06.
[25] MIS腳印 記錄 IT 學習的軌跡:JSON 教學、格式, http://www.smalljacky.com/programming-language/javascript-programming-language/json-teaching-format/, 2015/08/27.
[26] MongoDB, http://www.mongodb.org/, 2016/06.
[27] MongoDB,Wiki, the free encyclopedia, https://zh.wikipedia.org/wiki/MongoDB
[28] NoSQL,Wiki, the free encyclopedia, https://zh.wikipedia.org/wiki/NoSQL
[29] iThome-快速認識4類主流NoSQL資料庫, http://www.ithome.com.tw/news/92507, 2010/09.
[30] 淺談 NoSQL - Mongo DB, http://reader.roodo.com/develop/archives/14702009.html, 2010/12/15.
[31] HTML語言簡介, http://125.227.242.245/S1x/HTML.htm, 2016/06.
[32] HTML, Wiki, the free encyclopedia, https://zh.wikipedia.org/wiki/HTML.
[33] Bootstrap, https://kkbruce.tw/bs3, 2016/06.
[34] Mesos, http://mesos.apache.org/, 2016/06.
[35] 使用Mesos來管理Docker集群, https://feiskyer.github.io/2015/02/05/mesosdocker/, 2015/02/06.
[36] Kubernetes, http://kubernetes.io/, 2016/06.
[37] Kubernetes簡單介紹, http://www.jdon.com/artichect/kubernetes.html, 2016/06.
[38] Kubernetes系統架構簡介, http://www.infoq.com/cn/articles/Kubernetes-system-architecture-introduction, 2014/10/30.
[39] Kubernetes, https://wild0522.gitbooks.io/yeasy_dp/content/kubernetes/index.html, 2016/06
[40] 第三章 : Linux Container 虛擬網路管理 http://tobala.net/download/lxc/ch03.pdf, 2016/06.
[41] Apache的Mesos和Google的Kubernetes 有什麼區別?http://dockone.io/article/147, 2015/01/18.
[42] 關於 Mesos,你知道多少?, https://segmentfault.com/a/1190000004158571, 2015/12/17.
[43] Apache Mesos總體架構, http://dongxicheng.org/apache-mesos/meso-architecture/, 2015/12/04
[44] 容器時代,集群調度誰家強?,http://blog.tingyun.com/web/article/detail/693, 2016/06/06.
[45] 誰是容器中的“戰鬥機”?Docker與Chef、LXC等容器對比, http://www.csdn.net/article/2014-05-14/2819773/2, 2014/05/19.
[46] 《Docker —— 從入門到實踐­》正體中文版,https://philipzheng.gitbooks.io/docker_practice/content/basic_concept/index.html, 2016/07.
[47] 最完整的Docker聖經 - Docker原理圖解及全環境安裝, https://joshhu.gitbooks.io/docker_theory_install/content/index.html, 2016/07.
[48] Marathon, https://mesosphere.github.io/marathon/, 2016/07.
[49] 通過Docker來部署Mesos集群, http://dockone.io/article/136 ,2015/01/12.
[50] Kubernetes, http://kubernetes.io/docs/user-guide/ui/#uploading-a-yaml-or-json-file, 2016/07.
[51] Kubernetes中文文檔, https://linfan1.gitbooks.io/kubernetes-chinese-docs/content/054-Web Interface.html, 2016/07.
電子全文 Fulltext
本電子全文僅授權使用者為學術研究之目的,進行個人非營利性質之檢索、閱讀、列印。請遵守中華民國著作權法之相關規定,切勿任意重製、散佈、改作、轉貼、播送,以免觸法。
論文使用權限 Thesis access permission:自定論文開放時間 user define
開放時間 Available:
校內 Campus: 已公開 available
校外 Off-campus: 已公開 available


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

QR Code