首页 理论教育 基本概念与用例—私有云架构设计

基本概念与用例—私有云架构设计

时间:2023-10-28 理论教育 版权反馈
【摘要】:管理路径1中的虚拟化服务代理与管理节点通信,它直接调用本地libvirt实例,管理路径2(2’)的管理节点分别连接虚拟化服务代理和libvirt实例,协调两者共同提供集群服务。图4-12管理节点与计算节点的管理模型2.使用示例主流的Linux发型版中都有libvirt套件,包括服务端、驱动插件以及各种语言的扩展库。

基本概念与用例—私有云架构设计

1.概念介绍

Libvirt主要是由C语言编写,也提供Python、Java等语言的扩展,目前支持的hypervisor与容器有QEMU/KVM、Xen、VirtualBox、VMWare(ESXi、GSX、Workstation、Player)、IBM PowerVM、Bhyve、Virtuozzo、LXC、OpenVZ、用户态Linux等,本书成文时它对Docker尚不提供官方支持。

Libvirt对计算模型有自己的描述方法,如图4-11所示。

□节点(Node):服务器。

□驱动(Driver):服务器上的虚拟化或者容器服务软件抽象层。

□域(Domain):通过驱动提供支持而运行于服务器上的实例,可以是一台虚拟机或者容器化的子文件系统。

图4-11 libvirt的计算模型定义

相关链接

关于libvirt驱动与hypervisor的特别声明

Libvirt的驱动包括hypervisor和容器两种,但由于现阶段的私有云容器服务实现中很少有用到libvirt进行域管理的,所以本书为了描述上的统一,除非特别说明,否则“libvirt驱动”在含义上等同于“hypervisor”。

□有了这些关键字以后,我们可以将libvirt功能定义为“可远程并安全地管理节点和域的中间层API”。在驱动本身的支持下,libvirt可以提供的域管理功能包括置备、创建、修改、监视、迁移、终止等,也可对节点的CPU、网络、存储等资源进行管理。

□我们可将libvirt的特性归结成以下几点:

□libvirt提供的API均可被本地节点调用,或者通过加密方式被远程调用;

□大多数API对于主流操作系统和支持的hypervisor都是通用的,小部分API需特定环境支持。

□针对域的管理,其API会提供必需的管理操作。

□API不提供高层次的虚拟化管理策略(比如负载均衡、集群管理),但是可通过API组合实现这些策略。

□尽管各种hypervisor的API会经常变化,但libvirt会将其进行抽象,从而提供稳定的API。

□libvirt也会提供节点资源的管理与监控。

至此我们已经了解到libvirt是一个运行于hypervisor服务器、提供API的服务进程,那么从架构的角度来说,我们就有两种局部管理路径可供选择,分别是虚拟化服务代理调用远程libvirt实例以及虚拟化服务代理直接调用本地libvirt实例,如图4-12所示。管理路径1中的虚拟化服务代理与管理节点通信,它直接调用本地libvirt实例,管理路径2(2’)的管理节点分别连接虚拟化服务代理和libvirt实例,协调两者共同提供集群服务。一般情况下管理路径1的使用较多,因为它相对2(2’)来说能够适当减少管理节点的负担,从而使架构显得较为清晰、整洁。

图4-12 管理节点与计算节点的管理模型

2.使用示例(www.xing528.com)

主流的Linux发型版中都有libvirt套件,包括服务端、驱动插件(hypervisor插件、容器插件、资源管理插件)以及各种语言的扩展库。我们以CentOS 7为例,介绍libvirt的详细配置与注意事项。

我们首先在系统中安装libvirt服务端与客户端,查看其目录结构与经常用到的配置。

查看主服务端libvirt-daemon的包内容。

查看客户端libvirt-client的包内容,篇幅原因隐藏了部分内容。

在安装了hypervisor插件libvirt-daemon-driver-qemu及其依赖的资源管理插件(包括节点、网络、存储等)后,我们才可以在libvirt中进行域的管理,详细配置文件如下所示。

服务相关的配置文件主要有libvirtd.conf、qemu.conf和qemu-lockd.conf,接下来我们将对其进行详细介绍。

libvirtd.conf的选项可分为服务监听、服务连接调度、UNIX套接字属性、认证、授权、证书、日志、审计、主机UUID、KeepAlive设置,主要作用如表4-1。

表4-1 libvirtd.conf设置

续表

qemu.conf的选项可分为远程协议、安全驱动、cgroup控制、内存dump、QEMU进程属性、锁机制后端、KeepAlive、迁移、NVRAM等,如表4-2。这些参数目的多是控制QEMU进程的行为,有的会直接体现到QEMU的启动参数中。

表4-2 qemu.conf设置

qemu-lockd.conf是使用virtlockd后端时的配置文件(sanlock对应qemu-sanlock.conf),主要内容包括两部分,即锁控制方式(自动、手动)和锁类型(基于共享文件、基于逻辑卷管理、基于SCSI卷)。其中,锁控制方式中两者必须且只能选择一个;一般情况下在同一个集群中选择同一种锁类型,这样也会避免异种锁同步延迟的现象。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈