一 . 基于centos6版本安装
1 # yum -y install qemu-kvm libvirt python-virtinst bridge-utils policycoreutils-python lrzsz expect;
2 mkdir /home/vhosts; #此目录为qcow2存放目录可自行设定
3 semanage fcontext -a -t virt_image_t /home/vhosts;#这个主要是打开SELinux设定,不然虚拟机无法访问存储文件
4 sed -i s/192.168.122/10.1.0/g /etc/libvirt/qemu/networks/default.xml; #因为物理机IP地址我们设置的是192.168私网 所以为了和虚机分离设定10私网
5 service libvirtd start; chkconfig libvirtd on; #启动加自启
6 virsh pool-define-as vmpool --type dir --target /home/vhosts;定义池
7 virsh pool-start vmpool;开始池
8 virsh pool-autostart vmpool;自启动
9 iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 5900:5920 -j ACCEPT; 这里开放下虚机使用端口后面有介绍
二 基本命令
virt-install 创建新虚拟机
virsh start spider 启动虚拟机
virsh destroy spider 强制关机
virt-clone 复制虚拟机
virsh attach-interface 添加网卡
virsh change-media 更换光驱iso文件
virsh edit spider 编辑配置文件
virsh -c qemu+ssh://10.88.0.1:10809/system list 远程查看虚拟机列表
三 安装虚机
安装前做桥接网卡
virsh iface-bridge em0 br0
新建虚拟机
raw格式:速度最快,但是不能实现内部快照,而且实际占用磁盘空间需要用qemu-img info spider.img查看
#virt-install --name spider --ram 4096 --vcpus=2 --disk path=/home/vhosts/spider.img,size=100 --accelerate --arch=x86_64 --os-type=linux --os-variant='rhel6' --cdrom=/home/software/CentOS-6.5-x86_64-minimal.iso --graphics vnc --network bridge=br0
size:为GB
qcow2格式:速度接近raw,但支持内部快照
1 #qemu-img create -f qcow2 /home/vhosts/openstack.qcow2 100G 必须通过qemu-img创建qcow2格式文件 设定openstack虚机最大使用磁盘空间100G
2 chown qemu:qemu /home/vhosts/openstack.qcow2
3 #virt-install --name openstack --ram 16384 --vcpus=2 --arch=x86_64 --disk path=/home/vhosts/openstack.qcow2,size=200,format=qcow2 --os-type=linux --os-variant='rhel6' --accelerate --cdrom=/home/software/CentOS-6.9-x86_64-minimal.iso --graphic type=vnc,port=5904,listen=0.0.0.0,password='cqmygysdss' --network bridge=br0,bridge=br1 #有内外网络时桥接内外网 5904就是上文指定虚机的使用端口 可以选择-1 随机生成
4 Windows虚机新建命令如下
virt-install --name CRM --ram 8192 --vcpus=2 --arch=x86_64 --disk path=/home/vhosts/CRM.qcow2,size=300,format=qcow2 --os-type=windows --os-variant='win2k3' --accelerate --cdrom=/home/software/WindowsServer2003.iso --graphic type=vnc,port=-1,listen=0.0.0.0,password='cqmygysdss' --network bridge=br0
5 打开转发 #vi /etc/sysctl.conf
net.ipv4.ip_forward = 1
#sysctl -p 使生效
6在物理机上查看vnc链接端口
virsh vncdisplay ubuntu132--79 查看使用的vnc端口 用vnc链接 安装系统配置网络
以上是桥接方式,如果是NAT方式,则网络参数为:
--network network=default,model=virtio
NAT模式的xml中相关部分为如下:
<interface type='network'>
<mac address='52:54:00:e5:ad:5a'/>
<source network='default'/>
#源网络
<model type='virtio'/> #model模型
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
# 地址 域名 公共 槽 功能
</interface>
如果是桥接,则XML为:
<interface type='bridge'>
<mac address='52:54:00:f9:00:1e'/>
<source bridge='br0'/>
<model type='e1000'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>
7. raw格式转为qcow2
#qemu-img convert -O qcow2 test.img test.qcow2
转换完毕后,要修改xml
#virsh edit scrapy
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2' cache='none'/>
<source file='/home/vhosts/scrapy.qcow2'/>
<target dev='hda' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
</disk>
注意 slot要选一个没用的
8. 修改VNC绑定地址
注意要使用UtraVNC(客户端),不要使用RealVNC,并且注意别选auto,而要full color,否则容易灰屏
修改的时候要先
virsh destroy centos6.5
然后在修改
vi /etc/libvirt/qemu/centos6.5.xml
<graphics?type='vnc'?port='5901'?autoport='no'?listen='0.0.0.0'?keymap='en-us'/>
在其中加入passwd的属性,更改为如下:
<graphics?type='vnc'?port='5901'?autoport='no'?listen='0.0.0.0'?passwd='12345678' keymap='en-us'/>
其中passwd的位置可以随意.
9. 更换光驱ISO
#virsh change-media centos6.5 hdc --source#源 /home/software/CentOS-6.5-x86_64-minimal.iso
#virsh reset#复位 centos6.5
10. 修改bios启动顺序
#virsh destroy centos6.5
#vi /etc/libvirt/qemu/centos6.5.xml
<os>
<type arch='x86_64' machine='rhel6.5.0'>hvm</type>
<boot dev='cdrom'/> #光盘
<boot dev='hd'/>
</os>
添加cdrom为第一启动
#virsh define /etc/libvirt/qemu/centos6.5.xml
#virsh start centos6.5
11. 查看虚拟机所用VNC端口
#virsh vncdisplay scrapy0002
:6
则使用5900+6=5906端口
修改VNC端口
#virsh edit scrapy0002
<graphics type='vnc' port='5915' autoport='no' listen='0.0.0.0' passwd='cqmygysdss'>
<listen type='address' address='0.0.0.0'/>
</graphics>
12. 虚拟机改名
#virsh destroy centos6.5 define
#cd /etc/libvirt/qemu
#mv centos6.5.xml spider.xml
#vi spider.xml 修改name字段为spider
#virsh undefine centos6.5 #取消定义
#virsh define /etc/libvirt/qemu/spider.xml
#virsh start spider
13. 查看虚拟机文件信息
# qemu-img info monitor_cacti.img
14. 删除虚拟机
#virsh destroy $1
#virsh undefine $1
#RemoveFolder "/var/lib/libvirt/images/$1/" #删除文件夹
#RemoveFile "/etc/libvirt/qemu/$1" #删除文件
注意,如果vm用save命令备份过。
undefine需要加参数,比如:
virsh?undefine?--managed-save?vm2??
否则会失败。