一 . 基于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链接 安装系统配置网络



 

KVM安装XP kvm安装虚拟机 没有根文件_python

以上是桥接方式,如果是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??


 



否则会失败。