[root@benjr ~]# virt-manager |
1.name
第一步就是為你的 virtual machine 命個名稱,除了英文大小寫或是數字以及'_' , '.' 或是 '-' 其他符號皆不可使用.
2.Virtualization Method
當我們在做 RHEL 5 update 4 KVM 的虛擬化時 Virtual machine 只能選擇 FV,如果你在建立 virtual machine 遇到不能建立 FV(Fully Virtualized),首先檢查系統的 CPU 是否有支援,目前有支援的 CPU 包括了 AMD-V Pacifica (Flag 是 svm) ,Intel VT (flag 是 vmx) ,再來檢查 BIOS 對於 CPU virtualization 是否有支援.
CPU architecture 可以選擇 i686 或是 x86_64 可以依據你作業系統的版本來選擇,但是在 Hypervisor 選擇上除了 KVM 外還可以選擇 QEMU 試用的感覺上是 QEMU 的 User mode emulation 模式效能上很差就不建議來使用了.
3.Installation Method
Virtual Machine 安裝媒體的選擇有三種 1.Local install media(ISO image or CD-ROM) 2.Network install tree (HTTP, FTP , or NFS) 3.Network boot (PXE)
剛剛選擇的是 ISO image or CDROM 可以在選擇是由 ISO image 或是 CDROM 來安裝 Guest OS 了
Linux System:
1. Linux 系統下的 dd 就可以處理將光碟內容轉換成 ISO 檔不過光碟不能在掛載的情況下做轉換.使用指令 #mount 先確定一下光碟是否在掛載的情況下.如果是則用 #umount 指令將光碟移除掛載
[root@benjr ~]# dd if=/dev/cdrom of=/path/cdimg_filename.iso |
if : 這邊指定的是光碟機裝置
of : 這就是輸出的 ISO 名稱
Windows System:
Windows 並沒有可以建立 ISO 檔的工具這邊提供一隻常用的 winimage 可以在官方網站下載 http://www.winimage.com/ WinImage 的選項 Disk ->Create CD-ROM ISO image... 選擇你要的檔名就會開始將光碟內容轉換成 ISO 檔.
得到的 ISO 就可以讓 Guest OS 安裝使用.
在 Installation Source 這一部分最主要的就是設定安裝媒體(Install Media URL)的來源以及 Kickstart URL 的檔案, 核心參數 Kernel parameters .
我們可以當然要安裝的 Guest OS 安裝光碟內容也必須存在 Server 上.我習慣是放在 /var/ftp 目錄下,這樣不管是 nfs,http 或是 ftp 都可以存取.
1.複製 OS 光碟所有的內容.
2.由 FTP 來安裝
請確定 ftp 的服務已經開啟
[root@benjr ~]# chkconfig vsftpd on [root@benjr ~]# service vsftpd restart |
3.由 NFS 來安裝
編輯 "/etc/exports" 並將 "/var/ftp/" 目錄分享(因為我們將把光碟內的檔案放在此目錄下,此為FTP預設的分享目錄)
[root@benjr ~]# vi /etc/exports /var/ftp/ 192.8.1.*(ro,all_squash) |
並確定 NFS 的服務已經開啟
[root@benjr ~]# chkconfig nfs on [root@benjr ~]# service nfs start |
4.由 HTTP 來安裝
編輯 "/etc/httpd/conf/httpd.conf" 並將 Document 設為 /var/ftp(因為我們將把光碟內的檔案放在此目錄下,此為FTP預設的分享目錄)
[root@benjr ~]# vi /etc/httpd/conf/httpd.conf Document Root "/var/ftp" |
並確定 HTTP 的服務已經開啟
[root@benjr ~]# chkconfig httpd on [root@benjr ~]# service httpd restart |
和安裝媒體一樣你可以透過 nfs,http 或是 ftp 都可以.也可以指定
通常我們從光碟或是 PXE 開機時會出現 Boot: 讓我們可以鍵入 Kernel parameters 核心參數但是在 Xen 的虛擬化 Guest OS 並不會有 Boot: 讓我們可以加入核心參數. 我們必須在這裡來加入. Kernel parameters 核心參數有哪些可以使用請參考: http://www.kernel.org/pub/linux/kern...n_pdf/ch09.pdf
4.virtual machine sotrage
在新增 virtual machine 時虛擬磁碟的選擇有三種.每個都有優缺點你可以依據需求來做不同的選擇.
Linux 下提供一個工具 "lomount" 可以讓我們 mount Virtual machine images(並不是只能針對 image 的檔案,也可以應用在 partition 上面),方法很簡單如下:
先看看目前有 Virtual machine image 的 partition 分割.
[root@benjr ~]#lomount -diskimage /PATH/TO/Image.file Please specify a partition number. Table is: Num Start - End OS Bootable 1: 32256 - 106928128: 83 80 2: 106928640 - 10479006208: 8e 0 |
不過這個工具不是萬能的他有很多狀況下是無法使用的.
partition ID(83) - ext2/ext3 可以但是 refeies 不行. partition ID(8e) - LVM 也是一樣不行.所以以上的條件只有 partition 2 可以使用.接下來使用下面的指令指定 partition 就可以讀取 Virtual machine image 的 partition 分割區內的資料.
[root@benjr ~]#lomount -diskimage /PATH/TO/Image.file -partition n /mnt |
在 Guest OS 要開機前不要忘記 umount.
[root@benjr ~]#umount /mnt |
5.Network
1.QEMU 會在你的 Linux 產生一個 bridge 虛擬裝置 "virbr0" .virbr0 不只是個單純的 NAT 而已,他是一個 NAT + DHCP 的架構,所有的 Virtual machine 都會透過 virbr0 來指派一個私人網域 (private IP).預設為 192.168.122.2 ~ 192.168.122.254 (在他的設定檔中可以定義其 DHCP 可指定的 IP 範圍).
2.其預設的 default gateway 為 192.168.122.1/24 ,所有在這架構下的 Virtual Machine 虛擬機器的封包都必須透過這 NAT 去連結到其他的網路.
3. 如同一般的 NAT 所有的 Virtual Machine 虛擬機器都是被隱藏在 private 私人網域,所以外部不能直接連接到 Virtual Machine 虛擬機器上.
這一個是由 Qemu 所產生所以設定檔存放在 /etc/libvirt/qemu/networks/default.xm
1.目標是用 eth0 來產生一個 bridge(bri0)
[root@benjr ~]# ifconfig eth0 0.0.0.0 [root@benjr ~]# brctl addbr bri0 [root@benjr ~]# brctl addif bri0 eth0 |
2.看這一些 eth 是在哪一個 bridge 上.
[root@benjr ~]# brctl show bridge name bridge id STP enabled interfaces bri0 8000.001517785dd6 no eth0 virbr0 8000.000000000000 yes |
3.設定一組 IP ,方便遠端管理使用.
[root@benjr ~]# ifconfig bri0 192.8.1.3 [root@benjr ~]# ifconfig bri0 bri0 Link encap:Ethernet HWaddr 00:15:17:78:5D:D6 inet addr:192.8.1.3 Bcast:192.8.1.255 Mask:255.255.255.0 inet6 addr: fe80::215:17ff:fe78:5dd6/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:14767 errors:0 dropped:0 overruns:0 frame:0 TX packets:34 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:679328 (663.4 KiB) TX bytes:9626 (9.4 KiB) |
4.最後 Allow IP forwarding
[root@benjr ~]# vi /etc/sysctl.conf net.ipv4.ip_forward = 1 [root@benjr ~]#sysctl –p |
之後所有設定在 eth0(bri0) 的 Virtual Machine 都可以互通了!!可以將剛剛的步驟寫在 /etc/rc.local,讓他在開機時候就會生效.
5.reload libvirt
[root@benjr ~]# service libvirtd reload |
如果要讓 Virtual Machine 可以立即選擇 "Shared physical device" 需將 libvirtd 的服務重新載入設定.
6.Memory and CPU
這裡主要就是設定 Virtual machine 的 Memory 以及 CPU 的多寡.