虚拟化工具Xen的安装配置详解

简介:

一、Xen的安装配置详解:

1、配置yum源

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

1
2
3
4
5
6
7
# 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

2、配置好查看:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 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版本。建议安装时直接指定内核。

3、安装完成后修改grub文件。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 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
splashimage = (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
....

4、重启进入新内核即可。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 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
......

5、设置桥接网络;注意需要必须关闭NetworkManager和开机自启。

1
2
3
4
5
6
7
8
9
10
11
# 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

如需机器重启后还生效的需要更改配置文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# 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
#重启网卡测试即可。

二、下面创建一个虚拟机并安装系统测试

提供initrd.img vmlinuz这两个文件;repo镜像文件的isolinux文件夹里

本次直接下载到root家目录下。

1、提供配置文件

1
2
3
4
5
6
7
8
9
# 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文件

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

2、启动测试

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 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                 │           │                                                                          │
     │                                                                          │           └──────────────────────────────────———┘

3、安装完成后需要先关机;然后更改配置文件

1
2
3
4
5
6
7
8
9
10
# 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远程连接测试即可。

配置好网关测试连接即可。

1
2
3
4
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

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

三、基础工具使用

1、vnc使用说明

  • 安装vnc;远程桌面连接:

1
2
3
4
5
6
# yum -y install tigervnc-server
# vncserver :1
tcp    LISTEN      0       5                       * : 5901                   * : *       users:(( "Xvnc" , 9358 , 6 ))    #监听端口:5901
#可以在windows客户端使用vnc客户端连接。
#同时也可以启动多个vnc;且相互独立。
# vncserver :2 ...
  • 创建vnc安装格式:

创建配置文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 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下启动虚拟机安装即可。

2、libvirt使用方法:

  • 安装:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 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


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


四、xm 工具详解

1、动态添加磁盘

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# 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           #查看已显示;动态添加成功
....   

2、删除磁盘;删除前请确保被删除磁盘未被挂载使用;或者先卸载挂载使用的分区:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 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


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

五、其他命令说明

save/restore:保存恢复虚拟机

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 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 - 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:暂停启动

1
2
3
4
5
6
7
8
9
# 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   查看详细。


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

六、虚拟机的实时迁移

1、配置两台xen主机;并修改其配置文件:

1
2
3
4
5
6
7
8
9
10
#启动以下选项
# 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                   * : *

2、使用共享存储(NFS/ISCSI)或者分布式文件系统

这里使用的是NFS:

1
2
3
4
5
# 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/

3、启动测试:

1
2
3
4
5
6
7
8
9
10
11
12
13
# 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  可以再迁移回来

到此配置完成。



本文转自Mr_陈 51CTO博客,原文链接:http://blog.51cto.com/chenpipi/1416423,如需转载请自行联系原作者
相关文章
|
机器学习/深度学习 Linux KVM
Debian11安装KVM虚拟化并安装Centos
grep --color --perl-regexp 'vmx | svm' /proc/cpuinfo 首先检查其是否支持虚拟化. 分别用以下条命令查看
1266 0
Debian11安装KVM虚拟化并安装Centos
|
安全 IDE KVM
[ 云计算相关 ] KVM虚拟化平台windows虚拟机迁移到openstack虚拟化平台(KVM虚拟化环境中Windows虚拟机安装Virtio驱动程序)
KVM虚拟化平台windows虚拟机迁移到openstack虚拟化平台(KVM虚拟化环境中Windows虚拟机安装Virtio驱动程序) 因为这也不是我的本职工作,只是这次恰巧碰到了,帮着解决了以下,我就没深究原理了,问我原理可能我也不知道,只是这个操作步骤吧,亲测有效。
574 0
[ 云计算相关 ] KVM虚拟化平台windows虚拟机迁移到openstack虚拟化平台(KVM虚拟化环境中Windows虚拟机安装Virtio驱动程序)
|
3月前
|
KVM 虚拟化
虚拟化技术概述及KVM环境安装
关于虚拟化技术概述及KVM环境安装的教程,涵盖了虚拟化的定义、分类、管理工具,以及KVM的系统需求、安装步骤和使用指南。
82 11
虚拟化技术概述及KVM环境安装
|
6月前
|
监控 Linux 虚拟化
探索 Linux 命令 `auvirt`:一个虚拟化管理工具的奥秘
`auvirt` 是一款非标准的 Linux 虚拟化管理工具,可能在特定环境中有用。它可能用于创建、启动、停止、列出、配置和删除虚拟机。使用前需安装,查看帮助以了解选项和用法。注意其功能可能因版本和环境差异而变化,文档和支持可能有限,使用时需谨慎。
|
7月前
|
存储 Linux KVM
虚拟化技术之KVM安装与使用
虚拟化技术之KVM安装与使用
|
7月前
|
Linux 虚拟化 网络虚拟化
网络基础-虚拟化工具-网桥
网络基础-虚拟化工具-网桥
130 0
|
7月前
|
大数据 Linux KVM
【云计算与大数据技术】虚拟化技术、开源技术Xen、KVM、OpenVZ的讲解(图文解释 超详细)
【云计算与大数据技术】虚拟化技术、开源技术Xen、KVM、OpenVZ的讲解(图文解释 超详细)
261 0
|
存储 虚拟化
VMware ESXI虚拟化安装win10系统
VMware ESXI虚拟化安装win10系统
609 1
|
虚拟化
虚拟化——成功解决使用ovirt安装虚拟机系统时不能正常引导安装
虚拟化——成功解决使用ovirt安装虚拟机系统时不能正常引导安装
|
XML 存储 安全
【KVM虚拟化】· 命令行KVM安装linux
【KVM虚拟化】· 命令行KVM安装linux
188 0
下一篇
无影云桌面