kvm创建和管理虚拟机的方法(2)

KVM虚拟机的创建依赖qemu-kvm:
虽然kvm的技术已经相当成熟而且可以对很多东西进行隔离,但是在某些方面还是无法虚拟出真实的机器。比如对网卡的虚拟,那这个时候就需要另外的技术来做补充,而qemu-kvm则是这样一种技术。它补充了kvm技术的不足,而且在性能上对kvm进行了优化。

我们还可以使用virt-manager,virt-viewer来管理虚拟机;

我们在创建和管理KVM虚拟机时还需要libvirt这个重要的组件:
它是一系列提供出来的库函数,用以其他技术调用,来管理机器上的虚拟机。包括各种虚拟机技术,kvm、xen与lxc等,都可以调用libvirt提供的api对虚拟机进行管理。有这么多的虚拟机技术,它为何能提供这么多的管理功能那。是因为它的设计理念,它是面向驱动的架构设计。对任何一种虚拟机技术都开发设计相对于该技术的驱动。这样不同虚拟机技术就可以使用不同驱动,而且相互直接不会影响,方便扩展。而且libvirt提供了多种语言的编程接口,可以直接通过编程,调用libvirt提供的对外接口实现对虚拟机的操作。如今流行的云计算中的IaaS是与该库联系相当密切的。通过下图可以看出它的架构设计思想。

wKiom1TYq3rgSgc9AAB5u36iayM195.jpg

从该图可以看出,在libvirtapi之上会有很多个driver,对于每一种虚拟机技术都会有一种driver,用来充当该虚拟机技术与libvirt之间的包装接口。如此设计就可以避免libvirt需要设计各种针对不同虚拟机技术的接口,它主要关注底层的实现,提供对外接口调用,而不同的虚拟机技术通过调用libvirt提供的接口来完成自己所需要的功能。

4.安装KVM所需组件

yum源提供了,直接安装:

#yum install -y qemu-kvm libvirt virt-manager

安装完成后启动libvirtd服务:

#service libvirtd start

会自动启动一个桥设备,这相当于VMware Workstation中的host-only仅主机的网络设备;

# ifconfig eth0 Link encap:Ethernet HWaddr00:0C:29:3E:63:26 inet addr:172.16.31.7 Bcast:172.16.255.255 Mask:255.255.0.0 inet6 addr: fe80::20c:29ff:fe3e:6326/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:25460 errors:0 dropped:0overruns:0 frame:0 TX packets:9728 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:35156437 (33.5 MiB) TXbytes:800196 (781.4 KiB) 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:65536 Metric:1 RX packets:12 errors:0 dropped:0 overruns:0 frame:0 TX packets:12 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:1024 (1024.0 b) TXbytes:1024 (1024.0 b) virbr0 Link encap:Ethernet HWaddr52:54:00:30:54:41 inet addr:192.168.122.1 Bcast:192.168.122.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 b) TX bytes:0(0.0 b)

使用网桥管理命令查看:

# brctl show bridge name bridge id STP enabled interfaces virbr0 8000.525400305441 yes virbr0-nic

像VMware Workstation中我们需要创建物理桥接设备,可以使用virsh创建桥设备关联网卡到桥接设备上:
需要将NetworkManager服务关闭,开机启动也关闭:

# chkconfig NetworkManager off # service NetworkManager stop

然后在创建桥接设备及关联网卡到桥接设备上:

# virsh iface-bridge eth0 br0

查看桥接设备及其他网络设备运行情况:

# ifconfig br0 Link encap:Ethernet HWaddr00:0C:29:3E:63:26 inet addr:172.16.31.7 Bcast:172.16.255.255 Mask:255.255.0.0 inet6 addr: fe80::20c:29ff:fe3e:6326/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:76 errors:0 dropped:0 overruns:0 frame:0 TX packets:60 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:9781 (9.5 KiB) TXbytes:8957 (8.7 KiB) eth0 Link encap:Ethernet HWaddr00:0C:29:3E:63:26 inet6 addr: fe80::20c:29ff:fe3e:6326/64 Scope:Link UP BROADCAST RUNNINGMULTICAST MTU:1500 Metric:1 RX packets:176 errors:0 dropped:0 overruns:0 frame:0 TX packets:97 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:26793 (26.1 KiB) TXbytes:11385 (11.1 KiB) 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:65536 Metric:1 RX packets:4 errors:0 dropped:0 overruns:0 frame:0 TX packets:4 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:344 (344.0 b) TXbytes:344 (344.0 b) virbr0 Link encap:Ethernet HWaddr52:54:00:30:54:41 inet addr:192.168.122.1 Bcast:192.168.122.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 b) TX bytes:0(0.0 b)

查看桥接设备:

# brctl show bridge name bridge id STP enabled interfaces br0 8000.000c293e6326 yes eth0 virbr0 8000.525400305441 yes virbr0-nic

至此,我们的虚拟化平台就构建完毕,下面就开始在KVM虚拟化平台上创建和管理虚拟机,我们先使用qemu-kvm来创建和管理虚拟机。

三.使用qemu-kvm管理KVM虚拟机

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wzjysy.html