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
代码: 全选
sudo adduser $USER libvirtd
为了方便管理guest,ubuntu server最好装一下acpid
代码: 全选
sudo aptitude install acpid
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
代码: 全选
sudo /etc/init.d/networking restart
c.重启后,用ifconfig检查
代码: 全选
ifconfig
我的显示:
代码: 全选
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
代码: 全选
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
代码: 全选
-n win2003
代码: 全选
--disk path=/home/kvm/win2003/win2003.img,cache=writeback,size=90
代码: 全选
--network=bridge:br0,model=rtl8139
b.在自己的电脑(desktop)上远程控制安装过程
执行上述命令后,服务器端就已经启动安装过程了,此时,你需要一台电脑(linux操作系统,带桌面的,可以用自己的笔记本)来控制安装过程。您需要先在desktop上安装virt-viewer:
代码: 全选
sudo apt-get install virt-viewer
代码: 全选
su
代码: 全选
virt-viewer --connect qemu+ssh://root@10.3.1.35/system win2003
代码: 全选
sudo passwd root
本段参考资料: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
代码: 全选
help
代码: 全选
list
代码: 全选
list --all
代码: 全选
start win2003
代码: 全选
shutdown win2003
代码: 全选
destroy win2003
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
代码: 全选
mkisofs -r -o /home/darkofday/sql2005.iso /home/darkofday/share/sql2005x86.rar
代码: 全选
virsh
代码: 全选
attach-disk win2003 /home/darkofday/sql2005.iso hdc --mode readonly --driver file --type cdrom
本段参考资料:https://bugs.launchpad.net/ubuntu/+sour ... bug/2030209楼的回复
over,大致说完了,终于可以休息休息了(打一局CF,聊以慰藉折腾的心灵)。。。
补充:如果你以前已经装好了系统,只是想把那个镜像启动起来,并加入到virsh的管理中来。请注意一下virt-install的--import参数就行了,具体用法搜索一下。