ubuntu 10.04 server kvm虚拟化(桥接)及远程管理笔记

Kvm、VMware、Virtualbox、Xen、Qemu 等
回复
darkofday
帖子: 12
注册时间: 2010-06-15 16:56

ubuntu 10.04 server kvm虚拟化(桥接)及远程管理笔记

#1

帖子 darkofday » 2011-07-15 13:29

最近远程管理着一台HP DL系列的服务器,硬件支持虚拟化,所以准备用kvm将其榨干,虚拟出多台服务器。
HOST操作系统:ubuntu server 10.04.2 64bit
客户机操作系统:1.win2003 sp2 32bit
2.debian 6.0.1a 32bit
预期:
1.职能划分 HOST操作系统专职伺候GUEST操作系统,具体的应用放在GUEST操作系统中。
2.网络预期 HOST操作系统和各个GUEST操作系统采用桥接方式,静态分配IP,处在同一网段。为了方便叙述,假定HOST的IP为10.3.1.35,两个GUEST的IP分别为10.3.1.36和10.3.1.37.
3.数据共享 实现HOST和GUEST之间的数据共享。
4.管理 方便管理,最好有远程管理工具。
步骤:
1.前期准备条件:
最小化安装ubuntu server 10.04.2 64bit(已经自带部分KVM),软件安装请参考本站置顶贴(viewtopic.php?f=65&t=154792),由于整个过程是不断摸索,所以有些软件安装的具体过程没有留下记录。
但必须安装kvm,qemu-kvm,libvirt-bin

代码: 全选

sudo apt-get install kvm libvirt-bin python-virtinst bridge-utils
安装完了后,要将自己的用户名加入到libvirtd组中

代码: 全选

sudo adduser $USER libvirtd
$USER是你自己的用户名
为了方便管理guest,ubuntu server最好装一下acpid

代码: 全选

sudo aptitude install acpid
-.-!为什么没用apt-get 呢。。。
2.配置桥接
这一部分最迷惑人,最开始参考的是置顶贴,但其中的一句话理解错误“根据你的情况加入以下内容:”导致第一次配网络与服务器失去连接,到机房重启才继续进行,注意,这里的“加入”应该为“更改为”,可参考此贴http://hi.baidu.com/huakaiweizhi/blog/i ... 0c844.html
具体步骤:
a.修改interfaces

代码: 全选

sudo vim /etc/network/interfaces
本人原始配置

代码: 全选

auto eth0
iface eth0 inet static
	address 10.3.1.35
	netmask 255.255.255.192
	network 10.3.1.68
	broadcast 10.3.1.127
	gateway 10.3.1.129
	# dns-* options are implemented by the resolvconf package, if installed
	dns-nameservers 10.1.0.40
	dns-search ubuntu
修改之后的配置

代码: 全选

auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet manual

auto br0
iface br0 inet static
	address 10.3.1.35
	netmask 255.255.255.192
	network 10.3.1.68
	broadcast 10.3.1.127
	gateway 10.3.1.129
	# dns-* options are implemented by the resolvconf package, if installed
	dns-nameservers 10.1.0.40
	dns-search ubuntu

	bridge_ports eth0
	bridge_stp off
	bridge_maxwait 5
	bridge_fd 0
b.重启网络,使配置生效

代码: 全选

sudo /etc/init.d/networking restart
注意:对于远程操作者而言,这一步一定要谨慎操作,避免与服务器失去联系。
c.重启后,用ifconfig检查

代码: 全选

ifconfig
正常的话,eth0应该不再有IP,虚拟的桥接网卡br0应该接管了eth0的配置,并将数据转到eth0
我的显示:

代码: 全选

br0       Link encap:以太网  硬件地址 00:1b:78:9b:c1:5e  
          inet 地址:10.3.1.35  广播:10.3.1.127  掩码:255.255.255.192
          inet6 地址: fe80::21b:78ff:fe9b:c15e/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  跃点数:1
          接收数据包:9989322 错误:0 丢弃:0 过载:0 帧数:0
          发送数据包:11703348 错误:0 丢弃:0 过载:0 载波:0
          碰撞:0 发送队列长度:0 
          接收字节:5763086071 (5.7 GB)  发送字节:7809744229 (7.8 GB)

eth0      Link encap:以太网  硬件地址 00:1b:78:9b:c1:5e  
          inet6 地址: fe80::21b:78ff:fe9b:c15e/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  跃点数:1
          接收数据包:12338743 错误:0 丢弃:0 过载:0 帧数:0
          发送数据包:11084473 错误:0 丢弃:0 过载:0 载波:0
          碰撞:0 发送队列长度:1000 
          接收字节:8041899891 (8.0 GB)  发送字节:5870981468 (5.8 GB)
          中断:16 Memory:f8000000-f8012800 

lo        Link encap:本地环回  
          inet 地址:127.0.0.1  掩码:255.0.0.0
          inet6 地址: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  跃点数:1
          接收数据包:194873 错误:0 丢弃:0 过载:0 帧数:0
          发送数据包:194873 错误:0 丢弃:0 过载:0 载波:0
          碰撞:0 发送队列长度:0 
          接收字节:123538384 (123.5 MB)  发送字节:123538384 (123.5 MB)
至此,桥接网络成功

3.安装GUEST(以win2003为例)
准备工作:将win2003的安装镜像放到服务器目录中,假定放在/home/darkofday/win2003.iso;假定安装好的虚拟磁盘位于/home/kvm/win2003/win2003.img
a.服务器端操作启动安装
远程到服务器,用virt-install启动安装:

代码: 全选

sudo virt-install --connect qemu:///system -n win2003 -r 1024 --vcpus=2 --disk path=/home/kvm/win2003/win2003.img,cache=writeback,size=90 -c /home/darkofday/win2003.iso --vnc --noautoconsole --os-type windows --accelerate --network=bridge:br0,model=rtl8139 --hvm --os-variant=win2k3
这一步(如果用kvm命令,也有可能出现)如果出现如下错误提示:

代码: 全选

pci_add_option_rom: failed to find romfile "pxe-rtl8139.bin"
inet_parse: ipv4 parse error (100)
执行如下命令可修复

代码: 全选

sudo apt-get install kvm-pxe
说明:

代码: 全选

--connect qemu:///system
是将画面连接到qemu:///system服务,以便在远程计算机上用virt-viewer控制安装过程。

代码: 全选

-n win2003
这个是给GUEST取一个名字,很有用,以便virt-viewer连接,同时方便用virsh管理

代码: 全选

--disk path=/home/kvm/win2003/win2003.img,cache=writeback,size=90
指定将安装好的虚拟磁盘置于/home/kvm/win2003/win2003.img,大小90G;这个地方不需要事先创建虚拟磁盘,与qemu-kvm不同,如果没有事先创建,该命令会自动创建。

代码: 全选

--network=bridge:br0,model=rtl8139
将guest的网络桥接到br0,网卡选rtl8139,当然也可以选择其它型号的虚拟网卡,具体可参考man virt-install
b.在自己的电脑(desktop)上远程控制安装过程
执行上述命令后,服务器端就已经启动安装过程了,此时,你需要一台电脑(linux操作系统,带桌面的,可以用自己的笔记本)来控制安装过程。您需要先在desktop上安装virt-viewer:

代码: 全选

sudo apt-get install virt-viewer
然后,启用root窗口

代码: 全选

su
远程连接到服务器安装过程

代码: 全选

virt-viewer --connect qemu+ssh://root@10.3.1.35/system win2003
在这个过程中,需要输入两次服务器端的root密码,如果服务器端没有设置root密码,可以用如下命令设置

代码: 全选

sudo passwd root
安装好win2003后,就可以设置网络了,设置好网络后,guest就可以与外界自由联通了,这时也可以不通过virt-viewer,而直接通过远程桌面连接管理win2003了。(本人在此处走了弯路,由于用了一个有问题的win2003安装镜像,装好后,不管如何设置,找了N多资料,网络死活不通,想死的心都有了,一两天后才意识到可能是镜像的问题,换了个镜像文件,立马好了,尼玛啊~~~)
本段参考资料:http://www.howtoforge.com/installing-kv ... .10-server

4.服务器端管理guest
服务器端用virsh管理guest,有人可能想要一个和vmware-server类似的web管理界面,其实有的,甚至有基于kvm,做的和vmware-esx类似的虚拟机操作系统,还有分布式管理的,但管理一台服务器的话,还是virsh省心,可以参考:http://www.linux-kvm.org/page/Management_Tools
执行以下命令,就可以进入virsh

代码: 全选

virsh
virsh的具体命令可以参考其帮助,也可以参考网上的,不过最常用的也就这么几个:

代码: 全选

help
简易帮助文档

代码: 全选

list
列出通过virt-install 安装的,正在运行的guest。

代码: 全选

list --all
列出所有guest

代码: 全选

start win2003
启动一个guest,比如win2003

代码: 全选

shutdown win2003
关闭一个guest,比如win2003

代码: 全选

destroy win2003
彻底关闭一个guest,包括释放其占用的资源,不影响虚拟磁盘本身,还可以通过start命令启动guest。

5.服务器host和guest之间共享数据
如果guest是linux,可以通过设置NFS来实现;如果guest是windows,也可以安装NFS服务来实现,不过要麻烦的多。我现在主要是guest中需要获取host中存放的软件,是通过virsh附加device实现将数据单向传送到win2003中的,觉得通过virsh也可以实现双向,但还没有摸透。先说说单向的吧。
首先,我实现的是把服务器上的镜像文件(iso或其它可以mount的文件),通过给win2003附加cdrom的方式单向共享。如果文件不是iso格式,可以通过mkisofs来制作,很简单。先安装mkisofs

代码: 全选

sudo apt-get install mkisofs
然后将/home/darkofday/share/sql2005x86.rar(也可以是文件夹)文件制作成/home/darkofday/sql2005.iso

代码: 全选

mkisofs -r -o /home/darkofday/sql2005.iso /home/darkofday/share/sql2005x86.rar
ISO文件制作好了。然后进入virsh

代码: 全选

virsh
给win2003附加cdrom(注意,win2003必须是开机状态才能附加,不然会报错)

代码: 全选

attach-disk win2003 /home/darkofday/sql2005.iso hdc --mode readonly --driver file --type cdrom
附加成功。

本段参考资料:https://bugs.launchpad.net/ubuntu/+sour ... bug/2030209楼的回复

over,大致说完了,终于可以休息休息了(打一局CF,聊以慰藉折腾的心灵)。。。 :em19

补充:如果你以前已经装好了系统,只是想把那个镜像启动起来,并加入到virsh的管理中来。请注意一下virt-install的--import参数就行了,具体用法搜索一下。
上次由 darkofday 在 2011-09-06 23:17,总共编辑 2 次。
djh
帖子: 63
注册时间: 2010-05-21 23:55

Re: ubuntu 10.04 server kvm虚拟化及远程管理笔记

#2

帖子 djh » 2011-07-15 14:17

:em11 赞一个先!!!
awnu
帖子: 18
注册时间: 2008-12-16 20:12

Re: ubuntu 10.04 server kvm虚拟化及远程管理笔记

#3

帖子 awnu » 2011-07-17 17:02

赞一个!我也一直想用ubuntu做底层服务器,然后虚拟几个win程序服务呢。学习了!!
achen.han
帖子: 442
注册时间: 2010-09-08 23:33

Re: ubuntu 10.04 server kvm虚拟化(桥接)及远程管理笔记

#4

帖子 achen.han » 2011-08-21 0:42

稳定吗? 最近公司的 dell R410 也想给虚拟化了,在KVM和XEN间纠结。
darkofday
帖子: 12
注册时间: 2010-06-15 16:56

Re: ubuntu 10.04 server kvm虚拟化(桥接)及远程管理笔记

#5

帖子 darkofday » 2011-08-28 12:13

achen.han 写了:稳定吗? 最近公司的 dell R410 也想给虚拟化了,在KVM和XEN间纠结。
相当之稳定,比以前用的那个vmware server好太多了,不过没和xen对比过。如果你真要弄的话,建议不要用ubuntu做host,还是用比较稳定点的系统比较好,比如centos,debian等等
achen.han
帖子: 442
注册时间: 2010-09-08 23:33

Re: ubuntu 10.04 server kvm虚拟化(桥接)及远程管理笔记

#6

帖子 achen.han » 2011-08-28 23:43

thanks,darkofday.

决定用KVM了,这几天看了看资料,还是KVM简单,效率高,以前用过QEMU,上手更没问题。顺便测试了支持SPICE协议的kvm-qemu,比走VNC要好多了。我的vmware server还在R410上跑,过些天就把它给咔了。

也看了看CentOS的资料,十年没碰REDHAT了,软件包管理变化挺大,不知有没有其它大的结构变化,手生呀。现在最担心的是这几个版本对R410的硬件驱动问题,现在系统是win2008,上面跑着些公司服务,系统大换血一两天搞不定可不是闹着玩的。
chamqion
帖子: 193
注册时间: 2008-06-17 17:07
来自: http://www.jiechic.com
联系:

Re: ubuntu 10.04 server kvm虚拟化(桥接)及远程管理笔记

#7

帖子 chamqion » 2011-08-30 21:57

看了一下,桥接内容与置顶的有点修改,之前用置顶的桥接,一直不行,这次试试这里的。我想用kvm很久了。
欢迎光临我的博客
JieChic ‘ s Blog
I Want To Use Linux
http://www.jiechic.com
achen.han
帖子: 442
注册时间: 2010-09-08 23:33

Re: ubuntu 10.04 server kvm虚拟化(桥接)及远程管理笔记

#8

帖子 achen.han » 2011-08-31 1:19

chamqion 写了:看了一下,桥接内容与置顶的有点修改,之前用置顶的桥接,一直不行,这次试试这里的。我想用kvm很久了。
桥接行不行,关键是LZ的这句话:
正常的话,eth0应该不再有IP,虚拟的桥接网卡br0应该接管了eth0的配置,并将数据转到eth0
darkofday
帖子: 12
注册时间: 2010-06-15 16:56

Re: ubuntu 10.04 server kvm虚拟化(桥接)及远程管理笔记

#9

帖子 darkofday » 2012-03-12 15:42

achen.han 写了:thanks,darkofday.

决定用KVM了,这几天看了看资料,还是KVM简单,效率高,以前用过QEMU,上手更没问题。顺便测试了支持SPICE协议的kvm-qemu,比走VNC要好多了。我的vmware server还在R410上跑,过些天就把它给咔了。

也看了看CentOS的资料,十年没碰REDHAT了,软件包管理变化挺大,不知有没有其它大的结构变化,手生呀。现在最担心的是这几个版本对R410的硬件驱动问题,现在系统是win2008,上面跑着些公司服务,系统大换血一两天搞不定可不是闹着玩的。
呵呵,好长时间没上论坛了。REDHAT系我也用不惯,一直用的debian系,习惯问题。
硬件驱动的确最麻烦,这台DL 380开始想装debian的,一直驱动搞不定,也不想再多花时间,发现ubuntu完全运行,就直接装了。现在要毕业实习了,那台服务器上的openvpn还在服役,偶尔上上学校内网下下论文。除了硬盘坏过一次(做过RAID,换上就好),运行很稳定。如果有条件的话,还是得测试一下你那台机器,看看硬件是否兼容某个版本,或者到网上查一下。
achen.han
帖子: 442
注册时间: 2010-09-08 23:33

Re: ubuntu 10.04 server kvm虚拟化(桥接)及远程管理笔记

#10

帖子 achen.han » 2012-03-12 18:56

R410上ubuntu10.10已半年了,驱动完美支持,安装一路绿灯。仅装了kvm,运行非常稳定。
当时安装时在网上搜索这个型号的服务器,好多老外说debian的网卡驱动有点老,有时会丢包,安装后需要更新。没人说ubuntu有安装异常的,在ubuntu的官网上也说支持这一款,就一咬牙上了。说实话,安装过程中心跳的噗噗的,直到虚拟win2008后测试了一晚上网卡、磁盘读写速率,丢包率都没问题后才安了心。
回复