egrep '(vmx|svm)' --color=always /proc/cpuinfo

注意:如果查询的结果中包含有vmx,那么就可以证明服务器是支持虚拟化的

 

安装包

yum -y groupinstall "Virtualization" "Virtualization Client" "Virtualization Platform"

 

modprobe kvm

lsmod |grep kvm

 

ln -sv /usr/libexec/qemu-kvm /usr/bin/ 

 

service libvirtd start 

chkconfig --level 2345 libvirtd on 

chkconfig libvirtd  --list

 

配置网卡桥接

virsh iface-bridge eth0 br0

 

安装

virt-install --connect  qemu:///system --virt-type kvm --name rhel6 --ram=1024  --disk path=/var/lib/libvirt/p_w_picpaths/rhel6.img,size=8,sparse --os-type=linux --accelerate -c /sdb1/CentOS-6.6-x86_64-bin-DVD.iso --network bridge=br0,model=virtio --vnc  --vncport=5991 --vnclisten=0.0.0.0 --force

 

--vncport 端口可以自己改,不指定的话自动获取

--boot network,cdrom,menu=on  这个是启动顺序可以不用加

当出现下面提示的时候用vnc客户端连接即可(端口:5991)

netstat -tnlp |grep kvm

tcp        0      0 0.0.0.0:5991                0.0.0.0:*                   LISTEN      3006/qemu-kvm

开始安装......

创建域......                                                                     |    0 B     00:00     

无法打开显示:

运行 'virt-viewer --help' 来查看可用命令行选项的完整列表

域安装仍在进行。您可以重新连接

到控制台以便完成安装进程。

 

注意: 如果安装完成后,ifconfig只能看到本地回环网卡,到/etc/sysconfig/network-scripts/目录下将ifcfg-eth0的ONBOOT改为yes,然后启动网卡即可。

 

virsh uri: 查看当前主机上hypervisor的连接路径;

virsh connect:

virsh define: 创建一个虚拟机,根据事先定义的xml格式的配置文件;创建以后不会自动启动;

virsh create: 创建,创建完成后会自动启动;

virsh undefine: 删除

virsh list  --all 查看

virsh destroy  rhel6  删除rhel6

virt-install --os-variant list

virsh start rhel66  开启rhel66 或 virsh create /etc/libvirt/qemu/rhel66.xml

virsh shutdown rhel66

virsh reboot rhel66  

virsh console rhel66

virsh suspend rhel66  挂起

virsh resume  rhel66 恢复挂起

 

/etc/libvirt/qemu/  虚拟机xml配置文件目录

virsh edit rhel66   编辑xml配置文件,vi编辑的不会立即生效

 

解决virsh shutdown无法关闭KVM虚拟机,以下操作都在客户机,不是宿主机

yum -y install  acpid

service acpid restart

chkconfig --level 2345 acpid on 

chkconfig acpid --list

 

解决KVM中宿主机通过console无法连接客户机,以下操作都在客户机,不是宿主机

1、添加ttyS0的安全许可,允许root登录:

  echo "ttyS0" >> /etc/securetty

2、在/etc/grub.conf文件中为内核添加参数:

   console=ttyS0

  这步要注意:

  console=ttyS0一定要放在kernel这行中(大约在第16行),不能单独一行,即console=ttyS0是kernel的一个参数,不是单独的

3、在/etc/inittab中添加agetty:

S0:12345:respawn:/sbin/agetty ttyS0 115200

4、重启客户机:

 reboot

 

kvm虚拟机的重命名 

1、查看所有的kvm虚拟机

virsh list --all

 Id    名称                         状态

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

 -     rhel6                        关闭

2、重命名kvm虚拟机最好是将虚拟机先关机,然后再导出其xml文件

cd /etc/libvirt/qemu

virsh dumpxml rhel6 > CentOS02.xml

3、为了让重命名后的虚拟机名字与磁盘文件名一致、我们可以先将之前的磁盘文件命名成CentOS02.img

cd /var/lib/libvirt/p_w_picpaths

mv rhel6.1.img CentOS02.img

4、编辑CentOS02.xml文件,修改<name>标签对以及磁盘文件,这里我们将磁盘文件修改成CentOS02.img

<domain type='kvm'>

  <name>CentOS02</name>

      ......  

   ...省略......

      ......

  <disk type='file' device='disk'>

      <driver name='qemu' type='raw' cache='none'/>

  <source file='/var/lib/libvirt/p_w_picpaths/CentOS02.img'/>

5、使用virsh undefine命令删除之前的虚拟机,根据新的xml文件定义新的kvm虚拟机

virsh undefine  rhel6 ////删除rhel6虚拟机

virsh define /etc/libvirt/qemu/CentOS02.xml    //重新定义新的kvm虚拟机

6、最后我们可以再次使用virsh list --all命令查看,结果如下所示

Id    名称                         状态

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

 -     CentOS02                       关闭

经过如上方法重命名的kvm机直接启动使用即可,不会影响udev动态管理设备的文件。和之前的虚拟机相比、仅仅就是名字变了而已。