ubuntu13.10 kvm 虚拟机的安装---命令行下

转载更新:http://shidan66.iteye.com/blog/1848443
  
       第一步为了保险起见,还是首先看一下CPU是否支持虚拟化,命令:
Bash代码   收藏代码
  1. grep -cE '(vmx|svm)'  /proc/cpuinfo  
输出大于0就说明支持。
 
        第二步安装KVM相关软件包,运行命令:
Bash代码   收藏代码
  1. sudo apt-get install qemu-kvm libvirt-bin bridge-utils virtinst  
        刚开始的时候搞不清KVM相关的几个安装包的关系(其实现在也还不是太懂o(╯□╰)o),网上搜的资料中涉及到的有qemu/qemu-kvm/libvirt-bin/virt-install等,简单说一下我的理解:kvm核心已经进入linux内核,但是只有内核是不能直接使用的,于是KVM使用了另一个虚拟化qemu中的部分代码,来实现对KVM内核的操控,这部分就是qemu-kvm了。而libvirt-bin是一套管理虚拟机的工具(适用于xen和kvm以及其他虚拟化技术),主要包含一套API、一个守护进程libvirtd和一个命令行工具virsh。另外Redhat开发了一个图形界面的管理工具virt-manager,应该是调用的libvirt的api。virt-install(对应的安装包为virtinst)是一个构建虚拟机的工具。另外网上的资料中还提到一个virt-viewer,好像也是基于图形界面的管理工具,我这边儿没有X,不知道跟vert-manager有什么区别。有知道的给留言回告知一下,谢谢。
       安装完上面几个包后,运行下面的命令检测一下安装是否成功:
Bash代码   收藏代码
  1. $sudo kvm-ok  
  2. INFO:/dev/kvm existsKVM  
  3. acceleration can be used  
 如果出现上面的输出,则说明安装没问题。
         第三步,通过如下命令,将用户添加到libvirtd和kvm组中:
Bash代码   收藏代码
  1. sudo adduser `id -un` libvirtd  
  2. sudo adduser `id -un` kvm  
 
       第四步,配置网桥,KVM默认的网络配置为NAT,为了使用方便,我们一般需要配置为桥接方式,我的网络配置文件内容如下所示:
Bash代码   收藏代码
  1. auto lo  
  2. iface lo inet loopback  
  3. auto em1  
  4. iface em1 inet manual  
  5. auto br0  
  6. iface br0 inet static  
  7.         address 192.168.0.239  
  8.         netmask 255.255.255.0  
  9.         gateway 192.168.0.1  
  10.         dns-nameservers 192.168.0.5  
  11.   
  12.         bridge_ports em1  
  13.         bridge_stp off  
  14.         bridge_fd 0  
  15.         bridge_maxwait 0  
 网上有篇文章中提到,还需要配置qemu-kvm继承CAP_NET_ADMIN capability,如下图所示:
ubuntu13.10 kvm 虚拟机的安装---命令行下_第1张图片
不太明白是什么意思,只是照着做了。
       第五步,在创建虚拟机前需要先创建一个磁盘镜像,作为虚拟机的硬盘,通过如下命令创建:
Bash代码   收藏代码
  1. $sudo qemu-img create -f qcow2 /opt/ubuntu.img 100G  
 生成100G 的centos.img,格式:qcow2。
       第六步,现在可以开始创建虚拟机了,但创建虚拟机前,需要先看一下/etc/libvirt/qemu.conf文件 vnc_listen="0.0.0.0"是否启用,如果没有启用就需要去掉注释启用,否则可能会出现无法使用VNC连接虚拟机的情况。
       下面正式开始创建虚拟机了,使用virt-install命令,如下所示:
Bash代码   收藏代码
  1. $sudo virt-install --name ubuntu-server1 --ram 2048 --arch=i686 --vcpus=2 --check-cpu --os-type=linux --os-variant='ubuntuPrecise' -c /home/hpserver/os-img/ubuntu-12.04-server.iso --disk path=/opt/kvmspace/ubuntu/ubuntu-server-12.04-i386.img,device=disk,bus=ide,format=qcow2 --bridge=br0 --vnc --vncport=5901 --vnclisten=0.0.0.0  
需要注意几个参数:
--os-variant指的是操作系统的类型,ubuntu的要填"ubuntu+版本的代号",redhat的值填“rhel+版本号”,centos的跟对应版本的rhel填一样的就可以了
-c /后面跟的是要安装的系统镜像的位置
--disk path=后面跟的是刚才所创建的磁盘镜像的位置
       除了创建另外也可以通过定义一个虚拟机的xml配置文件,然后通过virsh define *.xml来创建虚拟机。其实在执行完上面的创建命令后,会在系统的/etc/libvirtd/qemu/下面生成一个与你创建的虚拟机的名字同名的xml格式的配置文件。
       创建虚拟机这一步,我遇到了一个错误,内容如下:
Bash代码   收藏代码
  1. Could not access KVM kernel module: Permission denied   
  2. failed to initialize KVM: Permission denied   
  3. No accelerator found!  
可以看出是权限问题,但是不论是sudo还是切换到root,都会出现这个错误,后来网上查了下,做如下处理:
执行 sudo chown root:kvm /dev/kvm
修改/etc/libvirt/qemu.conf,添加 user="root", group="root"
然后重启一下libvirt-bin: sudo service libvirt-bin restart,问题解决了
 
        第七步,连接虚拟机
       执行完上一步后,虚拟机实际上已经启动了,并且进入系统安装界面,但是由于我是在命令行下,只出现了一个could not open display的提示,并且告知系统已经在安装中,这个时候使用vnc客户端连接虚拟机,本来应该出现安装界面的,但是出现了一个恶心的问题,每次用VNC连接虚拟机,realvnc客户端就直接退出,我可是从官网下的最新版的客户端啊,这个问题困扰了我好久,期间重新安装了几次虚拟机,问题依然出现,后来试着从晚上下了一个老版本的客户端,居然一次性连接成功,顿时无语了。。。
 
成功运行一个虚拟机后,又开了3个,运行状况良好,只是在给虚拟机安装系统的过程中CPU占用率直奔100%,安装过后立马恢复正常。

你可能感兴趣的:(虚拟机kvm)