歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Ubuntu 11.10中用xen-tools安裝虛擬機(Ubuntu&CentOS)

Ubuntu 11.10中用xen-tools安裝虛擬機(Ubuntu&CentOS)

日期:2017/2/28 15:53:30   编辑:Linux教程

Ubuntu 11.10中可以通過apt-get安裝xen-tools,其版本為4.1版本:

# apt-get install -y xen-tools

由於xen-tools是xen的半虛擬化管理工具,所以需要安裝修改過的、支持半虛擬化的kernel。在ubuutu 11.10中,只需要通過apt安裝linux-image-3.0.0-1x-virtual的kernel即可:

# apt-get install -y linux-image-3.0.0-12-virtual

安裝完後就會在/boot下找到vmlinuz-3.0.0-12-virtual和initrd.img-3.0.0-13-virtual,這是之後半虛擬化的DomU所要使用的kernel。

接下來修改xen-tools的配置文件,配置文件中的值只在創建實例過程中沒有指定某個選項時提供默認值:

# vi /etc/xen-tools/xen-tools.conf

需要修改如下幾項:

[...]

dir=/home/xen #用於放置img文件的位置

[...]

lvm=vg0 #如果使用lvm的邏輯卷來做存儲,則制定卷組名

[...]

#指定實例的系統版本,xt-guess-suite-and-mirror --suite返回的是宿主機的系統版本

dist=`xt-guess-suite-and-mirror --suite`

[...]

# 指定實例所在網段

gateway =192.168.0.1

netmask =255.255.255.0

broadcast=192.168.0.255

[...]

# 指定實例使用的kernel,這裡就使用之前安裝的、支持半虛擬化的kernel

kernel= /boot/vmlinuz-3.0.0-12-virtual

initrd=/boot/initrd.img-3.0.0-12-virtual

[...]

serial_device=hvc0 # 指定console名稱,使用默認值即可

disk_device=xvda #指定實例的磁盤名稱,使用默認值即可

[...]

# 這裡指定安裝實例的鏡像源,xt-guess-suite-and-mirror --mirror返回的是宿主機的鏡像源

mirrors=`xt-guess-suite-and-mirror--mirror`

[...]

修改好xen-tools.conf後,就需要創建剛才指定的放置img文件的目錄位置:

# mkdir /home/xen

========================創建ubuntu實例=====================

xen-tools創建ubuntu實例采用的是debootstrap,xen-tools.conf中默認采用這種方法。

xen-tools默認支持的最新ubuntu版本是maverick,而11.10的版本是oneiric(現在的12.04是precise),這樣我們就要先讓xen-tools支持到我們需要的版本。由於所有的ubuntu版本都是karmic.d的符號連接,所以我們只需要再創建一個符號連接即可:

# cd /usr/lib/xen-tools/

# ln -s karmic.d oneiric.d (for ubuntu 11.10)

或者

# ln -s karmic.d precise.d (for ubuntu 12.04)

接下來就可以創建實例了:

# xen-create-image --hostname=ubuntu.example.com --size=4G --swap=1G --memory=1G --ip=192.168.0.101 --arch=amd64 --role=udev

若按照之前所配置的xen-tools.conf,這條命令將創建一個與宿主機系統版本相同的虛擬機實例。

當然,我們也可以修改系統版本,或者修改安裝源,或者修改磁盤的類型,只需要增加一些選項和參數,例如:

# xen-create-image --hostname=ubuntu.example.com --size=4G --swap=1G --memory=1G --ip=192.168.0.101 --arch=amd64 --role=udev --scsi --dist maverick --mirror=http://mirrors.163.com/ubuntu

注意:千萬別忘記--role=udev

具體有哪些參數可以參見xen-create-image的man page:

# man xen-create-image

執行上述命令後,就會進入實例創建過程。過程中會提示輸入密碼,作為虛擬機實例的root賬戶密碼。創建完成後,會在之前指定的目錄中生成img文件,作為虛擬機實例的存儲,並在/etc/xen下生成.cfg文件,作為虛擬機實例啟動的配置文件。

接下來,通過xm命令啟動實例:

xm create -c ubuntu.example.com.cfg

成功進入實例系統。

==========================創建CentOS實例======================

xen-tools創建CentOS實例采用的是rinse。

在創建CentOS實例之前,需要安裝一些依賴包:

#apt-get install -y debootstrap libbeecrypt7 libc6-xen libconfig-inifiles-perl libexpect-perl libio-pty-perl libio-stty-perl librpm2 libterm-readline-gnu-perl libterm-size-perl libtext-template-perl reiserfsprogs rinse rpm screen vnstat

rinse創建實例過程中會下載安裝一些rpm包。rinse配置文件中默認的包可能導致實例創建的失敗,所以需要加入一些包:

# vi /etc/rinse/centos-x.packages

[...]

#在最後加入以下內容

nss

nspr

python-iniparsel

authconfig

此外,還可以更換CentOS實例的安裝源,rinse默認使用的是一個英國的源,比較慢。

# vi /etc/rinse/rinse.conf

[...]

mirror = http://mirrors.163.com/centos/6.2/os/i386/Packages

mirror.amd64 = http://mirrors.163.com/centos/6.2/os/x86_64/Packages

和ubuntu一樣,xen-tools支持CentOS的最新版本是5.x版本,如果需要安裝6.x的CentOS,則需要創建相應的安裝流程。由於無論哪個版本安裝流程都相似,所以可以直接復制5.x的安裝流程。

# cd /usr/lib/xen-tools/

# cp -a centos-5.d centos-6.d

接下來就可以創建CentOS的實例了,由於更改了安裝方法,所以需要在命令中增加相應的選項和參數,同時,--role=udev的參數就不需要了:

# xen-create-image --hostname=centos.example.com --size=4G --swap=1G --memory=1G --ip=192.168.0.102 --dist=centos-6 --install-method=rinse --arch=amd64

創建過程與ubuntu實例類似,創建完成後啟動實例:

# xm create -c centos.example.com.cfg

這樣就能成功登錄CentOS的虛擬機實例。

===========================其他=========================

1. 創建CentOS實例過程中會遇到錯誤,大概原因是不能讀取鏡像源,這種情況下要更換有效的鏡像源。

2. 在創建和啟動虛擬機的過程中可能會遇到沒有空余loop的問題,主要原因是開機加載loop內核模塊時默認只加載了8個loop,我們可以通過修改/etc/modules來指定開機加載loop的最大數量:

# vi /etc/modules

[...]

loop max_loop=64

3. xen-tools的log文件在/var/log/xen-tools中,log文件以實例主機名命名,整個創建過程可以通過監控log文件來觀察,也可以通過查看log文件來排除相應的錯誤。

更多Ubuntu相關信息見Ubuntu 專題頁面 http://www.linuxidc.com/topicnews.aspx?tid=2

Copyright © Linux教程網 All Rights Reserved