Deployment Manager:在 Windows 上為 SAP ASE 自動部署 VM

本部署說明如何部署並連線至 Compute Engine 虛擬機器 (VM),此 VM 已為在 Windows Server 作業系統上安裝 SAP Adaptive Server Enterprise (ASE) 準備就緒。

本指南中的操作說明使用 Cloud Deployment Manager 部署及設定 VM、Windows Server 作業系統和 SAP ASE 所需的磁碟區。

如要瞭解如何規劃部署,請參閱 SAP ASE 規劃指南

必要條件

如果您希望 SAP 工作負載能遵循資料落地、存取權控管、支援人員或法規規定執行,就必須建立必要的 Assured Workloads 資料夾。詳情請參閱「SAP on Google Cloud的符合性和主權控管措施」。

如果您還沒有啟用計費功能的 Google Cloud 專案,則必須先建立一個,再為 SAP ASE 的安裝作業部署 VM。

建立專案:

  1. 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.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

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

    Go to project selector

  5. Make sure that billing is enabled for your Google Cloud project.

  6. 設定 gcloud 指令環境

    以下操作說明使用 Cloud Shell 輸入 gcloud 指令,以部署或設定 Google Cloud 資源。您可以透過瀏覽器的Google Cloud 主控台存取 Cloud Shell。

    您每次啟動 Cloud Shell 時,Cloud Shell 都會在 GCP 佈建的 VM 上執行。 Google Cloud 第一次使用 Cloud Shell 時,Google Cloud 也會為您建立永久的 $HOME 目錄,此目錄會在您每次開啟 Cloud Shell 時復原。

    您佈建的 VM 含有最新版 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 設定」。

    建立網路

    基於安全性考量,請建立新的網路。您可以新增防火牆規則或使用另一個存取權控管方法,藉此控管具有存取權的對象。

    如果您的專案具有預設的虛擬私有雲網路,請勿使用。請建立您自己專屬的虛擬私有雲網路,確保系統只套用您明確建立的防火牆規則。

    在部署期間,Compute Engine 執行個體通常需要網際網路的存取權,才能下載 Google Cloud的 SAP 代理程式。如果您使用 Google Cloud提供的其中一種 SAP 認證 Linux 映像檔,則計算機執行個體也需要存取網際網路,才能註冊憑證並且存取 OS 供應商存放區。具有 NAT 閘道和 VM 網路標記的設定即可支援上述存取需求,即便目標運算執行個體沒有外部 IP 也沒關係。

    如要設定網路:

    控制台

    1. 在 Google Cloud 控制台中,前往「VPC networks」(虛擬私有雲網路) 頁面。

      前往「VPC networks」(虛擬私有雲網路)

    2. 按一下「建立虛擬私有雲網路」
    3. 輸入網路的名稱

      名稱必須遵循命名慣例。虛擬私有雲網路會使用 Compute Engine 命名慣例。

    4. 在 [Subnet creation mode] (子網路建立模式) 中,選擇 [Custom]。
    5. 在「New subnet」(新子網路) 部分,指定子網路的以下設定參數:
      1. 輸入子網路的「名稱」
      2. 在「區域」中,選取要建立子網路的 Compute Engine 區域
      3. 針對「IP 堆疊類型」,請選取「IPv4 (單一堆疊)」,然後以 CIDR 格式輸入 IP 位址範圍,例如 10.1.0.0/24

        這是子網路的主要 IPv4 範圍。如果您打算新增多個子網路,請為網路中的每個子網路指派不重疊的 CIDR IP 範圍。請注意,每個子網路及其內部 IP 範圍都會對應至單一地區。

      4. 按一下「完成」
    6. 如要新增其他子網路,請按一下「Add subnet」(新增子網路),然後重複上述步驟。建立網路後,您可以新增更多子網路。
    7. 按一下 [建立]。

    gcloud

    1. 前往 Cloud Shell。

      前往 Cloud Shell

    2. 如要在自訂子網路模式中建立新的網路,請執行:
      gcloud compute networks create NETWORK_NAME --subnet-mode custom

      請將 NETWORK_NAME 替換為新網路的名稱。名稱必須遵循命名慣例。虛擬私有雲網路會使用 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 NetWeaver 的 SAP ASE,請使用支援 SAP NetWeaver的地區。
      • RANGE以 CIDR 格式指定的 IP 位址範圍,例如 10.1.0.0/24

        如果您打算新增多個子網路,請為網路中的每個子網路指派不重疊的 CIDR IP 範圍。請注意,每個子網路及其內部 IP 範圍都會對應至單一地區。

    4. (選用) 重複上述步驟以新增其他子網路。

    設定 NAT 閘道

    如果您需要建立一或多個沒有公開 IP 位址的 VM,就必須使用網路位址轉譯 (NAT),讓 VM 能夠存取網際網路。使用 Cloud NAT,這是一項 Google Cloud 分散式軟體定義的受控服務,可讓 VM 將傳出封包傳送至網際網路,並接收任何相應的已建立傳入回應封包。或者,您也可以設定個別的 VM 做為 NAT 閘道。

    如要為專案建立 Cloud NAT 執行個體,請參閱「使用 Cloud NAT」。

    為專案設定 Cloud NAT 後,VM 執行個體就能在不使用公開 IP 位址的情況下,安全地存取網際網路。

    新增防火牆規則

    根據預設,「默示的防火牆規則」會封鎖從虛擬私有雲 (VPC) 網路之外連入的連線。如要允許連入的連線,請為 VM 設定防火牆規則。與 VM 建立連入連線後,系統會允許該連線上雙向的流量。

    您也可以建立防火牆規則,允許外部存取指定的通訊埠,或限制相同網路上 VM 之間的存取。若使用 default 虛擬私人雲端網路類型,一些其他的預設規則也適用,例如 default-allow-internal 規則,允許相同網路中 VM 之間所有通訊埠的連線。

    根據適用於環境的 IT 政策,您可能需要區隔或限制資料庫主機的連線,這些功能可以透過建立防火牆規則來完成。

    根據您的情境,您可以建立防火牆規則,允許下列項目存取:

    • 用戶端連線的 ASE 網路接聽程式。預設的 ASE 通訊埠號碼為 5000
    • SAP ASE Cockpit 需要的通訊埠。如需 ASE Cockpit 所使用的通訊埠清單,請參閱 SAP Help Portal 中的 SAP ASE Cockpit 說明文件。
    • 列於所有 SAP 產品的 TCP/IP 中的預設 SAP 通訊埠。
    • 從電腦或公司網路環境到 Compute Engine VM 執行個體的連線。如果不確定要使用哪一個 IP 位址,請詢問貴公司的網路管理員。
    • SAP HANA 子網路中 VM 之間的通訊,包括 SAP HANA 擴充系統中節點之間的通訊,或 3 層架構中資料庫伺服器和應用程式伺服器之間的通訊。您可以建立防火牆規則,允許來自子網路的流量,藉此啟用 VM 之間的通訊。
    • 與 VM 執行個體的遠端桌面協定 (RDP) 連線。預設的 RDP 通訊埠號碼為 3389
    • 與 VM 執行個體的 PowerShell 連線。預設的 RDP 通訊埠號碼為 5986

    建立防火牆規則的步驟如下:

    主控台

    1. 在 Google Cloud 控制台中,前往「VPC Network」(虛擬私有雲網路) 「Firewall」(防火牆) 頁面。

      前往「Firewall」(防火牆)

    2. 按一下頁面頂端的 [Create firewall rule] (建立防火牆規則)

      • 在「Network」(網路) 欄位中,選取您 VM 所在的網路。
      • 在「Targets」欄位中,指定此規則適用的 Google Cloud資源。例如,指定「All instances in the network」(網路中的所有執行個體),或者,如要將規則限制於 Google Cloud上的特定執行個體,請在「Specified target tags」(指定的目標標記) 中輸入標記。
      • 在「Source filter」(來源篩選器) 欄位中選取下列其中一項:
        • 「IP ranges」(IP 範圍) - 允許來自特定 IP 位址連入的流量。請在「Source IP ranges」(來源 IP 範圍) 欄位中指定 IP 位址的範圍。
        • 「Subnets」(子網路) - 允許來自特定子網路的連入流量。請在隨後的「Subnets」(子網路) 欄位中指定子網路名稱。您可以使用這個選項允許 3 層或向外擴充設定中 VM 之間的存取作業。
      • 在「Protocols and ports」(通訊協定和通訊埠) 區段中,選取「Specified protocols and ports」(指定的通訊協定和通訊埠),然後輸入 tcp:PORT_NUMBER
    3. 按一下 [Create] (建立) 以建立您的防火牆規則。

    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 VM

    以下操作說明使用 Deployment Manager 部署具有 Windows 的 VM 以及 SAP ASE 需要的所有永久磁碟。您將在 Deployment Manager 設定檔案範本中定義安裝的值。

    Deployment Manager 會將您針對 SAP ASE 系統建立的所有資源視為單一實體,稱為「部署」。您可以在 Google Cloud 主控台的「Deployments」(部署作業) 頁面上,查看 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 的 VM 執行個體名稱。名稱不得超過 13 個半形字元,且應使用小寫英文字母、數字或連字號。
      instanceType 字串 您要安裝 SAP ASE 的 Compute Engine 虛擬機器類型。如果您在相同 VM 上執行具備 SAP NetWeaver 的 SAP ASE,請選擇包含足夠 CPU 和記憶體以支援兩種系統的機器類型。請參閱 SAP NetWeaver 規劃指南
      可用區 字串 您要部署 SAP ASE 的區域。這個區域必須位於您為子網路選取的地區內。
      子網路 字串 您在先前步驟中建立的子網路名稱。如果您要部署共用虛擬私人雲端,請將這個值指定為 [SHAREDVPC_PROJECT]/[SUBNETWORK]。例如:myproject/network1
      windowsImage 字串 您要用於 SAP ASE 的 Windows 作業系統映像檔或映像檔系列的名稱。如要指定映像檔系列,請在系列名稱加上 family/ 前置字串。例如:family/windows-2012-r2。如要指定特定映像檔,請只指定映像檔名稱。如需可用的映像檔系列清單,請參閱 Cloud Console 中的「映像檔」頁面。
      windowsImageProject 字串 您要使用的映像檔所屬的 Google Cloud 專案。這個專案可能是您自己的專案或 Google Cloud 映像檔專案,例如 windows-cloud。如需 Google Cloud 映像檔專案清單,請參閱 Compute Engine 說明文件中的「映像檔」頁面。
      asesidSize 整數 ASE (D:) 的大小 (以 GB 為單位),這是資料庫執行個體的根目錄。
      asesaptempSize 整數 ASE Temp (T:) 的大小,保存資料庫暫存的資料表空間。
      asesapdataSize 整數 ASE Data (E:) 的大小,保存資料庫資料檔案。在已部署的 VM 中,這個磁碟區會加上「ASE Data」標籤。
      aselogSize 整數 ASE Log (L:) 的大小,保存資料庫交易記錄。在已部署的 VM 中,這個磁碟區會加上「ASE Log」標籤。
      asebackupSize 整數 Backup (X:) 的大小。如果設為 0 或省略,則不會建立任何磁碟。在已部署的 VM 中,這個磁碟區會加上 `Backup` 標籤。
      asesapdataSSD 布林值 資料硬碟的 SSD 切換。如果設為 [true] (是),資料磁碟就會是 SSD。
      aselogSSD 布林值 記錄磁碟的 SSD 切換。如果設為 True,記錄磁碟就會是 SSD。
      usrsapSize 整數 如果您要安裝 SAP ASE 以便在相同 VM 執行個體上執行 SAP NetWeaver,則此欄位為必填欄位。在已部署的 VM 中,這個磁碟區會加上 SAP (S:) 標籤。
      swapSize 整數 如果您要安裝 SAP ASE 以便在相同 VM 執行個體上執行 SAP NetWeaver,則此欄位為必填欄位。在已部署的 VM 中,這個磁碟區會加上 Pagefile (P:) 標籤。

      以下設定檔會建立設為執行 SAP ASE 資料庫伺服器與 SAP NetWeaver 的 VM,並引導 Deployment Manager 部署執行 Windows Server 2012 作業系統的 n1-standard-16 VM。這個 VM 包含執行具備 NetWeaver 的 SAP ASE 時需要的所有目錄。

      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. 部署 VM:

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

      上述指令會叫用 Deployment Manager,依據 template.yam 檔案中的規格部署 VM。此程序可能需要幾分鐘才能完成。如要查看部署的進度,請按照下一節的步驟操作。

    驗證部署作業

    如要驗證部署作業,請在 Cloud Logging 中查看部署記錄。

    檢查記錄

    1. 在 Google Cloud 控制台中開啟 Cloud Logging,監控安裝進度及檢查錯誤。

      前往 Cloud Logging

    2. 篩選記錄:

      記錄檔探索工具

      1. 在「Logs Explorer」頁面中,前往「查詢」窗格。

      2. 在「Resource」下拉式選單中,選取「Global」,然後點選「Add」

        如果找不到「Global」選項,請在查詢編輯器中輸入以下查詢:

        resource.type="global"
        "Deployment"
        
      3. 點選「執行查詢」

      舊版記錄檢視器

      • 在「Legacy Logs Viewer」頁面中,從基本選取器選單中選取「Global」做為記錄資源。
    3. 分析篩選過的記錄:

    SAP ASE 系統部署後如沒有任何錯誤,請按照連線至 VM 一節中的指示連線至 VM,確認 VM 中已存在所有必要的資料磁碟區並具備預期容量。Pagefile 磁碟機的容量應該會顯示為幾乎已滿。

    Deployment Manager 為 ASE 建立的磁碟機。

    如有任何驗證步驟指出安裝失敗,請採取以下步驟:

    1. 修正錯誤。
    2. 在「Deployments」頁面上,刪除部署以清除安裝失敗的 VM 與永久磁碟。
    3. 重新執行部署。

    連線到 VM

    如要連線至 Windows VM,您必須先為 VM 產生密碼,然後才能使用 RDP 或 PowerShell 連線至 VM。

    產生密碼

    如要在 Google Cloud上建立或重設 Windows VM 的密碼:

    1. 前往「VM instances」(VM 執行個體) 頁面。

      前往 VM 執行個體

    2. 按一下剛建立的 VM 執行個體名稱,開啟「VM instance details」(VM 執行個體詳細資料) 頁面。

      「VM instances」(VM 執行個體) 頁面上的 VM 名稱。

    3. 在執行個體詳細資料頁面上,按一下 [Set Windows Password] (設定 Windows 密碼) 按鈕。系統會隨即為您產生密碼,請複製這組密碼並妥善儲存於安全的位置。

      按一下「VM instance details」(VM 執行個體詳細資料) 頁面上的按鈕來設定 Windows 密碼。

    使用遠端桌面協定

    如果您的防火牆規則允許透過連接埠 3389 進行存取,則您可使用遠端桌面協定連線到 Windows 執行個體,並開啟遠端桌面工作階段。或者,您可以使用 PowerShell 終端機連線至 Windows 執行個體

    透過 Windows 遠端桌面連線用戶端或第三方用戶端手動連線,連線至 Windows 執行個體上的遠端桌面:

    1. 如果您沒有 RDP 用戶端,請立即安裝。如要瞭解 Microsoft 提供的 RDP 用戶端,請參閱「遠端桌面用戶端」。
    2. 取得您 Windows VM 的外部 IP 位址。如要找出 VM IP 位址,您可以使用下列任一方法:
      • 前往 Google Cloud 控制台的「VM instances」(VM 執行個體) 頁面
      • 使用 gcloud CLI 執行 gcloud compute instances list,即可列出 VM 執行個體及其外部 IP 位址。
    3. 在 RDP 用戶端中,提供 VM 的外部 IP 位址做為要連線的 IP 位址。
    4. 輸入您的登入資訊,並將「Domain」(網域) 欄位保留空白。 如果這是您初次連線到這個 VM,或者您忘記密碼了,請建立或重設 Windows 密碼

    使用 PowerShell

    1. 如果您尚未在 Windows VM 上建立使用者名稱與密碼,請建立您的 Windows 密碼
    2. 新增防火牆規則或編輯現有的防火牆規則,在 Windows Server VM 執行個體所在的 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 資料庫。

    如要在 VM 上安裝 SAP ASE:

    1. 使用 RDP 或 Windows PowerShell 連線至 Windows VM。
    2. 從 SAP 下載或複製 SAP ASE 安裝媒體到您的 VM。
    3. 準備 SAP ASE SySAM 授權檔案或授權伺服器以便用於安裝。
    4. 安裝 SAP ASE 資料庫。如需指引,請參閱 Windows 適用的 SAP ASE 安裝及升級指南

    如果您使用一律開啟 HADR 選項,請對待命伺服器重複執行上述步驟。如需其他 HADR 安裝和設定詳細資料,請參閱 SAP ASE HADR 使用者指南

    驗證 Google Cloud的 Agent for SAP 安裝狀態

    部署 VM 並安裝 SAP 系統後,請確認Google Cloud的 SAP 代理程式是否正常運作。

    確認 Google Cloud的 Agent for SAP 是否正在執行

    如要確認代理程式是否正在執行,請按照下列步驟操作:

    1. 使用遠端桌面協定連線至 Compute Engine 執行個體。

    2. 以管理員身分在 PowerShell 中執行下列指令:

      $(Get-Service -Name 'google-cloud-sap-agent' -ErrorAction Ignore).Status
      如果代理程式正在執行,狀態會顯示 Running

    如果代理程式未執行,請重新啟動代理程式

    確認 SAP Host Agent 正在接收指標

    如要確認Google Cloud的 Agent for SAP 是否收集基礎架構指標,並正確傳送至 SAP Host Agent,請按照下列步驟操作:

    1. 在 SAP 系統中輸入交易 ST06
    2. 在「Overview」(總覽) 窗格中,查看以下欄位的可用性和內容,確認 SAP 和 Google 監控基礎架構已做好正確的端對端設定:

      • 雲端服務供應商Google Cloud Platform
      • Enhanced Monitoring Access (強化版監控功能存取權)TRUE
      • Enhanced Monitoring Details (強化版監控功能詳細資料)ACTIVE

    執行部署後工作

    使用 SAP ASE 執行個體之前,建議您執行下列部署後步驟:

    1. 使用最新的修補程式更新 SAP ASE 軟體 (如果有的話)。
    2. 安裝任何額外的元件。
    3. 設定並備份新的 SAP ASE 資料庫。

    如需其他部署後指南,請參閱 Windows 適用的 SAP ASE 安裝及升級指南的「安裝後工作」一節。