在新增 virtual machine 時虛擬磁碟的選擇有三種.每個都有優缺點你可以依據需求來做不同的選擇.
-
virtual disk – disk partition
每個磁區 partition 都可以當成一個虛擬磁碟,最大的好處是效能最佳.但缺點就是要佔用一個 partition.
設定完成之後想要修改或是建立Virtual machine 實體( physical) 的 disk / cdrom 這邊的 disk 可以是 HD,Floppy,USB Key. 方法有二: 一是改設定檔,第二是用指令 "#xm"-
改設定檔
[root@benjr ~]# vi /etc/xen/guest —— for physical disk —— disk=[ 'phy:/dev/hda,hdb,w', ] —– for physical CDROM —— disk=[ 'phy:/dev/hda,hdb:cdrom,r', ]
說明:
phy:/dev/hda – Dom0實體裝置所在位置
hdb – DomU 下將會看到的裝置名稱,如果是 cdrom 時要特別指定(hdb:cdrom ).
w – writable(用於可讀寫裝置如硬碟)
r – readable(用於CDROM/DVD 裝置)
不習慣用 xm 指令還是可以使用圖形介面,在 Virtual machine 的 Detail / Hardware 來設定!
設定好設定檔 Guest OS 還要重新開機才會生效. - 指令 "#xm"
—— for physical disk —— [root@benjr ~]# xm block-attach guest phy:/dev/hda,hdb,w —– for physical CDROM —— [root@benjr ~]# xm block-attach guest phy:/dev/hda,hdb:cdrom,r
使用 xm 指令的優點是會立即生效.
-
改設定檔
-
virtual disk – nonsparse image
不需要何外切割 partition ,以 檔案(images) 的方式來當成虛擬磁碟.但是相對的效能比不上 partition 的好.
設定完成之後想要在 Virtual machine 建立 Image 形式的 virtual disk,方法有二: 一是改設定檔,第二是用指令 "#xm" -
改設定檔
修改設定檔之前要先建立好 image 形式的 virtual disk,使用 "#dd" 其可以建立.如果你的系統有啟動 SELinux 所以 Image 形式的 virtual disk 要放在指定目錄 /var/lib/xen/images/.[root@benjr ~]# cd /var/lib/xen/images/ [root@benjr ~]# dd if=/dev/zero of=vdisk.img bs=512k count=20480 #512kB*20480=10GB
編輯 virtual machine 設定檔
[root@benjr ~]# vi /etc/xen/guest disk=[ 'file:/var/lib/xen/images/vdisk.img,hdc,w', ]
說明:
file:/var/lib/xen/images/vdisk.img – Image 檔案所在位置
hdc – DomU 下將會看到的裝置名稱
w – writable
不習慣用 xm 指令還是可以使用圖形介面,在 Virtual machine 的 Detail / Hardware 來設定!
設定好設定檔還要重新開機才會生效. - 指令 "#xm"
[root@benjr ~]# xm block-attach guest file:/var/lib/xen/images/vdisk.img,hdc,w
使用 xm 指令的優點是會立即生效.
-
virtual disk – sparse image
優點是檔案(images) 的大小是動態成長,一開始不會佔用所要求的空間,有多少才會要求多少!但是它的效能卻是最差的.但要注意系統的空間是否足夠,
當空間不足讓 sparse image 動態成長時, Guest 可能會損毀!
XEN 提供一個工具 "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