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

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

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

如要使用 Terraform 自動化部署 Linux 系統中 Google CloudSAP ASE 的資源,請參閱 Terraform:在 Linux 上為 SAP ASE 自動部署 VM

如要瞭解如何規劃部署,請參閱 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 執行個體的 SSH 連線,包括瀏覽器中的 SSH
    • 使用 Linux 第三方工具連到 VM 的連線。請建立防火牆規則以允許工具透過防火牆存取。

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

    主控台

    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 的 Linux VM

    以下操作說明是透過 Deployment Manager 來使用 Linux 部署 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/template.yaml
    3. 或者,您也可以重新命名 template.yaml 檔案,藉此識別其定義的設定。

    4. 在 Cloud Shell 程式碼編輯器中開啟 template.yaml 檔案。

      如要開啟 Cloud Shell 程式碼編輯器,請按一下 Cloud Shell 終端機視窗右上角的鉛筆圖示。

    5. template.yaml 檔案中,使用安裝的值來取代括號及其內容,即可更新下列屬性值。

      屬性 資料類型 說明
      type 字串

      指定在部署期間要使用的 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 規劃指南
      zone 字串 您要部署 SAP ASE 的區域。這個區域必須位於您為子網路選取的地區內。
      subnetwork 字串 您在先前步驟中建立的子網路名稱。如果您要部署共用虛擬私人雲端,請將這個值指定為 SHARED_VPC_PROJECT/SUBNETWORK。例如:myproject/network1
      linuxImage 字串 您要用於 SAP ASE 的 Linux 作業系統映像檔或映像檔系列的名稱。如要指定映像檔系列,請在系列名稱加上 family/ 前置字串。例如 family/rhel-7family/sles-12-sp2-sap。如要使用特定圖片,請只輸入圖片名稱。如需可用的映像檔系列清單,請參閱 Cloud Console 中的「映像檔」頁面。
      linuxImageProject 字串 您要使用的映像檔所屬的 Google Cloud 專案。這個專案可能是您自己的專案或 Google Cloud 映像檔專案,例如 rhel-sap-cloudsuse-sap-cloud。如需 Google Cloud 映像檔專案清單,請參閱 Compute Engine 說明文件中的「映像檔」頁面。
      aseSID 字串 資料庫執行個體 ID。
      asesidSize 整數 /sybase/DBSID 的大小 (以 GB 為單位),這是資料庫執行個體的根目錄。在已部署的 VM 中,這個磁碟區為 ASE
      asediagSize 整數 /sybase/DBSID/sapdiag 的大小,保存 SAPTOOLS 的診斷資料表空間。
      asesaptempSize 整數 /sybase/DBSID/saptmp 的大小,保存資料庫暫存的資料表空間。
      asesapdataSize 整數 /sybase/DBSID/sapdata 的大小,保存資料庫資料檔案。
      aselogSize 整數 /sybase/DBSIDlogdir 的大小,保存資料庫交易記錄。
      asebackupSize 整數 /sybasebackup 磁碟區的大小。如果設為 0 或省略這個屬性,則不會建立任何磁碟。
      asesapdataSSD 布林值 資料硬碟的 SSD 切換。如果設定為 true,資料磁碟就是 SSD。
      aselogSSD 布林值 記錄磁碟的 SSD 切換。如果設定為 true,則記錄磁碟為 SSD。
      usrsapSize 整數 如果您要安裝 SAP ASE 以便在相同 VM 執行個體上執行 SAP NetWeaver,則此欄位為必填欄位。
      sapmntSize 整數 如果您要安裝 SAP ASE 以便在相同 VM 執行個體上執行 SAP NetWeaver,則此欄位為必填欄位。
      swapSize 整數 如果您要安裝 SAP ASE 以便在相同 VM 執行個體上執行 SAP NetWeaver,則此欄位為必填欄位。

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

      resources:
      - name: sap_ase
        type: https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/sap_ase/sap_ase.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/sap_ase.py
        #
        properties:
          instanceName: ex-vm-ase-lin
          instanceType: n1-standard-16
          zone: us-central1-f
          subnetwork: example-sub-network
          linuxImage: family/sles-12-sp2-sap
          linuxImageProject: suse-sap-cloud
          aseSID: AS1
          asesidSize: 10
          asediagSize: 15
          asesaptempSize: 20
          asesapdataSize: 50
          aselogSize: 30
          asebackupSize: 100
          asesapdataSSD: Yes
          aselogSSD: Yes
          usrsapSize: 15
          sapmntSize: 15
          swapSize: 24
    6. 建立 VM 執行個體:

      gcloud deployment-manager deployments create DEPLOYMENT_NAME --config TEMPLATE_NAME.yaml

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

    驗證部署作業

    如要驗證部署作業,請查看 Cloud Logging 中的部署記錄,並檢查 VM 的設定。

    檢查記錄

    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. 分析篩選過的記錄:

    檢查 VM 的設定

    1. SAP ASE 系統部署完成且無發生錯誤後,使用 SSH 連線到 VM。您可以在 Compute Engine 的「VM instances」(VM 執行個體) 頁面上,按一下 VM 執行個體的 [SSH] 按鈕,或透過您偏好的方法啟用 SSH。

      Compute Engine VM 執行個體頁面中的 [SSH] 按鈕。

    2. 切換到超級使用者。

      sudo su -
    3. 在命令提示字元中輸入 df -h。請確認看到類似以下畫面的輸出內容,例如 //sybase/DBSID/sapdata 目錄。

      指令碼建立的資料量。

    4. 請輸入下列指令,確認已建立更換目錄:

      cat /proc/meminfo | grep Swap

      您會看到像是下面範例的結果:

      當更換目錄存在時終端機輸出的範例。

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

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

    安裝資料庫

    作業系統現在已設定完成,可以安裝 SAP ASE 資料庫:

    如要在 VM 上安裝 SAP ASE:

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

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

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

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

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

    1. 與 Compute Engine 執行個體建立 SSH 連線。

    2. 執行下列指令:

      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的 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 資料庫。

    如需其他部署後指南,請參閱 Linux 適用的 SAP ASE 安裝及升級指南

    疑難排解

    本章節提供有關如何修正一般問題的資訊。

    連線到 VM 的疑難排解

    如果您在透過 SSH 連線到 VM 時出現問題,請確認您已經建立防火牆規則,以在使用的 Google Cloud網路開啟通訊埠 22

    如為其他可能的問題,請參閱透過瀏覽器使用 SSH 的已知問題