1. 程式人生 > >Openstack映象製作_windows_2008_R2

Openstack映象製作_windows_2008_R2

NOTE: ‘#’開頭的是root許可權執行的命令
‘virsh #’開頭的是virsh命令列下執行的命令

1.環境說明

1.1硬體環境

專案 版本
伺服器型別 VMware虛擬機器
伺服器系統 CentOS7.1
伺服器網路 橋接模式
伺服器IP 192.168.1.111
磁碟空間 40G

注:磁碟空間儘量大一點,windwos佔空間比最小化安裝的linux大很多

1.2軟體環境

專案 版本
hypervisor qemu-kvm-1.5.3-141.el7_4.4
映象網路模式 Bridge
Windows映象版本 windows_server_2012 r2
驅動映象版本 virtio-win-0.1.141
VNC客戶端 VNC-Viewer-6.17.1113-Windows-64bit

2.環境搭建

2.1 軟體安裝

安裝kvm

# yum install -y qemu-kvm libvirt libvirt-python  \
libguestfs-tools virt-install

啟動服務

# systemctl enable libvirtd && systemctl start libvirtd

2.2網路設定

由於我用的是VMware虛擬機器,啟動的映象也採用bridge模式會使後續的遠端連線除錯更加方便
新增網橋br0需修改ifcfg-ens33與ifcfg-br0(dhcp模式),配置如下:

# cat /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE="Ethernet"
DEVICE="ens33"
ONBOOT="yes"
BRIDGE="br0"
# cat /etc/sysconfig/network-scripts/ifcfg-br0
TYPE="bridge"
BOOTPROTO="dhcp"
DEVICE="br0"
ONBOOT="yes"

修改完網絡卡配置需要重啟網路服務

# systemctl restart network
或者
# systemctl restart NetworkManager
重啟那個服務取決於你使用那個服務

3.映象製作

3.1建立磁碟(建立將來的Openstack映象)

# qemu-img create -f qcow2 /tmp/windows_server_2008r2.qcow2 30G

3.2啟動映象

virt-install --name win2008r2 --ram 1024 \
--os-type=windows --os-variant=win2k12r2 \
--disk path=/tmp/windows_server_2008r2.qcow2,bus=virtio \
--disk /data/img/cn_windows_server_2012_r2_x64_dvd_2707961.iso,device=cdrom,bus=ide \
--disk /data/img/virtio-win-0.1.141.iso,device=cdrom,bus=ide \
--network bridge=br0,model=virtio  \
--graphics vnc,listen=0.0.0.0 --noautoconsole
##cdrom後面的映象需要從微軟官網或者msdn i tell you下載

3.3連線vnc進行系統安裝系統初始化

3.3.1vnc連線

檢視vnc埠

virsh # vncdisplay win2008r2
:0

外部連線的vnc埠為590x例如上面就為5900,以192.168.1.111:5900連線之後進行安裝系統
這裡寫圖片描述

3.3.2 安裝系統

選擇帶有gui的伺服器,如果選擇第一個的話安裝完成之後圖形介面只有一個powershell
這裡寫圖片描述
選擇自定義安裝
這裡寫圖片描述
可以看到如果沒有載入virtio驅動是識別不到磁碟的,進行載入
這裡寫圖片描述
選擇磁碟驅動
這裡寫圖片描述
這裡寫圖片描述
載入完磁碟驅動就可以看到磁碟了
這裡寫圖片描述
這裡寫圖片描述
進行檔案拷貝系統安裝
這裡寫圖片描述
安裝更新完成之後啟動的映象會重啟
如果拷貝中途虛擬機器掛起,很可能是磁碟空間不夠,需要擴容
這裡寫圖片描述
實際上是沒有正常啟動的

virsh # list --all
 Id    Name                           State
----------------------------------------------------
 -     win2008r2                      shut off

手動啟動

virsh # start win2008r2
Domain win2008r2 started

啟動之後映象是沒有網絡卡驅動的,開啟 裝置管理器 進行驅動安裝,瀏覽計算機以查詢驅動程式
這裡寫圖片描述
這裡寫圖片描述
安裝成功之後右下角工作列網路連線上的小紅叉就沒了
這裡寫圖片描述

3.3.3 初始化

最好安裝下cloudbase-init或者直接用sysprep對伺服器使用者的SID做下修改,否則用這個映象產生的虛擬機器Administrator的SID以及主機名千篇一律,如果有兩臺這樣的伺服器在同一個域,dhcp獲取ip的時候會出錯
初始化完成後關閉虛擬機器,進行映象壓縮上傳

# 4.映象壓縮(保證磁碟空間足夠)
## 4.1 壓縮映象
用virt-sparsify壓縮建議開機壓縮,佔用磁碟空間小,如果關機狀態壓縮的話會生成一個sparsify檔案實測(22G)佔用大量空間,開機狀態壓縮的話sparsify檔案佔用磁碟空間相對較小(193K)

bash
# virt-sparsify --compress /tmp/windows_server_2008r2.qcow2 /tmp/windows_server_2008r2_cmp.qcow2

# ll -h
total 12G
-rw-r--r--. 1 root root 3.9G Mar 23 19:55 windows_server_2008r2_cmp.qcow2
-rw-r--r--. 1 qemu qemu 7.5G Mar 23 19:48 windows_server_2008r2.qcow2

4.2 壓縮對比

1.-rw-r--r--. 1 root root 3.9G Mar 23 19:55 windows_server_2008r2_cmp.qcow2 #通過sparsify壓縮3得到
2.-rw-r--r--. 1 root root 3.9G Mar 23 20:05 windows_server_2008r2_cmp.qcow2.tar.gz #通過tar壓縮1得到
3.-rw-r--r--. 1 qemu qemu 7.5G Mar 23 19:48 windows_server_2008r2.qcow2 #原始驚醒
4.-rw-r--r--. 1 root root 3.7G Mar 23 20:13 windows_server_2008r2.qcow2.tar.gz #通過tar壓縮3得到
#3為初始映象

tar壓縮之後佔的空間比sparsify要少

# tar zcvf windows_server_2008r2.qcow2.tar.gz windows_server_2008r2.qcow2

4.3 檢測

壓縮完測試下壓縮之後的映象是否可用,用壓縮的映象磁碟啟動虛擬機器,如果執行正常則可用

# virt-install --name ws2012r2 --memory 1024  \
--disk /tmp/windows_server_2008r2_cmp.qcow2,format=qcow2 \
--import --os-type=windows --os-variant=win2k12r2  \
--disk /data/img/virtio-win-0.1.141.iso,device=cdrom,bus=ide  \
--network bridge=br0,model=virtio  \
--graphics vnc,listen=0.0.0.0 --noautoconsole

壓縮完畢上傳映象

5.上傳映象(Kilo)

將映象拷貝到glance伺服器解壓然後進行上傳

# tar zxvf windows_server_2008r2.qcow2.tar.gz
# glance image-create --name 'windows_server_2008r2' \
--file=/root/img/windows_server_2008r2.qcow2 \
--disk-format qcow2 --container-format bare \
--is-public=true