yanghongjun 发表于 2016-1-8 13:13:02

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/ / 这样的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 apache2apache2-mpm-prefork \
apache2-utilsapache2.2-common \
dbconfig-common libapache2-mod-php5 \
mysql-clientphp5-cli \
php5-gdphp5-ldap \
php5-mysqlwwwconfig-common \
mysql-serverunattended-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社区提供的帮助文档


https://help.ubuntu.com/11.04/serverguide/C/virtualization.html  ubuntu关于虚拟机的官方文档
页: [1]
查看完整版本: ubuntu server中kvm虚拟机的安装及使用