本指南使用 Terraform 部署在 Linux 上运行 SAP NetWeaver 所需的全部 Google Cloud 资源,包括 Compute Engine 虚拟机 (VM)、Linux 操作系统和永久性磁盘。您可以在 Terraform 配置文件中定义安装的相关值,例如机器类型、资源名称、磁盘大小等。
如果您的 SAP NetWeaver 安装对部署过程的控制权要求超出 Terraform 配置文件的范围,请参阅为 Linux 上的 SAP NetWeaver 手动部署虚拟机。
如需部署运行 Windows 的虚拟机,请参阅 Windows 部署指南。
根据这些说明部署的虚拟机配置
根据这些说明部署的虚拟机用于 3 层式配置,其中 SAP NetWeaver 在一个虚拟机上运行,而数据库服务器在另一个虚拟机上运行。
要设置 SAP NetWeaver 与数据库服务器在同一个虚拟机上运行的 2 层式配置,请首先部署数据库服务器,然后为数据库服务器和 SAP NetWeaver 创建虚拟机和当时所需的磁盘。然后,在数据库服务器所在的虚拟机上安装 SAP NetWeaver。
如需了解如何为数据库服务器部署虚拟机,请参阅数据库服务器的数据库部署指南。
根据这些说明部署的 Google Cloud 资源
由 Terraform 配置文件部署的 Google Cloud 资源包括:
- 使用 SAP 认证版本 Linux 的虚拟机。
- 存储启动磁盘的永久性磁盘。
- 存储 SAP 二进制文件的永久性磁盘。
- 存储交换空间的永久性磁盘。
- 推荐的 API。
- Google Cloud 的 Agent for SAP。
以下说明使用的是 Cloud Shell,但您也可以在本地终端中使用 Google Cloud CLI。
如需详细了解实现规划,请参阅规划指南。如需了解您的系统的 IT 操作概览,请参阅操作指南。
创建项目
如果您需要 SAP 工作负载根据数据驻留、访问权限控制、支持人员或监管要求运行,则必须创建所需的 Assured Workloads 文件夹。如需了解详情,请参阅 SAP on Google Cloud 的合规性和主权控制。
如需创建项目,请执行以下操作:
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
配置 gcloud
命令环境
本部分中的说明使用 Cloud Shell 输入用于部署或配置 Google Cloud 资源的 gcloud
命令。您可在浏览器中通过 Google Cloud 控制台访问 Cloud Shell。
在您每次启动 Cloud Shell 时,Cloud Shell 都会在 Google Cloud 预配的一个虚拟机上运行。第一次使用 Cloud Shell 时,Google Cloud 还会为您创建一个持久性 $HOME
目录;每当您打开 Cloud Shell 时,系统都会恢复该目录。
预配的虚拟机包含最新的 Google Cloud CLI。因此,您在 Cloud Shell 中使用的 gcloud
命令与在本地安装的 gcloud CLI 实例中使用的命令相同。
如果您已安装 gcloud CLI,则可以从本地机器发出在这些说明中使用的 gcloud
命令。但是,使用本地安装的 gcloud CLI 时,您必须始终确保使用的 gcloud CLI 为最新版本。
无论是使用 Cloud Shell 还是 gcloud CLI,您都可以设置和更改 gcloud
命令环境的属性,并将它们保存为“配置”。配置是键值对的集合,它们会影响 gcloud
命令的行为。
您可以对 Cloud Shell 中的配置执行如下一些基本操作:
初始化配置:
gcloud init
查看当前 gcloud 配置的设置:
gcloud config list
切换到所需的 Google Cloud 项目。将
PROJECT_ID
替换为您的 Google Cloud 项目 ID。gcloud config set project PROJECT_ID
设置默认区域。将
REGION
替换为 Google Cloud 区域。gcloud config set compute/region REGION
设置默认可用区。将
ZONE
替换为 Google Cloud 可用区。gcloud config set compute/zone ZONE
创建新配置。将
NAME
替换为配置的名称。gcloud config configurations create NAME
如需详细了解如何使用配置,请参阅管理 gcloud CLI 配置。
创建网络
出于安全考虑,建议您创建一个新的网络。您可以通过添加防火墙规则或使用其他访问权限控制方法来控制哪些人有权访问该网络。
如果您的项目具有默认 VPC 网络,请勿使用。 请创建自己的 VPC 网络,以保证只有您明确创建的防火墙规则在起作用。
在部署期间,虚拟机实例通常需要访问互联网来下载 Google Cloud's Agent for SAP。如果您使用的是由 Google Cloud 提供的某一经 SAP 认证的 Linux 映像,那么虚拟机实例还需要访问互联网来注册许可以及访问操作系统供应商代码库。具有 NAT 网关和虚拟机网络标记的配置支持这种访问,即使目标虚拟机没有外部 IP 地址,也是如此。
如需为您的项目创建 VPC 网络,请完成以下步骤:
设置 NAT 网关
如果您需要创建一个或多个没有公共 IP 地址的虚拟机,则需要使用网络地址转换 (NAT) 以使虚拟机能够访问互联网。使用 Cloud NAT,这是 Google Cloud 提供的一项软件定义的托管式服务,可让虚拟机将出站数据包发送到互联网,并接收任何对应的已建立入站响应数据包。或者,您可以将单独的虚拟机设置为 NAT 网关。
如需为项目创建 Cloud NAT 实例,请参阅使用 Cloud NAT。
为项目配置 Cloud NAT 后,虚拟机实例可以在没有公共 IP 地址的情况下安全地访问互联网。
添加防火墙规则
默认情况下,系统会屏蔽从 Google Cloud 网络外部传入的连接。如需允许传入的连接,请为您的虚拟机设置防火墙规则。 这些防火墙规则仅适用于新传入虚拟机的连接。在与虚拟机建立连接后,防火墙会允许通过此连接的双向流量。
通过创建防火墙规则,您可以允许对指定端口进行访问,也可以允许同一子网中各虚拟机之间互相访问。
如要允许以下访问,请创建防火墙规则:
- 访问 SAP NetWeaver 使用的默认端口,具体请参阅所有 SAP 产品的 TCP/IP 端口。
- 从您的计算机或公司网络环境连接到 Compute Engine 虚拟机实例。如果您不确定使用哪个 IP 地址,请与您公司的网络管理员联系。
- 3 层式、横向扩缩或高可用性配置中的虚拟机之间的通信。例如,如果您要部署 3 层式系统,则子网中应至少有 2 个虚拟机:一个用于 SAP NetWeaver,另一个用于数据库服务器。为启用两个虚拟机之间相互通信,您必须创建防火墙规则以允许来自子网的流量。
- 通过端口
22
与虚拟机实例建立 SSH 连接,包括通过浏览器进行 SSH 连接。 - 从第三方工具(例如本地终端或 PuTTY)连接到虚拟机实例。可创建一条规则以允许该工具通过您的防火墙进行访问。如需了解详情,请参阅使用第三方工具连接到 Linux 虚拟机。
如需为您的项目创建防火墙规则,请参阅创建防火墙规则。
使用 Terraform 为 SAP NetWeaver 部署 Linux 虚拟机
以下说明使用 Cloud Shell 来部署 Linux 虚拟机实例以及 SAP NetWeaver 所需的所有永久性磁盘。
部署过程
打开 Cloud Shell。
将
sap_nw.tf
配置文件下载到您的工作目录:wget https://storage.googleapis.com/cloudsapdeploy/terraform/latest/terraform/sap_nw/terraform/sap_nw.tf
在 Cloud Shell 代码编辑器中打开
sap_nw.tf
文件。如需打开 Cloud Shell 代码编辑器,请点击 Cloud Shell 终端窗口右上角的铅笔图标。
在
sap_nw.tf
文件中,更新参数值,方法是将双引号中的内容替换为安装所需的值。下表介绍了这些参数。参数 数据类型 说明 source
字符串 指定部署期间要使用的 Terraform 模块的位置和版本。
sap_nw.tf
配置文件包含source
参数的两个实例:一个实例是当前活跃对象,另一个实例则作为注释包含在文件内。默认处于活跃状态的source
参数会指定latest
作为模块版本。source
参数的第二个实例(默认通过前导#
字符停用)会指定一个时间戳,用于标识特定模块版本。如果您需要所有部署使用同一模块版本,则从指定版本时间戳的
source
参数移除前导#
字符,并将该字符添加到指定latest
的source
参数。project_id
字符串 指定要在其中部署此系统的 Google Cloud 项目的 ID。 例如 my-project-x
。zone
字符串 指定要在其中部署 SAP 系统的可用区。可用区必须在您为子网选择的区域内。
例如,如果您的子网部署在
us-central1
区域,您可以指定us-central1-a
之类的可用区。machine_type
字符串 指定要在其上运行 SAP 系统的 Compute Engine 虚拟机 (VM) 的类型。如果您需要自定义虚拟机类型,请指定一个预定义虚拟机类型,其中 vCPU 的数量最接近但仍大于所需的数量。部署完成后,修改 vCPU 数量和内存量。 例如
n1-highmem-32
。subnetwork
字符串 指定您在先前步骤中创建的子网的名称。如果您要部署到共享 VPC,请以 SHARED_VPC_PROJECT_ID/SUBNETWORK
形式指定该值。例如myproject/network1
。linux_image
字符串 指定要在其中部署 SAP 系统的 Linux 操作系统映像的名称。 例如 rhel-9-2-sap-ha
或sles-15-sp5-sap
。 如需查看可用操作系统映像的列表,请参阅 Google Cloud 控制台中的映像页面。linux_image_project
字符串 指定包含您为 linux_image
参数指定的映像的 Google Cloud 项目。此项目可以是您自己的项目,也可以是某个 Google Cloud 映像项目。 对于 Compute Engine 映像,请指定rhel-sap-cloud
或suse-sap-cloud
。 如需查找操作系统的映像项目,请参阅操作系统详细信息。usr_sap_size
整数 可选。指定 /usr/sap
磁盘的大小(以 GB 为单位)。 最小为 8 GB。默认值为8
。sap_mnt_size
整数 可选。指定 /sapmnt
磁盘的大小(以 GB 为单位)。 最小为 8 GB。默认值为8
。swap_size
整数 可选。指定交换卷的大小(以 GB 为单位)。 最小为 8 GB。默认值为 8
。network_tags
字符串 可选。指定要与虚拟机实例关联的一个或多个网络标记(以英文逗号分隔),用于防火墙或路由。 如果您指定
public_ip = false
而不指定网络标记,请务必另外提供一种访问互联网的方法。public_ip
布尔值 可选。决定是否为虚拟机实例添加一个公共 IP 地址。默认值为 true
。service_account
字符串 可选。指定主机虚拟机以及主机虚拟机上运行的程序将要使用的用户管理的服务账号的电子邮件地址。例如 svc-acct-name@project-id.iam.gserviceaccount.com
。如果您指定此参数而不指定值,或者直接省略此参数,则安装脚本会使用 Compute Engine 默认服务账号。如需了解详情,请参阅 Google Cloud 上的 SAP 程序的身份和访问权限管理。
sap_deployment_debug
布尔值 可选。仅当 Cloud Customer Care 要求您为部署启用调试时才指定为 true
,这会使部署生成详细的部署日志。默认值为false
。reservation_name
字符串 可选。如需为此部署使用特定的 Compute Engine 虚拟机预留,请指定预留的名称。 默认情况下,安装脚本会根据以下条件选择任何可用的 Compute Engine 预留。 无论是您指定预留名称还是安装脚本自动选择预留,都必须对预留进行如下设置才能使用该预留:
-
将
specificReservationRequired
选项设置为true
;或在 Google Cloud 控制台中,选中选择特定预留选项。 -
某些 Compute Engine 机器类型支持的 CPU 平台不在该机器类型的 SAP 认证范围内。如果目标预留要用于以下任何机器类型,则必须按如下所示为该预留指定最低要求 CPU 平台:
n1-highmem-32
:Intel Broadwelln1-highmem-64
:Intel Broadwelln1-highmem-96
:Intel Skylakem1-megamem-96
:Intel Skylake
对于经过 SAP 认证在 Google Cloud 上使用的所有其他机器类型,最低要求 CPU 平台应符合 SAP 最低 CPU 要求。
can_ip_forward
布尔值 指定是否允许发送和接收来源 IP 或目标 IP 不匹配的数据包,从而使虚拟机能够充当路由器。默认值为
true
。如果您只打算使用 Google 的内部负载均衡器来管理已部署虚拟机的虚拟 IP,请将值设置为
false
。内部负载均衡器会作为高可用性模板的一部分自动部署。以下配置文件将创建配置为运行 SAP NetWeaver 的虚拟机。此配置文件将部署运行 SLES 15 SP3 操作系统的
n1-standard-16
虚拟机。该虚拟机包含运行 SAP NetWeaver 所需的所有目录。# ... module "sap_nw" { source = "https://storage.googleapis.com/cloudsapdeploy/terraform/latest/terraform/sap_nw/sap_nw_module.zip" # # By default, this source file uses the latest release of the terraform module # for SAP on Google Cloud. To fix your deployments to a specific release # of the module, comment out the source property above and uncomment the source property below. # # source = "https://storage.googleapis.com/cloudsapdeploy/terraform/YYYYMMDDHHMM/terraform/sap_nw/sap_nw_module.zip" # # ... # project_id = "example-project-123456" zone = "us-central1-f" machine_type = "n1-standard-16" subnetwork = "example-sub-network-sap" linux_image = "sles-15-sp3-sap" linux_image_project = "suse-sap-cloud" instance_name = "ex-vm-nw-lin" # ... usr_sap_size = 15 sap_mnt_size = 15 swap_size = 24 # ... }
-
将
初始化当前工作目录并下载适用于 Google Cloud 的 Terraform 提供程序插件和模块文件:
terraform init
terraform init
命令会为其他 Terraform 命令准备该工作目录。如需强制刷新工作目录中的提供程序插件和配置文件,请指定
--upgrade
标志。如果省略--upgrade
标志,并且您未对工作目录进行任何更改,则 Terraform 会使用本地缓存的副本,即使在source
网址中指定了latest
也是如此。terraform init --upgrade
(可选)创建 Terraform 执行计划:
terraform plan
terraform plan
命令会显示当前配置所需的更改。如果您跳过此步骤,则terraform apply
命令会自动创建新计划并提示您批准该计划。应用执行计划:
terraform apply
当系统提示您批准操作时,请输入
yes
。Terraform
apply
命令会根据 Terraform 配置文件中定义的参数设置 Google Cloud 基础设施。此过程可能需要几分钟的时间。要检查部署进度,请按照下一部分中的步骤操作。虚拟机实例部署完成之后,如果您需要 Compute Engine 在虚拟机实例被删除时保存启动磁盘,请执行以下操作:
在 Google Cloud 控制台中,进入虚拟机实例页面。
如需打开虚拟机实例的“虚拟机实例”详情页面,请点击虚拟机实例的名称。
点击修改。
在启动磁盘部分,确保为删除规则选中保留磁盘选项。
点击保存。
验证部署
如需验证部署,请检查 Cloud Logging 中的部署日志并检查虚拟机配置。
查看日志
在 Google Cloud 控制台中,打开 Cloud Logging 以监控安装进度并检查错误。
过滤日志:
日志浏览器
在日志浏览器页面中,转到查询窗格。
从资源下拉菜单中选择全局,然后点击添加。
如果您没有看到全局选项,请在查询编辑器中输入以下查询:
resource.type="global" "Deployment"
点击运行查询。
旧式日志查看器
- 在旧版日志查看器页面中,从基本选择器菜单选择全局作为日志记录资源。
分析过滤后的日志:
- 如果显示
"--- Finished"
,则表示部署已完成处理,您可以继续执行下一步。 如果出现配额错误,请执行以下步骤:
对于任何不符合 SAP NetWeaver 规划指南中列出的 SAP NetWeaver 要求的配额,请在“IAM 和管理”的配额页面上提高配额。
打开 Cloud Shell。
转到工作目录,然后删除部署以清理失败安装产生的虚拟机和永久性磁盘:
terraform destroy
当系统提示您批准该操作时,请输入
yes
。重新运行部署。
- 如果显示
检查虚拟机的配置
虚拟机实例部署完成之后,使用
ssh
连接到您的虚拟机。切换到根用户。
sudo su -
在命令提示符处,输入
df -h
。确保您看到类似如下所示的输出。确认已创建交换目录:
cat /proc/meminfo | grep Swap
您会看到类似如下示例的结果:
如果您使用的是 RHEL for SAP 9.0 或更高版本,请确保将虚拟机实例
chkconfig
和compat-openssl11
安装在虚拟机实例上。如需详细了解 SAP,请参阅 SAP 说明 3108316 - Red Hat Enterprise Linux 9.x:安装和配置。
如果任何验证步骤显示安装失败,请执行以下操作:
更正错误。
打开 Cloud Shell。
进入包含 Terraform 配置文件的目录。
删除该部署:
terraform destroy
当系统提示您批准该操作时,请输入
yes
。重新运行部署。
连接到您的虚拟机
如果您已定义防火墙规则以允许通过端口 22
进行访问,您可以使用常用的 SSH 工具连接到 Linux 虚拟机。
您可以通过 Google Cloud 控制台进行连接,也可以使用 gcloud
命令从终端进行连接。
控制台
如需在 Google Cloud 控制台中直接通过浏览器使用 ssh
进行连接,请按照以下所述操作:
- In the Google Cloud console, go to the VM instances page.
- In the list of virtual machine instances, click SSH in the row of the instance that you want to connect to.
gcloud
Google Cloud CLI 会在您需要时生成和应用新的项目范围 SSH 密钥,从而为您管理 SSH 密钥。
连接到您的虚拟机实例:
gcloud compute --project "[VM_PROJECT_ID]" ssh --zone "[VM_ZONE]" "[VM_NAME]"
其中:
[VM_PROJECT_ID]
是您在其中创建虚拟机的 Google Cloud 项目的 ID。[VM_ZONE]
是您的虚拟机所在的可用区。[VM_NAME]
是您的虚拟机实例的名称。
提交此命令后,终端会连接到 Google Cloud 上的虚拟机,您可以在 Linux 虚拟机上运行命令。完成后,可使用 exit
命令断开与虚拟机的连接。
您可以为 Linux 虚拟机生成新的密钥对,并将其应用于您的项目,这样您就可以使用第三方工具建立连接,例如在 Windows 工作站上使用 PuTTY 进行连接。 如需了解详情,请参阅创建 SSH 密钥。
您也可以使用此处未作介绍的其他连接方案。
如需详细了解如何连接到 Google Cloud 上的 Linux 虚拟机,请参阅连接到 Linux 实例。
设置数据库
如果您尚未在 Google Cloud 上部署数据库,请按照数据库对应的 Google Cloud 部署指南和您的数据库供应商提供的数据库文档中的说明设置数据库。
Google Cloud 为 SAP 认证的下列数据库提供部署指南:
- SAP HANA 指南
- SAP ASE 指南
- SAP MaxDB 指南
- IBM Db2 指南
- Windows SQL Server 指南:当 SAP NetWeaver 在 Linux 上运行时,只有 3 层式架构支持 Windows SQL Server。
当 SAP NetWeaver 和数据库服务器在 3 层式架构中的不同虚拟机上运行时,请确保定义了防火墙规则以允许虚拟机之间互相通信。
安装 Cloud Logging 代理
Cloud Logging 代理为您提供一种解决方案来记录 Google Cloud 系统活动日志,包括操作系统事件(如使用 SAP HANA,则包括 SAP HANA 事件)。Cloud Logging 代理不是必需组件,但我们建议您安装。如需详细了解 Google Cloud 日志记录,请参阅 Google Cloud 上的 SAP NetWeaver 操作指南。
如需在新虚拟机上安装 Cloud Logging 代理,请参阅在 Linux 和 Windows 上安装代理的说明。
安装 SAP NetWeaver
如需了解如何在新虚拟机上安装 SAP NetWeaver,请参阅 SAP 帮助门户和 SAP NetWeaver 主指南。
SAP NetWeaver 安装完毕后,请执行以下操作:
将 SAP 内核更新到支持的最低补丁程序级别。
如需详细了解受支持的 SAP 内核补丁程序级别,请参阅 SAP 说明 2446441 - Google Cloud 上的 Linux (IaaS):适应您的 SAP 许可。
安装永久 SAP NetWeaver 许可。
如需详细了解 SAP 提供的关于管理 SAP NetWeaver 许可的信息,请参阅 SAP 许可过程。
安装 SAP Host Agent
SAP Host Agent 已针对在 Google Cloud 上运行进行了改进。请确保至少运行 Google Cloud 环境所需的最低版本的 SAP Host Agent。
如需了解详情,请参阅以下 SAP 说明:
- SAP 说明 2460297 - Google Cloud Platform 上的 SAP (Linux):增强监控。
- 如需默认定期更新 SAP Host Agent,请参阅 SAP 说明 1473974 - 使用 SAP Host Agent 自动升级功能。
验证 Google Cloud 的 Agent for SAP 的安装
部署虚拟机并安装您的 SAP 系统后,请验证 Google Cloud's Agent for SAP 是否正常运行。
验证 Google Cloud 的 Agent for SAP 是否正在运行
如需验证代理是否正在运行,请按照以下步骤操作:
与您的 Compute Engine 实例建立 SSH 连接。
运行以下命令:
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,请按照以下步骤操作:
- 在您的 SAP 系统中,输入事务
ST06
。 在概览窗格中,检查以下字段的可用性和内容,以确保 SAP 与 Google 监控基础架构的端到端设置正确无误:
- Cloud Provider:
Google Cloud Platform
- Enhanced Monitoring Access:
TRUE
- Enhanced Monitoring Details:
ACTIVE
- Cloud Provider:
评估 SAP NetWeaver 工作负载
如需对 Google Cloud 上运行的 SAP NetWeaver 工作负载自动执行持续验证检查,您可以使用 Workload Manager。
借助 Workload Manager,您可以根据 SAP、Google Cloud 和操作系统供应商的最佳实践自动扫描和评估 SAP NetWeaver 工作负载。这有助于提高工作负载的质量、性能和可靠性。
如需了解 Workload Manager 支持用于评估 Google Cloud 上运行的 SAP NetWeaver 工作负载的最佳实践,请参阅适用于 SAP 的 Workload Manager 最佳实践。如需了解如何使用 Workload Manager 创建和运行评估,请参阅创建和运行评估。
问题排查
本部分包含有关如何更正常见问题的信息。
排查数据库服务器的通信问题
如果您设置了 3 层式 SAP 系统并且虚拟机之间存在连接问题,请确保已创建防火墙规则来允许子网上的虚拟机之间传输流量。
排查虚拟机连接问题
如果您在通过 ssh
连接到虚拟机时遇到问题,请确保已创建相关防火墙规则,可以在您所使用的 Google Cloud 网络中打开端口 22
。
对于其他可能的问题,请参阅有关通过浏览器进行 SSH 连接的已知问题。
排查 Google Cloud's Agent for SAP 问题
如需排查 Google Cloud 的 Agent for SAP 问题,请参阅 Google Cloud 的 Agent for SAP 问题排查指南。