创建容错的 IT 基础架构。 第 2 部分:安装和配置 oVirt 4.3 集群

这篇文章是上一篇文章的延续——》创建容错 IT 基础架构。 第 1 部分 - 准备部署 oVirt 4.3 集群“。

它将涵盖用于托管高可用虚拟机的 oVirt 4.3 集群的基本安装和配置过程,同时考虑到之前已经完成了准备基础设施的所有初步步骤。

前驱症状

本文的主要目的是提供分步说明,例如“下一页 -> Yes -> 完成“如何在安装和配置时显示一些功能。 由于基础设施和环境的特征,部署集群的过程可能并不总是与其中描述的过程一致,但一般原则是相同的。

从主观角度来说, oVirt 4.3 其功能与VMware vSphere 5.x版类似,但当然具有自己的配置和操作功能。

对于那些感兴趣的人,RHEV(又名 oVirt)和 VMware vSphere 之间的所有差异都可以在 Internet 上找到,例如 这里,但随着文章的进展,我仍然偶尔会注意到它们之间的一些差异或相似之处。

另外,我想对虚拟机网络的工作进行一些比较。 oVirt 对虚拟机(以下简称 VM)实现了类似的网络管理原理,与 VMware vSphere 中一样:

  • 使用标准 Linux 桥(在 VMware 中 - 标准vSwitch),运行在虚拟化主机上;
  • 使用 Open vSwitch (OVS)(在 VMware 中 - 分布式虚拟交换机)是一个分布式虚拟交换机,由两个主要组件组成:中央 OVN 服务器和托管主机上的 OVN 控制器。

需要注意的是,由于易于实施,本文将介绍如何使用标准 Linux 桥接器在 oVirt 中为 VM 设置网络,这是使用 KVM 虚拟机管理程序时的标准选择。

在这方面,在集群中使用网络有几个基本规则,最好不要违反:

  • 将主机添加到 oVirt 之前,主机上的所有网络设置必须相同(IP 地址除外)。
  • 一旦主机处于 oVirt 的控制之下,强烈建议您不要在对您的操作没有完全信心的情况下手动更改网络设置中的任何内容,因为 oVirt 代理会在重新启动主机后将它们简单地回滚到之前的设置或代理人。
  • 为虚拟机添加新网络以及使用它只能从 oVirt 管理控制台完成。

多一个 重要的提示 - 对于非常关键的环境(对金钱损失非常敏感),仍然建议使用付费支持并使用 红帽虚拟化 4.3。 oVirt集群运行过程中,可能会出现一些问题,建议尽快寻求合格的帮助,而不是自行处理。

最后 建议 在部署 oVirt 集群之前,请先熟悉一下 官方文件,以便至少了解基本概念和定义,否则阅读文章的其余部分会有点困难。

这些指导文档是理解本文和 oVirt 集群运行原理的基础:

里面的内容不是很大,一两个小时就可以完全掌握基本原理,但是喜欢细节的还是建议看一下 红帽虚拟化 4.3 产品文档 — RHEV 和 oVirt 本质上是同一件事。

那么,如果主机、交换机和存储系统的基本设置都完成了,我们就直接进行oVirt的部署。

第 2 部分:安装和配置 oVirt 4.3 集群

为了便于理解,我将本文的主要部分列出来,必须一一完成:

  1. 安装oVirt管理服务器
  2. 创建新的数据中心
  3. 创建新集群
  4. 在自托管环境中安装附加主机
  5. 创建存储区域或存储域
  6. 为虚拟机创建和配置网络
  7. 创建用于部署虚拟机的安装映像
  8. 创建虚拟机

安装oVirt管理服务器

oVirt管理服务器 - 这是 oVirt 基础架构中最重要的元素,以虚拟机、主机或虚拟设备的形式管理整个 oVirt 基础架构。

它与虚拟化领域的相似之处是:

  • VMware vSphere - vCenter 服务器
  • Microsoft Hyper-V - 系统中心虚拟机管理器 (VMM)。

要安装oVirt管理服务器,我们有两种选择:

选项1
以专用虚拟机或主机的形式部署服务器。

这个选项效果很好,但前提是这样的虚拟机独立于集群运行,即不像运行 KVM 的常规虚拟机那样在任何集群主机上运行。

为什么这样的虚拟机不能部署在集群主机上呢?

在部署oVirt管理服务器的过程的一开始,我们遇到了一个困境 - 我们需要安装一个管理虚拟机,但实际上还没有集群本身,因此我们可以立即想出什么办法呢? 没错——在未来的集群节点上安装 KVM,然后在上面创建一个虚拟机,例如使用 CentOS 操作系统,并在其中部署 oVirt 引擎。 通常可以出于完全控制此类虚拟机的原因来完成此操作,但这是一个错误的意图,因为在这种情况下,将来此类控制虚拟机将 100% 出现问题:

  • 无法在oVirt控制台中在集群的主机(节点)之间进行迁移;
  • 当使用 KVM 迁移时 虚拟迁移,该虚拟机将无法从 oVirt 控制台进行管理。
  • 集群主机无法显示 维护模式 (维护模式),如果您使用以下命令将此虚拟机从一个主机迁移到另一个主机 虚拟迁移.

因此,请按照规则进行所有操作 - 对 oVirt 管理服务器使用单独的主机,或者在其上运行独立的虚拟机,或者更好的是,按照第二个选项中的说明进行操作。

选项2
在其管理的集群主机上安装 oVirt Engine Appliance。

我们将进一步认为这个选项更正确、更适合我们的情况。
下面描述了此类 VM 的要求;我仅补充一点,建议基础架构中至少有两台可以运行控制 VM 的主机,以使其具有容错能力。 在这里我想补充一点,正如我在上一篇文章的评论中已经写过的那样,我始终无法得到 裂脑 在由两台主机组成的 oVirt 集群上,能够在它们上运行托管引擎虚拟机。

在集群的第一台主机上安装 oVirt Engine Appliance

官方文档链接 - oVirt 自托管引擎指南, 章节 ”使用命令行部署自承载引擎»

该文档指定了部署托管引擎虚拟机之前必须满足的先决条件,并且还详细描述了安装过程本身,因此逐字重复的意义不大,因此我们将重点关注一些重要的细节。

  • 在开始所有操作之前,请务必在主机的 BIOS 设置中启用虚拟化支持。
  • 在主机上安装托管引擎安装程序包:

yum -y install http://resources.ovirt.org/pub/yum-repo/ovirt-release43.rpm 
yum -y install epel-release
yum install screen ovirt-hosted-engine-setup

  • 我们在主机上的屏幕中启动部署 oVirt Hosted Engine 的过程(您可以通过 Ctrl-A + D 退出,通过 Ctrl-D 关闭):

screen
hosted-engine --deploy

如果您愿意,可以使用预先准备好的应答文件运行安装:

hosted-engine --deploy --config-append=/var/lib/ovirt-hosted-engine-setup/answers/answers-ohe.conf

  • 部署托管引擎时,我们指定所有必要的参数:

- имя кластера
- количество vCPU и vRAM (рекомендуется 4 vCPU и 16 Гб)
- пароли
- тип хранилища для hosted engine ВМ – в нашем случае FC
- номер LUN для установки hosted engine
- где будет находиться база данных для hosted engine – рекомендую для простоты выбрать Local (это БД PostgreSQL работающая внутри этой ВМ)
и др. параметры. 

  • 为了安装具有托管引擎的高可用虚拟机,我们之前在存储系统上创建了一个特殊的 LUN,编号为 4,大小为 150 GB,然后将其提供给集群主机 - 请参阅 以前的文章.

之前我们还检查了它在主机上的可见性:

multipath -ll
…
3600a098000e4b4b3000003c95d171065 dm-3 DELL    , MD38xxf
size=150G features='3 queue_if_no_path pg_init_retries 50' hwhandler='1 rdac' wp=rw
|-+- policy='service-time 0' prio=14 status=active
| `- 15:0:0:4  sdc 8:32  active ready running
`-+- policy='service-time 0' prio=9 status=enabled
  `- 18:0:0:4  sdj 8:144 active ready running

  • 托管引擎部署过程本身并不复杂;最后我们应该收到如下内容:

[ INFO  ] Generating answer file '/var/lib/ovirt-hosted-engine-setup/answers/answers-20191129131846.conf'
[ INFO  ] Generating answer file '/etc/ovirt-hosted-engine/answers.conf'
[ INFO  ] Stage: Pre-termination
[ INFO  ] Stage: Termination
[ INFO  ] Hosted Engine successfully deployed

我们检查主机上是否存在 oVirt 服务:

创建容错的 IT 基础架构。 第 2 部分:安装和配置 oVirt 4.3 集群

如果一切正确,则安装完成后,使用网络浏览器访问 https://ovirt_hostname/ovirt-engine 从管理员的计算机上,然后单击 [管理门户].

“管理门户”截图

创建容错的 IT 基础架构。 第 2 部分:安装和配置 oVirt 4.3 集群

通过在窗口中输入登录名和密码(在安装过程中设置)(如屏幕截图所示),我们将进入 Open Virtualization Manager 控制面板,您可以在其中对虚拟基础架构执行所有操作:

  1. 添加数据中心
  2. 添加并配置集群
  3. 添加和管理主机
  4. 为虚拟机磁盘添加存储区域或存储域
  5. 为虚拟机添加和配置网络
  6. 添加和管理虚拟机、安装映像、VM 模板

创建容错的 IT 基础架构。 第 2 部分:安装和配置 oVirt 4.3 集群

所有这些行动都将进一步讨论,其中一些在大型单元中进行,另一些则更详细且有细微差别。
但首先我建议阅读这个附加组件,它可能对许多人有用。

增加

1) 原则上,如果有这样的需求,那么没有什么可以阻止您使用软件包在集群节点上提前安装 KVM hypervisor libvirt的 и qemu-kvmqemu-kvm-ev)所需版本,尽管在部署 oVirt 集群节点时,它可以自行执行此操作。

但如果 libvirt的 и qemu-kvm 如果您尚未安装最新版本,则在部署托管引擎时可能会收到以下错误:

error: unsupported configuration: unknown CPU feature: md-clear

那些。 一定有 更新后的版本 libvirt的 具有保护 MDS,支持该政策:

<feature policy='require' name='md-clear'/>

安装 libvirt v.4.5.0-10.el7_6.12,并支持 md-clear:

yum-config-manager --disable mirror.centos.org_centos-7_7_virt_x86_64_libvirt-latest_

yum install centos-release-qemu-ev
yum update
yum install qemu-kvm qemu-img virt-manager libvirt libvirt-python libvirt-client virt-install virt-viewer libguestfs libguestfs-tools dejavu-lgc-sans-fonts virt-top libvirt libvirt-python libvirt-client

systemctl enable libvirtd
systemctl restart libvirtd && systemctl status libvirtd

检查“md-clear”支持:

virsh domcapabilities kvm | grep require
      <feature policy='require' name='ss'/>
      <feature policy='require' name='hypervisor'/>
      <feature policy='require' name='tsc_adjust'/>
      <feature policy='require' name='clflushopt'/>
      <feature policy='require' name='pku'/>
      <feature policy='require' name='md-clear'/>
      <feature policy='require' name='stibp'/>
      <feature policy='require' name='ssbd'/>
      <feature policy='require' name='invtsc'/>

之后,您可以继续安装托管引擎。

2) 在 oVirt 4.3 中,防火墙的存在和使用 firewalld 是强制性要求。

如果在部署托管引擎的虚拟机期间我们收到以下错误:

[ ERROR ] fatal: [localhost]: FAILED! => {"changed": false, "msg": "firewalld is required to be enabled and active in order to correctly deploy hosted-engine. Please check, fix accordingly and re-deploy.n"}
[ ERROR ] Failed to execute stage 'Closing up': Failed executing ansible-playbook
[https://bugzilla.redhat.com/show_bug.cgi?id=1608467

然后你需要关闭另一个防火墙(如果使用的话),并安装并运行 firewalld:

yum install firewalld
systemctl enable firewalld
systemctl start firewalld

firewall-cmd --state
firewall-cmd --get-default-zone
firewall-cmd --get-active-zones
firewall-cmd --get-zones

稍后,在集群的新主机上安装 ovirt 代理时,它将配置所需的端口 firewalld 自动。

3) 重新启动其上运行有托管引擎的虚拟机的主机。

像往常一样 1链接 и 2链接 到管理文件。

托管引擎虚拟机的所有管理仅使用命令完成 托管引擎 在运行它的主机上,大约 维尔什 我们必须忘记,您可以通过 SSH 连接到该虚拟机并运行命令“关闭“。

将虚拟机置于维护模式的过程:

hosted-engine --set-maintenance --mode=global

hosted-engine --vm-status
!! Cluster is in GLOBAL MAINTENANCE mode !!
--== Host host1.test.local (id: 1) status ==--
conf_on_shared_storage             : True
Status up-to-date                  : True
Hostname                           : host1.test.local
Host ID                            : 1
Engine status                      : {"health": "good", "vm": "up", "detail": "Up"}
Score                              : 3400
stopped                            : False
Local maintenance                  : False
crc32                              : dee1a774
local_conf_timestamp               : 1821
Host timestamp                     : 1821
Extra metadata (valid at timestamp):
        metadata_parse_version=1
        metadata_feature_version=1
        timestamp=1821 (Sat Nov 29 14:25:19 2019)
        host-id=1
        score=3400
        vm_conf_refresh_time=1821 (Sat Nov 29 14:25:19 2019)
        conf_on_shared_storage=True
        maintenance=False
        state=GlobalMaintenance
        stopped=False

hosted-engine --vm-shutdown

我们使用托管引擎代理重新启动主机并使用它执行我们需要的操作。

重新启动后,使用托管引擎检查 VM 的状态:

hosted-engine --vm-status

如果我们的带有托管引擎的虚拟机无法启动并且我们在服务日志中看到类似的错误:

服务日志中出现错误:

journalctl -u ovirt-ha-agent
...
Jun 29 14:34:44 host1 journal: ovirt-ha-agent ovirt_hosted_engine_ha.agent.hosted_engine.HostedEngine ERROR Failed to start necessary monitors
Jun 29 14:34:44 host1 journal: ovirt-ha-agent ovirt_hosted_engine_ha.agent.agent.Agent ERROR Traceback (most recent call last):#012  File "/usr/lib/python2.7/site-packages/ovirt_hosted_engine_ha/agent/agent.py", line 131, in _run_agent#012    return action(he)#012  File "/usr/lib/python2.7/site-packages/ovirt_hosted_engine_ha/agent/agent.py", line 55, in action_proper#012    return he.start_monitoring()#012  File "/usr/lib/python2.7/site-packages/ovirt_hosted_engine_ha/agent/hosted_engine.py", line 413, in start_monitoring#012    self._initialize_broker()#012  File "/usr/lib/python2.7/site-packages/ovirt_hosted_engine_ha/agent/hosted_engine.py", line 537, in _initialize_broker#012    m.get('options', {}))#012  File "/usr/lib/python2.7/site-packages/ovirt_hosted_engine_ha/lib/brokerlink.py", line 86, in start_monitor#012    ).format(t=type, o=options, e=e)#012RequestError: brokerlink - failed to start monitor via ovirt-ha-broker: [Errno 2] No such file or directory, [monitor: 'ping', options: {'addr': '172.20.32.32'}]
Jun 29 14:34:44 host1 journal: ovirt-ha-agent ovirt_hosted_engine_ha.agent.agent.Agent ERROR Trying to restart agent

然后我们连接存储并重新启动代理:

hosted-engine --connect-storage
systemctl restart ovirt-ha-agent
systemctl status ovirt-ha-agent

hosted-engine --vm-start
hosted-engine --vm-status

使用托管引擎启动虚拟机后,我们将其退出维护模式:

将虚拟机从维护模式中删除的过程:

hosted-engine --check-liveliness
hosted-engine --set-maintenance --mode=none
hosted-engine --vm-status

--== Host host1.test.local (id: 1) status ==--

conf_on_shared_storage             : True
Status up-to-date                  : True
Hostname                           : host1.test.local
Host ID                            : 1
Engine status                      : {"health": "good", "vm": "up", "detail": "Up"}
Score                              : 3400
stopped                            : False
Local maintenance                  : False
crc32                              : 6d1eb25f
local_conf_timestamp               : 6222296
Host timestamp                     : 6222296
Extra metadata (valid at timestamp):
        metadata_parse_version=1
        metadata_feature_version=1
        timestamp=6222296 (Fri Jan 17 11:40:43 2020)
        host-id=1
        score=3400
        vm_conf_refresh_time=6222296 (Fri Jan 17 11:40:43 2020)
        conf_on_shared_storage=True
        maintenance=False
        state=EngineUp
        stopped=False

4) 删除托管引擎以及与之相关的所有内容。

有时需要正确删除以前安装的托管引擎 - 链接 至指导文件。

只需在主机上运行命令:

/usr/sbin/ovirt-hosted-engine-cleanup

接下来,我们删除不必要的包,如有必要,在此之前备份一些配置:

yum autoremove ovirt* qemu* virt* libvirt* libguestfs 

创建新的数据中心

参考文档 - oVirt 管理指南。 第 4 章:数据中心

首先我们来定义它是什么 数据中心 (我引用自帮助)是一个逻辑实体,它定义了在特定环境中使用的一组资源。

数据中心是一种容器,由以下部分组成:

  • 集群和主机形式的逻辑资源
  • 主机上逻辑网络和物理适配器形式的集群网络资源,
  • 存储区域(存储域)形式的存储资源(用于 VM 磁盘、模板、映像)。

数据中心可以包括多个由多个主机组成的集群,这些主机上运行虚拟机,并且还可以有多个与其关联的存储区域。
可以有多个数据中心;它们彼此独立运行。 Ovirt 按角色划分权力,您可以在数据中心级别及其各个逻辑元素上单独配置权限。

数据中心或多个数据中心(如果有多个数据中心)通过单个管理控制台或门户进行管理。

要创建数据中心,请转到管理门户并创建新的数据中心:
计算 >> 数据中心 >> 全新

由于我们在存储系统上使用共享存储,因此存储类型应该是共享的:

数据中心创建向导的屏幕截图

创建容错的 IT 基础架构。 第 2 部分:安装和配置 oVirt 4.3 集群

安装带有hosted-engine的虚拟机时,默认创建一个数据中心 - 数据中心1,然后,如有必要,您可以将其存储类型更改为其他类型。

创建数据中心是一项简单的任务,没有任何棘手的细微差别,文档中描述了与之相关的所有其他操作。 我唯一要注意的是,仅具有用于虚拟机的本地存储(磁盘)的单个主机将无法进入存储类型为共享的数据中心(它们无法添加到那里),并且您需要为它们创建一个单独的数据中心 - 即每台具有本地存储的主机都需要自己独立的数据中心。

创建新集群

文档链接 - oVirt 管理指南。 第 5 章:集群

没有不必要的细节, – 这是具有公共存储区域的主机的逻辑分组(以存储系统上的共享磁盘的形式,如我们的例子)。 还希望集群中的主机具有相同的硬件并具有相同类型的处理器(Intel 或 AMD)。 当然,集群中的服务器最好是完全相同的。

集群是数据中心的一部分(具有特定类型的存储 - 本地品牌 или 共享),并且所有主机必须属于某种集群,具体取决于它们是否具有共享存储。

在主机上安装带有托管引擎的虚拟机时,默认创建一个数据中心 - 数据中心1,与簇一起 – 集群1,将来您可以配置其参数、启用其他选项、​​向其添加主机等。

与往常一样,有关所有集群设置的详细信息,建议参阅官方文档。 关于设置集群的一些功能,我只补充一点,创建集群时,只需在选项卡上配置基本参数即可 其他咨询.

我会记下最重要的参数:

  • 处理器类型 - 根据集群主机上安装的处理器、它们来自哪个制造商以及主机上的哪个处理器是最旧的来选择,因此,根据此,使用集群中的所有可用处理器指令。
  • 开关类型 – 在我们的集群中,我们只使用 Linux 桥接器,这就是我们选择它的原因。
  • 防火墙类型 – 这里一切都清楚了,这是firewalld,必须在主机上启用和配置。

带有集群参数的屏幕截图

创建容错的 IT 基础架构。 第 2 部分:安装和配置 oVirt 4.3 集群

在自托管环境中安装附加主机

链接 用于文档。

自托管环境的其他主机的添加方式与常规主机相同,但还需要部署具有托管引擎的虚拟机 - 选择托管引擎部署操作 >> 部署。 由于附加主机还必须提供用于具有托管引擎的 VM 的 LUN,这意味着该主机可以在必要时用于托管其上具有托管引擎的 VM。
出于容错目的,强烈建议至少有两台主机可以放置托管引擎虚拟机。

在附加主机上,禁用 iptables(如果已启用),启用firewalld

systemctl stop iptables
systemctl disable iptables

systemctl enable firewalld
systemctl start firewalld

安装所需的 KVM 版本(如有必要):

yum-config-manager --disable mirror.centos.org_centos-7_7_virt_x86_64_libvirt-latest_

yum install centos-release-qemu-ev
yum update
yum install qemu-kvm qemu-img virt-manager libvirt libvirt-python libvirt-client virt-install virt-viewer libguestfs libguestfs-tools dejavu-lgc-sans-fonts virt-top libvirt libvirt-python libvirt-client

systemctl enable libvirtd
systemctl restart libvirtd && systemctl status libvirtd

virsh domcapabilities kvm | grep md-clear

安装必要的存储库和托管引擎安装程序:

yum -y install http://resources.ovirt.org/pub/yum-repo/ovirt-release43.rpm
yum -y install epel-release
yum update
yum install screen ovirt-hosted-engine-setup

接下来,进入控制台 打开虚拟化管理器,添加一个新主机,然后一步步做所有事情,如中所写 文件资料.

因此,在添加额外的主机后,我们应该在管理控制台中看到类似图片的内容,如屏幕截图所示。

管理门户 - 主机的屏幕截图

创建容错的 IT 基础架构。 第 2 部分:安装和配置 oVirt 4.3 集群

托管引擎虚拟机当前处于活动状态的主机有一顶金冠,并刻有“运行托管引擎虚拟机“,如有必要,可以在其上启动该虚拟机的主机 - 铭文“可以运行托管引擎VM“。

如果主机出现故障,则“运行托管引擎虚拟机",它将在第二台主机上自动重新启动。 该虚拟机也可以从主用主机迁移到备用主机进行维护。

在 oVirt 主机上设置电源管理/防护

文档链接:

虽然看起来您已经完成了主机的添加和配置,但事实并非如此。
为了使主机正常运行,并识别/解决其中任何主机的故障,需要电源管理/防护设置。

击剑隔离(fencing)是从集群中暂时排除有故障或失效的主机的过程,在此期间,主机上的 oVirt 服务或主机本身都会重新启动。

像往常一样,文档中给出了有关电源管理/防护的定义和参数的所有详细信息;我将仅举例说明如何配置此重要参数,如应用于配备 iDRAC 640 的 Dell R9 服务器。

  1. 转到管理门户,单击 计算 >> 主机 选择一个主机。
  2. 请点击 编辑.
  3. 单击选项卡 电源管理.
  4. 选中该选项旁边的框 启用电源管理.
  5. 选中该选项旁边的框 Kdump 集成以防止主机在记录内核故障转储时进入防护模式。

注。

在已运行的主机上启用 Kdump 集成后,必须按照 oVirt Administration Guide -> 中的步骤重新安装它 第 7 章:主机 -> 重新安装主机。

  1. 或者,您可以选中该框 禁用电源管理的策略控制,如果我们不希望主机电源管理由集群的调度策略控制。
  2. 单击按钮(+)要添加新的电源管理设备,将打开代理属性编辑窗口。
    对于 iDRAC9,请填写字段:

    • 地址 – iDRAC9 地址
    • 用户名密码 – 分别用于登录 iDRAC9 的登录名和密码
    • Type —drac5
    • 标记 安全
    • 添加以下选项: cmd_prompt=>,login_timeout=30

主机属性中包含“电源管理”参数的屏幕截图

创建容错的 IT 基础架构。 第 2 部分:安装和配置 oVirt 4.3 集群

创建存储区域或存储域

文档链接 - oVirt 管理指南, 第 8 章:存储.

存储域或存储区域,是存储虚拟机磁盘、安装映像、模板和快照的集中位置。

存储区域可以使用各种协议、集群和网络文件系统连接到数据中心。

oVirt 有三种类型的存储区域:

  • 数据域 – 存储与虚拟机相关的所有数据(磁盘、模板)。 Data Domain 不能在不同数据中心之间共享。
  • ISO域 (过时的存储区域类型) – 用于存储操作系统安装映像。 ISO Domain可以在不同数据中心之间共享。
  • 导出域名 (过时的存储区域类型)——用于临时存储在数据中心之间移动的图像。

在我们的特定案例中,Data Domain 类型的存储区域使用光纤通道协议 (FCP) 连接到存储系统上的 LUN。

从oVirt的角度来看,当使用存储系统(FC或iSCSI)时,每个虚拟磁盘、快照或模板都是一个逻辑磁盘。
块设备使用卷组组装成单个单元(在集群主机上),然后使用 LVM 划分为逻辑卷,这些逻辑卷用作 VM 的虚拟磁盘。

使用以下命令可以在集群主机上看到所有这些组和许多 LVM 卷 vgs и LVS。 当然,除特殊情况外,此类磁盘的所有操作都只能从 oVirt 控制台完成。

VM 的虚拟磁盘可以有两种类型 - QCOW2 或 RAW。 光盘可能是“薄的“或者”厚的“。快照始终创建为“".

管理存储域或通过 FC 访问的存储区域的方式非常合乎逻辑 - 对于每个 VM 虚拟磁盘,都有一个单独的逻辑卷,只能由一台主机写入。 对于 FC 连接,oVirt 使用集群 LVM 之类的东西。

位于同一存储区域的虚拟机可以在属于同一集群的主机之间迁移。

从描述中我们可以看出,oVirt 中的集群与 VMware vSphere 或 Hyper-V 中的集群本质上是同一件事——它是主机的逻辑分组,最好在硬件组成上相同,并且具有用于虚拟化的公共存储。机器磁盘。

让我们直接创建数据存储区域(VM 磁盘),因为没有它,数据中心将无法初始化。
让我提醒您,存储系统上提供给集群主机的所有 LUN 必须在使用命令“的情况下在它们上可见”多路径 -ll“。

根据 文件资料, 转至门户 转至 存储 >> 域名 -> 新域 并按照“添加 FCP 存储”部分的说明进行操作。

启动向导后,填写必填字段:

  • 名字 — 设置集群名称
  • 域函数 -数据
  • 存储类型 — 光纤通道
  • 主机使用 — 选择我们需要的 LUN 可用的主机

在LUN列表中,标记我们需要的LUN,单击 地址 然后 。 如有必要,您可以通过单击 来调整存储区域的其他参数 进阶参数.

添加“存储域”向导截图

创建容错的 IT 基础架构。 第 2 部分:安装和配置 oVirt 4.3 集群

根据向导的结果,我们应该收到一个新的存储区域,并且我们的数据中心应该移动到状态 UP,或初始化:

数据中心及其存储区域的屏幕截图:

创建容错的 IT 基础架构。 第 2 部分:安装和配置 oVirt 4.3 集群

创建容错的 IT 基础架构。 第 2 部分:安装和配置 oVirt 4.3 集群

为虚拟机创建和配置网络

文档链接 - oVirt 管理指南, 第 6 章:逻辑网络

网络或网络用于对 oVirt 虚拟基础架构中使用的逻辑网络进行分组。

为了在虚拟机上的网络适配器和主机上的物理适配器之间进行交互,需要使用Linux桥等逻辑接口。

为了对网络之间的流量进行分组和划分,需要在交换机上配置 VLAN。

在oVirt中为虚拟机创建逻辑网络时,必须为其分配与交换机上的VLAN号相对应的标识符,以便虚拟机可以相互通信,即使它们运行在集群的不同节点上。

主机上用于连接虚拟机的网络适配器的初步设置必须在 以前的文章 – 配置逻辑接口 bondxnumx,那么所有网络设置只能通过 oVirt 管理门户进行。

创建带有hosted-engine的VM后,除了自动创建数据中心和集群之外,还自动创建了逻辑网络来管理我们的集群 - 奥夫里特姆特,该虚拟机已连接到该虚拟机。

如有必要,您可以查看逻辑网络设置 奥夫里特姆特 并调整它们,但您必须小心,不要失去对 oVirt 基础设施的控制。

逻辑网络设置 ovritmgmt

创建容错的 IT 基础架构。 第 2 部分:安装和配置 oVirt 4.3 集群

要为常规虚拟机创建新的逻辑网络,请在管理门户中转至 商业网络 >> 网络 >> 全新,然后在选项卡上 其他咨询 添加具有所需 VLAN ID 的网络,并选中“虚拟机网络”,这意味着它可以用于分配给虚拟机。

新 VLAN32 逻辑网络的屏幕截图

创建容错的 IT 基础架构。 第 2 部分:安装和配置 oVirt 4.3 集群

标签 ,我们将此网络附加到我们的集群 集群1.

之后我们去 计算 >> 主机,依次进入每个主机,进入选项卡 网络接口,然后启动向导 设置主机网络,绑定到新逻辑网络的主机。

“设置主机网络”向导的屏幕截图

创建容错的 IT 基础架构。 第 2 部分:安装和配置 oVirt 4.3 集群

oVirt 代理将自动在主机上进行所有必要的网络设置 - 创建 VLAN 和桥接。

主机上新网络的配置文件示例:

cat ifcfg-bond1
# Generated by VDSM version 4.30.17.1
DEVICE=bond1
BONDING_OPTS='mode=1 miimon=100'
MACADDR=00:50:56:82:57:52
ONBOOT=yes
MTU=1500
DEFROUTE=no
NM_CONTROLLED=no
IPV6INIT=no

cat ifcfg-bond1.432
# Generated by VDSM version 4.30.17.1
DEVICE=bond1.432
VLAN=yes
BRIDGE=ovirtvm-vlan432
ONBOOT=yes
MTU=1500
DEFROUTE=no
NM_CONTROLLED=no
IPV6INIT=no

cat ifcfg-ovirtvm-vlan432
# Generated by VDSM version 4.30.17.1
DEVICE=ovirtvm-vlan432
TYPE=Bridge
DELAY=0
STP=off
ONBOOT=yes
MTU=1500
DEFROUTE=no
NM_CONTROLLED=no
IPV6INIT=no

再次提醒大家,在集群主机上 不需要 提前手动创建网络接口 ifcfg-bond1.432 и ifcfg-ovirtvm-vlan432.

添加逻辑网络并检查主机与托管引擎VM之间的连接后,即可在虚拟机中使用。

创建用于部署虚拟机的安装映像

文档链接 - oVirt 管理指南, 第 8 章:存储,将图像上传到数据存储域部分。

如果没有操作系统安装映像,则无法安装虚拟机,但这当然不是问题,例如安装在网络上 皮匠 与预先创建的图像。

在我们的例子中,这是不可能的,因此您必须自己将此映像导入到 oVirt 中。 以前,这需要创建一个 ISO 域,但在新版本的 oVirt 中,它已被弃用,因此您现在可以从管理门户将图像直接上传到存储域。

在管理门户中,转到 存储 >> 磁盘 >> 上传 >> Start 开始
我们将操作系统映像添加为 ISO 文件,填写表单中的所有字段,然后单击按钮“测试连接".

添加安装映像向导的屏幕截图

创建容错的 IT 基础架构。 第 2 部分:安装和配置 oVirt 4.3 集群

如果我们收到这样的错误:

Unable to upload image to disk d6d8fd10-c1e0-4f2d-af15-90f8e636dadc due to a network error. Ensure that ovirt-imageio-proxy service is installed and configured and that ovirt-engine's CA certificate is registered as a trusted CA in the browser. The certificate can be fetched from https://ovirt.test.local/ovirt-engine/services/pki-resource?resource=ca-certificate&format=X509-PEM-CA`

然后您需要将oVirt证书添加到“受信任的根 CA“(受信任的根 CA)在管理员的控制台上,我们尝试从那里下载映像。

将证书添加到受信任的根CA后,再次单击“测试连接“, 应得:

Connection to ovirt-imageio-proxy was successful.

完成添加证书的操作后,您可以尝试再次将 ISO 映像上传到存储域。

原则上,您可以使用数据类型创建一个单独的存储域,以将图像和模板与虚拟机磁盘分开存储,甚至将它们存储在托管引擎的存储域中,但这由管理员决定。

托管引擎存储域中 ISO 映像的屏幕截图

创建容错的 IT 基础架构。 第 2 部分:安装和配置 oVirt 4.3 集群

创建虚拟机

文档链接:
oVirt 虚拟机管理指南 –> 第 2 章:安装 Linux 虚拟机
控制台客户端资源

将带有操作系统的安装映像加载到oVirt中后,您可以直接继续创建虚拟机。 已经做了很多工作,但我们已经处于最后阶段,所有这一切都是为了获得一个容错基础设施来托管高可用的虚拟机。 而且这一切都是完全免费的——没有花一分钱购买任何软件许可证。

要创建使用 CentOS 7 的虚拟机,必须从操作系统下载安装映像。

我们转到管理门户,转到 计算 >> 虚拟机,然后启动 VM 创建向导。 填写所有参数和字段,然后单击 。 如果您遵循文档,一切都会非常简单。

作为示例,我将给出一个高可用虚拟机的基本和附加设置,该虚拟机具有创建的磁盘、连接到网络并从安装映像启动:

具有高可用虚拟机设置的屏幕截图

创建容错的 IT 基础架构。 第 2 部分:安装和配置 oVirt 4.3 集群

创建容错的 IT 基础架构。 第 2 部分:安装和配置 oVirt 4.3 集群

创建容错的 IT 基础架构。 第 2 部分:安装和配置 oVirt 4.3 集群

创建容错的 IT 基础架构。 第 2 部分:安装和配置 oVirt 4.3 集群

创建容错的 IT 基础架构。 第 2 部分:安装和配置 oVirt 4.3 集群

完成向导的工作后,关闭它,启动新的虚拟机并在其上安装操作系统。
为此,请通过管理门户转到该虚拟机的控制台:

用于连接到 VM 控制台的管理门户设置的屏幕截图

创建容错的 IT 基础架构。 第 2 部分:安装和配置 oVirt 4.3 集群

要连接到 VM 控制台,必须首先在虚拟机的属性中配置控制台。

虚拟机设置的屏幕截图,“控制台”选项卡

创建容错的 IT 基础架构。 第 2 部分:安装和配置 oVirt 4.3 集群

要连接到 VM 控制台,您可以使用,例如, 虚拟机查看器.

要在浏览器窗口中直接连接到 VM 控制台,通过控制台的连接设置应如下:

创建容错的 IT 基础架构。 第 2 部分:安装和配置 oVirt 4.3 集群

在VM上安装操作系统后,建议安装oVirt guest代理:

yum -y install epel-release
yum install -y ovirt-guest-agent-common
systemctl enable ovirt-guest-agent.service && systemctl restart ovirt-guest-agent.service
systemctl status ovirt-guest-agent.service

因此,由于我们的操作,创建的虚拟机将具有高可用性,即如果运行它的集群节点发生故障,oVirt 将自动在第二个节点上重新启动它。 该虚拟机还可以在集群主机之间迁移以进行维护或其他目的。

结论

我希望本文能够传达这样的信息:oVirt 是一个完全正常的管理虚拟基础设施的工具,部署起来并不困难 - 最主要的是遵循本文和文档中描述的某些规则和要求。

由于文章篇幅较大,无法包含很多内容,例如各种向导的逐步执行以及所有详细解释和屏幕截图、某些命令的长结论等。 事实上,这需要写一整本书,这没有多大意义,因为新版本的软件不断出现,伴随着创新和变化。 最重要的是了解它们如何协同工作的原理,并获得创建管理虚拟机的容错平台的通用算法。

尽管我们已经创建了虚拟基础架构,但我们现在需要教会它在各个元素之间进行交互:主机、虚拟机、内部网络以及与外部世界。

这个过程是系统或网络管理员的主要任务之一,将在下一篇文章中介绍 - 关于在我们企业的容错基础设施中使用 VyOS 虚拟路由器(正如您所猜测的,它们将作为虚拟路由器工作)我们的 oVirt 集群上的机器)。

来源: habr.com

添加评论