ubuntu server中kvm虚拟机的安装及使用

ubuntu server中kvm虚拟机的安装

服务器环境:

ubuntu 11.04 amd64, 已在bios中把cpu的vt打开。

  • 安装软件  
sudo apt-get install kvm libvirt-bin python-vm-builder
  • 配置虚拟机网络
我这里采用bridge的方式来配置虚拟机网络,这样,虚拟机与实机在网络环境上可以认为是一样的,对于在上面跑服务器非常方便。
修改/etc/network/interfaces文件
加入以下行
 #加入/etc/network/interfaces文件
auto br0
iface br0 inet static
        address 192.168.0.10
        network 192.168.0.0
        netmask 255.255.255.0
        broadcast 192.168.0.255
        gateway 192.168.0.1
        bridge_ports eth0
        bridge_stp off
        bridge_fd 0
        bridge_maxwait 0
#网络ip什么的针对具体情况修改
post-up ip link set br0 address f4:6d:04:08:f1:5f    #eth0的硬件地址

#重起网络服务
sudo service networking restart
 
  • 安装虚拟机
          这里使用ubuntu-vm-builder来安装虚拟机。
          首先是设置软件源缓存,ubuntu官方推荐用apt-proxy做代理,但是我在ubuntu11.04的源里死活找不到apt-proxy,后来发现apt-cacher也有类似的功能(具体的可以安装apt-cacher后, man apt-cacher看文档)。安装完成后,需要改一下apt-cacher的配置,修改/etc/apt-cacher/apt-cacher.cfg,把daemon_addr属性配置成你想绑定的ip即可。手动启动apt-cacher(sudo apt-cacher -d),然后通过 http://apt-cacher.server:3142[/apt-cacher]/ [mirror] / [distribution] 这样的url形式即可访问到apt-cacher提供的代理了。
          配置vmbuilder 虚拟机安装参数:
sudo vmbuilder kvm ubuntu \
        --suite natty \
        --flavour virtual \
        -o \
        -v \
        --arch amd64 -m 1024 --cpus 2 \
        --libvirt qemu:///system \
        --mirror http://apt-cacher代理ip:3142/ubuntu.cn99.com/ubuntu \
        --bridge br0 \
        --ip 客户机ip  \
        --hostname myvm \
        --part vmbuilder.partition \   #这个文件里是硬盘分区的信息,需要自己创建
        --user user \
        --name user \
        --pass xxxx \
        --addpkg apache2  apache2-mpm-prefork \
         apache2-utils  apache2.2-common \
         dbconfig-common libapache2-mod-php5 \
         mysql-client  php5-cli \
         php5-gd  php5-ldap \
         php5-mysql  wwwconfig-common \
         mysql-server  unattended-upgrades \
         acpid openssh-server lsof iptables\
        --ppa nijaba
 参数比较多,可以把这个写到一个sh文件里方便编辑。也可以使用default.cfg的默认配置来简化,具体的可以参考下面的参考文档。(ubuntu官方文档里安装的软件并没有加入openssh-server,这会导致虚拟机装好后不能通过ssh访问)
          然后执行以上的命令即可开始虚拟机的安装了。
  • 管理虚拟机
          虚拟机的管理主要通过 virsh,也就是用libvirt来管理。kvm的官方提到了很多的管理工具,当然也可以直接使用。具体的管理命令直接看virsh的man文档吧,很详细,很清晰。当然更详细的得看libvirt的文档啦,因为virsh就是通过libvirt来实现对虚拟机的管理的。
          启动
virsh   #到virsh命令界面
list --all   #显示所有的虚拟机
define /etc/libvirt/qemu/myvm.xml    #定义虚拟机,让virsh可以知道虚拟机状态
start myvm  #启动域为myvm的虚拟机
 
  • 进入虚拟机

          由于我并没有安装openssh-server所以,启动之后并不能通过ssh去直接访问虚拟机。但查看虚拟机启动日志(sudo less /var/log/libvirt/qemu/myvm.log),可以发现,虚拟机开放了一个vnc的端口绑定到127.0.0.1,可以访问到虚拟机。我使用的是远程服务器来配置虚拟机,远程服务器里没有安装图形界面,所以不能用vncviewr进入虚拟机。使用vnc远程访问吧,在本地计算机上,先建立ssh tunnel,再用vncviewer连接。

ssh -L 5900:127.0.0.1:5900 username@serverip
#这样会直接进入到客户机了,不要退出,否则就连接就失效了。
vncviewer
#在弹出的框中输入127.0.0.1即可连接到客户机了
 
  • 参考
http://libvirt.org/formatdomain.html   libvirt定义的虚拟机的xml配置
https://help.ubuntu.com/community/KVM  ubuntu社区提供的帮助文档

相关推荐