Deployment Manager:为 Windows 上的 SAP ASE 自动部署虚拟机

本部署指南介绍了如何部署和连接 Compute Engine 虚拟机 (VM),以便在 Windows Server 操作系统上安装 SAP Adaptive Server Enterprise (ASE)。

本指南中的说明使用 Cloud Deployment Manager 来部署和配置虚拟机、Windows Server 操作系统以及 SAP ASE 所需的磁盘卷。

如需详细了解如何规划部署,请参阅 SAP ASE 规划指南

前提条件

如果您需要 SAP 工作负载根据数据驻留、访问权限控制、支持人员或监管要求运行,则必须创建所需的 Assured Workloads 文件夹。如需了解详情,请参阅 SAP on Google Cloud 的合规性和主权控制

如果您还没有已启用结算功能的 Google Cloud 项目,必须先创建一个项目,然后才能部署要安装 SAP ASE 的虚拟机。

如需创建项目,请执行以下操作:

  1. 登录您的 Google Cloud 账号。如果您是 Google Cloud 新手,请创建一个账号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. 确保您的 Google Cloud 项目已启用结算功能

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  5. 确保您的 Google Cloud 项目已启用结算功能

配置 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 地址,也是如此。

如需设置网络,请执行以下操作:

控制台

  1. 在 Google Cloud 控制台中,转到 VPC 网络页面。

    转到 VPC 网络页面

  2. 点击创建 VPC 网络
  3. 输入网络的名称

    名称必须遵循命名惯例。VPC 网络使用 Compute Engine 命名惯例。

  4. 对于子网创建模式,选择自定义
  5. 新子网部分,为子网指定以下配置参数:
    1. 输入子网的名称
    2. 对于区域,请选择您要在其中创建子网的 Compute Engine 区域
    3. 对于 IP 栈类型,请选择 IPv4(单栈),然后输入 CIDR 格式的 IP 地址范围,例如 10.1.0.0/24

      这是子网的主要 IPv4 地址范围。如果您计划添加多个子网,请为网络中的每个子网分配互不重叠的 CIDR IP 地址范围。请注意,每个子网及其内部 IP 地址范围都映射到一个区域。

    4. 点击完成
  6. 如需添加更多子网,请点击添加子网,然后重复上述步骤。您可以在创建网络后向网络添加更多子网。
  7. 点击创建

gcloud

  1. 转至 Cloud Shell。

    打开 Cloud Shell

  2. 如需在自定义子网模式下创建新网络,请运行以下命令:
    gcloud compute networks create NETWORK_NAME --subnet-mode custom

    NETWORK_NAME 替换为新网络的名称。名称必须遵循命名惯例。VPC 网络使用 Compute Engine 命名惯例。

    指定 --subnet-mode custom 可避免使用默认的自动模式,该模式会自动在每个 Compute Engine 区域创建一个子网。如需了解详情,请参阅子网创建模式

  3. 创建一个子网,并指定区域和 IP 地址范围:
    gcloud compute networks subnets create SUBNETWORK_NAME \
        --network NETWORK_NAME --region REGION --range RANGE

    替换以下内容:

    • SUBNETWORK_NAME:新子网的名称
    • NETWORK_NAME:您在上一步中创建的网络的名称
    • REGION:您需要子网的区域。如果您将 SAP ASE 与 SAP NetWeaver 搭配使用,请使用 SAP NetWeaver 支持的区域。
    • RANGE以 CIDR 格式指定的 IP 地址范围,例如 10.1.0.0/24

      如果您计划添加多个子网,请为网络中的每个子网分配互不重叠的 CIDR IP 地址范围。请注意,每个子网及其内部 IP 地址范围均映射到一个区域。

  4. (可选)重复上述步骤并添加更多子网。

设置 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 地址,请与您公司的网络管理员联系。
  • SAP HANA 子网中虚拟机之间的通信,包括 SAP HANA 横向扩容系统中节点之间的通信,或采用三层架构的数据库服务器和应用服务器之间的通信。您可以通过创建允许来自子网的流量的防火墙规则,使虚拟机之间能够互相通信。
  • 到虚拟机实例的 RDP 连接。默认 RDP 端口号为 3389
  • 到虚拟机实例的 PowerShell 连接。默认 RDP 端口号为 5986

如需创建防火墙规则,请执行以下操作:

控制台

  1. 在 Google Cloud 控制台中,进入 VPC 网络防火墙页面。

    进入“防火墙”

  2. 点击页面顶部的创建防火墙规则

    • 网络字段中,选择虚拟机所在的网络。
    • 目标字段中,指定要应用此规则的 Google Cloud 资源。例如,指定网络中的所有实例。或者,若要将规则限制为仅应用于 Google Cloud 上的特定实例,请在指定的目标标记中输入标记。
    • 来源过滤条件字段中,选择下列选项之一:
      • IP 地址范围:用于允许从特定 IP 地址传入的流量。 请在来源 IP 地址范围字段中指定相应 IP 地址范围。
      • 子网:用于允许从特定子网传入的流量。请在下面的子网字段中指定相应子网名称。此选项可用于允许 3 层式或横向扩缩式配置中的各虚拟机之间互相访问。
    • 协议和端口部分,选择指定的协议和端口并输入 tcp:PORT_NUMBER
  3. 点击创建以创建防火墙规则。

gcloud

使用以下命令创建防火墙规则:

$ gcloud compute firewall-rules create FIREWALL_NAME
--direction=INGRESS --priority=1000 \
--network=NETWORK_NAME --action=ALLOW --rules=PROTOCOL:PORT \
--source-ranges IP_RANGE --target-tags=NETWORK_TAGS

使用 Deployment Manager 为 SAP ASE 部署 Windows 虚拟机

以下说明使用 Deployment Manager 来部署 Windows 虚拟机实例以及 SAP ASE 所需的所有永久性磁盘。您可以在 Deployment Manager 配置文件模板中指定安装所需的值。

Deployment Manager 会将为 SAP ASE 系统创建的所有资源视为单个实体(称为一个“部署”)。您可以在 Google Cloud 控制台中的部署页面上查看 Google Cloud 项目的所有部署。

以下说明使用的是 Cloud Shell,但您也可以在本地终端中使用 Google Cloud CLI。

  1. 打开 Cloud Shell。

    转到 Cloud Shell

  2. 在 Cloud Shell 中输入以下命令,以将 template.yaml 配置文件模板下载到您的工作目录中:

    wget https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/sap_ase-win/template.yaml
  3. (可选)重命名 template.yaml 文件以标识其定义的配置。

  4. 在 Cloud Shell 代码编辑器中打开 template.yaml 文件。

    如需打开 Cloud Shell 代码编辑器,请点击 Cloud Shell 终端窗口右上角的铅笔图标。

  5. template.yaml 文件中更新以下属性值,并将括号及其内容替换为安装值。

    属性 数据类型 说明
    类型 字符串

    指定要在部署期间使用的 Deployment Manager 模板的位置、类型和版本。

    YAML 文件包含两个 type 规范,其中一个被注释掉。默认处于活跃状态的 type 规范将模板版本指定为 latest。注释掉的 type 规范使用时间戳指定特定模板版本。

    如果您需要所有部署都使用相同的模板版本,请使用包含时间戳的 type 规范。

    instanceName 字符串 要在其中安装 SAP ASE 的虚拟机实例的名称。 此名称不得超过 13 个字符,可包含小写字母、数字或连字符。
    instanceType 字符串 要在其中安装 SAP ASE 的 Compute Engine 虚拟机的类型。如果在同一虚拟机上运行 SAP ASE 和 SAP NetWeaver,请选择其 CPU 和内存量足以支持这两个系统的机器类型。请参阅 SAP NetWeaver 规划指南
    可用区 字符串 要在其中部署 SAP ASE 的可用区。该可用区必须位于您为子网选择的那个区域内。
    子网 字符串 您在先前步骤中创建的子网的名称。如果您要部署到共享 VPC,请以 [SHAREDVPC_PROJECT]/[SUBNETWORK] 的格式指定此值。例如 myproject/network1
    windowsImage 字符串 您用于 SAP ASE 的 Windows 操作系统映像或映像系列的名称。如需指定映像系列,请将前缀 family/ 添加到系列名称中,例如 family/windows-2012-r2。如需指定某一特定映像,请仅指定该映像的名称。如需查看可用映像系列的列表,请参阅 Cloud 控制台中的映像页面。
    windowsImageProject 字符串 您要使用的映像所属的 Google Cloud 项目。此项目可以是您自己的项目,也可以是某个 Google Cloud 映像项目,例如 windows-cloud。如需查看 Google Cloud 映像项目的列表,请参阅 Compute Engine 文档中的映像页面。
    asesidSize 整数 ASE (D:) 的大小(以 GB 为单位),该目录是数据库实例的根目录。
    asesaptempSize 整数 ASE Temp (T:) 的大小,该目录用于存放数据库临时表空间。
    asesapdataSize 整数 ASE Data (E:) 的大小,该目录用于存放数据库数据文件。在已部署的虚拟机中,此卷被标记为 ASE Data。
    aselogSize 整数 ASE Log (L:) 的大小,该目录用于存放数据库事务日志。在已部署的虚拟机中,此卷被标记为 ASE Log。
    asebackupSize 整数 Backup (X:) 的大小。如果将该属性设置为 0 或将其省略,则不会创建任何磁盘。在已部署的虚拟机中,此卷被标记为 Backup。
    asesapdataSSD 布尔值 数据硬盘的 SSD 切换开关。如果设置为 true,则数据磁盘将为 SSD。
    aselogSSD 布尔值 日志硬盘的 SSD 切换开关。如果设置为 true,则日志磁盘将为 SSD。
    usrsapSize 整数 仅当您要在同一虚拟机实例上安装 SAP ASE 和 SAP NetWeaver 以搭配运行时,才需要填写此属性。在部署的虚拟机中,此卷被标记为 SAP (S:)
    swapSize 整数 仅当您要在同一虚拟机实例上安装 SAP ASE 和 SAP NetWeaver 以搭配运行时,才需要填写此属性。在部署的虚拟机中,此卷被标记为 Pagefile (P:)

    以下配置文件会创建一个虚拟机,并将其配置为运行 SAP ASE 数据库服务器和 SAP NetWeaver。此配置文件引导 Deployment Manager 部署运行 Windows Server 2012 操作系统的 n1-standard-16 虚拟机。该虚拟机包含运行 SAP ASE 和 NetWeaver 所需的所有目录。

    resources:
    - name: sap_ase-win
      type: https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/sap_ase-win/sap_ase-win.py
      #
      # By default, this configuration file uses the latest release of the deployment
      # scripts for SAP on Google Cloud.  To fix your deployments to a specific release
      # of the scripts, comment out the type property above and uncomment the type property below.
      #
      # type: https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/202103310846/dm-templates/sap_ase-win/sap_ase-win.py
      #
      properties:
        instanceName: ex-vm-ase-win
        instanceType: n1-standard-16
        zone: us-central1-f
        subnetwork: example-sub-network
        windowsImage: family/windows-2012-r2
        windowsImageProject: windows-cloud
        asesidSize: 10
        asesaptempSize: 20
        asesapdataSize: 50
        aselogSize: 30
        asebackupSize: 100
        asesapdataSSD: Yes
        aselogSSD: Yes
        usrsapSize: 15
        swapSize: 24
  6. 部署此虚拟机:

    gcloud deployment-manager deployments create [DEPLOYMENT-NAME] --config [TEMPLATE-NAME].yaml

    上述命令会调用 Deployment Manager,以完全根据 template.yaml 文件中的规范部署该虚拟机。此过程可能需要几分钟时间。如需检查部署进度,请按照下一部分中的步骤操作。

验证部署

如需验证部署,请检查 Cloud Logging 中的部署日志。

查看日志

  1. 在 Google Cloud 控制台中,打开 Cloud Logging 以监控安装进度并检查错误。

    转到 Cloud Logging

  2. 过滤日志:

    日志浏览器

    1. 日志浏览器页面中,转到查询窗格。

    2. 资源下拉菜单中选择全局,然后点击添加

      如果您没有看到全局选项,请在查询编辑器中输入以下查询:

      resource.type="global"
      "Deployment"
      
    3. 点击运行查询

    旧式日志查看器

    • 旧版日志查看器页面中,从基本选择器菜单选择全局作为日志记录资源。
  3. 分析过滤后的日志:

    • 如果显示 "--- Finished",则表示部署已完成处理,您可以继续执行下一步。
    • 如果出现配额错误,请执行以下步骤:

      1. 对于任何不符合 SAP ASE 规划指南中列出的 SAP ASE 要求的配额,请在“IAM 和管理”的配额页面上提高配额。

      2. 在 Deployment Manager 的部署页面上,删除部署以清理失败安装中的虚拟机和永久性磁盘。

      3. 重新运行部署。

成功部署 SAP ASE 系统后,按照下一部分(即连接到您的虚拟机)中的说明连接您的虚拟机,以确认所有必需的数据卷都已存在并具备预期的容量。Pagefile 硬盘空间应该接近完全占用。

Deployment Manager 为 ASE 创建的磁盘驱动器。

如果任何验证步骤显示安装失败,请执行以下操作:

  1. 更正错误。
  2. 部署页面上,删除该部署以从失败的安装中清除虚拟机和永久性磁盘。
  3. 重新运行部署。

连接到您的虚拟机

如需连接到基于 Windows 的虚拟机,您必须首先为该虚拟机生成一个密码,然后使用 RDP 或 PowerShell 连接到该虚拟机。

生成密码

如需为 Google Cloud 上的 Windows 虚拟机生成或重置密码,请执行以下操作:

  1. 转到虚拟机实例页面。

    打开“虚拟机实例”

  2. 点击您刚刚创建的虚拟机的名称,打开“虚拟机实例详情”页面。

    “虚拟机实例”页面上的虚拟机名称。

  3. 在实例详情页面上,点击设置 Windows 密码按钮。系统会为您生成一个密码。复制密码并将其存储在安全的地方。

    通过点击“虚拟机实例详情”页面上的按钮来设置 Windows 密码。

使用 RDP

如果您的防火墙规则允许通过端口 3389 进行访问,您可以使用 RDP 连接到 Windows 实例并启动远程桌面会话。或者,您可以使用 PowerShell 终端连接到 Windows 实例

通过 Windows 远程桌面连接客户端或第三方客户端手动连接,从而连接到 Windows 实例上的远程桌面:

  1. 如果您还没有 RDP 客户端,请立即安装一个。如需了解 Microsoft 提供的有关可用 RDP 客户端的信息,请参阅远程桌面客户端
  2. 获取 Windows 虚拟机的外部 IP 地址。如需查找虚拟机 IP 地址,您可以使用以下任一方法:
    • 在 Google Cloud 控制台中,转到虚拟机实例页面。
    • 使用 gcloud CLI 运行 gcloud compute instances list 以列出虚拟机实例及其外部 IP 地址。
  3. 在 RDP 客户端中,提供虚拟机的外部 IP 地址作为要连接的 IP 地址。
  4. 输入您的登录信息,并将网域字段留空。如果这是您第一次连接到该虚拟机,或者如果您忘记了密码,请创建或重置 Windows 密码

使用 PowerShell

  1. 如果您尚未在 Windows 虚拟机上创建用户名和密码,请创建 Windows 密码
  2. 添加防火墙规则或修改现有防火墙规则,以在 Windows Server 虚拟机实例所在的 VPC 网络中打开端口 5986。
  3. 在本地工作站上,打开 PowerShell 终端。
  4. (可选)您可以初始化变量以保留用户凭据,这样您就无需在每次连接到实例时输入它们。如果您跳过此步骤,系统之后会提示您输入用户名和密码。

    $credentials = Get-Credential
    
  5. 使用 Enter-PSSession 命令启动远程 PowerShell 会话,同时包含标志以使用 SSL 和跳过凭据检查。

    Enter-PSSession -ComputerName [IP_ADDRESS] -UseSSL -SessionOption
    (New-PSSessionOption -SkipCACheck -SkipCNCheck) -Credential $credentials
    

安装数据库

现在,您的 Windows 操作系统已配置完毕,接下来您就可以安装 SAP ASE 数据库了。

如需在您的虚拟机上安装 SAP ASE,请执行以下操作:

  1. 使用 RDP 或 Windows PowerShell 连接到基于 Windows 的虚拟机。
  2. 将 SAP ASE 安装介质从 SAP 下载或复制到虚拟机中。
  3. 准备好要在安装过程中使用的 SAP ASE SySAM 许可文件或许可服务器。
  4. 安装 SAP ASE 数据库。如需获取指导,请参阅适用于 Windows 的 SAP ASE 安装和升级指南

如果您使用的是 always-on HADR 选项,请对备用服务器重复上述步骤。如需详细了解其他 HADR 安装和配置,请参阅 SAP ASE HADR 用户指南

验证 Google Cloud 的 Agent for SAP 的安装

部署虚拟机并安装您的 SAP 系统后,请验证 Google Cloud's Agent for SAP 是否正常运行。

验证 Google Cloud 的 Agent for SAP 是否正在运行

如需验证代理是否正在运行,请按照以下步骤操作:

  1. 使用 RDP 连接到虚拟机实例。

  2. 以管理员身份从 PowerShell 运行以下命令:

    $(Get-Service -Name 'google-cloud-sap-agent' -ErrorAction Ignore).Status
    如果代理正在运行,则状态会显示 Running

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

验证 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 ASE 实例之前,我们建议您先执行以下几个部署后步骤:

  1. 使用最新的补丁程序更新 SAP ASE 软件(如果有)。
  2. 安装其他任何组件。
  3. 配置新的 SAP ASE 数据库并进行备份。

如需获取更多的部署后指导信息,请参阅适用于 Windows 的 SAP ASE 安装和升级指南中的“安装后任务”部分。