【前言】
xen比kvm更为古老,虽然工具没有kvm多,但是kvm脱胎于此,了解和使用xen还是比较重要的。本文是简单的快速搭建xen虚拟机的一个文章小品。
xen虚拟化
单个物理机上跑>128个虚拟机,性能损失最大低于硬件8%
https://wiki.xenproject.org/wiki/Main_Page
【本文没做PXE和kickstart的解释,有需要请留言】
~~~~~~~~~~~~~~~~~~~~~~~
一、确定你的cpu是否支持虚拟化技术
# cat /proc/cpuinfo |grep flags |egrep -o ‘pae|vmx|svm’
二、安装Xen
1.安装Xen的基本程序
# yum install -y xen*
2.安装Xen的内核
# yum install -y kernel-xen*
3.安装Xen的虚拟管理程序
# yum install -y virt-manager
# yum install -y libvirt
以上安装完毕,就来配置Xen的环境了。
/usr/bin/grub-bootxen.sh
libvirtd –d //如果不启动,libvirtd则不能使用,virt等等也不能使用
如果查看/boot/grub/grub.conf,default=1,则将default=0默认支持xen的内核启动
三、重启系统,重启完成后,查看当前内核
uname -r
yum install python-virtinst
执行xl info 查看相关信息。
四、开始用命令行创建虚拟机
#cd /home/vm
# mkdir iso
# mount -o loop /home/src/linx//CentOS-6.5-x86_64-minimal.iso /home/vm/iso/
#virt-install -n xenfive -f /home/vm/xenfive.img -s 10 -r 1024 –nographics -l /home/src/linux/CentOS-6.8-x86_64-minimal.iso
安装过程中的URL源输入http://118.186.221.107/src/linux/centos68_mini_iso/
[root@localhost ~]# virt-install -nxentest -f /data/xentest.img -s 3 -r 782 –nographics -l http://192.168.1.147/tree/
-n 指定创建虚拟机的名称
-f 作为磁盘映像使用的文件
-s 磁盘映像的大小,单位为G
-r 指定内存的大小,单位为M
–nographics 表示不安装图形控制台
-l 安装的源
xen虚拟状态:
r:
b: 阻塞
p: 暂停
s: 停止
c: 崩溃
d: dying, 正在关闭的过程中
[root@localhost ~]# xm console xentest //进入虚拟机
修改主机名:
1、vi /etc/sysconfig/network,然后将HOSTNAME后面的值localhost.localdomain改为想要设置的主机名。
2、vi /etc/hosts 然后将localhost.localdomain改为想要设置的主机名。
3、reboot
关闭iptables
service iptables stop
chkconfig iptables off
chkconfig –list iptables
禁止selinux
vi /etc/selinux/config //SELINUX=disabled
setenforce 0 //临时生效。sestatus -v 查看selinux状态
reboot //重启生效
# 设置网络、网卡
配置br0
# cd /etc/sysconfig/network-scripts/
# cp ifcfg-eth0 ifcfg-br0
# vim ifcfg-br0
DEVICE=br0
TYPE=Bridge
ONBOOT=yes
BOOTPROTO=none
NM_CONTROLLED=no
IPADDR=192.168.1.118
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=192.168.1.1
USERCTL=no
IPV6INIT=no
# vim ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=none
NM_CONTROLLED=no
BRIDGE=br0
USERCTL=no
IPV6INIT=no
# service network restart
# ifconfig
# brctl show
# brctl stp br0 on
~~~~~~~~~~~~~~~~~~~~~~
xl常用参数:
xm console <域ID> # 从宿主机进入虚拟机的终端,退出时按 ctrl + ]
xm reboot <域ID> # 重新启动虚拟机
xm pause <域ID> #暂停虚拟机
xm resume <域ID> # 恢复被暂停的虚拟机
xm shutdown <域ID> # 关闭 domain
可以使用xm 命令来启动停止虚拟机启动虚拟机命令如下:
xm create vm1 #其中vm1 为虚拟机的配置文件,位于/etc/xen/vm/vm1
xm create -c vm1 #如果需要启动控制台,则可以运行命令
xm list #可以列出所有的虚拟机
xm console <domid> #可以显示某虚拟机的控制台
xm reboot <domid> #可以重起id 为domid 的虚拟机
xm shutdown <domid> #可以关闭id 为domid 的虚拟机
xm destroy <domid> #可以销毁id 为domid 的虚拟机
xm console fc5 #从终端或控制台登录正在运行的虚拟操作系统
xm save <DomId> <File> # 存储正在运行的虚拟操作系统的状态
xm restore <File> # 唤醒虚拟操作系统
xm pause <DomId> #停止正在运行的虚拟操作系统
xm unpause <DomId> #激活停止的虚拟操作系统
xm mem-set <DomId> <Mem> #调整虚拟平台/虚拟操作系统的占用内存
xm shutdown 虚拟操作系统的Name或DomID #关闭被虚拟的系统
xm destroy <DomId> #立即停止虚拟的系统 (重要);
xm vcpu-set <DomId> <VCPUs> #调整虚拟平台及虚拟操作系统的虚拟CPU个数
xm top 或 xentop # 查看虚拟系统运行的状态
#启动虚机客户端,进入
virsh console node001
#开启虚机
virsh start node001
#关闭虚机
virsh shutdown node001
#克隆虚机 -o原虚拟机,-n克隆的虚拟机,-f存放位置
virt-clone -o node001 -n node002 -f /vm/node002.img
#列出所有虚拟机
virsh list
手动把Domain0内存设置大点,他就能争用关闭后domainU的内存。
xm mem-set Domain-0 13312M
- #删除一个域
- virsh destroy node001
- #取消定义一个非活跃的域
- virsh undefine node001
- #删除虚拟机文件
- rm /vm/node001
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
报错信息为:
ERROR (cli:605) Guest name ‘test’ is already in use
解决方法:
(1)kill掉这个实例 ps aux|grep “test” 查看pid
kill -9 pid
(2)virsh undefine test
(3) 再重新启动,无问题
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`
ERROR Guest name ‘convirt’ is already in use.
[root@test-R410-4disk qemu]# virsh undefine convirt
Domain convirt has been undefined