本部署指南介绍了如何在 Linux 操作系统上部署和连接到可安装 SAP Adaptive Server Enterprise (ASE) 的 Compute Engine 虚拟机 (VM)。
本指南中的说明使用 Terraform 来部署和配置虚拟机、Linux 操作系统、SAP ASE 所需的磁盘卷,以及安装适用于 SAP NetWeaver 的 Google Cloud 监控代理。
如需详细了解如何规划部署,请参阅 SAP ASE 规划指南。 如需概要了解自动部署,请参阅使用 Terraform 在 Google Cloud 上自动部署 SAP。
前提条件
如果您需要 SAP 工作负载根据数据驻留、访问权限控制、支持人员或监管要求运行,则必须创建所需的 Assured Workloads 文件夹。如需了解详情,请参阅 SAP on Google Cloud 的合规性和主权控制。
如果您还没有已启用结算功能的 Google Cloud 项目,则必须先创建一个项目,然后才能部署要安装 SAP ASE 的虚拟机。
创建项目
- 登录您的 Google Cloud 账号。如果您是 Google Cloud 新手,请创建一个账号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a 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 地址的情况下安全地访问互联网。
添加防火墙规则
默认情况下,隐式防火墙规则会阻止从 Virtual Private Cloud (VPC) 网络外部传入的连接。如需允许传入的连接,请为您的虚拟机设置防火墙规则。在与虚拟机建立传入的连接后,防火墙会允许通过此连接的双向流量。
您还可以创建防火墙规则,允许对指定端口进行外部访问,或限制同一网络中各虚拟机之间的访问。如果使用 default
VPC 网络类型,则系统还会应用一些其他默认规则(例如 default-allow-internal
规则),以允许在同一网络中所有端口上的各虚拟机之间建立连接。
您可能需要通过创建防火墙规则来隔离或限制与数据库主机的连接,具体取决于适用于您的环境的 IT 政策。
根据您的使用场景,您可以创建防火墙规则来允许下列各项中的访问:
- 用于客户端连接的 ASE 网络侦听器。默认 ASE 端口号为
5000
。 - SAP ASE Cockpit 所需的端口。如需查看 ASE Cockpit 使用的端口列表,请参阅 SAP 帮助门户中的 SAP ASE Cockpit 文档。
- 所有 SAP 产品的 TCP/IP 中列出的默认 SAP 端口。
- 从您的计算机或公司网络环境到 Compute Engine 虚拟机实例的连接。如果您不确定使用哪个 IP 地址,请与您公司的网络管理员联系。
- 与虚拟机实例的 SSH 连接,包括浏览器中的 SSH。
- 使用 Linux 中的第三方工具与虚拟机建立的连接。可创建一条规则以允许该工具通过您的防火墙进行访问。
如需为您的项目创建防火墙规则,请参阅创建防火墙规则。
使用 Terraform 为 SAP ASE 部署 Linux 虚拟机
以下说明使用 Terraform 来部署 Linux 虚拟机实例以及 SAP ASE 所需的所有永久性磁盘。您可以在 Google Cloud 提供的 sap_ase.tf
配置文件中定义安装所需的值。
以下说明使用的是 Cloud Shell,但您也可以在本地终端中使用 Terraform。
打开 Cloud Shell。
在 Cloud Shell 中输入以下命令,以将
sap_ase.tf
配置文件下载到您的工作目录中:wget https://storage.googleapis.com/cloudsapdeploy/terraform/latest/terraform/sap_ase/terraform/sap_ase.tf
在 Cloud Shell 代码编辑器中打开
sap_ase.tf
文件。如需打开 Cloud Shell 代码编辑器,请点击打开编辑器。
在
sap_ase.tf
文件中,更新以下参数值,方法是将双引号中的内容替换为安装所需的值。大多数可选参数都有默认值。如果未指定可选参数,则 Terraform 配置会使用该参数的默认值(如果有)。
参数 数据类型 说明 source
字符串 指定部署期间要使用的 Terraform 模块的位置和版本。
sap_ase.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
。 如需查找操作系统的映像项目,请参阅操作系统详细信息。instance_name
字符串 指定主机虚拟机实例的名称。该名称可以包含小写字母、数字和连字符。工作器主机和备用主机的虚拟机实例使用相同的名称并在后面附加 w
和各自的主机编号。ase_sid
字符串 指定 SAP ASE 数据库实例的 SID。此 ID 必须由 3 个字母数字字符组成,并以字母开头。所有字母必须大写。 例如 ED1
。ase_sid_size
整数 可选。指定 /sybase/DBSID
卷的大小(以 GB 为单位),该目录是 SAP ASE 数据库实例的根目录。 最小为 8 GB。默认值为8
。ase_diag_size
整数 可选。指定 /sybase/DBSID/sapdiag
卷的大小(以 GB 为单位),该卷用于保存 SAPTOOLS 的诊断表空间。 最小为 8 GB。默认值为8
。ase_sap_temp_size
整数 可选。指定 /sybase/DBSID/saptmp
卷的大小(以 GB 为单位),该目录用于存放数据库实例的临时表空间。 最小为 8 GB。默认值为8
。ase_sap_data_size
整数 可选。指定 /sybase/DBSID/sapdata
卷的大小(以 GB 为单位),该目录用于存放数据库数据文件。 最小为 30 GB。默认值为30
。ase_sap_data_ssd
布尔值 可选。指定 true
可为/sybase/DBSID/sapdata
卷预配 SSD 永久性磁盘。如果指定false
,则会预配平衡永久性磁盘。默认值为true
。ase_log_size
整数 可选。指定 /sybase/DBSID/logdir
卷的大小(以 GB 为单位),该目录用于存放数据库事务日志。 最小为 8 GB。默认值为8
。ase_log_ssd
布尔值 可选。指定 true
可为/sybase/DBSID/logdir
卷预配 SSD 永久性磁盘。如果指定false
,则会预配平衡永久性磁盘。 默认值为true
。ase_backup_size
整数 可选。指定 /sybasebackup
卷的大小(以 GB 为单位)。如果未指定此参数或将其值设置为0
,则不会为/sybasebackup
卷预配任何磁盘。usr_sap_size
整数 如需在同一虚拟机实例上运行 SAP ASE 和 SAP NetWeaver,请指定 /usr/sap
磁盘的大小(以 GB 为单位)。如果未指定此参数或将其值设置为
0
,则不会为/usr/sap
卷预配任何磁盘。sap_mnt_size
整数 如需在同一虚拟机实例上运行 SAP ASE 和 SAP NetWeaver,请指定 /sapmnt
磁盘的大小(以 GB 为单位)。如果未指定此参数或将其值设置为
0
,则不会为/sapmnt
卷预配任何磁盘。swap_size
整数 如需在同一虚拟机实例上运行 SAP ASE 和 SAP NetWeaver,请指定交换卷的大小(以 GB 为单位)。 如果未指定此参数或将其值设置为
0
,则不会为交换卷预配任何磁盘。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 要求。
以下示例展示了一个已完成的配置文件,该文件会创建一个配置为运行 SAP ASE 数据库服务器和 SAP NetWeaver 的虚拟机。此配置文件会引导 Terarform 部署运行 SLES 15 SP3 操作系统的
n1-standard-16
虚拟机。该虚拟机包含运行 SAP ASE 和 SAP NetWeaver 所需的所有目录。# #... module "sap_ase" { source = https://storage.googleapis.com/cloudsapdeploy/terraform/latest/terraform/sap_ase/sap_ase_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_ase/sap_ase_module.zip" # ... project_id = "example-project-123456" zone = "us-central1-f" machine_type = "n1-standard-16" subnetwork = "example-subnet-us-central1" linux_image = "sles-15-sp3-sap" linux_image_project = "suse-sap-cloud" # ... instance_name = "ex-vm-ase-lin" # ... ase_sid = "AS1" ase_sid_size = 10 ase_diag_size = 15 ase_sap_temp_size = 20 ase_sap_data_size = 50 ase_sap_data_ssd = true ase_log_size = 30 ase_log_ssd = true ase_backup_size = 100 # ... 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 控制台中,转到 Compute Engine 虚拟机实例页面。
如需打开虚拟机实例的“虚拟机实例”详情页面,请点击虚拟机实例的名称。
点击修改。
在启动磁盘部分,确保为删除规则选中保留磁盘选项。
点击保存。
验证部署
如需验证部署,请检查 Cloud Logging 中的部署日志并检查虚拟机配置。
查看日志
在 Google Cloud 控制台中,打开 Cloud Logging 以监控安装进度并检查错误。
过滤日志:
日志浏览器
在日志浏览器页面中,转到查询窗格。
从资源下拉菜单中选择全局,然后点击添加。
如果您没有看到全局选项,请在查询编辑器中输入以下查询:
resource.type="global" "Deployment"
点击运行查询。
旧式日志查看器
- 在旧版日志查看器页面中,从基本选择器菜单选择全局作为日志记录资源。
分析过滤后的日志:
- 如果显示
"--- Finished"
,则表示部署已完成处理,您可以继续执行下一步。 如果出现配额错误,请执行以下步骤:
对于任何不符合 SAP ASE 规划指南中列出的 SAP ASE 要求的配额,请在“IAM 和管理”的配额页面上提高配额。
打开 Cloud Shell。
转到工作目录,然后删除部署以清理失败安装产生的虚拟机和永久性磁盘:
terraform destroy
当系统提示您批准该操作时,请输入
yes
。重新运行部署。
- 如果显示
检查虚拟机的配置
部署 SAP ASE 系统后(没有出现错误),使用 SSH 连接到您的虚拟机。在 Compute Engine 的“虚拟机实例”页面中,您可以点击虚拟机实例对应的 SSH 按钮,也可以使用自己偏好的 SSH 方法。
切换到根用户。
sudo su -
在命令提示符处,输入
df -h
。确保您看到的是类似如下所示的输出,例如//sybase/DBSID/sapdata
目录。Filesystem Size Used Avail Use% Mounted on devtmpfs 4.0M 8.0K 4.0M 1% /dev tmpfs 30G 0 30G 0% /dev/shm tmpfs 12G 18M 12G 1% /run tmpfs 4.0M 0 4.0M 0% /sys/fs/cgroup /dev/sda3 30G 4.3G 26G 15% / /dev/sda2 20M 2.9M 18M 15% /boot/efi tmpfs 5.9G 0 5.9G 0% /run/user/0 tmpfs 5.9G 0 5.9G 0% /run/user/1000 /dev/mapper/vg_asesid-vol 10G 43M 10G 1% /sybase/AS1 /dev/mapper/vg_asesapdata-vol 50G 84M 50G 1% /sybase/AS1/sapdata_1 /dev/mapper/vg_aselog-vol 30G 63M 30G 1% /sybase/AS1/saplog_1 /dev/mapper/vg_asesaptemp-vol 20G 53M 20G 1% /sybase/AS1/saptemp /dev/mapper/vg_asesapdiag-vol 15G 48M 15G 1% /sybase/AS1/sapdiag /dev/mapper/vg_asebackup-vol 100G 135M 100G 1% /sybasebackup /dev/mapper/vg_usrsap-vol 15G 48M 15G 1% /usr/sap /dev/mapper/vg_sapmnt-vol 15G 48M 15G 1% /sapmnt
输入以下命令确认已创建 swap 目录:
cat /proc/meminfo | grep Swap
您应该会看到类似如下示例的结果:
SwapCached: 0 kB SwapTotal: 25161724 kB SwapFree: 25161724 kB
清理并重试部署
如果上述各部分中的任何部署验证步骤显示安装失败,则必须撤消部署并通过完成以下步骤重试:
解决所有错误以确保您的部署不会因同一原因再次失败。如需了解如何检查日志或解决配额相关错误,请参阅检查日志。
打开 Cloud Shell;如果已在本地工作站上安装了 Google Cloud CLI,则打开一个终端。
转到包含用于此部署的 Terraform 配置文件的目录。
通过运行以下命令删除属于部署的所有资源:
terraform destroy
当系统提示您批准该操作时,请输入
yes
。按照本指南前面的说明重试部署。
安装数据库
现在,您的操作系统已配置完毕,接下来您便可以安装 SAP ASE 数据库实例。
如需在基于 Linux 的虚拟机上安装 SAP ASE,请按照以下步骤操作:
- 与虚拟机建立 SSH 连接。
- 将 SAP ASE 安装媒体从 SAP 下载或复制到虚拟机中。
- 准备好要在安装过程中使用的 SAP ASE SySAM 许可文件或许可服务器。
- 安装 SAP ASE 数据库。
如需获得其他安装指南,请参阅适用于 Linux 的 SAP ASE 安装和升级指南。
执行部署后任务
在使用 SAP ASE 实例之前,我们建议您先执行以下几个部署后步骤:
- 使用最新的补丁程序更新 SAP ASE 软件(如果有)。
- 安装其他任何组件。
- 配置新的 SAP ASE 数据库实例并进行备份。
如需获取更多的部署后指导信息,请参阅适用于 Linux 的 SAP ASE 安装和升级指南中的“安装后任务”部分。
验证 Google Cloud 的 Agent for SAP 的安装
部署虚拟机并安装您的 SAP 系统后,请验证 Google Cloud's Agent for SAP 是否正常运行。
验证 Google Cloud 的 Agent for SAP 是否正在运行
如需验证代理是否正在运行,请按照以下步骤操作:
与主机虚拟机实例建立 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:
问题排查
本部分介绍如何更正常见问题。
排查虚拟机连接问题
如果您在通过 SSH 连接到虚拟机时遇到问题,请确保已创建相关防火墙规则,可以在您所使用的 VPC 网络中打开端口 22
。
对于其他可能的问题,请参阅有关通过浏览器进行 SSH 连接的已知问题。
排查 Google 监控代理的问题
如需排查与 SAP NetWeaver 监控代理相关的问题,请参阅监控问题排查。