一、关于libvirt
1)libvirt简介
Libvirt是目前使用最广泛的虚拟机管理工具和应用程序接口(API),常用的虚拟机管理工具(virsh、virt-install、virt-manager)和云计算架构平台(如:OpenStack、OpenNubula)等在底层都使用libvirt的应用程序接口。
Libvirt是一套开源的支持linux下虚拟化工具的函数库,为安全有效的管理各域,libvirt提供的一个公共的稳定软件层。
Libvirt由三个部分组成:应用程序接口(API)、一个守护进程libvirtd、一个默认的命令行管理工具virsh。
作用分别如下:
API为其他虚拟机管理工具(如virsh virt-manager)提供程序库支持;
Libvirtd守护进程管理所有域,在使用各工具对虚拟机进行管理时,该守护进程需要打开;
Virsh是libvirt项目中默认的命令行管理工具,具有定义、启动、停止等管理功能。
2)Libvirt工作原理如下图:
一句话描述:管理工具virsh、virt-manager、virt-install等,通过使用libvirt提供的API的,对虚拟化程序(Hypervisor)在各物理节点(node)上虚拟化出的多个域(domain,机客户操作系统 Guest OS)进行操作管理。
概念解释:
虚拟机管理程序(Hypervisor):是一个虚拟化软件,可以让一个节点上虚拟出多个客户机,常用的虚拟化软件有:KVM、Xen、VMware、VirtualBox等;
节点(node):指一台物理机,每个node上面可以虚拟化出多个虚拟域(Domain);
域(domain):虚拟化软件在物理机上虚拟化出的一个客户机,域也称为实例,或客户机操作系统(Guest OS)、虚拟机(Virtual machine)。
3)节点(node)、虚拟管理程序(Hypervisor)、域(domain)的关系如下图:
在物理节点(node)上运行虚拟化软件(Hypervisor),通过Hypervisor在node上生成多个独立的虚拟域(domain)。
二、准备工作——软件安装与网桥配置
1)检查服务器CPU是否支持虚拟化,看是否有vmx或svm 参数
[root@project ~]# grep -E 'vmx|svm' /proc/cpuinfo
flags: fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm pebs bts rep_good xtopology dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm dca sse4_1 sse4_2 popcnt aes lahf_lm arat dts tpr_shadow vnmi flexpriority ept vpid
2)安装所需软件
通过yum源安装虚拟化软件与管理工具相关的3组软件包
[root@project ~]# yum groupinstall "Virtualization Client" "Virtualization Platform" "Virtualization Tools"
启动libvirt服务
[root@project ~]# /etc/init.d/libvirtd restart
Stopping libvirtd daemon: [ OK ]
Starting libvirtd daemon: [ OK ]
安装网桥管理工具
[root@project ~]# yum install bridge-utils tunctl -y
3)添加桥接网络(Bridge)
新建网桥br0配置文件,将网卡em1加入网桥br0
[root@project ~]# cd /etc/sysconfig/network-scripts [root@project network-scripts]# vim ifcfg-br0 DEVICE=br0 ONBOOT=yes BOOTPROTO=static IPADDR=10.10.100.30 NETMASK=255.255.255.0 GATEWAY=10.10.100.254 TYPE=Bridge [root@project network-scripts]# vim ifcfg-em1 DEVICE="em1" ONBOOT="yes" BRIDGE=br0 |
重启服务器网络服务,查看网桥br0
br0 Link encap:Ethernet HWaddr 90:B1:1C:0D:80:14 inet addr:10.10.100.30 Bcast:10.10.100.255 Mask:255.255.255.0 inet6 addr: fe80::92b1:1cff:fe0d:8014/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:584 errors:0 dropped:0 overruns:0 frame:0 TX packets:458 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:43198 (42.1 KiB) TX bytes:53755 (52.4 KiB) em1 Link encap:Ethernet HWaddr 90:B1:1C:0D:80:14 inet6 addr: fe80::92b1:1cff:fe0d:8014/64 Scope:Link UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1 RX packets:602 errors:0 dropped:0 overruns:0 frame:0 TX packets:435 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:55634 (54.3 KiB) TX bytes:52012 (50.7 KiB) Interrupt:36 Memory:da000000-da012800 |