在 Google Cloud 上部署和管理 RHEL
大约 49 分钟
在 Google Cloud 上部署和管理 RHEL
来源:官方文档 原始多页入口:在 Google Cloud 上部署和管理 RHEL 内容规模:约 44,575 字符,44 个章节标题,113 个命令/代码块,30 条提示框
阅读提要
- 副标题:获取 RHEL 系统镜像并在 GCP 上创建 RHEL 实例
- 摘要:要在公有云环境中使用 Red Hat Enterprise Linux (RHEL),您可以在各种云平台上创建和部署 RHEL 系统镜像,包括 Google Cloud Platform (GCP)。您还可以在 GCP 上创建和配置红帽高可用性(HA)集群。以下章节提供了在 GCP 上创建云 RHEL 实例和 HA 集群的说明。这些进程包括安装所需的软件包和代理、配置隔离以及安装网络资源代理。
- 主要章节:获取 RHEL 系统镜像并在 GCP 上创建 RHEL 实例;对红帽文档提供反馈;第 1 章 公有云平台上的 RHEL 简介;第 2 章 准备自定义 GCE 镜像并将其上传到 GCP;第 3 章 在 GCP 上将 RHEL 镜像部署为 Google Compute Engine 实例;第 4 章 在 GCP 上配置红帽高可用性集群
- 推荐阅读顺序:先看“阅读提要”和目录,再按章节查看“关键点/命令/注意”;需要原文细节时点击来源链接。
章节笔记
概览
- 该章节主要为下一级主题的入口。
获取 RHEL 系统镜像并在 GCP 上创建 RHEL 实例
- 要点:摘要
对红帽文档提供反馈
- 要点:我们感谢您对我们文档的反馈。让我们了解如何改进它。
- 要点:通过 Jira 提交反馈(需要帐户)
- 列表:登录到 Jira 网站。
- 列表:在顶部导航栏中点 Create
- 列表:在 Summary 字段中输入描述性标题。
- 列表:在 Description 字段中输入您对改进的建议。包括文档相关部分的链接。
- 列表:点对话框底部的 Create。
第 1 章 公有云平台上的 RHEL 简介
- 要点:公有云平台提供计算资源即服务。您可以运行您的 IT 工作负载,包括 Red Hat Enterprise Linux (RHEL)系统,作为公共云实例,而不是使用内部硬件。
1.1. 在公有云中使用 RHEL 的好处
- 要点:RHEL 作为公有云平台上的一个云实例,与 RHEL 内部物理系统或虚拟机相比有以下好处:
- 要点:灵活精细地分配资源
- 列表:灵活精细地分配资源 RHEL 的云实例作为云平台上的虚拟机运行,这意味着远程服务器的集群由云服务提供商维护。因此,在软件级别上,为实例分配硬件资源可轻松自定义,如特定类型的 CPU 或存储。 与本地 RHEL 系统相比,您还不受物理主机能力的限制。相反,您可以根据云提供商提供的选择从各种功能中选择。
- 列表:空间及成本效率 您不需要拥有任何内部服务器来托管云工作负载。这可避免与物理硬件关联的空间、电源和维护要求。 相反,在公有云平台上,您可以直接向云提供商支付使用云实例的费用。成本通常基于分配给实例的硬件以及您使用的时间。因此,您可以根据要求优化成本。
- 列表:软件控制的配置 云实例的整个配置都作为数据保存在云平台上,并由软件控制。因此,您可以轻松地创建、删除、克隆或迁移实例。云实例也在云提供商控制台中远程操作,默认连接到远程存储。 另外,您可以随时将云实例的当前状态备份为快照。之后,您可以加载快照,将实例恢复到保存的状态。
- 列表:与主机分离和软件兼容性 与本地虚拟机类似,云实例上的 RHEL 客户机操作系统运行在虚拟化内核上。这个内核与主机操作系统以及用来连接实例的 客户端 系统分开。 因此,任何操作系统都可以安装在云实例上。这意味着,在 RHEL 公有云实例中,您可以运行无法在本地操作系统上使用的特定于 RHEL 的应用程序。 另外,即使实例的操作系统变得不稳定或被破坏,您的客户端系统也不会受到任何影响。
- 列表:什么是公有云?
- 列表:什么是 Hyperscaler?
1.2. RHEL 的公有云用例
- 要点:在公有云上部署会带来许多好处,但可能并非是每种场景中最有效的解决方案。如果您要评估是否将 RHEL 部署迁移到公共云,请考虑您的用例是否将从公共云的好处中受益。
- 要点:有益的用例
- 列表:部署公有云实例对于灵活地增加和减少部署的活跃计算能力(也称为 扩展 和 缩减)非常有效。因此,在以下情况下,建议在公有云上使用 RHEL: 具有高峰值工作负载和一般性能要求的集群。在资源成本方面,根据您的需求扩展和缩减可能非常高效。 快速设置或扩展集群。这可避免设置本地服务器的高前期成本。
- 列表:具有高峰值工作负载和一般性能要求的集群。在资源成本方面,根据您的需求扩展和缩减可能非常高效。
- 列表:快速设置或扩展集群。这可避免设置本地服务器的高前期成本。
- 列表:云实例不受本地环境中发生的情况的影响。因此,您可以使用它们进行备份和恢复。
- 列表:您正在运行一个无法调整的现有环境。与您当前的主机平台相比,自定义云实例以适应现有部署的特定需求可能并不划算。
- 列表:您有预算方面的硬限制。在本地数据中心中维护您的部署通常具有更大的灵活性,但与公有云相比,您对最大资源成本有更多的控制。
1.3. 迁移到公有云时的常见关注
- 要点:将 RHEL 工作负载从本地环境移到公有云平台可能会带来有关涉及的变化的担忧。以下是最常见的问题。
- 要点:作为云实例,我的 RHEL 是否与本地虚拟机工作不同?
- 列表:公有云实例使用特定于提供商的控制台接口,而不是私有编排接口,来管理云资源。
- 列表:某些功能(如嵌套虚拟化)可能无法正常工作。如果特定功能对部署至关重要,请提前检查该功能与您选择的公有云提供商的兼容性。
- 列表:您的公有云供应商负责云 hypervisor 的安全性
- 列表:红帽在您的实例中提供 RHEL 客户机操作系统的安全功能
- 列表:您可以在云基础架构中管理特定的安全设置和实践
1.4. 为公有云部署获取 RHEL
- 要点:要在公有云环境中部署 RHEL 系统,您需要:
- 要点:根据您的需求和当前市场提供的,为您的使用案例选择最佳云提供商。
- 列表:根据您的需求和当前市场提供的,为您的使用案例选择最佳云提供商。 用于运行 RHEL 实例的认证的云服务提供商(CCSP)是: Amazon Web Services (AWS) Google Cloud Platform (GCP) Microsoft Azure 注意 本文档专门解决在 GCP 上部署 RHEL 的过程。
- 列表:Amazon Web Services (AWS)
- 列表:Google Cloud Platform (GCP)
- 列表:Microsoft Azure 注意 本文档专门解决在 GCP 上部署 RHEL 的过程。
- 列表:在您选择的云平台上创建 RHEL 云实例。详情请参阅 创建 RHEL 云实例的方法。
- 列表:要让您的 RHEL 部署保持最新状态,请使用 红帽更新基础设施 (RHUI)。
- 注意:注意 本文档专门解决在 GCP 上部署 RHEL 的过程。
1.5. 创建 RHEL 云实例的方法
- 要点:要在公有云平台上部署 RHEL 实例,您可以使用以下方法之一:
- 要点:创建一个 RHEL 系统镜像并将其导入到云平台
- 列表:要创建系统镜像,您可以使用 RHEL 镜像构建器,也可以手动构建镜像。
- 列表:此方法使用您现有的 RHEL 订阅,也称为 自带订阅 (BYOS)。
- 列表:您每年预付订阅费,您可以使用您的红帽客户折扣。
- 列表:您的客户服务由红帽提供。
- 列表:要有效地创建多个镜像,您可以使用 cloud-init 工具。
- 列表:您按小时为使用的服务后付费。因此,此方法也称为 随用随付(PAYG)。
- 注意:注意 有关使用各种方法在 Google Cloud Platform 上部署 RHEL 实例的详细信息,请参阅本文档中的以下章节。
第 2 章 准备自定义 GCE 镜像并将其上传到 GCP
- 要点:使用 RHEL 镜像构建器,您可以构建 gce 镜像,为用户或 GCP 服务帐户提供凭证,然后将 gce 镜像直接上传到 GCP 环境。
2.1. 使用 CLI 配置 gce 镜像,并将其上传到 GCP
- 要点:设置带有凭证的配置文件,以使用 RHEL 镜像构建器 CLI 将 gce 镜像上传到 GCP。
- 要点:先决条件
- 列表:您有一个有效的 Google 帐户和凭证,以便将镜像上传到 GCP。凭据可以从用户帐户或服务帐户获取。与凭证关联的帐户必须至少分配以下 IAM 角色: roles/storage.admin - 用于创建和删除存储对象 roles/compute.storageAdmin - 将虚拟机镜像导入到 Compute Engine。
- 列表:roles/storage.admin - 用于创建和删除存储对象
- 列表:roles/compute.storageAdmin - 将虚拟机镜像导入到 Compute Engine。
- 列表:您有一个现有的 GCP 存储桶。
- 列表:使用文本编辑器创建一个包含以下内容的 gcp-config.toml 配置文件: provider = "gcp" [settings] bucket = "GCP_BUCKET" region = "GCP_STORAGE_REGION" object = "OBJECT_KEY" credentials = "GCP_CREDENTIALS" GCP_BUCKET 指向现有的存储桶。它用于存储正在上传的镜像的中间存储对象。 GCP_STORAGE_REGION 既是常规的 Google 存储区域,又是双区域或多区域。 OBJECT_KEY 是中间存储对象的名称。它在上传过程前不能存在,并在上传过程完成后被删除。如果对象名称不以…
- 列表:GCP_BUCKET 指向现有的存储桶。它用于存储正在上传的镜像的中间存储对象。
- 命令/配置摘录:
provider = "gcp" [settings] bucket = "GCP_BUCKET" region = "GCP_STORAGE_REGION" object = "OBJECT_KEY" credentials = "GCP_CREDENTIALS"
$ sudo base64 -w 0 cee-gcp-nasa-476a1fa485b7.json- 注意:警告 您无法手动将 gce 镜像导入到 GCP,因为镜像不能引导。您必须使用 gcloud 或 RHEL 镜像构建器上传它。
- 注意:注意 如果您使用不同的机制来使用 GCP 进行身份验证,在 gcp-config.toml 文件中指定 GCP_CREDENTIALS 是可选的。有关其他验证方法,请参阅 使用 GCP 进行验证 。
2.2. RHEL 镜像构建器如何对不同 GCP 凭证的身份验证顺序进行排序
- 要点:您可以在 RHEL 镜像构建器中使用几种不同类型的凭证来使用 GCP 进行身份验证。如果 RHEL 镜像构建器配置被设置为使用多组凭证使用 GCP 进行身份验证,它会按以下首选顺序使用凭证:
- 要点:Google GCP SDK 库中的 应用程序默认凭证,它尝试使用以下选项自动找到一个身份验证的方法:
- 列表:在配置文件中,使用 composer-cli 命令指定的凭证。
- 列表:凭证在 osbuild-composer worker 配置中被配置。
- 列表:Google GCP SDK 库中的 应用程序默认凭证,它尝试使用以下选项自动找到一个身份验证的方法: 如果设置了 GOOGLE_APPLICATION_CREDENTIALS 环境变量,应用程序默认凭据会尝试加载并从文件中使用由变量指向的凭证。 应用默认凭据尝试使用附加到运行代码的资源的服务帐户进行身份验证。例如,Google Compute Engine 虚拟机。 注意 您必须使用 GCP 凭证来决定将镜像上传到的 GCP 项目。因此,除非要将所有镜像上传到同一 GCP 项目,您必须使用 composer-cli 命令指定 gcp-config.toml 配置文件中的凭证。
- 列表:如果设置了 GOOGLE_APPLICATION_CREDENTIALS 环境变量,应用程序默认凭据会尝试加载并从文件中使用由变量指向的凭证。
- 列表:应用默认凭据尝试使用附加到运行代码的资源的服务帐户进行身份验证。例如,Google Compute Engine 虚拟机。 注意 您必须使用 GCP 凭证来决定将镜像上传到的 GCP 项目。因此,除非要将所有镜像上传到同一 GCP 项目,您必须使用 composer-cli 命令指定 gcp-config.toml 配置文件中的凭证。
- 注意:注意 您必须使用 GCP 凭证来决定将镜像上传到的 GCP 项目。因此,除非要将所有镜像上传到同一 GCP 项目,您必须使用 composer-cli 命令指定 gcp-config.toml 配置文件中的凭证。
2.3. 使用 composer-cli 命令指定 GCP 凭证
- 要点:您可以将 GCP 身份验证凭据配置为全局用于 GCP 用于所有镜像构建。这样,如果您想要将镜像导入到同一 GCP 项目,那么可以对所有镜像使用相同的凭证来上传到 GCP。
- 要点:流程
- 列表:在 /etc/osbuild-worker/osbuild-worker.toml worker 配置中,设置以下凭证值: [gcp] credentials = "PATH_TO_GCP_ACCOUNT_CREDENTIALS"
- 命令/配置摘录:
[gcp] credentials = "PATH_TO_GCP_ACCOUNT_CREDENTIALS"2.4. 在 osbuild-composer worker 配置中指定凭证
- 要点:您可以将 GCP 身份验证凭据配置为全局用于 GCP 用于所有镜像构建。这样,如果您想要将镜像导入到同一 GCP 项目,那么可以对所有镜像使用相同的凭证来上传到 GCP。
- 要点:流程
- 列表:在 /etc/osbuild-worker/osbuild-worker.toml worker 配置中,设置以下凭证值: [gcp] credentials = "PATH_TO_GCP_ACCOUNT_CREDENTIALS"
- 命令/配置摘录:
[gcp] credentials = "PATH_TO_GCP_ACCOUNT_CREDENTIALS"第 3 章 在 GCP 上将 RHEL 镜像部署为 Google Compute Engine 实例
- 要点:要在 Google Cloud Platform (GCP)上使用 RHEL 镜像,将镜像转换为 GCP 兼容的格式,并从镜像部署虚拟机,以作为 Google Compute Engine (GCE)虚拟机运行。要创建、自定义 RHEL 镜像,并将其部署为 GCE 支持的格式,您可以使用以下方法之一:
- 要点:先决条件
- 列表:使用红帽镜像构建器。具体步骤请参阅 准备自定义 GCE 镜像,并将其上传到 GCP。
- 列表:手动创建和配置 受支持的格式镜像。这是一个更为复杂的过程,但提供了更精细的自定义选项。详情请查看以下部分。
- 列表:您已创建了一个 红帽帐户。
- 列表:您已 注册并设置了一个 GCP 帐户。
- 注意:注意 有关用于 GCP 的红帽产品认证的列表,请参阅 Google Cloud Platform 上的红帽。
3.1. 用于公有云的可用 RHEL 镜像类型
- 要点:要将 RHEL 虚拟机部署到认证的云服务提供商(CCSP)上,您可以使用多个选项。下表列出了镜像类型的可用镜像类型、订阅、注意事项和镜像类型的示例场景。
- 要点:其他资源
- 列表:红帽生态目录
- 列表:红帽云访问参考指南
- 列表:计算引擎镜像
- 列表:创建并启动一个计算引擎实例
- 注意:注意 要部署自定义的 ISO 镜像,您可以使用红帽镜像构建器。使用镜像构建器,您可以创建、上传和部署这些自定义镜像,并将它们部署到您选择的 CCSP 。
- 注意:重要 您不能将按需实例转换为自定义 RHEL 实例。要从按需镜像迁移到自定义 RHEL 自带订阅 (BYOS) 镜像: 创建一个新的自定义 RHEL 实例,然后从您的按需实例迁移数据。 数据迁移完成后,终止按需实例以避免额外的计费。
- 表格样本(共 4 行):
- 镜像类型 | 订阅 | 注意事项 | 示例情境
- 部署红帽黄金镜像 | 使用您现有的红帽订阅 | 订阅包括红帽产品成本和对云访问镜像的支持,同时向 CCSP 支付所有其他实例的费用 | 在 CCSP 上选择一个红帽黄金镜像。有关黄金镜像以及如何访问它们的详情,请查看 红帽云访问参考指南
- 部署移到 CCSP 的自定义镜像 | 使用您现有的红帽订阅 | 订阅包括红帽产品成本和对自定义 RHEL 镜像的支持,同时向 CCSP 支付所有其他实例的费用 | 上传自定义镜像并附加您的订阅
- 部署一个基于 RHEL 的自定义镜像 | 自定义机器镜像包含一个 RHEL 镜像 | 根据 现收现付 模式,按小时向 CCSP 支付费用。对于这种模式,在 CCSP 市场上提供了按需镜像。CCSP 提供对这些镜像的支持,而红帽会处理更新。CCSP 通过 Red Hat Update Infrastructure (RHUI)提供更新。 | 当您在 CCSP 云管理控制台上启动实例时,请选择 RHEL 镜像,或者从 CCSP 市场选择一个镜像。
3.2. 使用自定义基础镜像部署 RHEL 实例
- 要点:要手动配置虚拟机(VM),请首先创建一个基础(入门)镜像。然后,您可以修改配置设置,并添加 VM 在云上操作所需的软件包。您也可以在上传镜像后为特定应用程序进行额外的配置更改。
- 要点:从基础镜像创建虚拟机具有以下优点:
- 列表:完全自定义
- 列表:对任何用例都具有较高的灵活性
- 列表:轻量级 - 仅包含操作系统和所需的运行时库
- 列表:您已在主机上 启用了虚拟化。
- 列表:对于 Web 控制台,请确保以下选项: 您没有勾选 Immediately Start VM 选项。 您已将 Memory 大小改为您喜欢的设置。 您已将 Virtual Network Interface Settings 下的 Model 选项改为 virtio ,将 vCPU 改为虚拟机的容量设置。
- 列表:您没有勾选 Immediately Start VM 选项。
- 命令/配置摘录:
# subscription-manager register --auto-attach
# dnf install cloud-init # systemctl enable --now cloud-init.service- 注意:注意 验证以下虚拟机配置。 ssh - 必须启用 ssh 来提供对虚拟机的远程访问 dhcp - 应该为 dhcp 配置主虚拟适配器。
3.3. 上传并在 GCP 上运行 RHEL 实例
- 要点:要在 Google Cloud Platform (GCP)上运行 RHEL 实例,您需要配置 RHEL 镜像并将其上传到 GCP。
3.3.1. 安装 Google Cloud SDK
- 要点:您可以使用 Google Cloud SDK ,使用 Google Cloud CLI,从命令行管理 Google Cloud Platform (GCP)资源和服务。
- 要点:先决条件
- 列表:您已下载、提取并初始化了 Google Cloud SDK。
- 列表:使用 gcloud CLI 工具管理项目和实例。
- 列表:创建一个项目: # gcloud projects create <example-gcp-project-id> --name <example-gcp-project> 这个示例创建一个项目 ID 为 <example-gcp-project-id> 的项目,项目名称为 <example-gcp-project> 。
- 列表:显示项目信息: # gcloud compute <example-project-info> describe --project <example-project-name>
- 列表:gcloud 项目创建
- 列表:gcloud 命令行工具概述
- 命令/配置摘录:
# gcloud projects create <example-gcp-project-id> --name <example-gcp-project>
# gcloud compute <example-project-info> describe --project <example-project-name>3.3.2. 在 GCP 上创建新项目
- 要点:要将 RHEL 镜像上传到 Google Cloud Platform (GCP),您需要在 GCP 上创建一个新项目。项目管理您分配的 Google Cloud 资源。
- 要点:先决条件
- 列表:您在 Google Cloud Platform 上有一个帐户。
- 列表:启动 GCP 控制台。
- 列表:点击 Google Cloud Platform 右侧的下拉菜单。
- 列表:在弹出菜单中点击 NEW PROJECT。
- 列表:在 New Project 窗口中输入新项目的名称。
- 列表:检查 Organization。如果需要,点击下拉菜单更改机构。
3.3.3. 在 Google Cloud Storage 上创建并上传 RHEL 镜像
- 要点:创建一个 GCP 存储桶来导入和存储对象,如虚拟机镜像。
- 要点:流程
- 列表:登录到 Google Cloud 控制台: # gcloud auth login
- 列表:创建存储桶: # gsutil mb gs://<example-bucket-name> 注意 另外,您可以使用 Google Cloud Console 创建存储桶。详情请参阅 创建存储桶。
- 列表:指定您要创建的镜像名称、现有存储桶名称和镜像的名称: # gcloud compute images create my-image-name --source-uri gs://<example-bucket-name>/disk.raw.tar.gz 注意 另外,您可以使用 Google Cloud Console 创建镜像。如需更多信息,请参阅创建、删除和弃用自定义镜像。
- 列表:可选:在 GCP 控制台中查找镜像。 单击 Google Cloud Console 标语左侧的 Navigation 菜单。 选择 Compute Engine,然后选择 Images。
- 列表:单击 Google Cloud Console 标语左侧的 Navigation 菜单。
- 列表:选择 Compute Engine,然后选择 Images。
- 命令/配置摘录:
# gcloud auth login
# gsutil mb gs://<example-bucket-name>- 注意:注意 另外,您可以使用 Google Cloud Console 创建存储桶。详情请参阅 创建存储桶。
- 注意:注意 另外,您可以使用 Google Cloud Console 创建镜像。如需更多信息,请参阅创建、删除和弃用自定义镜像。
3.3.4. 启动并连接到 RHEL Google Compute Engine 实例
- 要点:要从镜像配置 GCE 虚拟机实例,请使用 GCP 控制台。
- 要点:流程
- 列表:在 GCP Console Dashboard 页面 中,点击 Google Cloud Console banner 左侧的 Navigation 菜单,选择 Compute Engine,然后选择 Images。
- 列表:选择您的镜像。
- 列表:点 Create Instance。
- 列表:在 Create an instance 页面中,为您的实例输入一个 Name。
- 列表:选择一个 Region 和 Zone。
- 列表:选择满足或超过工作负载要求的机器配置。
- 命令/配置摘录:
# gcloud compute instances create myinstance3 --zone=us-central1-a --image test-iso2-image
# ssh-keygen -t rsa -f ~/.ssh/google_compute_engine.pub- 注意:注意 或者,您可以使用 gcloud compute instance create 命令从镜像创建一个 GCE 虚拟机实例。 # gcloud compute instances create myinstance3 --zone=us-central1-a --image test-iso2-image 该示例根据现有的 test-iso2-image 映像,在区域 us-central1-a 中创建名为 myinstance3 的虚拟机实例。详情请参阅 gcloud 计算实例创建。
- 注意:注意 或者,您可以运行 gcloud compute config-ssh 命令,使用实例的别名填充配置文件。别名允许按实例名称简单的 SSH 连接。详情请参阅 gcloud compute config-ssh。
3.4. 附加红帽订阅
- 要点:使用 subscription-manager 命令,您可以注册并将红帽订阅附加到 RHEL 实例。
- 要点:先决条件
- 列表:您有一个活跃的 红帽帐户。
- 列表:注册您的系统: # subscription-manager register --auto-attach
- 列表:附加您的订阅: 您可以使用激活码来附加订阅。如需更多信息,请参阅创建红帽客户门户网站激活码。 或者,您可以使用订阅池的 ID(池 ID)手动附加订阅。请参阅 将基于主机的订阅附加到 hypervisor。
- 列表:您可以使用激活码来附加订阅。如需更多信息,请参阅创建红帽客户门户网站激活码。
- 列表:或者,您可以使用订阅池的 ID(池 ID)手动附加订阅。请参阅 将基于主机的订阅附加到 hypervisor。
- 列表:可选:要在 Red Hat Hybrid Cloud Console 中收集有关实例的各种系统指标,您可以使用 Red Hat Insights 注册实例。 # insights-client register --display-name <display-name-value> 有关 Red Hat Insights 配置的更多信息,请参阅 Red Hat Insights 的客户端配置指南。
- 命令/配置摘录:
# subscription-manager register --auto-attach
# insights-client register --display-name <display-name-value>第 4 章 在 GCP 上配置红帽高可用性集群
- 要点:通过使用高可用性(HA)集群解决方案,您可以创建 RHEL 节点的集群,来在节点出现故障时自动重新分发工作负载。这些 HA 集群也可以部署在公有云平台上,如 Google Cloud Platform (GCP)。在 GCP 上设置 HA 集群与在非云环境中配置它们类似。
- 要点:要在 GCP 上配置一个使用 Google Compute Engine (GCE)实例作为集群节点的 Red Hat HA 集群,请参阅以下部分。您有多个选项来为集群获取 RHEL 镜像。详情请参阅 用于公有云的可用 RHEL 镜像类型。
- 列表:您已创建了一个红帽帐户
- 列表:您已注册并设置了一个 GCP 帐户。
- 列表:Red Hat Enterprise Linux 10 服务器: rhel-10-server-rpms/8Server/x86_64
- 列表:Red Hat Enterprise Linux 10 服务器 (高可用): rhel-10-server-ha-rpms/8Server/x86_64
- 列表:您的项目应具有属于虚拟机实例而非单独的用户的服务帐户。有关使用默认服务帐户而不是创建单独服务帐户的信息,请参阅使用 Compute Engine 默认服务帐户。
- 列表:Cloud Trace Agent
4.1. 在公有云平台上使用高可用性集群的好处
- 要点:先决条件
- 要点:高可用性(HA)集群是一组连接在一起来运行特定工作负载的计算机(称为 节点)。HA 集群的目的是在硬件或软件出现故障时提供冗余功能。如果 HA 集群中的节点失败,Pacemaker 集群资源管理器会将工作负载分发到其他节点,且集群中运行的服务不会出现明显停机时间。
- 列表:改进了可用性 :如果出现虚拟机故障,工作负载会被快速重新分发到其他节点,因此运行的服务不会中断。
- 列表:可扩展性 :在需求高时可以启动其他节点,在需求低时停止其它节点。
- 列表:成本效益 :通过现收现付定价,您只需为运行的节点支付费用。
- 列表:简化了管理 :一些公有云平台提供管理界面,来更轻松地配置 HA 集群。
- 列表:Pacemaker,一个提供命令行工具(pcs)和 GUI (pcsd)来支持多个节点的集群资源管理器
- 列表:corosync 和 Kronosnet 来创建和管理 HA 集群
4.2. 所需的系统软件包
- 要点:要创建并配置 RHEL 的基础镜像,主机系统必须安装了以下软件包。
- 要点:后续步骤
- 列表:按照 使用自定义基础镜像部署 RHEL 实例 中的部署步骤操作。
- 表格样本(共 5 行):
- 软件包 | 软件仓库 | 描述
- libvirt | rhel-10-for-x86_64-appstream-rpms | 用于管理平台虚拟化的开源 API、守护进程和管理工具
- virt-install | rhel-10-for-x86_64-appstream-rpms | 用于构建虚拟机的命令行工具
- libguestfs | rhel-10-for-x86_64-appstream-rpms | 用于访问和修改虚拟机文件系统的库
4.3. 创建自定义虚拟私有云网络和子网
- 要点:对于要使用高可用性(HA)功能配置的集群,需要自定义虚拟私有云(VPC)网络和子网。
- 要点:先决条件
- 列表:您已安装了 Google Cloud SDK。
- 列表:您已创建了 一个新的 GCP 项目。
- 列表:启动 GCP 控制台。
- 列表:在左侧导航窗格中,选择 Networking 下的 VPC networks。
- 列表:点 Create VPC Network。
- 列表:输入 VPC 网络的名称。
4.4. 创建并配置基本 GCP 实例
- 要点:要创建并配置符合 GCP 操作和安全要求的 GCP 实例,请完成以下步骤。
- 要点:流程
- 列表:从存储桶中的压缩文件创建镜像。 $ gcloud compute images create BaseImageName --source-uri gs://BucketName/BaseImageName.tar.gz 例如: $ gcloud compute images create rhel-76-server --source-uri gs://user-rhelha/rhel-server-76.tar.gz Created [https://www.googleapis.com/compute/v1/projects/MyProject/global/images/rhel-server-76]. NAME PROJ…
- 列表:从镜像创建模板实例。基本 RHEL 实例所需的最小值为 n1-standard-2。如需了解更多配置选项,请参阅 gcloud 计算实例创建。 $ gcloud compute instances create BaseInstanceName --can-ip-forward --machine-type n1-standard-2 --image BaseImageName --service-account ServiceAccountEmail 例如: $ gcloud compute instances create rhel-76-server-base-instance --can-ip-forward --mach…
- 列表:通过 SSH 终端会话连接到实例。 $ ssh root@PublicIPaddress
- 列表:更新 RHEL 软件。 使用红帽订阅管理器(RHSM)注册。 启用订阅池 ID (或使用 --auto-attach 命令)。 禁用所有软件仓库。 # subscription-manager repos --disable=* 启用以下软件仓库。 # subscription-manager repos --enable=rhel-10-server-rpms 运行 dnf update 命令。 # dnf update -y
- 列表:使用红帽订阅管理器(RHSM)注册。
- 列表:启用订阅池 ID (或使用 --auto-attach 命令)。
- 命令/配置摘录:
$ gcloud compute images create BaseImageName --source-uri gs://BucketName/BaseImageName.tar.gz
$ gcloud compute images create rhel-76-server --source-uri gs://user-rhelha/rhel-server-76.tar.gz Created [https://www.googleapis.com/compute/v1/projects/MyProject/global/images/rhel-server-76]. NAME PROJECT FAMILY DEPRECATED STATUS rhel-76-server rhel-ha-testing-on-gcp READY- 注意:重要 在以前的版本中,您可以启用密码访问来允许 SSH 会话访问来配置实例。您必须禁用密码访问。所有 SSH 会话访问都必须是无密码的。
4.5. 创建快照镜像
- 要点:要保留 GCP HA 实例的配置和磁盘数据,请创建它的快照。
- 要点:流程
- 列表:在正在运行的实例上将数据同步到磁盘。 # sync
- 列表:在您的主机系统上创建快照。 $ gcloud compute disks snapshot InstanceName --snapshot-names SnapshotName
- 列表:在您的主机系统中,从快照创建配置的镜像。 $ gcloud compute images create ConfiguredImageFromSnapshot --source-snapshot SnapshotName
- 列表:创建持久性磁盘快照
- 命令/配置摘录:
# sync
$ gcloud compute disks snapshot InstanceName --snapshot-names SnapshotName4.6. 创建 HA 节点模板实例和 HA 节点
- 要点:从快照配置了镜像后,您可以创建节点模板。然后,您可以使用此模板创建所有 HA 节点。
- 要点:流程
- 列表:创建一个实例模板: $ gcloud compute instance-templates create InstanceTemplateName --can-ip-forward --machine-type n1-standard-2 --image ConfiguredImageFromSnapshot --service-account ServiceAccountEmailAddress Example: $ gcloud compute instance-templates create rhel-10-instance-template --can-ip-forward --machine-type n1-stand…
- 列表:在一个区域中创建多个节点: # gcloud compute instances create NodeName01 NodeName02 --source-instance-template InstanceTemplateName --zone RegionZone --network=NetworkName --subnet=SubnetName Example: $ gcloud compute instances create rhel10-node-01 rhel10-node-02 rhel10-node-03 --source-instance-template rhel-10-instance-template …
- 命令/配置摘录:
$ gcloud compute instance-templates create InstanceTemplateName --can-ip-forward --machine-type n1-standard-2 --image ConfiguredImageFromSnapshot --service-account ServiceAccountEmailAddress
$ gcloud compute instance-templates create rhel-10-instance-template --can-ip-forward --machine-type n1-standard-2 --image rhel-10-gcp-image --service-account account@project-name-on-gcp.iam.gserviceaccount.com Created [https://www.googleapis.com/compute/v1/projects/project-name-on-gcp/global/instanceTemplates/rhel-10-instance-template]. NAME MACHINE_TYPE PREEMPTIBLE CREATION_TIMESTAMP rhel-101-instance-template n1-standard-2 2018-07-25T11:09:30.506-07:004.7. 为 GCP 安装高可用性软件包和代理
- 要点:在每个节点上,您需要安装高可用性软件包和代理,以便在 Google Cloud Platform (GCP)上配置红帽高可用性集群。
- 要点:流程
- 列表:在 Google Cloud Console 中,选择 Compute Engine,然后选择 VM instances。
- 列表:选择实例,单击 SSH 旁边的箭头,然后选择 View gcloud 命令选项。
- 列表:在命令提示符下粘贴此命令,以进行免密码访问实例。
- 列表:启用 sudo 帐户访问,并通过 Red Hat Subscription Manager 注册。
- 列表:启用订阅池 ID (或使用 --auto-attach 命令)。
- 列表:禁用所有软件仓库。 # subscription-manager repos --disable=*
- 命令/配置摘录:
# subscription-manager repos --disable=*
# subscription-manager repos --enable=rhel-10-server-rpms # subscription-manager repos --enable=rhel-10-for-x86_64-highavailability-rpms4.8. 创建高可用性集群
- 要点:您可以按照以下流程创建一个 Red Hat High Availability Add-On 集群。这个示例流程会创建一个由节点 z1.example.com 和 z2.example.com 组成的集群。
- 要点:流程
- 列表:在要运行 pcs 的节点上,为集群中的每个节点验证 pcs 用户 hacluster。 以下命令在 z1.example.com 上为双节点集群(由 z1.example.com 和 z2.example.com 组成)中的两个节点验证用户 hacluster。 [root@z1 ~]# pcs host auth z1.example.com z2.example.com Username: hacluster Password: z1.example.com: Authorized z2.example.com: Authorized
- 列表:从 z1.example.com 执行以下命令,以创建由 z1.example.com 和 z2.example.com 组成的双节点集群 my_cluster。这会将集群配置文件传播到集群中的两个节点。此命令包含 --start 选项,该选项将在集群的两个节点上启动群集服务。 [root@z1 ~]# pcs cluster setup my_cluster --start z1.example.com z2.example.com
- 列表:在节点引导时,启用集群服务在集群中的每个节点上运行。 注意 对于特定环境,您可以跳过这一步来禁用集群服务。这可让您确保在节点重新加入集群前解决集群或您的资源中的任何问题。如果禁用了集群服务,则需要在重新引导节点时手动启动该服务,方法是在该节点上执行 pcs cluster start 命令。 [root@z1 ~]# pcs cluster enable --all
- 列表:使用 pcs cluster status 命令显示您创建的集群的状态。因为在使用 pcs cluster setup 命令的 --start 选项启动集群服务时,集群启动和运行可能有一些延迟,所以您应该确保在集群及其配置上执行后续操作前集群已启动并运行。 [root@z1 ~]# pcs cluster status Cluster Status: Stack: corosync Current DC: z2.example.com (version 2.0.0-10.el8-b67d8d0de9) - partition with quorum Last updated: Thu Oct 11 16:11:18 2018…
- 命令/配置摘录:
[root@z1 ~]# pcs host auth z1.example.com z2.example.com Username: hacluster Password: z1.example.com: Authorized z2.example.com: Authorized
[root@z1 ~]# pcs cluster setup my_cluster --start z1.example.com z2.example.com- 注意:注意 要显示 pcs 命令的参数以及这些参数的描述,请使用 pcs 命令的 -h 选项。
- 注意:注意 对于特定环境,您可以跳过这一步来禁用集群服务。这可让您确保在节点重新加入集群前解决集群或您的资源中的任何问题。如果禁用了集群服务,则需要在重新引导节点时手动启动该服务,方法是在该节点上执行 pcs cluster start 命令。
4.9. 在 Red Hat High Availability 集群中配置隔离功能
- 要点:如果与集群中某个节点通信失败,那么集群中的其他节点必须能够限制或释放对故障集群节点可访问的资源的访问。这无法通过通过联系集群节点本身来实现,因为集群节点可能没有响应。反之,必须提供一个外部的方法来实现。这个方法为称为隔离(fencing)。隔离设备是一个外部设备,集群使用它用来限制错误节点对共享资源的访问,或对集群的节点执行硬重启。
- 要点:如果没有配置隔离设备,您就无法知道以前被出现问题的集群节点使用的资源已被释放,这可能会阻止服务在集群的其他节点中运行。因此,该系统可能会错误地假设集群节点释放了它的资源,从而可能导致数据崩溃和数据丢失。没有隔离设备配置的数据完整性就无法保证,集群配置将不被支持。
4.9.1. 显示可用的隔离代理及其选项
- 要点:以下命令可用于查看可用的隔离代理和特定隔离代理的可用选项。
- 要点:运行以下命令列出所有可用的隔离代理。当您指定过滤器时,这个命令只会显示与过滤器匹配的隔离代理。
- 命令/配置摘录:
pcs stonith list [filter]
pcs stonith describe [stonith_agent]- 注意:注意 您的系统硬件决定了用于集群的隔离设备的类型。有关支持的平台和架构,以及不同的隔离设备,请参阅红帽知识库文章 RHEL 高可用性集群的支持策略 中的 集群平台和架构 部分。
- 注意:警告 对于提供 method 选项的隔离代理,fence_sbd 代理除外,cycle 值不被支持,不应被指定,因为它可能导致数据损坏。但是,即使是 fence_sbd,您不应指定一个方法,而是使用默认值。
4.9.2. 创建隔离设备
- 要点:创建隔离设备的命令格式如下。有关可用隔离设备创建选项的列表,请参阅 pcs stonith -h 显示。
- 要点:以下命令为单一节点创建一个隔离设备。
- 列表:有些隔离设备可自动决定它们可以隔离哪些节点。
- 列表:您可以在创建隔离设备时使用 pcmk_host_list 参数,以指定由该隔离设备控制的所有机器。
- 列表:有些隔离设备需要主机名与隔离设备可识别的规格映射。在创建隔离设备时,您可以使用 pcmk_host_map 参数来映射主机名。
- 命令/配置摘录:
pcs stonith create stonith_id stonith_device_type [stonith_device_options] [op operation_action operation_options]
# pcs stonith create MyStonith fence_virt pcmk_host_list=f1 op monitor interval=30s4.9.3. 隔离设备的常规属性
- 要点:您可以为隔离设备设置很多常规属性,以及决定隔离行为的各种集群属性。
- 要点:任何集群节点都可以使用任何隔离设备隔离保护其它集群节点,无论隔离资源是启动还是停止。资源是否启动只控制设备的重复监控,而不控制是否使用资源,但以下情况除外:
- 列表:您可以通过运行 pcs stonith disable stonith_id 命令来禁用隔离设备。这将阻止任何节点使用该设备。
- 列表:要防止特定节点使用隔离设备,您可以使用 pcs constraint location … avoids 命令为隔离资源配置位置约束。
- 列表:配置 stonith-enabled=false 将完全禁用隔离。但请注意,红帽不支持隔离功能被禁用的集群,因为它不适用于生产环境。
- 表格样本(共 4 行):
- 项 | 类型 | Default(默认) | 描述
- pcmk_host_map | 字符串 | 用于不支持主机名的设备的主机名到端口号的映射。例如:node1:1;node2:2,3 告知集群 node1 使用端口 1 ,对 node2 使用端口 2 和端口 3。pcmk_host_map 属性支持在 pcmk_host_map 值里在值前面使用反斜杠的特殊字符。例如,您可以指定 pcmk_host_map="node3:plug\ 1",来在主机别名中包含一个空格。
- pcmk_host_list | 字符串 | 此设备控制的机器列表(可选,除非 pcmk_host_check=static-list)。
- pcmk_host_check | 字符串 | 如果设置了 pcmk_host_list 或 pcmk_host_map,则为 * static-list * 否则,dynamic-list(如果隔离设备支持 list 操作) * 否则,status(如果隔离设备支持 status 操作) * 否则,none. | 如何确定被设备控制的机器。允许的值: dynamic-list (查询设备)、static-list (检查 pcmk_host_list 属性)、none(假设每个设备都可以隔离每台机器)
4.9.4. 隔离延迟
- 要点:当集群通信在双节点集群中丢失时,一个节点可能首先检测到此节点,并隔离其他节点。但是,如果两个节点同时检测到这个,则每个节点都可以启动其他节点的隔离,使两个节点关闭或重置。通过设置隔离延迟,您可以降低两个集群节点相互隔离的可能性。您可以在具有超过两个节点的集群中设置延迟,但这通常不会有任何好处,因为只有具有仲裁的分区将启动隔离。
- 要点:您可以根据系统要求设置不同类型的隔离延迟。
- 列表:静态隔离延迟 静态隔离延迟是一个固定的、预先确定的延迟。在一个节点上设置静态延迟使该节点更有可能被隔离,因为它增加了检测到丢失的通信后,其他节点首先启动隔离的机会。在主动/被动集群中,在被动节点上设置一个延迟,使得在通信中断时,被动节点将更有可能被隔离。您可以使用 pcs_delay_base 集群属性配置静态延迟。当单独的隔离设备用于每个节点时,或者一个隔离设备用于所有节点时,您可以设置此属性。
- 列表:动态隔离延迟 动态隔离延迟是随机的。它可能会有所不同,并在需要隔离时确定。您可以配置一个随机延迟,并使用 pcs_delay_max 集群属性为组合的基本延迟和随机延迟指定最大值。当每个节点的隔离延迟是随机的时,被隔离的节点也是随机的。如果您的集群被配置为在主动/主动设计中具有所有节点的单个隔离设备,则可能会发现此功能很有用。
- 列表:优先级隔离延迟 优先级隔离延迟基于活跃的资源优先级。如果所有资源具有相同的优先级,则运行最少资源的节点是被隔离的节点。在大多数情况下,您只使用一个与延迟相关的参数,但可以组合它们。合并与延迟相关的参数,将资源的优先级值加在一起,以创建总延迟。您可以使用 priority-fencing-delay 集群属性配置优先级隔离延迟。您可以在主动/主动集群设计中发现此功能,因为它可以在节点之间的通信丢失时让运行最少资源的节点更有可能被隔离。
- 列表:使用 priority-fencing-delay 属性设置的任何延迟都被添加到 pcmk_delay_base 和 pcmk_delay_max 隔离设备属性中的任何延迟中。当两个节点具有相等的优先级时,或者两个节点因为节点丢失以外的原因需要隔离时,这种行为允许一些延迟,例如当为资源监控器操作设置了 on-fail=fencing 时。当设置这些延迟的组合时,将 priority-fencing-delay 属性设置为一个明显大于pcmk_delay_base 和 pcmk_delay_max 中的最大延迟的值,以确保优先级的节点是首选的。将此属性设置为此值的两倍通常是安全的。
- 列表:只有 Pacemaker 本身调度的隔离才能观察到隔离延迟。由外部代码(如 dlm_controld)调度的隔离和由 pcs stonith fence 命令实现的隔离不会向隔离设备提供必要信息。
- 列表:有些单独的隔离代理实现一个延迟参数,其名称由代理决定,并且其独立于使用 pcmk_delay_* 属性配置的延迟。如果同时配置了这些延迟,它们会被加在一起,通常不会一起使用。
4.9.5. 测试隔离设备
- 要点:隔离(fencing)是红帽集群基础结构的基本部分,对于验证或测试隔离是否正常运行至关重要。
- 要点:流程
- 列表:使用 SSH、Telnet、HTTP 或者用来连接到设备的任何远程协议,来手动登录并测试隔离设备,或者查看给出的输出。例如,如果您要为启用了 IPMI 的设备配置隔离,则尝试使用 ipmitool 远程登录。记录手动登录时使用的选项,因为在使用隔离代理时可能需要使用这些选项。 如果您无法登录到隔离设备,请确定设备是可以被 ping 到的,没有因为如防火墙等配置限制对隔离设备的访问,在隔离设备中启用了远程访问,且有正确的凭证。
- 列表:使用隔离代理脚本手动运行隔离代理。这不需要集群服务正在运行,因此您可以在集群配置该设备前执行这个步骤。这可保证在继续前隔离设备响应正常。 注意 这些示例将为 iLO 设备使用 fence_ipmilan 隔离代理脚本。您使用的实际隔离代理以及调用代理的命令取决于服务器硬件。您应该参考您使用的隔离保护代理的 man 页来确定要指定的选项。您通常需要了解隔离设备的登录和密码,以及其它与该隔离设备相关的信息。 以下示例显示了使用 -o status 参数运行 fence_ipmilan 隔离代理脚本的格式,来检查另一个节点上的隔离设备接口的状态,而实际上并没有对该节点进行隔离。这可让您在尝试重新引导节点前测试该设备并使其可用。在运行这个…
- 列表:一旦隔离设备在集群中配置了与手动操作相同的选项,并且集群已经启动,则可以从任何节点(或者多次从不同的节点)使用 pcs stonith fence 命令来测试隔离,如下例所示。pcs stonith fence 命令从 CIB 中读取集群配置,并调用配置的隔离代理来执行隔离操作。这会验证集群配置是否正确。 # pcs stonith fence node_name 如果 pcs stonith fence 命令正常工作,这意味着发生隔离事件时集群的隔离配置应该可以正常工作。如果命令失败,这意味着集群管理无法通过它获取的配置调用隔离设备。检查以下问题并根据需要更新集群配置。 检查您的隔离配置。例如,如果您使用了主机映射,则应该确保系…
- 列表:检查您的隔离配置。例如,如果您使用了主机映射,则应该确保系统可以使用您提供的主机名查找节点。
- 列表:检查该设备的密码和用户名是否包含 bash shell 可能会错误解析的特殊字符。请确定,使用引号来包括您输入的密码和用户名是否可以解决这个问题。
- 列表:检查是否可以使用您在 pcs stonith 命令中指定的 IP 地址或主机名连接到设备。例如:如果您在 stonith 命令中给出主机名,但使用 IP 地址进行测试,则这不是一个有效的测试。
- 命令/配置摘录:
# fence_ipmilan -a ipaddress -l username -p password -o status
# fence_ipmilan -a ipaddress -l username -p password -o reboot- 注意:注意 当 Pacemaker 集群节点或 Pacemaker 远程节点被隔离时,应该会发生一个硬终止,而不是操作系统的安全关闭。如果系统隔离节点时发生安全关闭,请在 /etc/systemd/logind.conf 文件中禁用 ACPI 软关闭,以便您的系统忽略任何按电源按钮的信号。有关在 logind.conf 文件中禁用 ACPI soft-off 的说明,请参阅在 logind.conf 文件中禁用 ACPI soft-off
- 注意:注意 这些示例将为 iLO 设备使用 fence_ipmilan 隔离代理脚本。您使用的实际隔离代理以及调用代理的命令取决于服务器硬件。您应该参考您使用的隔离保护代理的 man 页来确定要指定的选项。您通常需要了解隔离设备的登录和密码,以及其它与该隔离设备相关的信息。
4.9.6. 配置隔离级别
- 要点:Pacemaker 通过一个称为隔离拓扑的功能实现有多个设备的节点的隔离。要实现拓扑结构,根据常规创建独立设备,然后在配置中的隔离拓扑部分定义一个或多个隔离级别。
- 要点:Pacemaker 会按如下方式处理隔离级别:
- 列表:级别以整数形式递增,从 1 开始。
- 列表:如果设备失败,对当前级别的处理会中断。不会执行该级别的其他设备,而是尝试下一个级别。
- 列表:如果所有设备被成功隔离,那么该级别已成功,且不会尝试其他级别。
- 列表:当一个级别被通过(success)或所有级别都已经被尝试(failed)后,操作就会完成。
- 列表:您已为节点 rh7-2 配置了名为 my_ilo 的 ilo 隔离设备。
- 列表:您已为节点 rh7-2 配置了名为 my_apc 的 apc 隔离设备。
- 命令/配置摘录:
pcs stonith level add level node devices
# pcs stonith level add 1 rh7-2 my_ilo4.9.7. 配置冗余电源的隔离
- 要点:当为冗余电源配置隔离时,集群必须确保在尝试重启主机时,在恢复电源前两个电源都关闭。
- 要点:如果节点永远无法完全断电,则该节点可能无法释放其资源。这可能会导致同时访问这些资源,并导致节点崩溃的问题。
- 列表:创建第一个隔离设备。 # pcs stonith create apc1 fence_apc_snmp ipaddr=apc1.example.com login=user passwd='7a4D#1j!pz864' pcmk_host_map="node1.example.com:1;node2.example.com:2"
- 列表:创建第二个隔离设备。 # pcs stonith create apc2 fence_apc_snmp ipaddr=apc2.example.com login=user passwd='7a4D#1j!pz864' pcmk_host_map="node1.example.com:1;node2.example.com:2"
- 列表:指定需要这两个设备来隔离节点。 # pcs stonith level add 1 node1.example.com apc1,apc2 # pcs stonith level add 1 node2.example.com apc1,apc2
- 命令/配置摘录:
# pcs stonith create apc1 fence_apc_snmp ipaddr=apc1.example.com login=user passwd='7a4D#1j!pz864' pcmk_host_map="node1.example.com:1;node2.example.com:2"
# pcs stonith create apc2 fence_apc_snmp ipaddr=apc2.example.com login=user passwd='7a4D#1j!pz864' pcmk_host_map="node1.example.com:1;node2.example.com:2"4.9.8. 管理隔离设备
- 要点:pcs 命令行界面提供各种命令,您可以用来在配置后管理隔离设备。
- 要点:以下命令显示所有目前配置的隔离设备。如果指定了 stonith_id,命令仅显示那个配置的隔离设备的选项。如果指定了 --full 选项,则会显示所有配置的隔离选项。
- 命令/配置摘录:
pcs stonith config [stonith_id] [--full]
# pcs stonith create myapc fence_apc_snmp ip="zapc.example.com" pcmk_host_map="z1.example.com:1;z2.example.com:2" username="apc" password="apc" # pcs stonith config --output-format=cmd Warning: Only 'text' output format is supported for stonith levels pcs stonith create --no-default-ops --force -- myapc fence_apc_snmp \ ip=zapc.example.com password=apc 'pcmk_host_map=z1.example.com:1;z2.example.com:2' username=apc \ op \ monitor interval=60s id=myapc-monitor-interval-60s- 注意:警告 如果您指定的节点实际上没有关闭,但运行通常由集群控制的集群软件或服务,则会发生数据损坏和集群故障。
4.9.9. 配置 ACPI 以用于集成的隔离设备
- 要点:如果您的集群使用集成的隔离设备,必须配置 ACPI(高级配置和电源界面)以保证迅速和完全的隔离。
- 要点:如果将集群节点配置为使用集成的隔离设备保护,则为该节点禁用 ACPI Soft-Off。禁用 ACPI Soft-Off 允许集成的隔离设备立即并完全关闭节点,而不是尝试彻底关闭(例如,shutdown -h now)。否则,如果启用了 ACPI Soft-Off,集成的隔离设备可能需要 4 秒以上的时间来关闭节点(请参阅下面的备注)。另外,如果启用了 ACPI Soft-Off,且在关闭过程中有一个节点 panic 或停滞,则集成的保护设备可能无法关闭该节点。在这些情况下,隔离会被延迟或者失败。因此,当使用集成隔离设备隔离节点并启用 ACPI Soft-Off时,集群恢复会很慢,或者需要管理员进行干预才能恢复。
- 列表:禁用 ACPI Soft-Off 的首选方法是将 BIOS 设置改为 "instant-off" 或无延迟关闭该节点的对等设置,如 禁用 ACPI Soft-Off 中所述。
- 列表:在 /etc/systemd/logind.conf 文件中设置 HandlePowerKey=ignore,并在隔离时验证节点节点是否立即关闭,如 logind.conf 文件中禁用 ACPI 软关闭 中所述。这是禁用 ACPI Soft-Off 的第一个替代方法。
- 列表:在内核引导命令行中附加 acpi=off,如 在 GRUB 2 文件中完全禁用 ACPI 中所述。这是禁用 ACPI Soft-Off 的第二个替代方法,如果首选方法或第一个替代方法不可用。 重要 这个方法可完全禁用 ACPI。当 ACPI 被完全禁用时,以下计算机可能无法正确引导。只有在其他方法无法在您的集群中使用时,才使用这个方法。
- 列表:重启节点,并启动 BIOS CMOS 设置工具 程序。
- 列表:进入 Power 菜单(或者对等的电源管理菜单)。
- 列表:在 Power 菜单中,将 Soft-Off by PWR-BTTN 功能(或等效的功能)设置为 Instant-Off(或使用无延迟电源按钮关闭节点的对等设置)。以下 BIOS CMOS Setup Utiliy 示例显示 ACPI Function 设置为 Enabled, Soft-Off by PWR-BTTN 设置为 Instant-Off。 注意 与 ACPI Function 等效,Soft-Off by PWR-BTTN 和 Instant-Off 可能因计算机而异。但这个过程的目的是配置 BIOS,以便计算机能无延迟地关闭电源按钮。
- 命令/配置摘录:
`Soft-Off by PWR-BTTN` set to `Instant-Off`
+---------------------------------------------|-------------------+ | ACPI Function [Enabled] | Item Help | | ACPI Suspend Type [S1(POS)] |-------------------| | x Run VGABIOS if S3 Resume Auto | Menu Level * | | Suspend Mode [Disabled] | | | HDD Power Down [Disabled] | | | Soft-Off by PWR-BTTN [Instant-Off | | | CPU THRM-Throttling [50.0%] | | | Wake-Up by PCI card [Enabled] | | | Power On by Ring [Enabled] | | | Wake Up On LAN [Enabled] | | | x USB KB Wake-Up From S3 Disabled | | | Resume by Alarm [Disabled] | | | x Date(of Month) Alarm 0 | | | x Time(hh:mm:ss) Alarm 0 : 0 : | | | POWER ON Function [BUTTON ONLY | | | x KB Power ON Password…- 注意:注意 保护节点所需时间取决于所使用的集成的保护设备。有些集成的保护设备性能与按住电源按钮相当,因此隔离设备可在 4-5 秒内关闭该节点。其他集成的隔离设备性能与按电源开关一致,依靠操作系统关闭该节点,因此隔离设备关闭该节点的时间要大大超过 4-5 秒。
- 注意:重要 这个方法可完全禁用 ACPI。当 ACPI 被完全禁用时,以下计算机可能无法正确引导。只有在其他方法无法在您的集群中使用时,才使用这个方法。
4.10. 配置虚拟 IP 管理资源代理
- 要点:gcp-vpc-move-vip 资源代理将辅助 IP 地址(别名 IP)附加到正在运行的实例。此浮动 IP 地址可以在集群中的不同节点之间分配。
- 要点:您可以将资源代理配置为使用主子网地址范围或二级子网地址范围。
- 命令/配置摘录:
# pcs resource describe gcp-vpc-move-vip4.10.1. 配置主子网地址范围
- 要点:如果您需要自动或管理子网中为虚拟机或其他资源分配的 IP 地址,您可以使用主子网地址范围。它确保主地址范围被正确设置,并配置为作为主虚拟专用网络(VPC)子网的一个稳定的 IP 地址使用。
- 要点:流程
- 列表:通过包含一个未使用的内部 IP 地址和 CIDR 块来创建 aliasip 资源: # pcs resource create aliasip gcp-vpc-move-vip alias_ip=UnusedIPaddress/CIDRblock 示例: [root@rhel81-node-01 ~]# pcs resource create aliasip gcp-vpc-move-vip alias_ip=10.10.10.200/32
- 列表:创建一个用来管理节点上 IP 的 IPaddr2 资源: # pcs resource create vip IPaddr2 nic=interface ip=AliasIPaddress cidr_netmask=32 示例: [root@rhel81-node-01 ~]# pcs resource create vip IPaddr2 nic=eth0 ip=10.10.10.200 cidr_netmask=32
- 列表:对 vipgrp 下的网络资源进行分组: # pcs resource group add vipgrp aliasip vip
- 列表:验证活跃的资源以及 vipgrp 组下的资源: # pcs status
- 列表:验证跨节点的可移动资源: # pcs resource move vip Node 示例: [root@rhel81-node-01 ~]# pcs resource move vip rhel81-node-03
- 列表:验证 vip 是否已在不同节点上成功启动: # pcs status
- 命令/配置摘录:
# pcs resource create aliasip gcp-vpc-move-vip alias_ip=UnusedIPaddress/CIDRblock
[root@rhel81-node-01 ~]# pcs resource create aliasip gcp-vpc-move-vip alias_ip=10.10.10.200/324.10.2. 配置二级子网地址范围
- 要点:如果需要从同一子网中的额外和预定义范围分配 IP 地址,您可以使用二级子网地址范围,而无需创建一个新的子网。它对于特定目的,如自定义路由很有用。使用二级子网地址范围,您可以管理具有多个 IP 地址范围的单一子网中的网络流量。
- 要点:先决条件
- 列表:您已创建了一个自定义网络和子网
- 列表:可选:您已安装了 Google Cloud SDK。具体说明请参阅 安装 Google Cloud SDK。 但请注意,您可以在终端中使用以下流程中的您可以在 Google Cloud web 控制台中激活的 gcloud 命令。
- 列表:创建一个二级子网地址范围: # gcloud compute networks subnets update SubnetName --region RegionName --add-secondary-ranges SecondarySubnetName=SecondarySubnetRange 示例: # gcloud compute networks subnets update range0 --region us-west1 --add-secondary-ranges range1=10.10.20.0/24
- 列表:在二级子网地址范围和 CIDR 块中创建带有一个未使用的内部 IP 地址的 aliasip 资源: # pcs resource create aliasip gcp-vpc-move-vip alias_ip=UnusedIPaddress/CIDRblock 示例: [root@rhel81-node-01 ~]# pcs resource create aliasip gcp-vpc-move-vip alias_ip=10.10.20.200/32
- 列表:创建一个用来管理节点上 IP 的 IPaddr2 资源: # pcs resource create vip IPaddr2 nic=interface ip=AliasIPaddress cidr_netmask=32 示例: [root@rhel81-node-01 ~]# pcs resource create vip IPaddr2 nic=eth0 ip=10.10.20.200 cidr_netmask=32
- 列表:对 vipgrp 下的网络资源进行分组: # pcs resource group add vipgrp aliasip vip
- 命令/配置摘录:
# gcloud compute networks subnets update SubnetName --region RegionName --add-secondary-ranges SecondarySubnetName=SecondarySubnetRange
# gcloud compute networks subnets update range0 --region us-west1 --add-secondary-ranges range1=10.10.20.0/24完整目录
- 获取 RHEL 系统镜像并在 GCP 上创建 RHEL 实例
- 对红帽文档提供反馈
- 第 1 章 公有云平台上的 RHEL 简介
- 1.1. 在公有云中使用 RHEL 的好处
- 1.2. RHEL 的公有云用例
- 1.3. 迁移到公有云时的常见关注
- 1.4. 为公有云部署获取 RHEL
- 1.5. 创建 RHEL 云实例的方法
- 第 2 章 准备自定义 GCE 镜像并将其上传到 GCP
- 2.1. 使用 CLI 配置 gce 镜像,并将其上传到 GCP
- 2.2. RHEL 镜像构建器如何对不同 GCP 凭证的身份验证顺序进行排序
- 2.3. 使用 composer-cli 命令指定 GCP 凭证
- 2.4. 在 osbuild-composer worker 配置中指定凭证
- 第 3 章 在 GCP 上将 RHEL 镜像部署为 Google Compute Engine 实例
- 3.1. 用于公有云的可用 RHEL 镜像类型
- 3.2. 使用自定义基础镜像部署 RHEL 实例
- 3.3. 上传并在 GCP 上运行 RHEL 实例
- 3.3.1. 安装 Google Cloud SDK
- 3.3.2. 在 GCP 上创建新项目
- 3.3.3. 在 Google Cloud Storage 上创建并上传 RHEL 镜像
- 3.3.4. 启动并连接到 RHEL Google Compute Engine 实例
- 3.4. 附加红帽订阅
- 第 4 章 在 GCP 上配置红帽高可用性集群
- 4.1. 在公有云平台上使用高可用性集群的好处
- 4.2. 所需的系统软件包
- 4.3. 创建自定义虚拟私有云网络和子网
- 4.4. 创建并配置基本 GCP 实例
- 4.5. 创建快照镜像
- 4.6. 创建 HA 节点模板实例和 HA 节点
- 4.7. 为 GCP 安装高可用性软件包和代理
- 4.8. 创建高可用性集群
- 4.9. 在 Red Hat High Availability 集群中配置隔离功能
- 4.9.1. 显示可用的隔离代理及其选项
- 4.9.2. 创建隔离设备
- 4.9.3. 隔离设备的常规属性
- 4.9.4. 隔离延迟
- 4.9.5. 测试隔离设备
- 4.9.6. 配置隔离级别
- 4.9.7. 配置冗余电源的隔离
- 4.9.8. 管理隔离设备
- 4.9.9. 配置 ACPI 以用于集成的隔离设备
- 4.10. 配置虚拟 IP 管理资源代理
- 4.10.1. 配置主子网地址范围
- 4.10.2. 配置二级子网地址范围
