IBM Cloud Docs
为 Power Virtual Server SAP 工作负载部署 IBM Cloud VPC 基础设施

为 Power Virtual Server SAP 工作负载部署 IBM Cloud VPC 基础设施

作为在 IBM® Power® Virtual Server 上运行的 SAP 的最佳实践,创建了一个 IBM Cloud VPC 并部署和配置了两个虚拟服务器实例。

  • 部署在边缘 VPC 中的访问主机用于景观的管理访问。
  • 部署在边缘 VPC 中的网络管理服务主机为 Power Virtual Server 实例提供某些网络服务,如代理转发、NFS、DNS、NTP 和监控服务。

VPC landing zone SAP Power Virtual Server
VPC landing zone SAP Power Virtual Server

为管理服务部署 IBM Cloud VPC

IBM Cloud VPC 管理服务是 最佳做法中的一个 SAP Power Virtual Server 强制性组成部分。 该服务负责访问环境的主机。

  • 设置虚拟私有云,用于管理服务。 更多信息,请参阅 创建VPC和子网
  • 请注意默认网络前缀。 我们建议您减少默认网络前缀,以免与您的所有 IBM Cloud VPC 服务发生重叠。
  • 可选择将公共网关附加到子网。 使用该选项,子网中的每个虚拟服务器实例都可以与互联网通信。 另一种方法是,在虚拟系统实例上使用浮动IP地址,并为实例启用互联网。 下表 概述了所用网络的隔离情况。

在边缘 VPC 中部署访问主机

访问主机是 SAP 上 Power Virtual Server 最佳实践的必备组件。 通过这个虚拟服务器实例,浮动IP地址被激活。 然后,您可以使用SSH登录到该环境。 您需要单独设置一个VPN访问,并禁用浮动IP地址,以获得更安全的环境。 使用以下步骤部署访问主机。

  1. 此处 所述为边缘 VPC 创建 ACL 规则

  2. 按照 此处 所述,为管理服务、网络服务和 IBM Cloud 服务创建安全组。 有关详细信息,请参阅 为实例配置安全组。 请遵守以下规则。

  3. 使用 Linux 操作系统创建虚拟服务器实例。 更多信息,请参阅 创建虚拟服务器实例

    • 您可以选择任何可用的 Linux 图像,但您需要为横向布局中的所有虚拟服务器实例使用相同的操作系统版本。 我们使用最新版本的 Red Hat Enterprise Linux (从RHEL 8.4 开始)和Suse Linux Enterprise Server(从SLES 15 SP3 开始)来验证设置。
    • 您在使用哪种计算配置文件、SAP 认证或存储和网络性能方面没有任何限制。 您可以使用配置2个虚拟CPU和4GB内存的最小配置。
  4. 将正确的安全组(management-sg 安全组)附加到上一步创建的虚拟服务器实例。 分离默认安全组。

  5. 在访问主机上启用浮动IP地址。 更多信息,请参阅“保留浮动IP地址”。

  6. 实例状态更改为 Running 后,请确认您可以在访问主机上成功登录。

我们建议您使用两个额外的SSH客户端参数来获得更可靠的SSH连接:ServerAliveInterval=60ServerAliveCountMax=600。 如果您使用非默认路径访问 SSH 密钥,则必须通过以下 SSH 客户端参数进行指定:-i \<path to your SSH private key\>

SSH命令示例:

ssh -A -o ServerAliveInterval=60 -o ServerAliveCountMax=600 root@\<access_host_floating_ip\>

在边缘 VPC 中部署网络服务主机

互联网服务主机是 Power Virtual Server 最佳实践中的 SAP 的必备组件。 该虚拟服务器实例托管强制代理服务器、NTP 和 DNS 服务。 它还被配置为中央 Ansible Node。 使用以下步骤为基本网络管理服务部署主机。

以下示例设置使用 Linux 发行版提供的标准SQUID代理服务器的开放端口。 如果您使用其他代理软件或自定义配置,设置可能会有所不同。

  1. 使用 Linux 提供虚拟服务实例。 更多信息,请参阅 创建虚拟服务器实例
    • 您可以选择任何可用的 Linux 分发。 我们建议您为所有虚拟服务器实例使用相同的操作系统版本。 我们使用最新版本的 Red Hat Enterprise Linux (从RHEL 8.4 开始)和Suse Linux Enterprise Server(从SLES 15 SP3 开始)来验证设置。
    • 通常情况下,配备2或4个虚拟CPU以及4GB或8GB内存的配置就足够了。 如果您对性能有更高的要求,可以使用SQUID缓存,选择具有更多虚拟CPU或内存的配置文件。
    • 我们建议您为实例添加额外的存储空间,将 SAP 安装文件放置在这个单独的磁盘上,并通过 NFS 导出。 磁盘容量必须足够大,才能容纳来自 IBM Cloud Object Storage 的所有数据,这些数据与所有安装和设置相关。
  2. 将正确的安全组附加到上一步创建的虚拟服务器实例(network-services-sg 安全组)。 分离默认安全组。
  3. 一段时间后,实例状态变为“运行中”。

验证是否可以通过接入主机成功登录到该主机并使用网络服务。 访问主机的浮动 IP 地址指定为 ssh 命令的 ProxyCommand 参数。

我们建议您使用两个额外的SSH客户端参数,以获得更可靠的SSH连接:ServerAliveInterval=60ServerAliveCountMax=600。 如果您使用非默认路径访问 SSH 密钥,则必须通过以下 SSH 客户端参数进行指定:-i \<path_to_your_SSH_private_key\>

SSH 命令示例(通过访问主机提供网络服务的主机):

ssh -A -o ServerAliveInterval=60 -o ServerAliveCountMax=600 -o ProxyCommand=\"ssh -W %h:%p root@\<access_host_floating_ip\>\" root@\<network_services_host_private_ip\>

中的英特尔虚拟服务器实例上配置网络管理服务。IBM Cloud VPC

以下设置示例演示了如何使用SQUID代理服务器、NFS 服务器、NTP转发器、IBM Cloud DNS服务或用于私人DNS服务器的DNS转发器。 此处不涉及中央用户管理(LDAP)的设置。

设置SQUID代理服务器

  1. 确保主机用于互联网服务的边缘服务在 IBM Cloud VPC 安全组中的所有必需端口均已打开。 所需端口已配置为互联网服务。 SQUID代理所需的端口被 Power Virtual Server 服务占用。 更多信息,请参阅 创建代理

  2. 登录网络服务实例。 SSH命令示例:

    ssh -A -o ServerAliveInterval=60 -o ServerAliveCountMax=600 -o ProxyCommand=\"ssh -W %h:%p root@\<access_host_floating_ip\>\" root@\<network_services_host_private_ip\>
    
  3. 确保鱿鱼软件可用。 SUSE:zypper update -y; zypper install -y squid。 在RHEL上:yum update -y; yum install epel-release; yum install -y squid

  4. 修改SQUID配置,添加与在 Power Virtual Server 上运行的虚拟实例的操作系统更新注册相关的规则。 更多信息,请参阅 代理配置文档

  5. 启用并重启SQUID服务:systemctl stop squid; systemctl start squid; systemctl enable squid

设置SQUID代理服务器—— Ansible

要通过ansible自动化执行上述步骤,请下载ansible-galaxy合集 ibm.power_linux_sap

ansible-galaxy collection install ibm.power_linux_sap

安装ansible软件包后,要设置代理,请更新变量文件 playbook/vars/sample-variables-configure-network-services-host.yml

server_config: {
  squid: { enable: true }
}

文件更新后,运行以下ansible-playbook命令。

ansible-playbook \--connection=local -i \"localhost,\" playbooks/sample-configure-network-services-host.yml

此 ansible 执行确保在主机上配置了用于网络服务的 squid 代理服务器。

为 SAP 安装文件设置 NFS 服务器

  1. 确保 IBM Cloud VPC 中网络服务安全组中主机用于私人服务的所有必要端口都已打开。 所需的端口已配置为私有服务。 NFS 服务器所需的端口是:111(TCP和UDP)和2049(TCP和UDP)。

  2. 登录网络服务实例。 SSH命令示例:

    ssh -A -o ServerAliveInterval=60 -o ServerAliveCountMax=600 -o ProxyCommand=\"ssh -W %h:%p root@\<access_host_floating_ip\>\" root@\<network_services_host_private_ip\>
    
  3. 请确保已安装所需的 NFS 软件。 SUSE:zypper update -y; zypper install -y nfs-utils。 在RHEL上:yum update -y; yum install epel-release; yum install -y nfs-utils

  4. 创建一个 NFS 所在的目录并导出。

  5. 启动 NFS 服务并确认目录已导出。 使用命令 showmount -e

  6. 确保 awscli 软件可用。 该软件随后用于从 S3 存储( IBM Cloud Object Storage )下载软件。 SUSE:zypper update -y; zypper install -y aws-cli。 在RHEL上:yum update -y; yum install epel-release; yum install -y awscli

为 SAP 安装文件设置 NFS 服务器—— Ansible

要通过ansible自动化执行上述步骤,请下载ansible-galaxy合集 ibm.power_linux_sap

ansible-galaxy collection install ibm.power_linux_sap

安装 ansible 套件后,更新变量文件 playbook/vars/sample-variables-configure-network-services-host.yml,设置 NFS。

server_config: {
  nfs: { enable: true, nfs_directory: "/NFS;/hana/software" }
}

文件更新后,运行以下ansible-playbook命令。

ansible-playbook \--connection=local -i \"localhost,\" playbooks/sample-configure-network-services-host.yml

该 ansible 执行确保网络服务主机作为 NFS 服务器运行。

设置NTP代理和转发器

  1. 确保 IBM Cloud VPC 中网络服务安全组中主机用于私人服务的所有必要端口都已打开。 所需的端口已配置为私有服务。 NTP转发器的所需端口为:123(TCP)。

  2. 登录网络服务实例。 SSH命令示例:

    ssh -A -o ServerAliveInterval=60 -o ServerAliveCountMax=600 -o ProxyCommand=\"ssh -W %h:%p root@\<access_host_floating_ip\>\" root@\<network_services_host_private_ip\>
    
  3. 请确保已安装所需的NTP软件。 SUSE:zypper update -y; zypper install -y chrony。 在RHEL上:yum update -y; yum install epel-release; yum install -y chrony

  4. 修改文件“/etc/chrony.conf”,并添加以下几行。 将 \<pvs_mgmt_cidr\> 替换为 Power Virtual Server 管理CIDR块(网段)

    local stratum 10
    manual
    allow \<pvs_mgmt_cidr \>
    
  5. 启用并启动计时服务:systemctl stop chronyd; systemctl start chronyd; systemctl enable chronyd;

设置NTP代理或转发器—— Ansible

要通过ansible自动化执行之前的步骤,请下载ansible-galaxy合集 ibm.power_linux_sap

ansible-galaxy collection install ibm.power_linux_sap

安装 ansible 套件后,要设置 NTP,请更新变量文件 playbook/vars/sample-variables-configure-network-services-host.yml

server_config: {
  ntp: { enable: true }
}

文件更新后,运行以下ansible-playbook命令。

ansible-playbook \--connection=local -i \"localhost,\" playbooks/sample-configure-network-services-host.yml

此 ansible 执行可确保 NTP 代理已在主机上配置为网络服务。

设置 IBM Cloud-本地DNS服务(DNS选项1)

您可以使用 IBM Cloud DNS 服务,该服务可通过自定义解析器从 IBM Power Virtual Server 直接访问。 有关更多信息,请参阅以下链接。

在解析器中指定 IBM Cloud VPC 的 VPE 子网作为网络服务的位置。

确保 IBM Cloud VPC 中网络服务安全组中主机用于私人服务的所有必要端口都已打开。 所需的端口已配置为私有服务。 DNS所需端口为:53(TCP和UDP)。 因此,您将获得一个私有IP地址,您可以通过私有子网配置在 Power® Virtual Server 实例中将其指定为DNS终端节点。 这些IP地址在操作系统中输入到 /etc/resolv.conf

设置DNS转发器(DNS选项2)

如果使用自己的 DNS 服务,其 IP 必须可以从 VPC 访问网络服务。 如果无法从 IBM 电力系统 Virtual Servers 直接访问 IP,则需要主机上的 DNS 转发器来提供关键管理服务。 使用以下步骤完成配置:

  1. 确保 IBM Cloud VPC 中网络服务安全组中主机用于私人服务的所有必要端口都已打开。 所需的端口已配置为私有服务。 DNS所需端口为:53(TCP和UDP)。

  2. 登录到私人服务实例。 您可以使用以下 SSH 命令示例:

    ssh -A -o ServerAliveInterval=60 -o ServerAliveCountMax=600 -o ProxyCommand=\"ssh -W %h:%p root@\<access_host_floating_ip\>\" root@\<network_services_host_private_ip\>
    
  3. 请确保所需的DNS软件可用。 SUSE:zypper update -y; zypper install -y bind。 在RHEL上:yum update -y; yum install epel-release; yum install -y bind

  4. 修改文件 /etc/named.conf:

    • 在文件开头,紧接起始注释( options 部分开始之前)后添加以下几行。 将 \<pvs_mgmt_cidr\> 替换为 Power Virtual Server 管理CIDR块(网段)

      acl allowed_clients {
      localhost;
      10.10.0.0/16;
      };
      
    • options 部分的开头添加以下几行。 161.26.0.x IP地址是 IBM Cloud DNS服务器。9.9.9.9 IP地址是 IBM 公共DNS服务器IP地址。 用您选择的DNS服务器替换或扩展此IP列表。

      forwarders {
      161.26.0.7;
      161.26.0.8;
      9.9.9.9;
      };
      recursion yes;
      allow-query { allowed_clients; };
      forward only;
      
  5. 启用并启动DNS服务:systemctl stop named; systemctl start named; systemctl enable named;

设置DNS转发器(DNS选项2)—— Ansible

要通过ansible自动化执行上述步骤,请下载ansible-galaxy合集 ibm.power_linux_sap

ansible-galaxy collection install ibm.power_linux_sap

安装ansible软件包后,要设置代理,请更新变量文件 playbook/vars/sample-variables-configure-network-services-host.yml

server_config: {
  dns: { enable: false, dns_servers: "161.26.0.7; 161.26.0.8; 9.9.9.9;" }
}

文件更新后,运行以下ansible-playbook命令。

ansible-playbook \--connection=local -i \"localhost,\" playbooks/sample-configure-network-services-host.yml

这种可执行的执行方式确保在 Power Virtual Server 上配置DNS转发器服务。

其他服务的可选步骤 IBM Cloud VPC

要创建负载平衡器等其他 VPC 资源,请参阅 使用 IBM Cloud 控制台创建 VPC 资源

Terraform 自动化 - 为 VPC landing zone 进行部署 Power Virtual Server

上述所有步骤都使用 terraform 和 ansible 自动完成,可作为可部署架构解决方案在 IBM Cloud Catalog 中提供。 要进行配置和部署,请查看 链接 了解更多详情。