這是 OpenStack 實施經驗分享系列的第 2 篇。
OpenStack 通過 Glance 鏡像部署 instance,上一節我們介紹了 linux 鏡像制作方法,windows 鏡像與 linux 有很大不同,今天我們以 windows2008 為例詳細討論。
鏡像制作步驟如下:
1. 創建並運行 windows2008 KVM 虛擬機
2. 安裝 virtio 驅動
3. 安裝 cloudbase-init
4. 其他定制工作
5. 創建 Glance 鏡像
6. 通過鏡像部署新 instance
1. 創建並運行Windows2008 KVM虛擬機
如果有 virt-manager,這一步可以在圖形界面中完成。考慮到不是所有情況都有 virt-manager,我們這里直接在 KVM 宿主機上操作。下面的步驟用於創建 windows2008 虛擬機。
首先創建一塊 20G 的虛擬磁盤作為虛擬機的啟動盤:
qemu-img create -f qcow2 /var/lib/libvirt/images/win2008r2sp1.qcow2 20G
copy 虛擬機模板
cp template.xml win2008r2sp1.xml
template.xml 這個模板怎么來?其實很簡單,通常直接 dump 現有 kvm 虛擬機的 xml 定義就可以了。比如:
virsh dumpxml [vm-id] > template.xml
修改win2008r2sp1.xml中以下各項:
虛擬機名稱
虛擬磁盤(前面通過 qemu-img 創建的)和啟動ISO
創建虛擬機
virsh define win2008r2sp1.xml
啟動虛擬機
virsh start win2008r2sp1
通過vnc連接虛擬機
這里 172.17.12.11 為宿主機 IP,端口號為 2(可通過 virsh vncdisplay 查詢到)。連接成功后,顯示虛擬機安裝界面
通過向導安裝操作系統,過程不再贅述。如果在安裝過程中虛擬機沒有自動重啟,可以通過下面的命令啟動虛擬機
virsh start win2008r2sp1
安裝成功后,設置 IP 地址
2. 安裝 virtio 驅動
OpenStack 默認使用 virtio 磁盤和網卡,virtio 的性能很好。由於 windows 沒有自帶 virtio 的驅動,需要手動安裝,步驟如下:
添加一個 virtio 類型的磁盤。
virsh edit win2008r2sp1
修改當前的網卡設備為 virtio。
重啟操作系統,安裝 virtio 的驅動程序。
virtio driver 的下載地址為 https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.iso
3. 安裝 cloudbase-init
cloudbase-init 使 windows 鏡像部署的 instance 能夠自動配置 IP 地址等個性化信息。其作用與 linux 的 cloud-init 一樣,下面演示 cloudbase-init 的配置方法。
下載 cloudbase-init
https://cloudbase.it/cloudbase-init/#download
在虛擬機中安裝 cloudbase-init
可通過遠程桌面上傳 cloudbase-init 安裝程序並安裝
系統會自動關機。
4. 其他定制工作
重新啟動虛擬機,完成其他定制工作,比如根據需要安裝一些常用軟件等。至此,windows 鏡像文件已經准備好,文件路徑為
/var/lib/libvirt/images/win2008r2sp1.qcow2
5. 創建 Glance 鏡像
鏡像創建方法與上一節 linux 鏡像一樣
glance image-create --name "Windows 2008 R2 SP1" --file /var/lib/libvirt/images/win2008r2sp1.qcow2 --disk-format qcow2 --container-format bare --is-public true --progress
6. 通過鏡像部署新 instance
點擊鏡像后面的“啟動雲主機”按鈕。
給 instance 命名,並點擊“運行”,instance 創建成功並分配到 IP。
點擊 instance 名字。
打開 console。
在 VNC 控制台可以看到 instance 正常啟動。
點擊 Administrator 用戶
第一次登錄需要修改密碼。
以上就是定制 OpenStack Windows 鏡像的操作,下一節討論幾個鏡像使用上的經驗和技巧。