云計算技術(shù)應(yīng)用基礎(chǔ) 課件 第5章 云計算管理平臺_第1頁
云計算技術(shù)應(yīng)用基礎(chǔ) 課件 第5章 云計算管理平臺_第2頁
云計算技術(shù)應(yīng)用基礎(chǔ) 課件 第5章 云計算管理平臺_第3頁
云計算技術(shù)應(yīng)用基礎(chǔ) 課件 第5章 云計算管理平臺_第4頁
云計算技術(shù)應(yīng)用基礎(chǔ) 課件 第5章 云計算管理平臺_第5頁
已閱讀5頁,還剩108頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

云計算技術(shù)應(yīng)用基礎(chǔ)(微課版)工業(yè)和信息化精品系列教材——云計算技術(shù)第5章云計算管理平臺OpenStack云計算平臺管理Linux操作系統(tǒng)Docker容器技術(shù)技能實踐5.1.1Linux概述1.Linux簡介Linux的早期版本并沒有考慮用戶的使用情況,只提供了最核心的框架,使得Linux編程人員可以享受編寫內(nèi)核的樂趣,這也促成了Linux操作系統(tǒng)內(nèi)核的強大與穩(wěn)定。隨著互聯(lián)網(wǎng)的發(fā)展與興起,Linux操作系統(tǒng)迅速發(fā)展,許多優(yōu)秀的程序員都加入了Linux操作系統(tǒng)的編寫行列,隨著編程人員的擴充和完整的操作系統(tǒng)基本軟件的出現(xiàn),Linux操作系統(tǒng)開發(fā)人員認識到Linux已經(jīng)逐漸變成一個成熟的操作系統(tǒng)平臺。1994年3月,其內(nèi)核1.0的推出,標志著Linux第一個版本的誕生。Linux一開始要求所有的源代碼必須公開,且任何人均不得從Linux交易中獲利。Linux誕生之后,發(fā)展迅速,一些機構(gòu)和公司將Linux內(nèi)核、源代碼以及相關(guān)應(yīng)用軟件集成為一個完整的操作系統(tǒng),便于用戶安裝和使用,從而形成Linux發(fā)行版本,這些發(fā)行版本不僅包括完整的Linux操作系統(tǒng),還包括文本編輯器、高級語言編譯器等應(yīng)用軟件,以及X-Windows圖形用戶界面等。Linux在桌面應(yīng)用、服務(wù)器平臺、嵌入式應(yīng)用等領(lǐng)域得到了良好發(fā)展,并形成了自己的產(chǎn)業(yè)環(huán)境,包括芯片制造商、硬件廠商、軟件提供商等。Linux具有完善的網(wǎng)絡(luò)功能和較高的安全性,繼承了UNIX操作系統(tǒng)卓越的穩(wěn)定性表現(xiàn),在全球各地服務(wù)器平臺上的市場份額不斷增加。5.1.1Linux概述2.Linux的體系結(jié)構(gòu)Linux內(nèi)核其為靠近硬件的內(nèi)核,即Linux操作系統(tǒng)常駐內(nèi)存部分。Linux內(nèi)核是整個操作系統(tǒng)的核心,由它實現(xiàn)對硬件的抽象和訪問調(diào)度。它為上層調(diào)用提供統(tǒng)一的虛擬機接口,在編寫上層程序的時候不需要考慮計算機使用何種類型的硬件,也不需要考慮臨界資源問題。用戶應(yīng)用程序其位于整個系統(tǒng)的頂層,是Linux操作系統(tǒng)上運行的應(yīng)用程序的集合,常見的用戶應(yīng)用程序有多媒體處理應(yīng)用程序、文字處理應(yīng)用程序、網(wǎng)絡(luò)應(yīng)用程序等。硬件系統(tǒng)其包含Linux使用的所有物理設(shè)備,如CPU、內(nèi)存、硬盤和網(wǎng)絡(luò)設(shè)備等。操作系統(tǒng)服務(wù)其位于用戶應(yīng)用程序與Linux內(nèi)核之間,主要是指那些為用戶提供服務(wù)且執(zhí)行操作系統(tǒng)部分功能的程序,為用戶應(yīng)用程序提供系統(tǒng)內(nèi)核的調(diào)用接口。窗口系統(tǒng)、Shell命令解釋系統(tǒng)、內(nèi)核編程接口等就屬于操作系統(tǒng)服務(wù)的子系統(tǒng),這一部分也稱為系統(tǒng)程序。Linux采用分層設(shè)計,包括4層。每層只能與相鄰的層通信,層間具有從上到下的依賴關(guān)系,靠上的層依賴靠下的層,但靠下的層并不依賴于靠上的層,各層系統(tǒng)功能如下。5.1.1Linux概述3.Linux的版本RedHatLinux(紅帽Linux)是現(xiàn)在非常著名的Linux版本,其不但創(chuàng)造了自己的品牌,而且有越來越多的用戶使用。2014年年底,RedHat公司推出了當時最新的企業(yè)版Linux操作系統(tǒng),即RedHatEnterpriseLinux7,簡稱RHEL7。社區(qū)企業(yè)操作系統(tǒng)(CommunityEnterpriseOperatingSystem,CentOS)是Linux發(fā)行版之一,它是基于RedHatEnterpriseLinux,依照開放源代碼規(guī)定釋出的源代碼編譯而成的。Fedora是由Fedora項目社區(qū)開發(fā)并由RedHat贊助的Linux發(fā)行版。Fedora包含在各種免費和開源許可下分發(fā)的軟件。Fedora是RedHatEnterpriseLinux發(fā)行版的上游源。RedHatLinuxCentOSFedora5.1.1Linux概述3.Linux的版本Mandrake于1998年由一個推崇Linux的小組創(chuàng)立,它的目標是盡量讓工作變得更簡單。Mandrake提供了一個優(yōu)秀的圖形安裝界面,它的最新版本中包含了許多Linux軟件包。Debian誕生于1993年8月13日,它的目標是提供一個穩(wěn)定容錯的Linux版本。Debian以其穩(wěn)定性著稱,雖然它的早期版本Slink有一些問題,但是它的現(xiàn)有版本Potato已經(jīng)相當穩(wěn)定了。Ubuntu是一個以桌面應(yīng)用為主的Linux操作系統(tǒng),其名稱來自非洲南部祖魯語或豪薩語的“ubuntu”一詞(可譯為烏班圖),意思是“人性”“我的存在是因為大家的存在”,是非洲一種傳統(tǒng)的價值觀,類似于我國的“仁愛”思想。MandrakeDebianUbuntu5.1.1Linux概述4.Linux的特性開放性多任務(wù)設(shè)備獨立性強可靠的安全系統(tǒng)良好的可移植性豐富的網(wǎng)絡(luò)功能良好的用戶界面多用戶支持多文件系統(tǒng)5.1.2熟悉Ubuntu桌面環(huán)境1.系統(tǒng)登錄、注銷與關(guān)機狀態(tài)菜單01OPTION首次登錄Ubuntu操作系統(tǒng)時,選擇用戶并輸入密碼進行登錄,界面中會顯示Ubuntu的新特性。登錄Ubuntu桌面環(huán)境。注銷02OPTION關(guān)機03OPTION登錄Ubuntu桌面環(huán)境5.1.2熟悉Ubuntu桌面環(huán)境2.活動概覽視圖處于活動概覽視圖時,頂部面板中左上角的“活動”按鈕自動加上下畫線。在視圖的左邊可以看到Dash面板,它就是一個收藏夾,放置了常用的程序和當前正在運行的程序,單擊其中的圖標可以打開相應(yīng)的程序,如果程序已經(jīng)運行了,則其會高亮顯示,單擊圖標會顯示最近使用的窗口。切換到活動概覽視圖時,桌面顯示的是窗口概覽視圖,顯示了當前工作區(qū)中所有窗口的實時縮略圖,其中只有一個是處于活動狀態(tài)的窗口。每個窗口代表一個正在運行的圖形界面應(yīng)用程序。其上部有一個搜索框,可用于查找主目錄中的應(yīng)用程序、設(shè)置和文件等。工作區(qū)選擇器位于活動概覽視圖右側(cè),可用于切換到不同的工作區(qū)。5.1.2熟悉Ubuntu桌面環(huán)境3.啟動應(yīng)用程序彈出右鍵菜單選擇全部列表01OPTION02OPTION搜索應(yīng)用程序03OPTION5.1.2熟悉Ubuntu桌面環(huán)境4.將應(yīng)用程序添加到Dash面板中進入活動概覽視圖,單擊Dash面板底部的“網(wǎng)格”按鈕,右鍵單擊要添加的應(yīng)用程序,在彈出的快捷菜單中選擇“添加到收藏夾”選項,或者直接拖動其圖標到Dash面板中,如將“終端”添加到Dash面板中。要從Dash面板中刪除應(yīng)用程序,右鍵單擊該應(yīng)用程序,在彈出的快捷菜單中選擇“從收藏夾中移除”選項即可。5.1.2熟悉Ubuntu桌面環(huán)境5.窗口操作應(yīng)用程序窗口的標題欄右上角通常提供窗口關(guān)閉、窗口最小化和窗口最大化按鈕;一般窗口會有菜單,默認菜單位于頂部面板左側(cè)的菜單欄(要彈出下拉菜單);一般窗口也可以通過拖動邊緣來改變大?。欢鄠€窗口之間可以按Alt+Tab快捷鍵進行切換。5.1.2熟悉Ubuntu桌面環(huán)境6.使用工作區(qū)在工作區(qū)之間切換可以使用鼠標或鍵盤。進入活動概覽視圖之后,屏幕右側(cè)顯示工作區(qū)選擇器,單擊要進入的工作區(qū),或者按PageUp或PageDown鍵在工作區(qū)選擇器中進行上下切換。在普通視圖中啟動的應(yīng)用程序位于當前工作區(qū)。在活動概覽視圖中,可以通過以下方式使用工作區(qū)。01OPTION02OPTION03OPTION將Dash面板中的應(yīng)用程序拖動到右側(cè)某工作區(qū)中,以在該工作區(qū)中運行該程序。將當前工作區(qū)中某窗口的實時縮略圖拖動到右側(cè)的某工作區(qū)中,使得該窗口切換到該工作區(qū)。在工作區(qū)選擇器中,可以將一個工作區(qū)中的應(yīng)用程序窗口縮略圖拖動到另一個工作區(qū)中,使該應(yīng)用程序切換到目標工作區(qū)中運行。5.1.2熟悉Ubuntu桌面環(huán)境7.用戶管理

用戶管理認證01OPTION02OPTION添加用戶03OPTION移除用戶04OPTION5.1.3常用的圖形界面應(yīng)用程序1.Firefox瀏覽器Linux一直將MozillaFirefox作為默認的Web瀏覽器,Ubuntu也不例外,單擊Dash面板中的圖標,打Firefox開瀏覽器。5.1.3常用的圖形界面應(yīng)用程序2.Thunderbird郵件/新聞單擊Dash面板中的圖標,打開Thunderbird,可以選擇電子郵件,設(shè)置現(xiàn)有的電子郵件地址。5.1.3常用的圖形界面應(yīng)用程序3.文件管理器打開文件管理器查看當前目錄屬性01OPTION02OPTION選擇其他位置03OPTION查看計算機中的資源04OPTION5.1.3常用的圖形界面應(yīng)用程序4.文本編輯器查找文本編輯器打開文本編輯器01OPTION02OPTION在活動概覽視圖中,在搜索框中輸入“gedit”或“文本編輯器”進行查找。在Dash面板中找到文本編輯器應(yīng)用程序,或者在應(yīng)用程序中選擇“全部”選項,打開文本編輯器。5.1.4Ubuntu個性化設(shè)置顯示器設(shè)置背景設(shè)置01OPTION02OPTION5.1.4Ubuntu個性化設(shè)置外觀設(shè)置鍵盤快捷鍵03OPTION04OPTION5.1.4Ubuntu個性化設(shè)置5.網(wǎng)絡(luò)設(shè)置在“設(shè)置”應(yīng)用程序中找到“網(wǎng)絡(luò)”彈出“有線”對話框“IPv4”設(shè)置5.1.5Ubuntu命令行終端管理1.使用仿真終端窗口按Ctrl+Alt+T快捷鍵,適用于Ubuntu的各種版本。在應(yīng)用程序概覽視圖中找到“Terminal”程序并運行它。進入活動概覽視圖,輸入“gnome-terminal”或“終端”就可以搜索到“Terminal”程序,按Enter鍵即可運行它。配置文件首選項“首選項-常規(guī)”窗口5.1.5Ubuntu命令行終端管理2.使用文本模式默認情況下,Linux會提供6個Terminal(終端)來給用戶登錄,切換的方式為按Ctrl+Alt+F1~F6快捷鍵。此外,系統(tǒng)將這6個終端界面以tty1、tty2、tty3、tty4、tty5、tty6的方式進行命名。安裝完圖形化終端界面后,若想進入純文本模式,則可以通過按以上快捷鍵進行切換。例如,按Ctrl+Alt+F3快捷鍵,進入tty3控制臺并登錄文本模式終端界面。為安全起見,用戶輸入的密碼(口令)不會在屏幕上顯示,而用戶名和密碼輸入錯誤時,也只會給出“l(fā)oginincorrect”進行提示,不會明確地提示究竟是用戶名錯誤還是密碼錯誤。5.1.5Ubuntu命令行終端管理3.配置超級管理員root打開終端,設(shè)置管理員密碼,執(zhí)行命令如下。csglncc_1@Ubuntu:~$sudopasswdroot[sudo]csglncc_1的密碼: #輸入當前用戶密碼新的密碼: #輸入root用戶密碼重新輸入新的密碼: #再次確認輸入root用戶密碼passwd:已成功更新密碼csglncc_1@Ubuntu:~$ 使用超級管理員root用戶登錄,執(zhí)行命令如下。csglncc_1@Ubuntu:~$suroot #以超級管理員root用戶登錄密碼: #輸入root用戶密碼root@Ubuntu:/home/csglncc_1#exit #超級管理員root用戶登錄后提示符為“#”exitcsglncc_1@Ubuntu:~$ #普通用戶登錄后提示符為“$”5.1.5Ubuntu命令行終端管理4.使用命令關(guān)閉和重啟系統(tǒng)(1)shutdown命令選項功能說明-k并不真正關(guān)機,而只是發(fā)出警告信息給所有用戶-r關(guān)機后立即重新啟動系統(tǒng)-h關(guān)機后不重新啟動系統(tǒng)-f快速關(guān)機重啟動時跳過文件系統(tǒng)檢查-n快速關(guān)機且不經(jīng)過init程序-c取消一個已經(jīng)運行的shutdown操作5.1.5Ubuntu命令行終端管理4.使用命令關(guān)閉和重啟系統(tǒng)(2)halt命令csglncc_1@Ubuntu:~$shutdown-hnow #立刻關(guān)閉系統(tǒng)(3)reboot命令csglncc_1@Ubuntu:~$reboot#立刻重啟系統(tǒng)csglncc_1@Ubuntu:~$shutdown-r00:05 #5min后重啟系統(tǒng)csglncc_1@Ubuntu:~$shutdown-c #取消shutdown操作(4)exit命令csglncc_1@Ubuntu:~$exit #退出終端窗口5.1.6Shell概述1.Shell簡介Shell是使用Linux操作系統(tǒng)的主要環(huán)境,Shell的學習和使用是學習Linux不可或缺的一部分。Linux操作系統(tǒng)提供的圖形用戶界面X-Windows就像Windows一樣,也有窗口、菜單和圖標,可以通過鼠標進行相關(guān)的管理操作。在圖形化界面中,按Ctrl+Alt+T快捷鍵或者在應(yīng)用程序的菜單中打開虛擬終端,即可啟動Shell。當用戶成功登錄后,系統(tǒng)將執(zhí)行Shell程序,并提供命令提示符,對于普通用戶,用“$”作為提示符,對于超級管理員,用“#”作為提示符。一旦出現(xiàn)命令提示符,用戶就可以輸入命令和所需的參數(shù),系統(tǒng)將執(zhí)行這些命令。若要中止命令的執(zhí)行,則可以按Ctrl+C快捷鍵;若用戶想退出登錄,則可以輸入exit、logout命令或按文件結(jié)束符(Ctrl+D快捷鍵)。5.1.6Shell概述2.Shell命令的基本格式Shell命令的基本格式如下。command[選項][參數(shù)]command[選項]command為命令名稱,例如,查看當前文件夾下的文件或文件夾的命令是ls。[選項]表示可選,是對命令的特別定義,以連接符“-”開始,多個選項可以用連接符“-”連接起來,例如,ls-l-a與ls-la的作用是相同的。ls是常用的一個命令,屬于目錄操作命令,用來列出當前目錄下的文件和文件夾。ls命令后可以加選項,也可以不加選項,不加選項的寫法如下。root@Ubuntu:~#lssnaproot@Ubuntu:~#5.1.6Shell概述3.輸入命令時鍵盤操作的一般規(guī)律(1)命令、文件名、參數(shù)等都要區(qū)分英文大小寫,例如,md與MD是不同的。(2)命令、選項、參數(shù)之間必須有一個或多個空格。root@Ubuntu:~#hostnamectlset-hostnametest01 #修改主機名為test01root@Ubuntu:~#bash #/bash執(zhí)行命令root@test01:~#5.1.6Shell概述4.顯示系統(tǒng)信息的命令(1)who命令root@Ubuntu:~#who-a #顯示所有用戶的信息系統(tǒng)引導2021-07-2906:08

運行級別52021-07-2906:09csglncc_1+pts/02021-07-2906:18.1801()csglncc_1?:02021-07-2908:58?4756(:0)root@Ubuntu:~#who命令主要用于查看當前登錄的用戶信息,執(zhí)行命令如下。5.1.6Shell概述4.顯示系統(tǒng)信息的命令(2)whoami命令root@Ubuntu:~#whoamirootroot@Ubuntu:~#whoami命令用于顯示當前操作用戶的用戶名,執(zhí)行命令如下。5.1.6Shell概述4.顯示系統(tǒng)信息的命令(3)hostname/hostnamectl命令root@Ubuntu:~#hostname #顯示當前系統(tǒng)的主機名Ubuntu #主機名為Ubuntu root@Ubuntu:~#hostname命令用于顯示當前系統(tǒng)的主機名,執(zhí)行命令如下。root@Ubuntu:~#hostnamectlset-hostnamelncc01 #修改主機名為lncc01root@Ubuntu:~#bash #執(zhí)行命令root@lncc01:~#hostnamectl命令用于設(shè)置當前系統(tǒng)的主機名,執(zhí)行命令如下。5.1.6Shell概述4.顯示系統(tǒng)信息的命令(4)date命令root@Ubuntu:~#date2021年07月29日星期四09:44:10CSTroot@Ubuntu:~#date命令用于顯示當前時間/日期,執(zhí)行命令如下。(5)cal命令root@Ubuntu:~#cal

七月2021日一二三四五六

12345678910111213141516171819202122232425262728293031root@Ubuntu:~#cal命令用于顯示當前日歷,執(zhí)行命令如下。5.1.6Shell概述4.顯示系統(tǒng)信息的命令(6)clear命令root@Ubuntu:~#clearroot@Ubuntu:~#clear命令相當于DOS下的cls命令,用于清除屏幕,執(zhí)行命令如下。5.1.6Shell概述5.Shell使用技巧(1)命令和文件名的自動補齊功能root@Ubuntu:~#mk<Tab>mkdirmkfs.cramfsmkfs.vfatmkntfsmkdosfsmkfs.ext2mkhomedir_helpermksquashfsmke2fsmkfs.ext3mkinitramfsmkswapmkfifomkfs.ext4mkisofsmktempmkfontdirmkfs.fatmklost+foundmkzftreemkfontscalemkfs.minixmkmanifestmkfsmkfs.msdosmk_modmapmkfs.bfsmkfs.ntfsmknodroot@Ubuntu:~#mk5.1.6Shell概述5.Shell使用技巧(2)歷史命令root@Ubuntu:~#cat/root/.bash_historyexitcd..lllsb_release-apwdexitexitroot@Ubuntu:~#執(zhí)行歷史命令最簡單的方法就是利用上下方向鍵,可以找回最近執(zhí)行過的命令,減少輸入命令的次數(shù),在需要使用重復執(zhí)行的命令時非常方便。當用某賬號登錄系統(tǒng)后,歷史命令列表將根據(jù)歷史命令文件進行初始化,歷史命令文件的文件名由環(huán)境變量HISTFILE指定。歷史命令文件的默認名稱是.bash_history(以“.”開頭的文件是隱藏文件),該文件通常在用戶主目錄下。root用戶的歷史命令文件為/root/.bash_history,普通用戶的歷史命令文件為/home/*/.bash_history。5.1.6Shell概述5.Shell使用技巧(2)歷史命令格式功能!nn表示序號(執(zhí)行history命令后可以看到),重新執(zhí)行第n條命令!!重新執(zhí)行上一條命令!string執(zhí)行最近用到的以string開頭的歷史命令!?string[?]執(zhí)行最近用到的包含string的歷史命令<Ctrl+R>在歷史命令列表中查詢某條歷史命令選項功能說明-a將當前的歷史命令記錄追加到歷史文件中-c清空歷史命令列表-n將歷史命令文件中的內(nèi)容追加到當前歷史命令列表中-r將歷史命令文件中的內(nèi)容更新(替換)到當前歷史命令列表中-w將歷史命令列表中的內(nèi)容寫入到歷史命令文件中,并覆蓋歷史命令文件原來的內(nèi)容filename如果filename選項沒有被指定,則history命令將使用環(huán)境變量HISTFILE指定的文件名history命令的各選項及功能說明快速執(zhí)行歷史命令的格式OpenStack云計算平臺管理Linux操作系統(tǒng)Docker容器技術(shù)技能實踐5.2.1OpenStack概述OpenStack是一個開源的云計算管理平臺項目,是一系列軟件開源項目的組合,是美國國家航空航天局(NationalAeronauticsandSpaceAdministration,NASA)和Rackspace(美國的一家云計算廠商)在2010年7月共同發(fā)起的一個項目,旨在為公有云和私有云提供軟件的開源項目,由Rackspace貢獻存儲源代碼(Swift)、NASA貢獻計算源代碼(Nova)。經(jīng)過幾年的發(fā)展,OpenStack已成為一個廣泛使用的業(yè)內(nèi)領(lǐng)先的開源項目,提供部署私有云及公有云的操作平臺和工具集,并且在許多大型企業(yè)支撐核心生產(chǎn)業(yè)務(wù)。1.OpenStack的起源5.2.1OpenStack概述2.OpenStack版本演變OpenStack第1個正式版本發(fā)布,其代號為Austin。第1個正式版本僅有Swift和Nova(對象存儲和計算)兩個項目。其起初計劃每隔幾個月發(fā)布一個版本,并且以26個英文字母為首字母,以從A到Z的順序命名后續(xù)版本。其第4個版本Diablo發(fā)布時,定為約每半年發(fā)布一個版本,分別在當年的春秋兩季。每個版本不斷改進,吸收新技術(shù),實現(xiàn)新概念。其發(fā)布了第24個版本,即Xena,如今該版本已經(jīng)更加穩(wěn)定、更加強健。近幾年,Docker、Kubernetes、Serverless等新技術(shù)興起,而OpenStack的關(guān)注點不再是“誰是龍頭”,而是“誰才是最受歡迎的技術(shù)”。2010年10月2011年9月2021年10月8日5.2.1OpenStack概述(1)OpenStack的邏輯架構(gòu)3.OpenStack的架構(gòu)OpenStack通過一組相關(guān)的服務(wù)提供一個基礎(chǔ)設(shè)施即服務(wù)的解決方案,這些服務(wù)以虛擬機為中心。虛擬機主要是由Nova、Glance、Cinder和Neutron這4個核心模塊進行交互的結(jié)果。Nova為虛擬機提供計算資源,包括vCPU、內(nèi)存等;Glance為虛擬機提供鏡像服務(wù),安裝操作系統(tǒng)的運行環(huán)境;Cinder提供存儲資源,類似傳統(tǒng)計算機的磁盤或卷;Neutron為虛擬機提供網(wǎng)絡(luò)配置以及訪問云計算管理平臺的網(wǎng)絡(luò)通道。5.2.1OpenStack概述(2)OpenStack的物理架構(gòu)3.OpenStack的架構(gòu)單節(jié)點部署多節(jié)點部署單節(jié)點部署就是將所有的服務(wù)和組件都部署在一個物理節(jié)點上,通常用于學習、驗證、測試或者開發(fā);多節(jié)點部署就是將服務(wù)和組件分別部署在不同的物理節(jié)點上。5.2.2OpenStack認證服務(wù)1.Keystone的基本概念(3)令牌令牌(Token)通常指的是一串二進制值或者字符串,用來作為訪問資源的記號。令牌中含有可訪問資源的范圍和有效時間。(1)認證認證(Authentication)是指確認用戶身份的過程,又稱身份驗證。Keystone認證由用戶提供的一組憑證來確認傳入請求的有效性。(4)項目項目(Project)在OpenStack的早期版本中被稱為租戶(Tenant),它是各個服務(wù)可以訪問資源的集合,是分配和隔離資源或身份的一個容器,也是一種權(quán)限組織形式。(2)憑證憑證(Credentials)又稱證書,用于確認用戶身份的數(shù)據(jù),如用戶名、密碼和API密鑰,或認證服務(wù)提供的認證令牌等。5.2.2OpenStack認證服務(wù)1.Keystone的基本概念(7)組組(Group)是域所擁有的用戶的集合,授予域或項目的組角色可以應(yīng)用于該組中的所有用戶。(5)用戶用戶(User)是指使用OpenStack云服務(wù)的個人、系統(tǒng)或服務(wù)的賬戶名稱。使用服務(wù)的用戶可以是人、服務(wù)或系統(tǒng),或使用OpenStack相關(guān)服務(wù)的一個組織。(8)域域(Domain)是項目和用戶的集合,目的是為身份實體定義管理界限。域可以表示個人、公司或操作人員所擁有的空間,用戶可以被授予某個域的管理員角色。(6)角色角色(Role)是一個用于定義用戶權(quán)利和權(quán)限的集合。例如,Nova中的虛擬機、Glance中的鏡像。5.2.2OpenStack認證服務(wù)1.Keystone的基本概念(11)服務(wù)這里的服務(wù)(Service)是指計算(Nova)、對象存儲(Swift)或鏡像(Glance)這樣的OpenStack服務(wù)。它們提供一個或多個端點,供用戶訪問資源和執(zhí)行操作。(9)端點端點(Endpoint)就是OpenStack組件能夠訪問的網(wǎng)絡(luò)地址,通常是一個統(tǒng)一資源定位器(UniformResourceLocator,URL)。端點相當于OpenStack服務(wù)對外的網(wǎng)絡(luò)地址列表,每個服務(wù)都必須通過端點來檢索相應(yīng)的服務(wù)地址。(12)分區(qū)分區(qū)(Region)表示OpenStack部署的通用分區(qū)。可以為一個分區(qū)關(guān)聯(lián)若干個子分區(qū),形成樹狀層次結(jié)構(gòu)。盡管分區(qū)沒有地理意義,但是部署時仍可以對分區(qū)使用地理名稱。(10)客戶端客戶端(Client)是一些OpenStack服務(wù),包括應(yīng)用程序接口的命令行接口。例如,用戶可以使用openstackservicecreate和openstackendpointcreate命令,在OpenStack安裝過程中注冊服務(wù)。101209115.2.2OpenStack認證服務(wù)2.Keystone的主要功能(IdentityAuthentication):令牌的發(fā)放和檢驗。身份認證(IdentityAuthorization):授予用戶在一個服務(wù)中所擁有的權(quán)限。身份授權(quán)管理用戶賬戶。用戶管理(ServiceCatalog):提供可用服務(wù)的API端點。服務(wù)目錄5.2.2OpenStack認證服務(wù)3.Keystone的管理層次結(jié)構(gòu)OpenStackIdentityAPIv3利用域?qū)崿F(xiàn)了真正的多租戶架構(gòu),域為項目的高層容器。云服務(wù)的客戶是域的所有者,它們可以在自己的域中創(chuàng)建多個項目、用戶、組和角色。組是一組用戶的容器,可以向組中添加用戶,并直接給組分配角色,這樣在這個組中的所有用戶就都擁有了該組擁有的角色權(quán)限。域組5.2.2OpenStack認證服務(wù)4.Keystone的認證服務(wù)流程用戶請求云主機的流程涉及認證(Keystone)服務(wù)、計算(Nova)服務(wù)、鏡像(Glance)服務(wù),以及網(wǎng)絡(luò)(Neutron)服務(wù)。在服務(wù)流程中,令牌作為流程憑證進行傳遞。5.2.2OpenStack認證服務(wù)4.Keystone的認證服務(wù)流程用戶向Keystone提供憑證,Keystone驗證通過后向用戶返回令牌,同時會返回一個通用目錄(GenericCatalog)。用戶使用令牌向該目錄列表中的端點請求該用戶對應(yīng)的項目(租戶)令牌,Keystone驗證通過后返回用戶對應(yīng)的項目(租戶)列表。用戶從列表中選擇要訪問的項目(租戶),再次向Keystone發(fā)送請求,Keystone驗證通過后返回管理該項目(租戶)的服務(wù)列表并允許訪問該項目(租戶)的令牌。用戶會通過這個服務(wù)和通用目錄映射找到服務(wù)組件的端點,通過端點找到實際服務(wù)組件的位置。用戶憑借項目(租戶)令牌和端點來訪問實際的服務(wù)組件。服務(wù)組件會向Keystone提供這個用戶項目令牌進行驗證,Keystone驗證通過后會返回一系列的確認令牌和附加信息給服務(wù),并執(zhí)行一系列操作。5.2.3OpenStack鏡像服務(wù)1.鏡像與鏡像服務(wù)鏡像文件其實和ZIP壓縮包類似,它將特定的一系列文件按照一定的格式制作成單一的文件,以方便用戶下載和使用,如測試版的操作系統(tǒng)、常用工具軟件等。鏡像文件不僅具有ZIP壓縮包的合成功能,還可以被特定的軟件識別并可直接刻錄到光盤中。其實,通常意義上的鏡像文件可以再擴展一下,鏡像文件中可以包含更多的信息,如系統(tǒng)文件、引導文件、分區(qū)表信息等,這樣鏡像文件就能包含一個分區(qū)甚至一塊硬盤的所有信息。使用這類鏡像文件的經(jīng)典軟件就是Ghost,它同樣具備刻錄功能,但它的刻錄僅僅是將鏡像文件本身保存在光盤中,而通常意義上的刻錄軟件可以直接將支持的鏡像文件所包含的內(nèi)容刻錄到光盤中。Ghost可以基于鏡像文件快速安裝操作系統(tǒng)和應(yīng)用程序,還可對操作系統(tǒng)進行備份,當系統(tǒng)遇到故障不能正常啟動或運行時,可快速恢復系統(tǒng),使之正常工作。在云環(huán)境下更加需要鏡像這種高效的解決方案。鏡像就是一個模板,類似VMware的虛擬機模板,它預先安裝基本的操作系統(tǒng)和其他軟件。如果從鏡像中啟動虛擬機,那么該虛擬機被刪除后,鏡像依然存在,但是鏡像不包括本次在該虛擬機實例上的變動信息,因為鏡像只是虛擬機啟動的基礎(chǔ)模板。(1)認證5.2.3OpenStack鏡像服務(wù)1.鏡像與鏡像服務(wù)(2)鏡像服務(wù)

查詢和獲取鏡像元數(shù)據(jù)和鏡像本身。

注冊和上傳虛擬機鏡像,包括普通的創(chuàng)建、上傳、下載和管理。

維護鏡像信息,包括元數(shù)據(jù)和鏡像本身。

支持通過多種方式存儲鏡像,包括普通的文件系統(tǒng)、Swift、AmazonS3等。

對虛擬機實例執(zhí)行創(chuàng)建快照(snapshot)命令來創(chuàng)建新的鏡像,或者備份虛擬機的狀態(tài)。鏡像服務(wù)就是管理鏡像,使用戶能夠發(fā)現(xiàn)、注冊、獲取、保存虛擬機鏡像和鏡像元數(shù)據(jù)。鏡像數(shù)據(jù)支持多種存儲系統(tǒng),可以是簡單文件系統(tǒng),也可以是對象存儲系統(tǒng)。5.2.3OpenStack鏡像服務(wù)1.鏡像與鏡像服務(wù)(3)ImageAPI的版本ImageAPIv1ImageAPIv1只提供基本的鏡像和成員操作功能,包括鏡像創(chuàng)建、刪除、下載,鏡像列表、詳細信息查詢和更新,以及鏡像租戶成員的創(chuàng)建、刪除和列表。ImageAPIv2ImageAPIv2除了支持ImageAPIv1的所有功能外,還主要增加了鏡像位置的添加、刪除、修改,元數(shù)據(jù)和命名空間(Namespace)操作,以及鏡像標記(ImageTag)操作。這兩個版本對鏡像存儲的支持相同,ImageAPIv1從OpenStack發(fā)行的Newton版本開始已經(jīng)過時,遷移的路徑使用ImageAPIv2進行替代。按照OpenStack標準的棄用政策,ImageAPIv1最終會被廢除。5.2.3OpenStack鏡像服務(wù)1.鏡像與鏡像服務(wù)(4)虛擬機鏡像的磁盤格式與容器格式磁盤格式說明RAW非結(jié)構(gòu)化的磁盤鏡像格式QCOW2QEMU模擬器支持的可動態(tài)擴展、寫時拷貝的磁盤格式,是KVM默認使用的磁盤文件格式VHD通用于VMware、Xen、VirtualBox以及其他虛擬機管理程序VHDXVHD格式的增強版本,支持更大的磁盤容量VMDK一種比較通用的虛擬機磁盤格式VDI由VirtualBox虛擬機監(jiān)控程序和QEMU仿真器支持的磁盤格式ISO用于光盤(如CD-ROM)數(shù)據(jù)內(nèi)容的檔案格式AKI在Glance中存儲的亞馬遜內(nèi)核格式ARI在Glance中存儲的亞馬遜虛擬內(nèi)存盤格式AMI在Glance中存儲的亞馬遜機器格式OpenStack所支持的虛擬機鏡像文件磁盤格式5.2.3OpenStack鏡像服務(wù)1.鏡像與鏡像服務(wù)(4)虛擬機鏡像的磁盤格式與容器格式OpenStack所支持的鏡像文件容器格式容器格式說明BARE指沒有容器和元數(shù)據(jù)封裝在鏡像中。如果Glance和OpenStack的其他服務(wù)沒有使用容器格式的字符串,那么為了安全,建議將其設(shè)置為BAREOVF開放虛擬化格式(OpenVirtualizationFormat)OVA在Glance中存儲的開放虛擬化設(shè)備(OpenVirtualizationAppliance)格式AKI在Glance中存儲的亞馬遜內(nèi)核格式ARI在Glance中存儲的亞馬遜虛擬內(nèi)存盤格式DOCKER在Glance中存儲的容器文件系統(tǒng)的Docker的TAR檔案5.2.3OpenStack鏡像服務(wù)1.鏡像與鏡像服務(wù)(5)鏡像狀態(tài)鏡像狀態(tài)說明queued表示鏡像已經(jīng)創(chuàng)建和注冊,這是一種初始化狀態(tài)。鏡像文件剛被創(chuàng)建時,Glance數(shù)據(jù)庫中只有其元數(shù)據(jù),鏡像數(shù)據(jù)還沒有上傳到數(shù)據(jù)庫中saving表示鏡像數(shù)據(jù)在上傳中,這是鏡像的原始數(shù)據(jù)上傳到數(shù)據(jù)庫的一種過渡狀態(tài)uploading表示進行導入數(shù)據(jù)提交調(diào)用。此狀態(tài)下不允許調(diào)用PUT/file(注意,對queued狀態(tài)的鏡像執(zhí)行PUT/file調(diào)用會將鏡像置于saving狀態(tài),處于saving狀態(tài)的鏡像不允許PUT/stage調(diào)用,因此不可能對同一鏡像使用兩種上傳方法)importing表示已經(jīng)完成導入調(diào)用,但是鏡像還未準備好使用active表示已經(jīng)完成導入調(diào)用,成為Glance中的可用鏡像deactivated表示鏡像創(chuàng)建成功,鏡像對非管理員不可用,任何非管理員用戶都無權(quán)訪問鏡像數(shù)據(jù)。禁止下載鏡像,也禁止鏡像導出和鏡像克隆之類的操作killed表示上傳鏡像數(shù)據(jù)出錯,上傳過程中發(fā)生錯誤,目前不可讀取deleted表示鏡像不可用,鏡像將在不久后被自動刪除,但是目前Glance仍然保留該鏡像的相關(guān)信息和原始數(shù)據(jù)pending_delete表示鏡像不可用,鏡像將被自動刪除。與deleted相似,Glance還沒有清除鏡像數(shù)據(jù),但處于該狀態(tài)的鏡像不可恢復5.2.3OpenStack鏡像服務(wù)1.鏡像與鏡像服務(wù)(6)鏡像的訪問權(quán)限可以被所有項目(租戶)使用。public(公有的)只能被鏡像所有者所在的項目(租戶)使用。private(私有的)這種鏡像不能被刪除。protected(受保護的)一個非公有的鏡像可以共享給其他項目(租戶),這是通過項目成員(member-*)操作來實現(xiàn)的。shared(共享的)Glance鏡像服務(wù)是典型的客戶端/服務(wù)器(Client/Server,C/S)架構(gòu),Glance并不負責實際的存儲,只實現(xiàn)鏡像管理功能。其功能比較單一,所包含的組件比較少,主要包括glance-api和glance-registry兩個子服務(wù)。Glance服務(wù)器端提供一個RESTAPI,而使用者通過RESTAPI來執(zhí)行鏡像的各種操作。5.2.3OpenStack鏡像服務(wù)2.Glance服務(wù)架構(gòu)5.2.3OpenStack鏡像服務(wù)3.Glance工作流程(1)流程解析5.2.3OpenStack鏡像服務(wù)3.Glance工作流程(2)上傳鏡像實例分析①用戶執(zhí)行上傳鏡像命令。glance-api收到請求,并通過它的中間件進行解析,獲取版本號等信息。③glance-registry執(zhí)行registryclient的add_image函數(shù),向Glance數(shù)據(jù)庫中插入一條記錄。②glance-registry的API獲取一個registryclient,調(diào)用registryclient的add_image函數(shù),此時鏡像的狀態(tài)為“queued”,表示該鏡像ID已經(jīng)被保留,但是鏡像還未上傳。④glance-api調(diào)用glance-registry的update_image_metadata函數(shù),更新數(shù)據(jù)庫中該鏡像的狀態(tài)為“saving”,表示鏡像正在上傳。⑤glance-api端存儲接口提供的add函數(shù)上傳鏡像文件。⑥glance-api調(diào)用glance-registry的update_image_metadata函數(shù),更新數(shù)據(jù)庫中該鏡像的狀態(tài)為“active”并發(fā)出通知,“active”表示鏡像在Glance中完全可用。5.2.4OpenStack網(wǎng)絡(luò)服務(wù)1.Neutron網(wǎng)絡(luò)結(jié)構(gòu)Neutron需要實現(xiàn)的主要是內(nèi)部網(wǎng)絡(luò)和路由器。內(nèi)部網(wǎng)絡(luò)是對二層網(wǎng)絡(luò)的抽象,模擬物理網(wǎng)絡(luò)的二層局域網(wǎng),對于項目來說,它是私有的。路由器則是對三層網(wǎng)絡(luò)的抽象,模擬物理路由器,為用戶提供路由、網(wǎng)絡(luò)地址轉(zhuǎn)換(NetworkAddressTranslation,NAT)等服務(wù)。外部網(wǎng)絡(luò)負責連接OpenStack項目之外的網(wǎng)絡(luò)環(huán)境,如Internet。與其他網(wǎng)絡(luò)不同,外部網(wǎng)絡(luò)不僅僅是一個虛擬網(wǎng)絡(luò),還表示OpenStack網(wǎng)絡(luò)能被外部物理網(wǎng)絡(luò)接入并訪問。外部網(wǎng)絡(luò)可能是企業(yè)的局域網(wǎng),也可能是互聯(lián)網(wǎng),這類網(wǎng)絡(luò)并不是由Neutron直接管理的。內(nèi)部網(wǎng)絡(luò)完全由軟件定義,又稱私有網(wǎng)絡(luò)。它是虛擬機實例所在的網(wǎng)絡(luò),能夠直接連接到虛擬機。項目(租戶)用戶可以創(chuàng)建自己的內(nèi)部網(wǎng)絡(luò)。默認情況下,項目(租戶)之間的內(nèi)部網(wǎng)絡(luò)是相互隔離的,不能共享。內(nèi)部網(wǎng)絡(luò)由Neutron直接配置和管理。路由器用于將內(nèi)部網(wǎng)絡(luò)與外部網(wǎng)絡(luò)連接起來,因此,要想使虛擬機訪問外部網(wǎng)絡(luò),必須創(chuàng)建一臺路由器。5.2.4OpenStack網(wǎng)絡(luò)服務(wù)2.Neutron管理的網(wǎng)絡(luò)資源網(wǎng)絡(luò)網(wǎng)絡(luò)是指一個隔離的二層廣播域,類似于交換機中的VLAN。Neutron支持多種類型的網(wǎng)絡(luò),如Flat、VLAN、VXLAN等。子網(wǎng)子網(wǎng)是指一個IPv4或者IPv6的地址段及其相關(guān)配置狀態(tài)。虛擬機實例的IP地址從子網(wǎng)中分配,每個子網(wǎng)都需要定義IP地址的范圍和掩碼。端口端口是指連接設(shè)備的連接點,類似于虛擬交換機上的一個網(wǎng)絡(luò)端口。端口定義了MAC地址和IP地址,當虛擬機的虛擬網(wǎng)卡綁定到端口時,端口會將MAC地址和IP地址分配給該虛擬網(wǎng)卡。0102035.2.4OpenStack網(wǎng)絡(luò)服務(wù)3.Neutron網(wǎng)絡(luò)拓撲類型LocalLocal網(wǎng)絡(luò)與其他網(wǎng)絡(luò)和節(jié)點隔離。該網(wǎng)絡(luò)中的虛擬機實例只能與位于同一節(jié)點上同一網(wǎng)絡(luò)的虛擬機實例通信,實際意義不大,主要用于測試環(huán)境。VLANVLAN是支持IEEE802.1Q協(xié)議的網(wǎng)絡(luò),使用VLAN標簽標記數(shù)據(jù)報文,實現(xiàn)網(wǎng)絡(luò)隔離。GRE通用路由封裝(GenericRoutingEncapsulation,GRE)是用一種網(wǎng)絡(luò)層協(xié)議去封裝另一種網(wǎng)絡(luò)層協(xié)議的隧道技術(shù)。GRE的隧道由兩端的源IP地址和目的IP地址定義。FlatFlat是一種簡單的扁平網(wǎng)絡(luò)拓撲,所有虛擬機實例都連接在同一網(wǎng)絡(luò)中,能與位于同一網(wǎng)絡(luò)的實例進行通信,并且可以跨多個節(jié)點。VXLANVXLAN(VirtualeXtensibleLocalAreaNetwork)可以看作VLAN的一種擴展。相較于VLAN,它有更大的擴展性和靈活性。Geneve通用網(wǎng)絡(luò)虛擬封裝(Genericnetworkvirtualizationencapsulation,Geneve)的目標宣稱是僅定義封裝數(shù)據(jù)格式,盡可能實現(xiàn)數(shù)據(jù)格式的彈性和擴展性。5.2.4OpenStack網(wǎng)絡(luò)服務(wù)4.Neutron的基本架構(gòu)Neutron僅有一個主要服務(wù)進程,即neutron-server。它運行于控制節(jié)點上,對外提供OpenStack網(wǎng)絡(luò)API作為訪問Neutron的入口,其在收到請求后調(diào)用插件進行處理,最終由計算節(jié)點和網(wǎng)絡(luò)節(jié)點上的各種代理完成請求。網(wǎng)絡(luò)提供者是指提供OpenStack網(wǎng)絡(luò)服務(wù)的虛擬或物理網(wǎng)絡(luò)設(shè)備,如LinuxBridge、OpenvSwitch,或者其他支持Neutron的物理交換機。與其他服務(wù)一樣,Neutron的各組件、服務(wù)之間需要相互協(xié)調(diào)和通信。網(wǎng)絡(luò)API(neutron-server)、插件和代理之間通過消息隊列進行通信(默認使用RabbitMQ實現(xiàn))及相互調(diào)用。數(shù)據(jù)庫(默認使用MariaDB)用于存放OpenStack的網(wǎng)絡(luò)狀態(tài)信息,包括網(wǎng)絡(luò)、子網(wǎng)、端口、路由器等相關(guān)信息??蛻舳耸侵甘褂肗eutron服務(wù)的應(yīng)用程序,可以是命令行工具(腳本)、Horizon(OpenStack圖形操作界面)和Nova計算服務(wù)等。5.2.4OpenStack網(wǎng)絡(luò)服務(wù)5.Neutron的物理部署(1)控制節(jié)點和計算節(jié)點控制節(jié)點上可以部署neutron-server(API)、CorePlugin和ServicePlugin代理。這些代理包括neutron-plugin-agent、neutron-metadata-agent、neutron-dhcp-agent、neutron-l3-agent、neutron-lbaas等。CorePlugin和ServicePlugin已經(jīng)集成到neutron-server中,不需要運行獨立的Plugin服務(wù)??刂乒?jié)點和計算節(jié)點需要部署CorePlugin的代理,因為控制節(jié)點與計算節(jié)點只有通過該代理才能建立二層連接。(2)控制節(jié)點和網(wǎng)絡(luò)節(jié)點可以通過增加網(wǎng)絡(luò)節(jié)點以承擔更大的負載。該方案特別適用于規(guī)模較大的OpenStack環(huán)境??刂乒?jié)點部署neutron-server服務(wù),只負責通過neutron-server響應(yīng)API請求。網(wǎng)絡(luò)節(jié)點部署的服務(wù)包括CorePlugin的代理、ServicePlugin的代理??蓪⑺械拇碇麈I從上述控制節(jié)點分離出來,并部署到獨立的網(wǎng)絡(luò)節(jié)點上,由獨立的網(wǎng)絡(luò)節(jié)點實現(xiàn)數(shù)據(jù)的交換、路由及負載均衡等高級網(wǎng)絡(luò)服務(wù)。5.2.5OpenStack計算服務(wù)1.什么是NovaNova是OpenStack中的計算服務(wù)項目,計算實例(虛擬服務(wù)器)生命周期的所有活動都由Nova管理。Nova支持創(chuàng)建虛擬機和裸金屬服務(wù)器,并且支持系統(tǒng)容器。作為一套在現(xiàn)有Linux服務(wù)器上運行的守護進程,Nova提供計算服務(wù),但它自身并沒有提供任何虛擬化能力,而是使用不同的虛擬化驅(qū)動來與底層支持的虛擬機管理器進行交互。Keystone:這項服務(wù)為所有的OpenStack服務(wù)提供身份管理和認證。Glance:這項服務(wù)提供計算用的鏡像庫,所有的計算實例都從Glance鏡像啟動。Neutron:這項服務(wù)負責配置管理計算實例啟動時的虛擬或物理網(wǎng)絡(luò)連接。Cinder和Swift:這兩項服務(wù)分別為計算實例提供塊存儲和對象存儲支持。5.2.5OpenStack計算服務(wù)2.Nova的系統(tǒng)架構(gòu)Nova由多個提供不同功能的獨立組件構(gòu)成,對外通過RESTAPI通信,對內(nèi)通過遠程過程調(diào)用通信,使用一個中心數(shù)據(jù)庫存儲數(shù)據(jù)。其中,每個組件都可以部署一個或多個來實現(xiàn)橫向擴展。5.2.5OpenStack計算服務(wù)3.API組件API是客戶端訪問Nova的HTTP接口,它由nova-api服務(wù)實現(xiàn),nova-api服務(wù)接收和響應(yīng)來自最終用戶的計算請求。作為OpenStack對外服務(wù)的主要接口,nova-api提供集中的可以查詢所有API的端點。它是整個Nova組件的“門戶”,所有對Nova的請求都先由nova-api處理,API提供REST標準調(diào)用服務(wù),便于與第三方系統(tǒng)集成??梢酝ㄟ^運行多個API服務(wù)實例輕松實現(xiàn)API的高可用性。12檢查客戶端傳入的參數(shù)是否合法。調(diào)用Nova其他服務(wù)處理客戶端HTTP請求。3格式化Nova其他子服務(wù)返回的結(jié)果并返回給客戶端。5.2.5OpenStack計算服務(wù)4.Conductor組件nova-conductor可以水平擴展,但是不要將它部署在運行nova-compute服務(wù)的節(jié)點上。nova-conductor作為nova-compute服務(wù)與數(shù)據(jù)庫之間交互的中介,可避免由nova-compute服務(wù)創(chuàng)建的對云數(shù)據(jù)庫的直接訪問。nova-compute需要獲取和更新數(shù)據(jù)庫中虛擬機實例的信息。使用nova-conductor也有助于提高數(shù)據(jù)庫的訪問性能。Conductor組件由nova-conductor模塊實現(xiàn),旨在為數(shù)據(jù)庫的訪問提供一層安全保障。nova-conductor是OpenStack中的一個遠程過程調(diào)用服務(wù),主要提供數(shù)據(jù)庫查詢功能。12345.2.5OpenStack計算服務(wù)5.Scheduler組件Scheduler可譯為調(diào)度器,由nova-scheduler服務(wù)實現(xiàn),旨在解決“如何選擇在某個計算節(jié)點上啟動實例”的問題。它應(yīng)用多種規(guī)則,考慮內(nèi)存使用率、CPU負載率、CPU構(gòu)架等多種因素,根據(jù)一定的算法,確定虛擬機實例能夠運行在哪一臺計算服務(wù)器上。nova-scheduler服務(wù)會從隊列中接收一個虛擬機實例的請求,通過讀取數(shù)據(jù)庫的內(nèi)容,從可用資源池中選擇最合適的計算節(jié)點來創(chuàng)建新的虛擬機實例。創(chuàng)建虛擬機實例時,用戶會提出資源需求,如CPU、內(nèi)存、磁盤容量等。OpenStack將這些需求定義在實例類型中,用戶指定使用哪種實例類型即可。nova-scheduler會按照實例類型選擇合適的計算節(jié)點。隨機調(diào)度器過濾調(diào)度器緩存調(diào)度器(1)Nova調(diào)度類型5.2.5OpenStack計算服務(wù)5.Scheduler組件(2)過濾調(diào)度器調(diào)度過程最初有6臺可用的計算節(jié)點主機,通過多個過濾器層層過濾,將主機2、主機3和主機5排除。剩下的3臺主機再通過計算權(quán)重與排序,按優(yōu)先級從高到低依次為主機4、主機1和主機6。主機4權(quán)重值最大,最終入選。5.2.5OpenStack計算服務(wù)5.Scheduler組件(3)過濾器再審過濾器可用區(qū)域過濾器內(nèi)存過濾器磁盤過濾器核心過濾器計算過濾器計算能力過濾器鏡像屬性過濾器服務(wù)器組反親和性過濾器服務(wù)器組親和性過濾器5.2.5OpenStack計算服務(wù)6.Compute組件(1)通過驅(qū)動架構(gòu)支持多種Hypervisor面對多種Hypervisor,nova-compute為這些Hypervisor定義了統(tǒng)一的接口,Hypervisor只需要實現(xiàn)這些接口,就可以Driver的形式即插即用到OpenStack系統(tǒng)中。5.2.5OpenStack計算服務(wù)6.Compute組件(2)定期向OpenStack報告計算節(jié)點的狀態(tài)penStack通過nova-compute的定期報告獲知每個計算節(jié)點的信息。每隔一段時間,nova-compute就會報告當前計算節(jié)點的資源使用情況和nova-compute的服務(wù)狀態(tài)。nova-compute是通過Hypervisor的驅(qū)動獲取這些信息的。例如,如果使用Hypervisor的是KVM,則會使用Libvirt驅(qū)動,由Libvirt驅(qū)動調(diào)用相關(guān)的API獲得資源信息。(3)實現(xiàn)虛擬機實例生命周期的管理1234為實例準備資源創(chuàng)建實例的鏡像文件創(chuàng)建實例的可擴展標記語言定義文件創(chuàng)建虛擬網(wǎng)絡(luò)并啟動虛擬機5.2.6OpenStack存儲服務(wù)1.Cinder塊存儲服務(wù)(1)Cinder的主要功能為管理塊存儲提供一套方法,對卷實現(xiàn)從創(chuàng)建到刪除的整個生命周期管理,允許對卷、卷的類型、卷的快照進行處理。提供持久性塊存儲資源,供Nova計算服務(wù)的虛擬機實例使用。從實例的角度看,掛載的每個卷都是一塊磁盤。使用Cinder可以將一個存儲設(shè)備連接到一個實例。另外,Cinder可以將鏡像寫到塊存儲設(shè)備中,讓Nova計算服務(wù)用作可啟動的持久性實例。對不同的后端存儲進行封裝,對外提供統(tǒng)一的API。010203Cinder的各個子服務(wù)通過消息隊列實現(xiàn)進程間的通信和相互協(xié)作。有了消息隊列,子服務(wù)之間可實現(xiàn)相互交流,這種松散的結(jié)構(gòu)也是分布式系統(tǒng)的重要特征。5.2.6OpenStack存儲服務(wù)1.Cinder塊存儲服務(wù)(2)Cinder的系統(tǒng)架構(gòu)Cinder塊存儲服務(wù)與Nova計算服務(wù)之間的交互5.2.6OpenStack存儲服務(wù)1.Cinder塊存儲服務(wù)(3)Cinder塊存儲服務(wù)與Nova計算服務(wù)之間的交互擬機的整個生命周期中對應(yīng)的卷操作5.2.6OpenStack存儲服務(wù)2.Swift對象存儲服務(wù)對象存儲是高性價比、可擴展存儲的理想解決方案,提供一個完全分布式、API可訪問的平臺,可以直接與應(yīng)用集成,或者用于備份、存檔和數(shù)據(jù)保存。Swift適用于許多應(yīng)用場景,最典型的應(yīng)用是作為網(wǎng)盤類產(chǎn)品的存儲引擎。在OpenStack中,其可以與鏡像服務(wù)Glance結(jié)合存儲鏡像文件。另外,由于Swift具有無限擴展能力,它也非常適合存儲日志文件和作為數(shù)據(jù)備份倉庫。Swift對象存儲使用了分布式架構(gòu),沒有中央控制節(jié)點,可提供更好的可擴展性、冗余性等。對象寫入多個硬件設(shè)備時,OpenStack負責保證集群中的數(shù)據(jù)復制和完整性。可通過添加新節(jié)點來擴展存儲集群。當節(jié)點失效時,OpenStack將從其他正常運行的節(jié)點復制內(nèi)容。與文件系統(tǒng)不同,對象存儲系統(tǒng)所存儲的邏輯單元是對象,而不是傳統(tǒng)的文件。對象包括內(nèi)容和元數(shù)據(jù)兩個部分。與其他OpenStack項目一樣,Swift提供RESTAPI作為公共訪問的入口,每個對象都是一個RESTful資源,擁有唯一的URL,通過它請求對象,可以直接通過SwiftAPI,或者使用主流編程語言的函數(shù)庫來操作對象存儲。5.2.6OpenStack存儲服務(wù)2.Swift對象存儲服務(wù)(1)Swift的系統(tǒng)架構(gòu)Swift采用完全對稱、面向資源的分布式架構(gòu),所有組件均可擴展,避免因單點故障擴散而影響整個系統(tǒng)的運行。完全對稱意味著Swift中各節(jié)點可以完全對等,能極大地降低系統(tǒng)維護成本。它的擴展性包括兩個方面:一方面是數(shù)據(jù)存儲容量無限可擴展;另一方面是Swift性能可線性提升,如吞吐量等。5.2.6OpenStack存儲服務(wù)2.Swift對象存儲服務(wù)(2)Swift的應(yīng)用③IaaS公有云Swift具有線性擴展、高并發(fā)和多項目支持等特性,使它非常適合作為IaaS。公有云規(guī)模較大,更多時候會遇到大量虛擬機并發(fā)啟動的情況,所以對于虛擬機鏡像的后臺存儲來說,實際挑戰(zhàn)在于大數(shù)據(jù)的并發(fā)讀性能。①網(wǎng)盤Swift的對稱架構(gòu)使數(shù)據(jù)節(jié)點從邏輯上看處于同一級別,每個節(jié)點上同時有數(shù)據(jù)和相關(guān)的元數(shù)據(jù),并且元數(shù)據(jù)的核心數(shù)據(jù)結(jié)構(gòu)使用的是哈希環(huán),對于節(jié)點的增減一致性哈希算法只需要重定位環(huán)空間中的一小部分數(shù)據(jù),具有較好的容錯性和可擴展性。④移動互聯(lián)網(wǎng)和CDNCDN是構(gòu)建在現(xiàn)有網(wǎng)絡(luò)基礎(chǔ)之上的智能虛擬網(wǎng)絡(luò),依靠部署在各地的邊緣服務(wù)器,通過中心平臺的負載均衡、內(nèi)容分發(fā)、調(diào)度等功能,使用戶就近獲取所需內(nèi)容,降低網(wǎng)絡(luò)擁塞,提高用戶訪問的響應(yīng)速度和命中率。CDN的關(guān)鍵技術(shù)是內(nèi)容存儲和分發(fā)。②備份文檔Rackspace的主營業(yè)務(wù)是數(shù)據(jù)的備份歸檔,同時,其延展出一種新業(yè)務(wù),如“熱歸檔”。OpenStack云計算平臺管理Linux操作系統(tǒng)Docker容器技術(shù)技能實踐5.3.1Docker技術(shù)概述1.Docker的發(fā)展歷程Docker公司起初是一家名為dotCloud的PaaS提供商。在底層技術(shù)上,dotCloud公司使用了Linux容器(LinuxContainerLXC)技術(shù)。為了方便創(chuàng)建和管理容器,dotCloud公司開發(fā)了一套內(nèi)部工具,之后被命名為Docker,Docker就這樣誕生了。2013年,dotCloud公司的PaaS業(yè)務(wù)不景氣,需要尋求新的突破,于是聘請了本·戈盧布(BenGolub)作為新的CEO,將公司重命名為Docker,放棄了dotCloudPaaS平臺,懷揣著“將Docker和容器技術(shù)推向全世界”的使命,開啟了一段新的征程。2013年3月,Docker開源版本正式發(fā)布;2013年11月,RHEL6.5正式版本集成了對Docker的支持;2014年4月~2014年6月,亞馬遜、谷歌、微軟等公司的云計算服務(wù)相繼宣布支持Docker;2014年6月,隨著DockerCon2014大會的召開,Docker1.0正式發(fā)布;2015年6月,Linux基金會在DockerCon2015大會上與亞馬遜、思科、Docker等公司共同宣布成立開放容器項目(OpenContainerProject,OCP),旨在實現(xiàn)容器標準化,該組織后更名為開放容器標準(OpenContainerInitiative,OCI);2015年,浙江大學實驗室攜手華為、谷歌、Docker等公司,成立了云原生計算基金會(CloudNativeComputingFoundation,CNCF),共同推進面向云原生應(yīng)用的云平臺發(fā)展。Libcontainer的目標是成為與平臺無關(guān)的工具,可基于不同內(nèi)核為Docker上層提供必要的容器交互功能。在Docker0.9中,Libcontainer取代LXC成為其默認的執(zhí)行驅(qū)動。5.3.1Docker技術(shù)概述2.Docker的定義Docker是以Docker容器為資源分割和調(diào)度的基本單位,封裝整個軟件運行時的環(huán)境,為開發(fā)者和系統(tǒng)管理員設(shè)計,用于構(gòu)建、發(fā)布和運行分布式的應(yīng)用平臺。Docker借鑒集裝箱裝運貨物的場景,讓開發(fā)人員將應(yīng)用程序及其依賴打包到一個輕量級、可移植的容器中,并將其發(fā)布到任何運行Docker容器引擎的環(huán)境下,以容器方式運行該應(yīng)用程序。與裝運集裝箱時不用關(guān)心其中的貨物一樣,Docker在操作容器時不關(guān)心容器中有什么軟件。它是一種跨平臺、可移植且簡單易用的容器解決方案。Docker的源代碼托管在GitHub上,基于Go語言開發(fā),并遵從ApacheLicense2.0協(xié)議。Docker可在容器內(nèi)部快速自動化地部署應(yīng)用,并通過操作系統(tǒng)內(nèi)核技術(shù)為容器提供資源隔離與安全保障。5.3.1Docker技術(shù)概述3.Docker的優(yōu)勢Docker可以快速創(chuàng)建和刪除容器,實現(xiàn)快速迭代,節(jié)約大量開發(fā)、測試、部署的時間。此外,其整個過程全程可見,使團隊更容易理解應(yīng)用的創(chuàng)建和工作過程。容器非常適合持續(xù)集成和持續(xù)交付的工作流程。Docker容器不需要額外的虛擬機管理程序以及Hypervisor的支持,它使用內(nèi)核級的虛擬化,與底層共享操作系統(tǒng),系統(tǒng)負載更低,性能更加優(yōu)異,在同等條件下可以運行更多的實例,更充分地利用系統(tǒng)資源?;谌萜鞯腄ocker平臺滿足具有高度可移植性和擴展性的工作環(huán)境需求。Docker容器幾乎可以在所有平臺上運行,包括物理機、虛擬機、公有云、私有云、混合云、服務(wù)器等,并支持主流的操作系統(tǒng)發(fā)行版本,這種兼容性可以讓用戶在不同平臺之間輕松地遷移應(yīng)用。更快的交付和部署高效的資源利用和隔離高可移植性與擴展性5.3.1Docker技術(shù)概述3.Docker的優(yōu)勢Docker的鏡像與鏡像之間不是相互隔離的,它們有松耦合的關(guān)系。鏡像采用了多層文件的聯(lián)合體。通過這些文件層,可以組合出不同的鏡像,使得利用基礎(chǔ)鏡像進一步擴展鏡像變得非常簡單。Docker秉承了開源軟件的理念,因此所有用戶均可以自由地構(gòu)建鏡像,并將其上傳到DockerHub上供其他用戶使用。使用Dockerfile時,只需要進行少量的配置修改,就可以替代以往大量的更新工作,且所有修改都以增量的方式被發(fā)布和更新,從而實現(xiàn)高效、自動化的容器管理。Docker容器可以保證應(yīng)用程序在整個生命周期中的一致性,保證環(huán)境的一致性和標準化。Docker容器可以像GitHub一樣,按照版本對提交的Docker鏡像進行管理。當出現(xiàn)因組件升級導致環(huán)境損壞的情況時,Docker可以快速地回滾到該鏡像的前一個版本。相對虛擬機的備份或鏡像創(chuàng)建流程而言,Docker可以快速地進行復制和實現(xiàn)冗余。此外,啟動Docker就像啟動一個普通進程一樣快速,啟動時間可以達到秒級甚至毫秒級。更簡單的維護和更新管理環(huán)境標準化和版本控制5.3.1Docker技術(shù)概述4.容器與虛擬機特性Docker容器傳統(tǒng)虛擬機啟動速度秒級分鐘級計算能力損耗幾乎沒有損耗50%左右性能接近原生弱于原生內(nèi)存代價很小較大占用磁盤空間一般為MB級一般為GB級系統(tǒng)支持量(單機)上千個幾十個隔離性資源限制完全隔離遷移性優(yōu)秀一般Docker容器與傳統(tǒng)虛擬機的特性比較5.3.1Docker技術(shù)概述4.容器與虛擬機Docker容器與傳統(tǒng)虛擬機的特性比較5.3.1Docker技術(shù)概述5.Docker的三大核心概念ACBDocker的鏡像是創(chuàng)建容器的基礎(chǔ),類似于虛擬機的快照,可以理解為面向Docker容器引擎的只讀模板。Docker提供簡單的機制來創(chuàng)建和更新現(xiàn)有的鏡像,用戶也可以從網(wǎng)上下載已經(jīng)創(chuàng)建好的鏡像來直接使用。鏡像和容器的關(guān)系就像面向?qū)ο蟪绦蛟O(shè)計中的類和實例一樣。鏡像是靜態(tài)的定義,容器是鏡像運行時的實體。Docker的容器是鏡像創(chuàng)建的運行實例,它可以被啟動、停止和刪除。每一個容器都是互相隔離、互不可見的,以保證平臺的安全性。倉庫可看作代碼控制中心,Docker倉庫是用來集中保存鏡像的地方。當開發(fā)人員創(chuàng)建了自己的鏡像之后,可以使用push命令將它上傳到公有(Public)倉庫或者私有(Private)倉庫。下一次要在另外一臺機器上使用這個鏡像時,只需要從倉庫中獲取即可。鏡像容器倉庫5.3.2Docker架構(gòu)與應(yīng)用1.Docker的架構(gòu)5.3.2Docker架構(gòu)與應(yīng)用2.Docker底層技術(shù)命名空間每個容器都可以擁有自己單獨的命名空間,運行在其中的應(yīng)用像在獨立的操作系統(tǒng)中運行一樣。命名空間能保證容器之間互不影響??刂平M控制組是Linux內(nèi)核的一個特性,主要用來對共享資源進行隔離、限制、審計等??刂平M提供資源限制、優(yōu)先級、資源審計、隔離、控制等功能。聯(lián)合文件系統(tǒng)聯(lián)合文件系統(tǒng)是一種輕量級的高性能分層文件系統(tǒng),它支持將文件系統(tǒng)中的修改信息作為一次提交,并層層疊加,同時可以將不同目錄掛載到同一個虛擬文件系統(tǒng)中,應(yīng)用看到的是掛載的最終結(jié)果。容器格式Docker引擎將命名空間、控制組和聯(lián)合文件系統(tǒng)打包到一起時所使用的就是容器格式。最初,Docker采用LXC中的容器格式,但自Docker0.9開始,Docker也開始支持新的Libcontainer格式,并將其作為默認格式。Linux網(wǎng)絡(luò)虛擬化Docker的本地網(wǎng)絡(luò)實現(xiàn)其實利用了Linux中的網(wǎng)絡(luò)命名空間和虛擬網(wǎng)絡(luò)設(shè)備(特別是vethpair)。要實現(xiàn)網(wǎng)絡(luò)通信,機器需要至少一個網(wǎng)絡(luò)接口(物理接口或虛擬接口)與外界相通,并可以收發(fā)數(shù)據(jù)包;此外,如果不同子網(wǎng)之間要進行通信,則需要額外的路由機制。Docker中的網(wǎng)絡(luò)接口默認都是虛擬接口。5.3.2Docker架構(gòu)與應(yīng)用3.Docker的功能快速部署隔離應(yīng)用簡化配置提高開發(fā)效率代碼管道化管理調(diào)試能力整合服務(wù)器多租戶環(huán)境5.3.2Docker架構(gòu)與應(yīng)用4.Docker的應(yīng)用Docker便于執(zhí)行云遷移策略,可以隨時隨地將應(yīng)用程序交付到任何云端。使用Docker標準化應(yīng)用程序,能使它們在任何基礎(chǔ)設(shè)施上以同樣的方式運行。Docker可以跨越多個云環(huán)境容器化,并在這些環(huán)境下部署傳統(tǒng)應(yīng)用程序和微服務(wù)。(1)云遷移(2)大數(shù)據(jù)應(yīng)用Docker使數(shù)據(jù)專家能夠快速地迭代模型,具體表現(xiàn)在以下幾個方面。①便于安全協(xié)作。②獨立于基礎(chǔ)設(shè)施的Docker平臺使得數(shù)據(jù)專家能夠?qū)?yīng)用程序進行最優(yōu)化的數(shù)據(jù)分析;數(shù)據(jù)專家可以選擇并使用適合研究項目的工具和軟件包構(gòu)建模型,無須擔心應(yīng)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論