上一篇介紹了虛擬化的基礎知識;這裏來介紹具體的虛擬化工具的配置使用:前端
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
-------------------------------------------------------------------------------------------
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 能夠再遷移回來
到此配置完成。
若有錯誤;懇請更正。