原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。 http://5ydycm.blog.51cto.com/115934/274902
[前段时间学习了xenserver,感觉不错,就是对他的免费感觉质疑,如果后期他某一天不提供免费了,那我不惨了。所以,我还是将学习方向转到开源的领域了。]
(1)Centos5.4
安装,升级
开启SELinux(如果你的SELinux被禁用,virt-install将不会正常工作)
system-config-securitylevel-tui
(2)kvm
安装
(a)
检查CPU是否支持硬件虚拟化-运行命令
egrep '(vmx|svm)' --color=always /proc/cpuinfo
(如果输出的结果包含 vmx,它是 Intel;如果包含 svm,它是 AMD。如果你甚么都得不到,那应你的系统并没有支持虚拟化的处理。
)
(b)
安装KVM和virtinst(一个创建虚拟机的工 具),我们运行
yum install kvm kmod-kvm qemu libvirt python-virtinst
然后重新启动系统:
R
eboot
使用下列命令检查KVM是否成功安装
virsh -c qemu:///system list
将会显示如下结果:
[root@server1 ~]# virsh -c qemu:///system list
Id Name
State
----------------------------------
[root@server1 ~]#
如果在这里显示的是一个错误的信息,说明有些东西出现了问题。
(c)
下面我们需要在我们的服务器上设置一个网桥,就可以使我们的虚拟机从其他主机中读取数据。
要做到这一点,我们安装bridge-utils工具。。。。。。
yum install bridge-utils
... 并且配置一个网桥从/etc/sysconfig/network-scripts/ifcfg-eth0参考BOOTPROTO, BROADCAST, IPADDR, NETMASK和NETWORK等值来创建文件/etc/sysconfig/network-scripts/ifcfg-br0 :
vi /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
TYPE=Bridge
BOOTPROTO=static
BROADCAST=192.168.0.255
IPADDR=192.168.0.100
NETMASK=255.255.255.0
NETWORK=192.168.0.0
ONBOOT=yes
修改/etc/sysconfig/network-scripts/ifcfg-eth0 as follows (取消注释BOOTPROTO, BROADCAST, IPADDR, NETMASK, 和NETWORK 最后添加 BRIDGE=br0):
vi /etc/sysconfig/network-scripts/ifcfg-eth0
# Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+
DEVICE=eth0
#BOOTPROTO=static
#BROADCAST=192.168.0.255
HWADDR=00:10:A7:05:AF:EB
#IPADDR=192.168.0.100
#NETMASK=255.255.255.0
#NETWORK=192.168.0.0
ONBOOT=yes
BRIDGE=br0
重新启动网络...
/etc/init.d/network restart
... 运行
ifconfig
现在应该显示网桥(br0):
[root@server1 ~]# ifconfig
br0
Link encap:Ethernet
HWaddr 00:10:A7:05:AF:EB
inet addr:192.168.0.100
Bcast:192.168.0.255
Mask:255.255.255.0
inet6 addr: fe80::210:a7ff:fe05:afeb/64 Scope:Link
UP BROADCAST RUNNING MULTICAST
MTU:1500
Metric:1
RX packets:17 errors:0 dropped:0 overruns:0 frame:0
TX packets:53 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:1160 (1.1 KiB)
TX bytes:14875 (14.5 KiB)
eth0
Link encap:Ethernet
HWaddr 00:10:A7:05:AF:EB
inet6 addr: fe80::210:a7ff:fe05:afeb/64 Scope:Link
UP BROADCAST RUNNING MULTICAST
MTU:1500
Metric:1
RX packets:13662 errors:7 dropped:160 overruns:4 frame:0
TX packets:11646 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:15144608 (14.4 MiB)
TX bytes:1379942 (1.3 MiB)
Interrupt:74 Base address:0xcc00
lo
Link encap:Local Loopback
inet addr:127.0.0.1
Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING
MTU:16436
Metric:1
RX packets:38 errors:0 dropped:0 overruns:0 frame:0
TX packets:38 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:4308 (4.2 KiB)
TX bytes:4308 (4.2 KiB)
virbr0
Link encap:Ethernet
HWaddr 00:00:00:00:00:00
inet addr:192.168.122.1
Bcast:192.168.122.255
Mask:255.255.255.0
inet6 addr: fe80::200:ff:fe00:0/64 Scope:Link
UP BROADCAST RUNNING MULTICAST
MTU:1500
Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:35 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b)
TX bytes:9987 (9.7 KiB)
[root@server1 ~]#
(3)kvm
管理端
安装virt-viewer 或者virt-manager
如果你是用的是Fedora 10 desktop,你可以使用下列命令安装virt-manager:
yum install virt-manager
(4)GuestOs
安装
Virt-install
具体用法,请参考
man virt-install
(a)
以光驱方式安装
(win2003)
(I)
virt-install --connect qemu:///system --name win01 --ram
1024
--disk path=/var/lib/libvirt/images/win2k3.img,size=
10
--network bridge:br0 --accelerate --vnc --noautoconsole --cdrom /dev/cdrom-hda
Starting install...
Creating domain...
|
0 B
00:02
Domain installation still in progress. You can reconnect to
the console to complete the installation process.
(II)kvm
管理端开启
virt-manager
后,通过
Remote tunnel over ssh
连接方式连接到
kvm
服务器
.
当执行完
I
步后,将会运行一个
win01 Domain
,在
Virtual Machine Manager
选中这个新建的
Domain
,右击选中
Open,
输入认证密码后,便可以打开一个
console
可以远程安装系统了。
(b)
以
iso
安装
(
确保
selinux
关闭,至到我搞懂为至
)
virt-install --connect qemu:///system --name debian --ram
1024
--vcpus=4
--disk path=/var/lib/libvirt/images/debian.img,size=
10
--network bridge:br0 --accelerate --vnc --noautoconsole --cdrom /mnt/debian.iso
(5)
管理
kvm
客户机
可以通过
virsh命令管理KVM客户机,
"virtual shell"。连接到virtual shell,运行
virsh --connect qemu:///system
下面就是virtual shell的显示界面:
[root@server1 ~]# virsh --connect qemu:///system
Welcome to virsh, the virtualization interactive terminal.
Type:
'help' for help with commands
'quit' to quit
virsh #
现在你可以在virtual shell中输入命令来管理你的客户 机,运行:
help
获得更多的命 令:
list
显示所有正在运行的客户机;
list --all
显示所有客户机,正在运行的和没有运行的:
virsh # list --all
Id Name
State
----------------------------------
2 vm10
running
virsh #
如果你修改了一个客户机的xml文件(位于/etc/libvirt/qemu/ 目录),你必须重新定义客户机:
define /etc/libvirt/qemu/vm10.xml
请注意,无论你何时在/etc/libvirt/qemu/ 中修改了客户机的XML文件,你必须重新运行define 命令!
启动和停止客户机,运行:
start vm10
停止一个客户机,运行
shutdown vm10
立即中断一个客户机(类似直接关电源),运行
destroy vm10
挂起一个客户机:
suspend vm10
恢复客户机:
resume vm10
这些都是最重要的命令.
输入
quit
退出virtual shell.