SAP HANA 在 Bare Metal 解决方案中的部署指南

本指南介绍了如何设置 SAP HANA 唯一或相关的 Bare Metal 解决方案环境。

在 Bare Metal 解决方案环境中,您可以按照 SAP 文档自行安装 SAP HANA 和其他 SAP 软件。

本指南还介绍了 Bare Metal 解决方案环境中 SAP HANA 必需或可选的 SAP 的 Google Cloud 基础服务。

如需简要了解 Bare Metal 解决方案上的 SAP HANA 如何帮助您规划部署,请参阅 Bare Metal 解决方案上的 SAP HANA 规划指南

简要步骤

以下列表显示了在 Google Cloud 通知您机器已就绪后,您在 Bare Metal 解决方案上部署 SAP HANA 需要执行的高级步骤。

  1. 按照 Bare Metal 解决方案文档操作来完成与新机器的连接。如需查看设置过程,请参阅 Bare Metal 解决方案文档中的设置 Bare Metal 解决方案环境
  2. 验证 SAP HANA 的机器配置
为需要访问 Google Cloud 资源的应用创建 IAM 服务账号。请参阅设置服务账号
  1. 连接到互联网以便获取软件更新。请参阅裸金属解决方案文档中的访问互联网
  2. 与 Google Cloud API 建立连接。请参阅裸金属解决方案文档中的设置对 Google Cloud API 和服务的访问权限
  3. 安装 Google Cloud 的 Agent for SAP。 (可选)您可以启用代理的 Backint 功能。
  4. 设置对网络时间协议 (NTP) 服务器的访问权限,本指南未对此进行介绍。
  5. 设置域名系统 (DNS) 服务器,本指南未对此进行介绍。

验证 SAP HANA 的机器配置

首次登录机器时,您需要确认您收到的机器、操作系统和存储空间是否是您所订购的内容,并且一切都已正确配置。

除了 Bare Metal 解决方案文档中列出的一般验证检查之外,还要验证一下 SAP HANA 特有的项:

  • 您的操作系统是特定于 SAP 的正确版本
  • SAP HANA 卷和文件系统装载已正确映射
  • 存储空间已正确配置
  • 时间在服务器之间同步

如需了解裸金属解决方案机器验证,请参阅首次登录裸金属解决方案机器

设置应用服务账号

从 Bare Metal 解决方案环境访问 Google Cloud 资源的任何应用程序、代理或进程都需要 IAM 服务账号进行身份验证和授权。

要创建服务账号,请执行以下操作:

  1. 在 Google Cloud 控制台中,转到服务账号页面。

    转到“服务账号”页面

  2. 选择您的 Google Cloud 项目。

  3. 点击创建服务账号

  4. 为服务账号指定名称并提供说明(可选)。

  5. 点击创建并继续

  6. 向此服务账号授予对项目的访问权限面板上,选择包含应用所需权限的角色。

    例如,高可用性集群中使用的 fence_gce 代理需要 baremetalsolution.service.resetInstance 权限,该权限包含在 IAM 角色 roles/baremetalsolution.editorroles/baremetalsolution.admin 中。

  7. 点击继续

  8. 根据具体情况授予其他用户访问服务账号的权限。

  9. 点击完成

  10. 在 Google Cloud 控制台中的服务账号页面上,点击您刚创建的服务账号的电子邮件地址。

  11. 在服务账号名称下,点击密钥标签页。

  12. 点击添加密钥下拉菜单,然后选择创建新密钥以创建服务账号密钥

  13. 接受 JSON 作为密钥类型,然后点击创建。私钥已保存到您的计算机。

  14. 将 JSON 密钥文件上传到 Bare Metal 解决方案服务器上的安全位置,可供需要该应用的应用访问。

  15. 配置应用以访问 JSON 密钥文件。

    例如,在创建使用 fence_gce 代理的高可用性集群资源时,您可以在 fence_gce 配置属性中指定 JSON 密钥文件的路径和文件名。

如需详细了解 IAM 服务账号,请参阅:

确认与应用服务器的连接

确认在 SAP HANA 服务器和应用服务器之间已建立网络连接。

请确保您的 Google Cloud 和客机操作系统防火墙规则允许服务器之间的流量。

验证卷到存储的映射

SAP HANA 卷已映射到您的存储空间,但还是建议您对此进行验证以确保万无一失。

使用 48 TiB 的存储空间,您应该会在裸金属解决方案服务器上看到 SAP HANA 的以下卷布局:

  • /hana/log:四个 768 GiB LUNS,使用 64 KiB 块大小通过 LVM 条带化
  • /hana/data:四个 10.5 GiB LUNS,使用 256 KiB 块大小通过 LVM 条带化
  • /hana/shared:3 TiB 卷
  • /usr/sap:与操作系统共享的 200 GiB 卷

下表介绍了卷组和逻辑卷的配置。

卷组 逻辑卷 配置
hanadatavg data 分别在 4 台设备(每个至少为 10 GiB)条带化,块大小为 256 KiB
hanalogvg log 分别在 4 台设备(每个至少为 768 GiB)条带化,块大小为 64 KiB
hanasharedvg shared 在 3 TiB 设备上配置线性(无条带化)

在 Bare Metal 解决方案上安装 SAP HANA

如需在 Bare Metal 解决方案主机上安装 SAP HANA,您需要按照适用于您的 SAP HANA 版本的 SAP 安装文档进行操作。

如需查找 SAP HANA 版本的安装文档,请参阅 SAP 帮助门户

配置高可用性集群

为业务关键型工作负载配置集群或合适的高可用性解决方案。我们建议使用 Pacemaker 聚类。

除了几个要求和建议之外,请按照操作系统供应商提供的聚类说明在 Bare Metal 解决方案机器上配置高可用性集群。

如需详细了解在裸金属解决方案上配置高可用性 SAP HANA 系统的 Google Cloud 要求和建议,请参阅裸金属解决方案上的 SAP HANA 高可用性集群

浮动 IP 地址

高可用性集群会使用浮动或虚拟 IP 地址 (VIP) 将网络通信定向到活跃的 SAP HANA 系统。配置 VIP 时,请使用标准 IPaddr2 Pacemaker 资源。以下示例展示了 SUSE 上的 IPaddr2 资源定义:

crm configure primitive rsc_ip_HA1_HDB10 IPaddr2 \
    params ip=10.0.0.79 \
    op monitor interval=10 timeout=20

IPaddr2 资源配置为与 HANA 数据库具有共置关系,以使其在故障切换时随活跃数据库一起移动。例如:

colocation col_saphana_ip_HA1_HDB10 2000: rsc_ip_HA1_HDB10:Started \
   msl_SAPHana_HA1_HDB10:Master

配置防护设备

适用于 SAP HANA 的 Linux 高可用性集群需要可以重置故障节点以避免脑裂情况的防护设备。

在裸金属解决方案环境中,您可以通过以下两种方式实施防护设备:

  • 带有软件监控计时器和共享块存储的 SBD。建议使用 SBD,但并非所有操作系统都支持带有 SBD 的软件监控计时器。
  • fence_gce 代理和 Bare Metal Solution API 的 resetInstance 方法。

配置使用共享块存储的 SBD 防护

如需配置 SBD 防护,您需要按照软件供应商提供的说明执行操作即可。

本部分介绍如何确定和验证 Google Cloud 为 SBD 防护预配的存储设备。

如需在 SUSE 上配置 SBD 防护,请参阅如下内容:

为 SBD 防护验证块存储设备

在为使用 SBD 防护的高可用性集群预配订单时,Google Cloud 会为 SBD 块存储创建三个共享 LUN。

您可以发出 multipath -ll 命令来列出两台服务器上的多路径设备,从而确定用于 SBD 的共享存储设备:

multipath -ll | grep "size=Size of your LUN" -B1

在每个列表中,查找三个大小相同的设备并记录其名称。默认大小为 50 GB。

在以下示例中,字符串 size=50G 用于过滤 multipath -ll 命令所返回的多路径设备列表:

multipath -ll | grep "size=50G" -B1

上述命令的示例输出包括要用于 SBD 防护的三个 50 GB 多路径设备:

3600a098038314566785d5150506a594b dm-16,LUN C-Mode
size=50G features='3 queue_if_no_path pg_init_retries 50' hwhandler='1 alua' wp=rw
--
3600a098038314566785d5150506a594c dm-15,LUN C-Mode
size=50G features='3 queue_if_no_path pg_init_retries 50' hwhandler='1 alua' wp=rw
--
3600a098038314566785d5150506a594d dm-11,LUN C-Mode
size=50G features='3 queue_if_no_path pg_init_retries 50' hwhandler='1 alua' wp=rw

这三个设备的名称在两个服务器上必须完全相同,这代表它们属于共享 LUN。

按照操作系统供应商提供的 SBD 配置说明进行操作时,您需要引用这三个设备的名称。

例如,在您初始化每个设备以供 SBD 使用并设置等待和超时值时,您可以指定设备名称,如以下示例所示:

sbd -d /dev/mapper/3600a098038314566785d5150506a594b -1 60 -4 180 create

/etc/sysconfig/sbd 中设置 SBD 配置时,您还需要引用设备的名称。例如:

SBD_DEVICE="/dev/mapper/3600a098038314566785d5150506a594b;/dev/mapper/3600a098038314566785d5150506a594c;/dev/mapper/3600a098038314566785d5150506a594d"
[..]
SBD_PACEMAKER="yes"
[...]
SBD_STARTMODE="always"

配置 fence_gce 代理

以下高级步骤可帮助您为使用 fence_gce 代理(包含在 Linux 操作系统中)的高可用性集群配置防护资源。

  1. 在 Google Cloud 项目中,将一个包含 baremetalsolution.service.resetInstance 权限的 IAM 角色分配给您已拥有 JSON 密钥文件的新 IAM 或现有 IAM 服务账号。

    预定义角色 roles/baremetalsolution.editor 包含所需的权限,您也可以创建自定义角色,以便更精确地控制角色包含的权限。

    有关详情,请参阅:

  1. 将服务账号 JSON 密钥文件上传到高可用性集群中的所有 Bare Metal 解决方案服务器。

  2. 确认您的 fence_gce 代理版本是否支持 Bare Metal 解决方案。

    1. 通过 SSH 连接到您的 Bare Metal 解决方案服务器

    2. 显示 fence_gce 代理帮助:

      $ sudo fence_gce --help
    3. fence_gce 帮助中,查找以下属性:

      --baremetalsolution            Enable on bare metal
      ...
      --serviceaccount=[filename]    Service account json file location e.g.
                                         serviceaccount=/somedir/service_account.json
      

      如果 --baremetalsolution--serviceaccount=[filename] 属性均未显示,则需要更新代理。如需获取修补说明,请与 Cloud Customer Care 联系。修补步骤因使用的 Linux 版本而异。

  3. 根据操作系统供应商提供的聚类说明配置集群资源时,请将 fence_gce 代理指定为每个集群节点的防护设备。

    定义资源时,请指定以下 fence_gce 参数,以便为 Bare Metal 解决方案环境启用代理:

    • baremetalsolution="true"
    • serviceaccount="file_path/key_file.json"

    以下示例展示了在 SUSE 中定义的 fence_gce 防护设备资源:

    crm configure primitive STONITH-"server_name" stonith:fence_gce \
     op monitor interval="300s" timeout="60s" on-fail="restart" \
     op start interval="0" timeout="60s" onfail="restart" \
     params port="server_name" zone="Google_Cloud_zone" project="Google_Cloud_project_ID" \
       baremetalsolution="true" method="cycle" \
       serviceaccount="file_path/key_file.json"

    防护资源示例使用以下定义:

    定义 说明
    baremetalsolution=true 配置防护代理,以便在裸金属解决方案环境中运行。
    serviceaccount=file_path/key_file.json JSON 密钥文件的文件路径,该文件包含防护代理用于访问 Google Cloud API 的服务账号的密钥。
    port=server_name 防护设备可以重置的裸金属解决方案服务器的原始主机名。
    method=cycle 定义重置失败服务器的方法。
  4. 定义每个防护资源后,请将防护设备的位置设置为除您希望重置服务器之外的服务器:

    crm configure location LOC_STONITH_server_name STONITH-server_name -inf: server_name

安装 Google Cloud 的 Agent for SAP

若要为裸金属解决方案服务器上运行的 SAP 系统提供 SAP 支持,需要使用 Google Cloud 的 Agent for SAP。

如果您使用 Google Cloud 提供的以下 RHEL 或 SLES“for SAP”操作系统映像,则 Google Cloud 的 SAP for Agent 会与操作系统映像打包在一起:

  • RHEL:所有“for SAP”映像
  • SLES:SLES 15 SP4 for SAP 及更高版本

如需了解可用于在裸金属解决方案服务器上运行 SAP 的操作系统,请参阅以下内容:

如需在裸金属解决方案服务器上安装 Google Cloud 的 Agent for SAP,请按照以下步骤操作:

  1. 与裸金属解决方案服务器建立 SSH 连接。

  2. 在您的终端中,通过运行特定于您的操作系统的命令来安装代理:

    • (推荐)如需安装代理 3.2 版(最新版),请运行以下命令:

      RHEL

      sudo tee /etc/yum.repos.d/google-cloud-sap-agent.repo << EOM
         [google-cloud-sap-agent]
         name=Google Cloud Agent for SAP
         baseurl=https://packages.cloud.google.com/yum/repos/google-cloud-sap-agent-el$(cat /etc/redhat-release | cut -d . -f 1 | tr -d -c 0-9)-x86_64
         enabled=1
         gpgcheck=1
         repo_gpgcheck=0
         gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
         EOM
         sudo yum install google-cloud-sap-agent

      SLES15

      sudo zypper addrepo --refresh https://packages.cloud.google.com/yum/repos/google-cloud-sap-agent-sles15-x86_64 google-cloud-sap-agent
         sudo zypper install google-cloud-sap-agent

      SLES 12

      sudo zypper addrepo --refresh https://packages.cloud.google.com/yum/repos/google-cloud-sap-agent-sles12-x86_64 google-cloud-sap-agent
         sudo zypper install google-cloud-sap-agent
    • 如需安装代理的特定版本,请运行以下命令:

      RHEL

      sudo tee /etc/yum.repos.d/google-cloud-sap-agent.repo << EOM
         [google-cloud-sap-agent]
         name=Google Cloud Agent for SAP
         baseurl=https://packages.cloud.google.com/yum/repos/google-cloud-sap-agent-el$(cat /etc/redhat-release | cut -d . -f 1 | tr -d -c 0-9)-x86_64
         enabled=1
         gpgcheck=1
         repo_gpgcheck=0
         gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
         EOM
         sudo yum install google-cloud-sap-agent-VERSION_NUMBER.x86_64

      SLES15

      sudo zypper addrepo --refresh https://packages.cloud.google.com/yum/repos/google-cloud-sap-agent-sles15-x86_64 google-cloud-sap-agent
         sudo zypper install google-cloud-sap-agent-VERSION_NUMBER.x86_64

      SLES 12

      sudo zypper addrepo --refresh https://packages.cloud.google.com/yum/repos/google-cloud-sap-agent-sles12-x86_64 google-cloud-sap-agent
         sudo zypper install google-cloud-sap-agent-VERSION_NUMBER.x86_64

      VERSION_NUMBER 替换为您要安装的代理的版本号,例如 3.1-606637668。如需了解您可以安装的代理版本,请参阅列出代理的所有可用版本

  3. 打开以下配置文件:

    /etc/google-cloud-sap-agent/configuration.json

  4. 修改以下参数或将其添加到配置文件中:

    • 在第一部分中:
      • bare_metal:设置为 true
    • 添加 cloud_properties 部分并指定以下参数:
      • project_id:指定您的 Google Cloud 项目
      • instance_name:指定裸金属解决方案服务器的名称
      • region:指定裸金属解决方案服务器的区域
  5. 保存配置文件。

  6. 重启代理:

    sudo systemctl restart google-cloud-sap-agent

如需详细了解配置参数,请参阅在裸金属解决方案服务器上安装 Google Cloud 的 Agent for SAP

安装 Google Cloud 的 Agent for SAP 和 SAP Host Agent 后,请按照验证代理安装情况中的说明验证 Google Cloud 的 Agent for SAP 的安装情况。

验证 Google Cloud 的 Agent for SAP 的安装情况

  1. 与裸金属解决方案服务器建立 SSH 连接。

  2. 运行以下命令:

    systemctl status google-cloud-sap-agent

    如果代理正常运行,则输出包含 active (running)。例如:

    google-cloud-sap-agent.service - Google Cloud Agent for SAP
    Loaded: loaded (/usr/lib/systemd/system/google-cloud-sap-agent.service; enabled; vendor preset: disabled)
    Active:  active (running)  since Fri 2022-12-02 07:21:42 UTC; 4 days ago
    Main PID: 1337673 (google-cloud-sa)
    Tasks: 9 (limit: 100427)
    Memory: 22.4 M (max: 1.0G limit: 1.0G)
    CGroup: /system.slice/google-cloud-sap-agent.service
           └─1337673 /usr/bin/google-cloud-sap-agent
    

如果代理未在运行,请重启代理

验证 SAP Host Agent 正在接收指标

如需验证基础架构指标是否由 Google Cloud's Agent for SAP 收集并正确发送到 SAP Host Agent,请按照以下步骤操作:

  1. 在您的 SAP 系统中,输入事务 ST06
  2. 在概览窗格中,检查以下字段的可用性和内容,以确保 SAP 与 Google 监控基础架构的端到端设置正确无误:

    • Cloud ProviderGoogle Cloud Platform
    • Enhanced Monitoring AccessTRUE
    • Enhanced Monitoring DetailsACTIVE

为 SAP HANA 设置监控

(可选)您可以使用 Google Cloud 的 Agent for SAP 来监控 SAP HANA 实例。从 2.0 版开始,您可以将代理配置为收集 SAP HANA 监控指标并将其发送到 Cloud Monitoring。借助 Cloud Monitoring,您可以创建信息中心以直观呈现这些指标,并根据指标阈值设置提醒等。

如需监控在裸金属解决方案环境中运行的 SAP 实例,您可以在裸金属解决方案服务器或 Compute Engine 虚拟机实例上安装 Google Cloud 的 Agent for SAP。根据代理主机在部署架构中的位置,您可以启用 SAP HANA 监控指标的本地、远程或混合收集。

如需详细了解如何使用 Google Cloud 的 Agent for SAP 收集 SAP HANA 监控指标,请参阅 SAP HANA 监控指标收集

启用 Backint 功能

(可选)您可以使用 Google Cloud 的 Agent for SAP 的 Backint 功能为 SAP HANA 系统执行备份和恢复操作。

如代理的 Backint 功能配置指南中所述,您需要在 Google Cloud 上创建服务账号,并为 SAP HANA 宿主机上的代理提供服务账号密钥访问权限。

如需了解如何启用 Google Cloud 的 Agent for SAP 的 Backint 功能,请参阅为 SAP HANA 配置基于 Backint 的备份和恢复

维护裸金属解决方案环境

对于运行 SAP HANA 的裸金属解决方案环境,Google Cloud 提供以下自助服务功能,您可以使用这些功能来维护裸金属解决方案服务器、存储空间和网络:

获取 Bare Metal 解决方案上的 SAP HANA 支持

如果您在解决 Bare Metal 解决方案上的 SAP HANA 部署问题时需要帮助,请收集所需的诊断信息,并与 Cloud Customer Care 联系。如需了解详情,请参阅 Bare Metal 解决方案上的 SAP 诊断信息

支持

如有 Google Cloud 基础架构或服务方面的问题,请与 Customer Care 联系。您可以在 Google Cloud 控制台中的“支持概览”页面上找到联系信息。如果 Customer Care 确定问题在于您的 SAP 系统,会将您引荐给 SAP 支持。

对于与 SAP 产品有关的问题,请通过 SAP 支持记录您的支持请求。 SAP 会评估支持服务工单,如果该问题似乎是 Google Cloud 基础架构问题,则将工单转移到 Google Cloud 组成团队 BC-OP-LNX-GOOGLEBC-OP-NT-GOOGLE

支持要求

您必须满足最低支持方案要求,才能获得对 SAP 系统及其使用的 Google Cloud 基础架构和服务的支持。

如需详细了解 Google Cloud 上的 SAP 的最低支持要求,请参阅: