成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

為 OpenStack 私有云創建 Linux 和 Windows 映像

云計算 OpenStack
開源 OpenStack 云操作系統是一個功能豐富且可以大規模擴展的平臺,適用于所有類型的云計算。但 OpenStack 仍缺乏一些針對私有云的特性,尤其是針對開發和測試環境的特性。例如,映像構建就不是一個簡單的過程。本文為 OpenStack 私有云提供一種全新且改進的映像創建方法。

開源 OpenStack 云操作系統是一個功能豐富且可以大規模擴展的平臺,適用于所有類型的云計算。一些公共云服務基于 OpenStack,許多組織內的私有云實現也是如此。但 OpenStack 仍缺乏一些針對私有云的特性,尤其是針對開發和測試環境的特性。例如,映像構建就不是一個簡單的過程。本文為 OpenStack 私有云提供一種全新且改進的映像創建方法。我們在 QEMU/KVM 平臺上驗證了這種新方法,但在理論上該方法也適用于其他虛擬機管理程序平臺。

介紹這個新方法之前,我們將概述目前在 OpenStack 中如何創建映像。

目前在 OpenStack 中創建映像的方式

在 OpenStack 中創建 Linux 或 Windows 映像的過程由多個耗時的步驟組成。

基于 Linux 的映像

官方 OpenStack 虛擬機映像指南 詳細介紹了 7 種 要求,必須滿足這些要求,基于 Linux 的映像才能在 OpenStack 云中完全正常工作(可通過安裝 cloud-init 包來滿足一些要求)。該映像指南建議用戶在創建自己的映像之前閱讀指南中很長一節的內容,確保映像支持他們計劃使用的 OpenStack 特性。

對于一些特定的發行版,可手動或使用工具創建 Linux 映像 — 比如 VMBuilder、Oz 或 imagefactory。無論使用哪種方法,在創建自己的 Linux 映像之前都需要以下材料:

  • OS 安裝 CD/DVD 或 ISO 映像文件。
  • 一個啟用了 KVM/QEMU 虛擬機管理程序的 Linux 機器。一些發行版可能需要 virt-manager/virt-viewer GUI 實用程序。
  • cloud-init 或針對操作系統自行編寫的等效腳本。
  • guestfish、guestmount 或 virt-* 工具,用于修改映像。

滿足所有必須的條件后,即可開始根據下面總結的步驟創建自己的 Linux 映像:

  • 使用 virt-manager 或 virt-install 創建一個虛擬機 (VM) 并安裝操作系統。
  • 配置操作系統,以滿足您自己的需求(例如通過安裝所需的中間件),或者安裝 cloud-init 或等效的腳本來滿足 OpenStack 的要求。
  • 使用 guestfish、guestmount 或 virt-* 修改映像,以滿足 OpenStack 的要求。
  • 將新映像上傳到 OpenStack 映像服務并驗證該映像。

基于 Windows 的映像

OpenStack 網站上沒有詳細的示例介紹如何創建基于 Windows 的映像。但要讓您創建的基于 Windows 的映像能正常運行,您必須至少:

  • 安裝一個 VirtIO 驅動程序。
  • 啟用遠程桌面協議 (Remote Desktop Protocol, RDP) 并配置它以通過防火墻。
  • 配置 Internet 控制消息協議 (Internet Control Message Protocol, ICMP) 以通過防火墻。
  • 將磁盤分區并(使用 cloudbase-init)調整引導磁盤上的根分區大小。
  • 處理用戶數據和其他元數據(使用 cloudbase-init)。
  • 啟用 Windows System Preparation (Sysprep) 工具,以自定義來賓操作系統。

對于大多數私有云用例,本列表中的***兩個要求是可選的。而且您可以手動或使用腳本將磁盤分區,并調整引導磁盤上的根分區大小。但必須安裝一個 VirtIO 驅動程序,Windows 映像才能在 OpenStack 云中工作。此外,您需要擁有 VirtIO-Win 驅動程序包。

滿足***要求后,構建 Windows 映像的過程是:

  1. 使用一個 Internet Drive Electronics (IDE) 磁盤和一個 AMD PCnet32 或 Realtek rt8139 網絡接口卡 (NIC) 創建一個虛擬機。
  2. 安裝操作系統。
  3. 配置操作系統以滿足您自己的要求(例如通過安裝所需的中間件),或者安裝 cloudbase-init 或等效的腳本來滿足 OpenStack 要求。
  4. 關閉虛擬機。
  5. 添加一個小 VirtIO 磁盤和一個 VirtIO NIC。
  6. 啟動虛擬機并安裝 VirtIO 磁盤和 NIC 的 VirtIO 驅動程序。
  7. 重新啟動虛擬機,檢查操作系統,然后關閉虛擬機。
  8. 將映像上傳到 OpenStack 映像服務并驗證該映像。

也可執行以下步驟:

1.創建一個包含以下部分的虛擬機:

  • 一個 VirtIO 磁盤
  • 一個 PCnet32 或 rt8139 NIC
  • 一個額外的 CD-ROM,包含用于比 Windows Vista 或 Windows Server 2008 更高版本的 Windows 的 VirtIO 磁盤驅動程序,或者一個額外的軟盤,包含用于比 Windows server 2003 R2 更低版本的 Windows 的 VirtIO 磁盤驅動程序

2.在操作系統中安裝所需的 VirtIO 磁盤驅動程序。

3.配置操作系統,以滿足您自己的要求(例如通過安裝所需的中間件),或者安裝 cloudbase-init 或運行等效的腳本來滿足 OpenStack 的要求。

4.關閉虛擬機。

5.添加一個 VirtIO NIC。

6.啟動虛擬機并安裝 VirtIO NIC 的 VirtIO 驅動程序。

7.重新啟動虛擬機,檢查操作系統,然后關閉虛擬機。

8.將映像上傳到 OpenStack 映像服務并驗證該映像。

不足

盡管目前為 OpenStack 創建映像的方法有一些好處(如創建基于 Linux 的映像的開源工具的廣泛可用性),但該方法并不容易。創建基于 Windows 的映像看起來可能比創建 Linux 映像簡單一些,因為不需要使用 guestfish 等工具修改映像。但目前還沒有自動化工具來為 OpenStack 創建全功能的 Windows 映像,所以最終用戶或操作人員還必須手動創建它們。如果一個全球化團隊的測試人員或開發人員需要 Windows 映像,這些映像必須有不同的語言版本 — 而且團隊可能使用數十種語言。云操作人員準備所有請求的語言版本的 Windows 映像,這是不可能完成的任務。

為私有云創建 Linux 和 Windows 映像對最終用戶而言是一個耗時的工作 — 甚至對經驗豐富的云操作人員也是如此。而且,組織可能缺乏資源讓最終用戶創建映像 — 例如,創建 Linux 映像所需的額外 KVM/QEMU 虛擬機管理程序。在這種情況下,創建最終用戶請求的所有映像,對云操作人員而言是一項艱巨的任務。

***,需要將新映像上傳到 OpenStack 映像服務,根據映像來源與 OpenStack 映像服務之間的網絡性能,這個過程可能要花很長的時間。出于相同的原因,反復驗證新映像也可能會花很長的時間。

#p#

新的 OpenStack 映像創建方法

如果啟用了 OpenStack 的用戶要在線創建映像,創建能滿足其需求的映像要容易得多。我們提出了一種新的映像創建方法,其中用戶通過云服務所提供的 OpenStack 儀表板在線創建新映像。借助此功能,最終用戶無需額外的虛擬機管理程序,不需要自行將映像上傳到 OpenStack 映像服務。他們所需的只是操作系統安裝 CD/DVD ISO 映像文件。

概念設計

在概念上,為 OpenStack 創建一個新映像的理想過程是,最終用戶:

  1. 將操作系統安裝 CD/DVD ISO 映像文件上傳到 OpenStack 映像服務。
  2. 通過已上傳的 ISO 映像啟動一個新實例。
  3. 通過 OpenStack 儀表板中的 Virtual Networking Computing (VNC)/Simple Protocol for Independent Computing Environments (SPICE) 控制臺安裝操作系統。
  4. 執行特殊需要所要求的必要配置并安裝所需的軟件包。
  5. 手動或運行服務操作人員提供的腳本來執行 OpenStack 所要求的修改 — 例如,安裝 cloud-init、獲取公共 SSH 密鑰、啟用 SSHD 遠程登錄/RDP 等的腳本。
  6. 創建實例的快照。
  7. 根據需要在快照上運行 glance image-update 命令,將快照轉換為映像并添加其他元數據。

前提條件

必須滿足一些條件才能確保新的映像創建方法取得成功:

  • 一個可供所有最終用戶使用的有效儀表板或 Web UI。
  • VNC 代理或 SPICE 代理運行正常且可用于所有最終用戶。
  • 一個 cloud-init 或等效的腳本工具存儲庫可供所有最終用戶使用。
  • OpenStack 映像服務中擁有 VirtIO-win 驅動程序的一個 ISO 映像可供所有最終用戶使用。

下面我們演示新方法的可行性。

#p#

可行性分析

該新方法最重要的兩個方面是:如何支持 ISO 映像以及如何為從 ISO 映像啟動的實例組裝塊設備。

目前對 ISO 映像的支持

OpenStack 支持 ISO 映像。也支持從 ISO 映像啟動實例。但是,將來賓操作系統從 ISO 映像安裝到從 ISO 映像啟動的實例中,對此并未提供良好的支持。要想成功安裝,必須滿足一些嚴格的條件:

  • ISO 映像中的來賓操作系統必須默認已啟用 VirtIO 設備驅動程序。
  • 必須設置臨時磁盤風格,它的大小必須滿足來賓操作系統的要求。
  • 儀表板和 OpenStack novncproxy 服務器必須在正常運行。

如果所有這些條件都已滿足,即可從 ISO 映像成功地將來賓操作系統安裝到從這個 ISO 映像啟動的實例的臨時磁盤上。當然,在來賓操作系統上也可像使用其他實例一樣工作。但是,由于 OpenStack 中目前的實例快照機制,您無法成功地將實例轉換為實例快照或映像。實例快照將僅包含實例的根磁盤。其他塊設備(包括臨時磁盤和卷)將被忽略。

實例塊設備目前的組裝工作流

圖 1 顯示了在從 ISO 映像引導一個 KVM/QEMU 實例時,OpenStack Nova 中塊設備的組裝工作流。

圖 1. 組裝塊設備的現有工作流

 

為 OpenStack 私有云創建 Linux 和 Windows 映像

 

在圖 1 中的工作流中:

  1. Nova 從 Glance 獲取 ISO 映像并將它設置為一個虛擬機實例的根磁盤,以 CD-ROM 作為設備類型,IDE 作為總線類型。
  2. Nova 創建一個臨時磁盤并將它設置為虛擬機實例的第二個磁盤,以 disk 作為設備類型,VirtIO 作為總線類型。但只有在所設置的臨時磁盤大小符合實例的風格時,這一步才能完成。
  3. 用戶將來賓操作系統從根磁盤(實例的 CD-ROM)安裝到臨時磁盤(實例的第二個磁盤)并通過 VNC 逐步配置它。
  4. 用戶從這個虛擬機實例創建一個快照,Nova 將快照保存到 glance 服務。

此工作流似乎適合從頭創建一個新虛擬機映像。但您獲得的是最初的 ISO 映像的副本。原因是快照中僅包含根磁盤(實例的***個塊設備,如果從 ISO 映像啟動,實際上是實例的 CD-ROM),臨時磁盤已被忽略。所以,在目前的 OpenStack 中,您可從 ISO 映像啟動實例,也可將 ISO 映像中的操作系統安裝到已配置臨時磁盤且已啟動的實例中,但不能創建已安裝了操作系統的臨時磁盤的快照。要解決此問題,需要調整實例的各個塊設備的組裝工作流。

新的組裝工作流

您可以更改塊設備組裝流程,創建一個臨時磁盤,其大小設置適當且一定會設置為從 ISO 映像啟動的各個實例的根磁盤。更改之后,實例快照中包含的根磁盤將是已安裝了操作系統的臨時磁盤 — 完全滿足您的要求。

圖 2 顯示了在對 libvirt 驅動程序進行修改(將在本文的 概念證明 一節中介紹)后,您從一個 ISO 映像啟動一個實例時塊設備的組裝工作流。

圖 2. 修改后的塊設備組裝工作流

為 OpenStack 私有云創建 Linux 和 Windows 映像

 

下面是在從 ISO 映像啟動實例時,修改塊設備組裝工作流的過程:

  1. Nova 創建一個虛擬機磁盤文件并將它設置為虛擬機實例的根磁盤。設備總線默認設置為 VirtIO。
  2. Nova 從 Glance 獲取來賓操作系統的 ISO 映像并將它設置為第二個磁盤設備,這是一個 CD-ROM。
  3. Nova 從 Glance 獲取 VirtIO 驅動程序的一個 ISO 映像并將它設置為第三個磁盤設備,這是另一個 CD-ROM。
  4. 用戶從第二個磁盤設備(***個 CD-ROM)安裝來賓操作系統并根據需要配置它。
  5. 如果 VirtIO 驅動程序默認未包含在來賓操作系統中,會使用第三個磁盤設備(第二個 CD-ROM)安裝來賓操作系統的 VirtIO 驅動程序。
  6. 用戶創建該實例的一個快照,Nova 將它保存到 Glance 服務。

目前對 ISO 映像的支持 中已介紹,實例快照僅包含實例的根磁盤,無論根磁盤的類型是什么都是如此。使用修改后的組裝工作流,根磁盤是 Nova 創建的一個新磁盤文件,包含從作為操作系統映像的 CD-ROM(實例的第二個磁盤)所安裝的來賓操作系統。

正如我們所構想的,結果是一個從操作系統 ISO 映像安裝的新實例的實例快照 — 而不是最初的 ISO 映像的副本。

#p#

概念證明

要確保新的映像創建方法符合我們的設計目的,我們對 Nova 的代碼進行了一些修改 — 主要修改了 libvirt 驅動程序。請參見 下載 獲取相關代碼。我們修改的 python 模塊是 libvirt/driver.py 和 libvirt/blockinfo.py。這些文件中的注釋標識了我們所修改的類方法和實例。

我們用于概念證明的環境包含:

硬件:

  • 2U 機架服務器
  • 2 個 4 核 Xeon 處理器
  • 12 個 8GB RAM
  • 4 個 900GB SAS 硬盤且配置了 RAID10
  • 4 個 1Gps 以太網卡

軟件:

  • Red Hat Enterprise Linux 6 update 4 作為虛擬機管理程序
  • RDO Grizzly 版本

我們在 RDO Grizzly 獨立環境、RDO Grizzly 的多節點安裝環境和官方 OpenStack Grizzly 版本上測試了修改后的代碼。

#p#

測試和結果

本節介紹了我們為使用新方法創建虛擬機映像而修改的 Nova 代碼,執行的簡單測試過程以及一些測試示例。

測試過程

  1. 為 Glance 創建操作系統 ISO 映像。
  2. 檢查現有的風格,確保根磁盤大小滿足您的要求。如果沒有適用的風格,可創建一種新風格。
  3. 使用適用的風格,從這個操作系統 ISO 映像啟動一個實例。
  4. 實例啟動后,按照屏幕上的安裝步驟,通過儀表板所提供的 VNC 控制臺完成操作系統的安裝工作。
  5. 根據需要安裝應用程序并根據 OpenStack 的需要配置操作系統,例如安裝 cloud-init 或等效的腳本,啟用 SSHD 遠程登錄/RDP 服務等。
  6. 創建這個新安裝實例的一個實例快照。
  7. 運行 glance image-update,或者如果儀表板提供了相關的功能,從儀表板更新快照信息,將映像類型改為 image。

測試結果

修改 libvirt 驅動程序后,從 ISO 映像啟動的實例的塊設備如清單 1 所示。

清單 1. 從 ISO 映像啟動的實例的塊設備映射

  1. <disk type='file' device='disk'
  2.  <driver name='qemu' type='qcow2' cache='none'/> 
  3.  <source file='/var/lib/nova/instances/290124e3-a267-4223-bd69-661fac2035eb/disk.newos'/> 
  4.  <target dev='vda' bus='virtio'/> 
  5.  <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/> 
  6. </disk> 
  7. <disk type='file' device='cdrom'
  8.  <driver name='qemu' type='qcow2' cache='none'/> 
  9.  <source file='/var/lib/nova/instances/290124e3-a267-4223-bd69-661fac2035eb/disk'/> 
  10.  <target dev='hda' bus='ide'/> 
  11.  <readonly/> 
  12.  <address type='drive' controller='0' bus='0' target='0' unit='0'/> 
  13. </disk> 
  14. <disk type='file' device='cdrom'
  15.  <driver name='qemu' type='qcow2' cache='none'/> 
  16.  <source file='/var/lib/nova/instances/290124e3-a267-4223-bd69-661fac2035eb/disk.virtio'/> 
  17.  <target dev='hdb' bus='ide'/> 
  18.  <readonly/> 
  19.  <address type='drive' controller='0' bus='0' target='0' unit='1'/> 
  20. </disk> 

 

 

 

 

 

 

 

 

 

 

 

表 1 顯示了幾種主流操作系統的測試結果。

表 1. 測試結果

 

為 OpenStack 私有云創建 Linux 和 Windows 映像

 

#p#

結束語

我們新的映像創建方法的優點包括:

  • 可輕松為 OpenStack 創建新映像。
  • 可輕松驗證新創建的映像。
  • 為所有最終用戶提供了一種自助服務機制。

缺點包括:

  • 映像可能無法支持全部功能 — 具體來講,分區磁盤和調整引導磁盤上根分區的大小。
  • 不支持早于 Windows Server 2003 R2 的 Windows 版本。(但如果通過支持舊 Windows 版本的軟盤驅動程序來創建更復雜的組裝工作流,也可支持這些版本。)
  • 不支持缺少 VirtIO 設備驅動程序支持的舊 Linux 版本。

目前為止,大多數基于 OpenStack 的公共 IaaS 云服務都提供在基礎映像中具有固定根磁盤大小的實例,以及 — 通過卷服務 — 為實例提供額外的磁盤空間。在私有云中,實例的大部分需求主要與所安裝的中間件、來賓操作系統的主要版本/次要版本、實例風格等相關。與公共云服務中一樣,可通過提供固定的平均根磁盤大小和足夠的卷來滿足磁盤大小要求。所以,分區磁盤和調整引導磁盤上根分區大小的功能對大多數私有云而言不是必需的。

OpenStack 已成長為一種適合開源云操作系統的全球流行平臺。它使各種各樣的云解決方案易于實施、可大規模擴展且包含豐富的功能。我們在本文中介紹的工作證明,可以基于 OpenStack 平臺來實現新功能 — 而且 OpenStack 是一個開放且靈活的框架,而不僅僅是一個軟件產品。

 

責任編輯:Ophira 來源: developerWorks 中國
相關推薦

2015-05-28 13:42:08

2010-10-25 09:32:44

Windows Ser

2013-05-27 09:32:07

構建私有云OpenStack開源云計算

2016-10-25 12:59:49

私有云OpenStack選項

2011-06-08 14:24:11

CitrixOpenStack私有云

2017-05-03 09:49:14

OpenStack私有云搭建

2015-11-05 10:20:21

蘑菇街Docker私有云

2016-01-14 10:02:54

DockerOpenStack私有云

2012-09-20 09:56:18

Windows Ser私有云

2015-05-25 13:13:24

GartnerOpenStack私有云

2020-03-04 15:52:38

OpenStack私有云技術

2012-08-17 09:21:54

RackspaceOpenStack私有云

2015-08-06 09:45:14

私有云OpenStackVMware

2013-08-01 10:09:09

亞馬遜公有云OpenStack私有

2015-03-05 11:11:14

OpenStackMesosDocker

2015-04-17 09:11:34

2015-12-18 16:19:47

私有云從VMwareOpenStack

2012-09-03 12:57:38

SUSEOpenStack

2013-10-25 11:14:46

云發展OpenStack私有云

2013-07-25 09:13:57

SwiftStackOpenStackSwift對象存儲
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日日干干 | 自拍偷拍亚洲欧美 | 国产欧美日韩在线观看 | 最新超碰| 日韩精品在线看 | 日韩视频在线一区 | 国产免费播放视频 | 亚洲电影免费 | 在线一区二区三区 | 精品久久久久久久久久 | 国产欧美一级二级三级在线视频 | 国产视频第一页 | 91精品国产综合久久久动漫日韩 | 中文字幕不卡在线观看 | 久久精品亚洲一区二区三区浴池 | 中文字幕91av| 欧美一级大片 | 成人特级毛片 | 999久久精品| 欧美日韩亚洲三区 | 午夜看片网站 | 天天干天天操天天爽 | 国产精品一区二区在线观看 | 色综合天天天天做夜夜夜夜做 | 亚洲视频免费观看 | 亚洲精色| 天天艹| 精品国产高清一区二区三区 | 国产成人精品一区二区三区视频 | 精品一级 | 免费看国产a | 91精品国产综合久久久久久蜜臀 | 国产视频中文字幕 | 午夜在线观看免费 | 91高清在线观看 | 国产在线小视频 | 中文在线一区二区 | 亚洲精品电影网在线观看 | 黄色三级在线播放 | 成人免费大片黄在线播放 | 国产精品夜夜春夜夜爽久久电影 |