虛擬化工具Xen的安裝配置詳解

上一篇介紹了虛擬化的基礎知識;這裏來介紹具體的虛擬化工具的配置使用:前端


1、Xen的安裝配置詳解:
java

一、配置yum源
node

http://mirrors.163.com/centos/6.5/xen4/x86_64/     163或其餘yum源python

# cat /etc/yum.repos.d/xen4.repo 
[Xen4]
name=Xen4 project
#baseurl=http://mirror.centos.org/centos/6/xen4/x86_64/
baseurl=ftp://172.16.0.1/pub/Sources/6.x86_64/xen4/x86_64        #這裏使用的是本地yum源
gpgcheck=0
cost=500

二、配置好查看:
linux

# yum list all | grep xen
libvirt-daemon-driver-xen.x86_64           0.10.2.8-7.el6.centos.alt       @Xen4
xen.x86_64                                 4.2.4-30.el6.centos.alt         @Xen4
xen-hypervisor.x86_64                      4.2.4-30.el6.centos.alt         @Xen4
xen-libs.x86_64                            4.2.4-30.el6.centos.alt         @Xen4
xen-licenses.x86_64                        4.2.4-30.el6.centos.alt         @Xen4
xen-runtime.x86_64                         4.2.4-30.el6.centos.alt         @Xen4
libvirt-daemon-xen.x86_64                  0.10.2.8-7.el6.centos.alt       Xen4 
xen-devel.x86_64                           4.2.4-30.el6.centos.alt         Xen4 
xen-doc.x86_64                             4.2.4-30.el6.centos.alt         Xen4 
xen-ocaml.x86_64                           4.2.4-30.el6.centos.alt         Xen4 
xen-ocaml-devel.x86_64                     4.2.4-30.el6.centos.alt         Xen4 
xenserverjava.noarch                       5.6.100.1-1.el6                 epel 
xenserverjava-javadoc.noarch               5.6.100.1-1.el6                 epel

注意查看kernel的版本;3.10測試是沒法啓動的;須要低於3.10版本。建議安裝時直接指定內核。vim

三、安裝完成後修改grub文件。windows

# yum -y install xen kernel-3.4.61 kernel-firmware-3.4.61
# vim /boot/grub/grub.conf			#注意按照如下修改
#vmlinuz和initramfs都做爲xen內核的模塊

default=0
timeout=5
splashp_w_picpath=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (3.4.61-9.el6.centos.alt.x86_64)
        root (hd0,0)
        kernel /xen.gz dom0_mem=1024M cpufreq=xen dom0_max_vcpus=2 dom0_vcpus_pin
        module /vmlinuz-3.4.61-9.el6.centos.alt.x86_64 ro root=/dev/mapper/vg0-root rd_NO_LUKS rd_NO_DM LANG=en_US.UTF-8 rd_LVM_LV=vg0/swap rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto rd_LVM_LV=vg0/root  KEYBOARDTYPE=pc KEYTABLE=us rhgb crashkernel=auto
        module /initramfs-3.4.61-9.el6.centos.alt.x86_64.img
....

四、重啓進入新內核便可。
後端

# uname -r
3.4.61-9.el6.centos.alt.x86_64
# rpm -q xen
xen-4.2.4-30.el6.centos.alt.x86_64

# xm info
host                   : node4.soul.com
release                : 3.4.61-9.el6.centos.alt.x86_64
version                : #1 SMP Wed Sep 11 15:34:17 UTC 2013
machine                : x86_64
nr_cpus                : 1
nr_nodes               : 1
cores_per_socket       : 1
threads_per_core       : 1
cpu_mhz                : 2399
hw_caps                : 0fabfbff:28100800:00000000:00003f40:80b82221:00000000:00000001:00000000
virt_caps              : hvm
......

五、設置橋接網絡;注意須要必須關閉NetworkManager和開機自啓。centos

# chkconfig NetworkManager off
# service NetworkManager stop
# vim bridge.sh							#提供腳本自動配置橋設備

#!/bin/bash
ip=`ifconfig eth0 | awk -F : '/inet addr:/{print $2}' | awk '{print $1}'`
brctl addbr br0
ifconfig eth0 0 up
brctl addif br0 eth0
ifconfig br0 ${ip}/16 up
brctl stp br0 on

如需機器重啓後還生效的須要更改配置文件:bash

# cd /etc/sysconfig/network-scripts/
# cp ifcfg-eth0 ifcfg-br0
# vim ifcfg-br0
DEVICE=br0
BOOTPROTO=none
NM_CONTROLLED=no			#須要更改no
ONBOOT=yes
TYPE=Bridge				#首字符需大寫
IPADDR=192.168.0.114
NETMASK=255.255.0.0
GATEWAY=192.168.0.254
DNS1=172.16.0.1
IPV6INIT=no
USERCTL=no


# vim ifcfg-eth0 
DEVICE=eth0
BOOTPROTO=none
HWADDR=00:0c:29:f9:b3:df
NM_CONTROLLED=yes
ONBOOT=yes
BRIDGE=br0
TYPE=Ethernet
UUID="12058363-37d9-4857-8c22-0a0da4b52c88"
IPV6INIT=no
USERCTL=no
#重啓網卡測試便可。

2、下面建立一個虛擬機並安裝系統測試

提供initrd.img vmlinuz這兩個文件;repo鏡像文件的isolinux文件夾裏

本次直接下載到root家目錄下。

一、提供配置文件

# cd /etc/xen/
# vim centos6
kernel = "/root/vmlinuz"            
ramdisk = "/root/initrd.img"    
memory = 512
name = "centos6"
vif = [ 'bridge=br0' ]            #指定網卡爲橋接br0上
disk = [ 'file:/xen/vm1/centos6.img,xvda,w' ]        #指定disk在後端和前端名稱和權限
on_reboot="destroy"                                  #執行xm reboot命令或在當前域內部執行重啓操做時由Xen執行的動做;destroy爲關機。

建立上述disk文件

# cd /xen/vm1/
# dd if=/dev/zero of=centos6.img oflag=direct seek=102399 bs=1M count=1

二、啓動測試

# cd /etc/xen/
# xm create centos6
# xm console centos6
    ┌────────┤ Choose a Language ├────────┐
    │                                                       │
    │ What language would you like to use                   │
    │ during the installation process?                      │                              │                                                       │
    │      Catalan                ↑                        │
    │      Chinese(Simplified)    ?                         │
    │      Chinese(Traditional)   ?                         │
    │      Croatian               ?                         │
    │      Czech                  ?                         │
    │      Danish                 ?                         │
    │      Dutch                  ?                         │
    │      English                ↓                        │
    │                                                       │
    │               ┌────┐                            │
    │               │ OK │  │                            │
    │               └────┘                            │

測試啓動成功。能夠測試安裝了...
    ┌───────────────┤ Formatting ├─——───────────┐           │                                                                          │
    │ Creating ext4 filesystem on /dev/mapper/VolGroup-lv_root                 │           │                                                                          │
    │                                                                          │           └──────────────────────────────────———┘

三、安裝完成後須要先關機;而後更改配置文件

# cd /etc/xen/
# vim centos6
#kernel = "/root/vmlinuz"
#ramdisk = "/root/initrd.img"
bootloader="/usr/bin/pygrub"	#添加這行;註釋上述兩行;保存啓動虛擬機
memory = 512
name = "centos6"
vif = [ 'bridge=br0' ]
disk = [ 'file:/xen/vm1/centos6.img,xvda,w' ]
on_reboot="destroy"

重啓後xm console centos6鏈接測試或者ssh遠程鏈接測試便可。

配置好網關測試鏈接便可。

localhost.localdomain login: 	#測試能夠正常啓動登錄
CentOS release 6.5 (Final)
Kernel 2.6.32-431.el6.x86_64 on an x86_64
# ifconfig eth0 192.168.0.11/16 up

-------------------------------------------------------------------------------------------

3、基礎工具使用

一、vnc使用說明

  • 安裝vnc;遠程桌面鏈接:

# yum -y install tigervnc-server
# vncserver :1
tcp    LISTEN     0      5                      *:5901                  *:*      users:(("Xvnc",9358,6))	#監聽端口:5901
#能夠在windows客戶端使用vnc客戶端鏈接。
#同時也能夠啓動多個vnc;且相互獨立。
# vncserver :2 ...
  • 建立vnc安裝格式:

建立配置文件:

# vim rhel6 
kernel="/root/vnc/vmlinuz"
ramdisk="/root/vnc/initrd.img"	
vcpus=2
memory=512
name="rhel6"
disk=['file:/xen/vm3/rhel6.qcow2,xvda,w']
vif=['bridge=br0']
vfb=['vnc=1,sdl=1']				#vnc選項;只能Dom0下使用vnc鏈接後啓動當前窗口下打開
on_reboot="destroy"
    
# pwd
/xen/vm3		#該目錄下建立文件
# qemu-img create -f qcow2 -o size=120G,preallocation=metadata rhel6.qcow
#建立完成後在鏈接Dom0的vnc下啓動虛擬機安裝便可。

二、libvirt使用方法:

  • 安裝:

# yum -y install libvirt
# service libvirtd start
# brctl show
bridge name	bridge id		STP enabled	interfaces
br0		8000.000c29f9b3df	no		eth0
							vif1.0
virbr0		8000.000000000000	yes	
# yum -y install virt-manager		#安裝上管理工具
# yum -y install virt-viewer		#安裝virt-viewer工具
# virt-manager &			#啓動便可安裝;須要Xmanager支持	

# virt-install -n "centos-pxe" -r 512 --vcpus=1 --pxe --disk path=/xen/vm2/centos-pxe.img --network bridge=br0 --force -v		
#基於pxe引導安裝;須要在啓動虛擬機是開啓CPU的虛擬化Intel VT-x/EPT...和虛擬化CPU性能...

具體用法:virt-install --help

wKioL1N9-tXhT2L-AAHODvAN2kM115.jpg


-------------------------------------------------------------------------------------------


4、xm 工具詳解

一、動態添加磁盤

# xm block-list centos6					#顯示塊設備
Vdev  BE handle state evt-ch ring-ref BE-path
51712  0    0     4      8      8     /local/domain/0/backend/vbd/1/51712 

# xm block-attach
Error: 'xm block-attach' requires between 4 and 5 arguments.
Usage: xm block-attach <Domain> <BackDev> <FrontDev> <Mode> [BackDomain]
Create a new virtual block device.

#先建立一個磁盤文件:
# cd /xen/vm1/
# ls -lh
total 3.3G
-rw-r--r-- 1 root root 100G May 22 10:30 centos6.img
# qemu-img create -f qcow -o size=10G test.qcow
Formatting 'test.qcow', fmt=qcow size=10737418240 encryption=off 
[root@node4 vm1]# ls -lh
total 3.3G
-rw-r--r-- 1 root root 100G May 22 10:32 centos6.img
-rw-r--r-- 1 root root  41K May 22 10:32 test.qcow

# xm block-attach centos6 file:/xen/vm1/test.qcow xvdb w		#添加
# xm block-list centos6
Vdev  BE handle state evt-ch ring-ref BE-path
51712  0    0     4      8      8     /local/domain/0/backend/vbd/1/51712  
51728  0    0     4      10     868   /local/domain/0/backend/vbd/1/51728
	
# fdisk -l /dev/xvd[a-z]

Disk /dev/xvda: 107.4 GB, 107374182400 bytes
....
Disk /dev/xvdb: 0 MB, 40960 bytes			#查看已顯示;動態添加成功
....	

二、刪除磁盤;刪除前請確保被刪除磁盤未被掛載使用;或者先卸載掛載使用的分區:

# xm block-detach
Error: 'xm block-detach' requires between 2 and 3 arguments.
Usage: xm block-detach <Domain> <DevId> [-f|--force]
Destroy a domain's virtual block device.

# xm block-list centos6
Vdev  BE handle state evt-ch ring-ref BE-path
51712  0    0     4      8      8     /local/domain/0/backend/vbd/1/51712  
51728  0    0     4      10     868   /local/domain/0/backend/vbd/1/51728 	

# xm block-detach centos6 51728		#移除

# xm block-list centos6
Vdev  BE handle state evt-ch ring-ref BE-path
51712  0    0     4      8      8     /local/domain/0/backend/vbd/1/51712 
#fdisk 查看下

相關命令操做都是同樣; xm --help


-------------------------------------------------------------------------------------------

5、其餘命令說明

save/restore:保存恢復虛擬機

# xm save
Usage: xm save [-c] <Domain> <CheckpointFile>
Save a domain state to restore later.
  -c, --checkpoint               Leave domain running after creating  snapshot	

# xm list
Name                                        ID   Mem VCPUs      State   Time(s)
Domain-0                                     0   985     2     r-----   1298.5
centos6                                      1   512     1     -b----     25.0
# xm save centos6 /tmp/centos.save  	#把內存中的數據保存起來
-rwxr-xr-x 1 root root 514M May 22 10:56 centos.save
# xm list
Name                                        ID   Mem VCPUs      State   Time(s)
Domain-0                                     0   985     2     r-----   1342.6

# xm restore /tmp/centos.save			#恢復
# xm list
Name                                        ID   Mem VCPUs      State   Time(s)
Domain-0                                     0   985     2     r-----   1401.7
centos6                                      8   512     1     -b----      0.0

pause/unpause:暫停啓動

# xm pause centos6			#暫停
# xm list
Name                                        ID   Mem VCPUs      State   Time(s)
Domain-0                                     0   985     2     r-----   1404.7
centos6                                      8   512     1     --p---      0.5

# xm unpause centos6

具體還須要xm --help  查看詳細。


-------------------------------------------------------------------------------------------

6、虛擬機的實時遷移

一、配置兩臺xen主機;並修改其配置文件:

#啓動如下選項
# vim /etc/xen/xend-config.sxp
(xend-relocation-server yes)
(xend-relocation-port 8002)
(xend-relocation-address '')
(xend-relocation-hosts-allow '')
    
# service xend restart
# ss -tunl | grep 8002
tcp    LISTEN     0      5                      *:8002                  *:*

二、使用共享存儲(NFS/ISCSI)或者分佈式文件系統

這裏使用的是NFS:

# vim /etc/exports 
/xen/vm1        192.168.0.0/16(rw,no_root_squash)

另臺Xen掛載
# mount -t nfs 192.168.0.114:/xen/vm1/ /xen/vm1/

三、啓動測試:

# xm create -c centos6				#給虛擬機配置地址長ping測試
# xm list
Name                                        ID   Mem VCPUs      State   Time(s)
Domain-0                                     0   512     2     r-----    273.1
centos6                                      2   512     1     -b----     12.1
# xm migrate		#能夠遷移到別的節點
# xm migrate -l centos6 192.168.0.114		遷移到別的節點
# xm list
Name                                        ID   Mem VCPUs      State   Time(s)
Domain-0                                     0   512     2     r-----    284.1

#測試遷移正常;ping值也是正常未中斷
# xm migrate -l centos6 192.168.0.113	能夠再遷移回來

到此配置完成。




若有錯誤;懇請更正。

相關文章
相關標籤/搜索