[root@benjr ~]# virt-manager |
1.name
2.Virtualization Method
3.Installation Method
4.virtual machine sotrage
5.Network
6.Memory and CPU
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 了
- ISO
- CD-ROM or DVD
- Network install tree (HTTP, FTP , or NFS)
- Install Media URL
- Kickstart URL
- Kernel parameters
- Install Media URL 通常可以透過三種不同的網路服務來安裝 nfs,http 或是 ftp 都可以.指定方法如下:
NFS: nfs://server:/path
HTTP: http://server/path
FTP: ftp://server/path我們可以當然要安裝的 Guest OS 安裝光碟內容也必須存在 Server 上.我習慣是放在 /var/ftp 目錄下,這樣不管是 nfs,http 或是 ftp 都可以存取.
1.複製 OS 光碟所有的內容.
2.由 FTP 來安裝
請確定 ftp 的服務已經開啟[root@benjr ~]# chkconfig vsftpd on
[root@benjr ~]# service vsftpd restart3.由 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 start4.由 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 - Kickstart URL
- kernel parameters
通常我們從光碟或是 PXE 開機時會出現 Boot: 讓我們可以鍵入 Kernel parameters 核心參數但是在 Xen 的虛擬化 Guest OS 並不會有 Boot: 讓我們可以加入核心參數. 我們必須在這裡來加入. Kernel parameters 核心參數有哪些可以使用請參考: http://www.kernel.org/pub/linux/kernel/people/gregkh/lkn/lkn_pdf/ch09.pdf
- Network PXE boot
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 .
和安裝媒體一樣你可以透過 nfs,http 或是 ftp 都可以.也可以指定
但是如果你要安裝的 Guest OS 為 windows base 時就需要使用一台 Windows 架一個 Microsoft® Windows® Remote Installation Services(RIS) 或是 Deployment Services (WDS) 的服務.可以讓 FV-Virtual machine 由 PXE 開機.
- Linux 有 Debian , Fedora , Red Hat Enterprise Linux 以及 Suse Linux Enterprise Server.
- Windows 有個人電腦使用的 XP , Vista 以及伺服器用的版本有 2000 , 2003 , 2008
- 其他像是 MS-DOS , Novell Netware ,Free BSD , Open BSD 以及 Sun Solaris
4.virtual machine sotrage
在新增 virtual machine 時虛擬磁碟的選擇有三種.每個都有優缺點你可以依據需求來做不同的選擇.
- virtual disk - disk partition
-
每個磁區 partition 都可以當成一個虛擬磁碟,最大的好處是效能最佳.但缺點就是要佔用一個 partition.
- virtual disk - nonsparse image
-
不需要何外切割 partition ,以 檔案(images) 的方式來當成虛擬磁碟.但是相對的效能比不上 partition 的好.
- virtual disk - sparse image
-
優點是檔案(images) 的大小是動態成長,一開始不會佔用所要求的空間,有多少才會要求多少!但是它的效能卻是最差的.但要注意系統的空間是否足夠,
當空間不足讓 sparse image 動態成長時, Guest 可能會損毀!
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
- Virtual network - virbr0
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
其中的 ip address 是 default gateway IP,range 則是DHCP clients 所能使用的範圍,都可以依據需求做改變.
- Shared physical device
在一般的 Linux 環境下的方法也很簡單:我們也可以透過下面幾個簡單的指令來產生自己所需要的 Bridge 裝置出來.下面的圖示你可以很清楚的看出來虛擬 NIC 和實體 NIC 是如何透過 bridge 模式串接在一起.
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 的服務重新載入設定.
- Set fixed MAC address for your virtual system
6.Memory and CPU
這裡主要就是設定 Virtual machine 的 Memory 以及 CPU 的多寡.