SAP용 IBM Db2 고가용성 클러스터 배포 가이드

이 가이드에서는 Linux 운영체제에서 SAP용 IBM Db2(IBM Db2) 고가용성(HA) 클러스터에 Google Cloud 리소스를 설정하는 방법을 보여줍니다.

이러한 지침은 SAP 및 IBM이 IBM Db2 High Availability Solution: IBM Tivoli System Automation for Multiplatforms에서 제공하는 지침을 보완합니다. Google Cloud에 IBM Db2 HA 클러스터를 설치 및 구성할 때는 항상 SAP와 IBM이 제공하는 최신 문서를 참조하세요.

이는 IBM Tivoli System Automation for Multiplatforms(TSAMP)를 사용하여 시스템을 모니터링하고 시스템이 응답하지 않을 경우 적절한 조치를 시작하는 IBM Db2 HA 클러스터에 대한 지침입니다. 클러스터는 IBM Db2 고가용성 재해 복구(HADR) 기능을 사용하여 로깅된 데이터 변경사항을 대기 데이터베이스에 복제합니다.

클러스터는 Google Cloud가 구현한 유동 IP 주소를 Google Cloud 고정 경로 또는 별칭 IP 주소와 함께 사용합니다. 이 문맥에서 '유동 IP 주소'라는 용어는 SAP 문서에서 사용되는 '가상 IP 주소'라는 용어와 동의어입니다.

이 지침은 기본 IBM Db2 서버와 보조 IBM 또는 대기 IBM Db2 서버로 구성된 IBM Db2 HA 클러스터를 설정하는 방법을 보여줍니다. 각 클러스터는 별도의 Compute Engine 가상 머신(VM)에 배포됩니다.

이 가이드는 고가용성 클러스터에 익숙한, 숙련된 SAP 및 IBM Db2 사용자를 대상으로 합니다.

Db2 HA 클러스터를 계획하는 방법에 대한 자세한 내용은 SAP용 IBM Db2 계획 가이드의 고가용성 IBM Db2 클러스터를 참조하세요.

필요한 SAP 문서

SAP 및 IBM 구성요소를 설치하고 구성하는 방법에 대한 지침은 IBM Db2 High Availability Solution: IBM Tivoli System Automation for Multiplatforms에 나와 있습니다.

이 지침의 절차를 시작하기 전에 SAP 및 Google Cloud 문서를 모두 읽으세요. 배포의 여러 단계에서 SAP 및 Google Cloud 문서를 참조해야 할 수 있습니다.

기본 요건

IBM Db2 고가용성 클러스터를 만들기 전에 다음 기본 요건이 충족되었는지 확인하세요.

  • 귀하 또는 귀하의 조직에 Google Cloud 계정이 있어야 하고 IBM Db2 HA 클러스터 배포를 위한 프로젝트를 만들어야 합니다. Google Cloud 프로젝트를 만드는 방법에 대한 자세한 내용은 SAP용 IBM Db2 배포 가이드의 기본 요건을 참조하세요.
  • 데이터 상주, 액세스 제어, 지원 담당자 또는 규제 요건에 따라 SAP 워크로드를 실행해야 하는 경우 필요한 Assured Workloads 폴더를 만들어야 합니다. 자세한 내용은 Google Cloud 기반 SAP의 규정 준수 및 주권 제어를 참조하세요.
  • Google Cloud에 Virtual Private Cloud 네트워크가 있어야 합니다. VPC 네트워크 및 방화벽 규칙을 구성하는 방법에 대한 지침과 SAP용 IBM Db2의 NAT 게이트웨이 또는 배스천 호스트를 설정하는 방법에 대한 지침은 SAP용 IBM Db2 배포 가이드를 참조하세요.

  • 프로젝트 메타데이터에 OS 로그인이 사용 설정된 경우 배포가 완료될 때까지 OS 로그인을 일시적으로 사용 중지해야 합니다. 이 절차는 배포 목적으로 인스턴스 메타데이터에 SSH 키를 구성합니다. OS 로그인이 사용 설정되면 메타데이터 기반 SSH 키 구성은 중지됩니다. 배포가 완료되면 OS 로그인을 다시 사용 설정할 수 있습니다.

    자세한 내용은 다음을 참고하세요.

Google Cloud에 IBM Db2 고가용성 클러스터 배포

이 지침은 VM 2개를 배포하고, 유동 IP 주소를 정의하고, 유동 IP 주소를 지원하는 별칭 IP 주소 또는 Google Cloud 경로를 구성하는 방법을 보여줍니다. IBM 구성요소를 설치해야 하는 경우 SAP 문서를 참조하세요.

IBM Db2 고가용성 클러스터를 위해 설정해야 하는 주요 Google Cloud 서비스는 다음과 같습니다.

  • VPC 네트워크 및 서브네트워크
  • 방화벽 규칙(다른 형태의 네트워크 액세스 제어를 사용하지 않는 경우)
  • Compute Engine VM 및 영구 디스크 스토리지

또한 TSAMP가 호스트 간 유동 IP 주소 전환을 관리하는 데 사용하는 커스텀 리소스를 정의할 때 Google Cloud 도우미 스크립트를 다운로드하여 사용합니다. 이 스크립트는 TSAMP가 Google Cloud API와 상호작용할 수 있게 해줍니다.

Deployment Manager 정보

이 안내에서는 Deployment Manager 구성 파일 템플릿에서 설치에 필요한 리소스 옵션을 정의합니다.

Deployment Manager는 SAP 시스템용으로 생성된 모든 리소스를 배포라는 단일 항목으로 취급합니다. Google Cloud 콘솔의 배포 페이지에서 프로젝트의 모든 배포를 보고 작업할 수 있습니다.

Deployment Manager를 사용할 때는 다음 동작에 유의해야 합니다.

  • 배포를 삭제하면 VM, 영구 디스크, VM에 설치된 모든 SAP 시스템을 비롯하여 배포와 연결된 모든 리소스가 삭제됩니다.
  • 기본적으로 Deployment Manager는 ACQUIRE 리소스 만들기 정책을 사용합니다. 프로젝트의 다른 VM에서 이미 사용 중인 VM 이름을 지정하면 Deployment Manager는 새 VM을 만드는 대신 기존 VM을 새 배포에 추가합니다. 원래 VM이 이전에 Deployment Manager를 실행하여 생성된 경우 해당 VM은 두 배포에 연결됩니다.

    그런 다음 새 배포를 삭제하면 획득된 VM은 자신이 처음에 생성된 배포에서 삭제됩니다. 이러한 시나리오를 피하려면 Deployment Manager 리소스 정책을 CREATE로 설정하거나 새 배포에서 고유한 리소스 이름을 사용해야 합니다.

    Deployment Manager를 사용하여 리소스를 만들 때 사용할 수 있는 정책에 대한 자세한 내용과 정책을 지정하는 방법은 Deployment Manager 문서를 참조하세요.

Deployment Manager를 사용하여 IBM Db2 HA 클러스터용 VM 배포

  1. Cloud Shell에서 template_ha.yaml 구성 파일 템플릿을 작업 디렉터리에 다운로드합니다.

    wget https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/sap_db2/template_ha.yaml
  2. Cloud Shell 코드 편집기를 열려면 Cloud Shell 터미널 창 오른쪽 상단의 연필() 아이콘을 클릭합니다.

  3. 필요한 경우 template_ha.yaml 파일의 이름을 변경하여 정의하는 구성을 식별합니다. 예를 들면 db2_ha_s123_dh1.yaml입니다.

  4. 코드 편집기에서 template_ha.yaml을 열려면 더블클릭합니다.

  5. template_ha.yaml 파일에 VM 및 영구 디스크를 정의합니다. template_ha.yaml 파일에는 sap_db2_primarysap_db2_secondary라는 2개의 섹션이 있습니다. 각 섹션에는 속성-값 쌍의 집합이 나오고, 자주 사용되지 않는 속성을 포함하는 주석이 이어집니다.

    각 섹션을 작성할 때는 instanceName, zone, otherHost 속성을 제외한 각 VM의 정의가 동일해야 합니다.

    다음 표에는 각 섹션에 포함된 속성이 설명되어 있습니다. 속성을 사용하려면 자리표시자 텍스트 및 괄호를 설치 값으로 바꿉니다.

    속성 데이터 유형 설명
    유형 문자열

    배포 중에 사용할 Deployment Manager 템플릿의 위치, 유형, 버전을 지정합니다.

    YAML 파일에는 두 가지의 type 사양이 포함되어 있으며 그 중 하나는 주석 처리되어 있습니다. 기본적으로 활성화되는 type 사양은 템플릿 버전을 latest으로 지정합니다. 주석 처리된 type 사양은 타임스탬프가 있는 특정 템플릿 버전을 지정합니다.

    모든 배포에서 동일한 템플릿 버전을 사용하려면 타임스탬프가 포함된 type 사양을 사용하세요.

    instanceName 문자열 IBM Db2를 설치하는 VM 인스턴스의 이름입니다. 이름은 13자(영문 기준) 이하여야 하고 소문자, 숫자 또는 하이픈으로 지정해야 합니다.
    instanceType 문자열 IBM Db2를 설치할 Compute Engine 가상 머신의 유형입니다. vCPU가 2개 이상인 머신 유형을 지정하세요. 예를 들면 n1-standard-4입니다.
    zone 문자열 IBM Db2 인스턴스를 배포할 영역입니다. 서브네트워크에 선택한 리전과 동일한 리전에 있어야 합니다.
    subnetwork 문자열 이전 단계에서 만든 서브네트워크 이름입니다. 공유 VPC에 배포하는 경우 이 값을 shared-vpc-project/SUBNETWORK로 지정합니다. 예를 들면 myproject/network1입니다.
    linuxImage 문자열 IBM Db2와 함께 사용할 Linux 운영체제 이미지 또는 이미지 계열의 이름입니다. 이미지 계열을 지정하려면 계열 이름에 프리픽스 family/를 추가합니다. 예를 들면 family/rhel-7-sap-apps 또는 family/sles-12-sp3-sap입니다. 이미지를 지정하려면 이미지 이름만 입력합니다. 사용 가능한 이미지 계열의 목록은 Google Cloud 콘솔에서 이미지 페이지를 참조하세요.
    linuxImageProject 문자열 사용하려는 이미지가 포함된 Google Cloud 프로젝트입니다. 이 프로젝트는 자체 프로젝트일 수도 있고 rhel-sap-cloud 또는 suse-sap-cloud 등의 Google Cloud 이미지 프로젝트일 수도 있습니다. Google Cloud 이미지 프로젝트 목록은 Compute Engine 문서의 이미지 페이지를 참조하세요.
    db2SID 문자열 데이터베이스 인스턴스 ID입니다.
    db2sidSize 정수 데이터베이스 인스턴스의 루트 디렉터리인 /db2/DBSID의 크기(GB 단위)입니다. db2sidSize의 최솟값 및 기본값은 모두 8GB입니다.
    db2homeSize 정수 데이터베이스 인스턴스의 홈 디렉터리인 /db2/db2 db2sid의 크기(GB 단위)입니다. db2homeSize의 최솟값 및 기본값은 모두 8GB입니다.
    db2dumpSize 정수 문제 진단에 사용되는 DB2의 덤프 파일이 저장되는 /db2/DBSID/db2dump의 크기(GB 단위)입니다. db2dumpSize의 최솟값 및 기본값은 모두 8GB입니다.
    db2saptmpSize 정수 데이터베이스 임시 테이블 스페이스가 저장되는 /db2/DBSID/saptmp의 크기(GB 단위)입니다. db2saptmpSize의 최솟값 및 기본값은 모두 8GB입니다.
    db2sapdataSize 정수 데이터베이스 데이터 파일을 저장하는 /sapdb/DBSID/sapdata 크기입니다. db2sapdataSize의 최솟값 및 기본값은 모두 30GB입니다.
    db2logSize 정수 데이터베이스 트랜잭션 로그가 저장되는 /db2/DBSID/logdir의 크기입니다. db2logSize의 최솟값 및 기본값은 모두 8GB입니다.
    db2backupSize 정수 /db2backup 볼륨의 크기입니다. 이 속성은 선택사항입니다. 0을 설정하거나 생략하면 디스크가 생성되지 않습니다.
    db2sapdataSSD 부울 데이터 드라이브에 SSD 영구 디스크(Yes)를 사용할지 아니면 HDD 영구 디스크(No)를 사용할지 지정합니다. Yes가 기본값입니다.
    db2logSSD 부울 로그 드라이브에 SSD 영구 디스크(Yes)를 사용할지 아니면 HDD 영구 디스크(No)를 사용할지 지정합니다. Yes가 기본값입니다. 로그 드라이브에는 SSD가 권장됩니다.
    usrsapSize 정수 SAP NetWeaver와 함께 실행되도록 동일한 VM 인스턴스에 IBM Db2를 설치하는 경우에만 필수 항목입니다.
    sapmntSize 정수 SAP NetWeaver와 함께 실행되도록 동일한 VM 인스턴스에 IBM Db2를 설치하는 경우에만 필수 항목입니다.
    swapSize 정수 SAP NetWeaver와 함께 실행되도록 동일한 VM 인스턴스에 IBM Db2를 설치하는 경우에만 필수 항목입니다.
    otherHost 문자열 IBM Db2 HA 클러스터에 있는 다른 VM 인스턴스의 이름입니다. VM 인스턴스는 동일한 template_ha.yaml 파일의 다른 속성 집합에 정의되어야 합니다.
    networkTag 문자열 선택사항. 방화벽 또는 라우팅 용도로 VM 인스턴스를 나타내는 네트워크 태그입니다. publicIP: No를 지정하고 네트워크 태그를 사용하지 않는 경우에는 인터넷에 액세스할 수 있는 다른 방법을 제공해야 합니다.
    publicIP 부울 선택사항. 공개 IP 주소를 VM 인스턴스에 추가할지 여부를 결정합니다. 기본값은 Yes입니다.
    serviceAccount 문자열 선택사항. 잠긴 권한으로 자체 서비스 계정을 만드는 경우 여기에 계정 이름을 입력하세요. 기본적으로 VM은 기본 프로젝트 서비스 계정을 사용하여 배포됩니다. 서비스 계정이 잘못 정의된 경우에는 배포가 제대로 수행되지 않습니다. 다음은 커스텀 서비스 계정의 예시입니다. myserviceuser@myproject.iam.gserviceaccount.com
    sap_deployment_debug 부울 선택사항. 이 값이 Yes로 설정된 경우 배포 시 상세 배포 로그가 생성됩니다. Google 지원 엔지니어가 디버깅을 사용 설정하도록 요청하지 않는 한 이 설정을 사용하지 마세요.
    post_deployment_script 문자열 선택사항. 배포가 완료된 후 실행할 스크립트의 위치를 지정합니다. 스크립트는 웹 서버 또는 Cloud Storage 버킷에서 호스팅되어야 합니다. URL은 http://, https:// 또는 gs://로 시작되어야 합니다. 이 스크립트는 템플릿이 만드는 모든 VM에서 실행됩니다. 기본 인스턴스에서만 실행하려면 스크립트 상단에 검사를 추가해야 합니다.

    template_ha.yaml 구성 파일의 다음 VM 정의 예시는 IBM Db2 HA 클러스터용 VM을 2개 만듭니다. 구성 파일은 Deployment Manager가 SLES 12 SP3 이미지 계열의 운영체제를 실행하는 n1-standard-4 VM을 각각 배포하도록 지시합니다. VM에는 IBM Db2 HA 클러스터를 실행하는 데 필요한 모든 디렉터리가 포함됩니다. 디렉터리 크기가 0으로 설정되어 있으므로 Deployment Manager는 SAP NetWeaver 디렉터리를 만들지 않습니다.

    resources:
    - name: sap_db2_primary
      type: https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/sap_db2/sap_db2.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_db2/sap_db2.py
      #
      properties:
        instanceName: db2-ha-s1
        instanceType: n1-standard-4
        zone: us-central1-c
        subnetwork: example-sap-subnetwork
        linuxImage: family/sles-12-sp3-sap
        linuxImageProject: suse-sap-cloud
        db2SID: DH1
        db2sidSize: 16
        db2dumpSize: 16
        db2saptmpSize: 16
        db2sapdataSize: 50
        db2logSize: 16
        db2backupSize: 50
        db2sapdataSSD: Yes
        db2logSSD: Yes
        usrsapSize: 0
        sapmntSize: 0
        swapSize: 0
        otherHost: db2-ha-s2
    #
    # (Comment section omitted from example)
    #
    - name: sap_db2_secondary
      type: https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/sap_db2/sap_db2.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_db2/sap_db2.py
      #
      properties:
        instanceName: db2-ha-s2
        instanceType: n1-standard-4
        zone: us-central1-f
        subnetwork: example-sap-subnetwork
        linuxImage: family/sles-12-sp3-sap
        linuxImageProject: suse-sap-cloud
        db2SID: DH1
        db2sidSize: 16
        db2dumpSize: 16
        db2saptmpSize: 16
        db2sapdataSize: 50
        db2logSize: 16
        db2backupSize: 50
        db2sapdataSSD: Yes
        db2logSSD: Yes
        usrsapSize: 0
        sapmntSize: 0
        swapSize: 0
        otherHost: db2-ha-s1
  6. Deployment Manager를 사용하여 VM 인스턴스를 배포합니다.

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

    각 항목의 의미는 다음과 같습니다.

    • DEPLOYMENT-NAME은 현재 배포에 선택한 이름을 나타냅니다. 이 이름은 Google Cloud 콘솔의 배포 페이지에서 이 배포를 식별하는 데 사용됩니다.
    • TEMPLATE-NAME은 구성 파일에 지정한 이름을 나타냅니다. 기본 파일의 이름을 변경하지 않았다면 template_ha.yaml입니다.

    Deployment Manager는 template_ha.yaml 파일의 사양을 읽고 VM 및 영구 디스크를 적절히 구성합니다. 이 작업에 몇 분 정도 걸릴 수 있습니다. 배포 진행 상황을 확인하려면 다음 섹션의 단계를 따르세요.

배포 확인

배포를 확인하려면 Cloud Logging에서 배포 로그를 확인하고 VM 구성을 확인합니다.

로그 확인

  1. Google Cloud 콘솔에서 Cloud Logging을 열어 설치 진행 상황을 모니터링하고 오류를 확인합니다.

    Cloud Logging으로 이동

  2. 로그를 필터링합니다.

    로그 탐색기

    1. 로그 탐색기 페이지에서 쿼리 창으로 이동합니다.

    2. 리소스 드롭다운 메뉴에서 전역을 선택한 후 추가를 클릭합니다.

      전역 옵션이 표시되지 않으면 쿼리 편집기에 다음 쿼리를 입력합니다.

      resource.type="global"
      "Deployment"
      
    3. 쿼리 실행을 클릭합니다.

    기존 로그 뷰어

    • 기존 로그 뷰어 페이지의 기본 선택기 메뉴에서 전역을 로깅 리소스로 선택합니다.
  3. 필터링된 로그를 분석합니다.

    • "--- Finished"가 표시되면 배포 처리가 완료된 것이므로 다음 단계를 진행할 수 있습니다.
    • 할당량 오류가 표시되면 다음을 수행합니다.

      1. IAM 및 관리자 할당량 페이지에서 SAP용 IBM DB2 계획 가이드에 나와 있는 IBM DB2 요구사항을 충족하지 않는 할당량을 늘립니다.

      2. Deployment Manager 배포 페이지에서 배포를 삭제하여 설치에 실패한 VM과 영구 디스크를 삭제합니다.

      3. 배포를 다시 실행합니다.

VM 구성 확인

  1. VM 배포가 완료되면 ssh를 사용하여 각 VM에 연결합니다. Compute Engine VM 인스턴스 페이지에서 각 VM 인스턴스의 SSH 버튼을 클릭하거나 선호하는 SSH 방법을 사용하면 됩니다.

    Compute Engine VM 인스턴스 페이지의 SSH 버튼

  2. 루트 사용자로 변경합니다.

    sudo su -
  3. 명령 프롬프트에서 df -h를 입력합니다. 다음과 유사한 출력이 표시되는지 확인합니다.

    db2-ha-s1:~ # df -h
    Filesystem                     Size  Used Avail Use% Mounted on
    devtmpfs                       7.4G     0  7.4G   0% /dev
    tmpfs                           12G     0   12G   0% /dev/shm
    tmpfs                          7.4G   18M  7.4G   1% /run
    tmpfs                          7.4G     0  7.4G   0% /sys/fs/cgroup
    /dev/sda1                       30G  2.2G   26G   8% /
    /dev/mapper/vg_db2sid-vol       16G   33M   16G   1% /db2/DH1
    /dev/mapper/vg_db2dump-vol      16G   33M   16G   1% /db2/DH1/db2dump
    /dev/mapper/vg_db2sapdata-vol   50G   33M   50G   1% /db2/DH1/sapdata
    /dev/mapper/vg_db2saptmp-vol    16G   33M   16G   1% /db2/DH1/saptmp
    /dev/mapper/vg_db2log-vol       16G   33M   16G   1% /db2/DH1/log_dir
    /dev/mapper/vg_db2home-vol      16G   33M   16G   1% /db2/db2dh1
    /dev/mapper/vg_db2backup-vol    50G   33M   50G   1% /db2backup
    tmpfs                          1.5G     0  1.5G   0% /run/user/1001

검증 단계에서 설치에 실패한 단계를 하나라도 발견한 경우 다음을 수행합니다.

  1. 오류를 수정합니다.
  2. 배포 페이지에서 배포를 삭제하여 설치에 실패한 VM과 영구 디스크를 삭제합니다.
  3. 배포를 다시 실행합니다.

유동 IP 주소 예약

유동 IP 주소로 사용할 IP 주소를 선택해야 합니다. 나중에 호스트 VM 인스턴스 메타데이터를 설정할 때, IBM db2 및 HA 클러스터를 설치하고 구성할 때 이 IP 주소가 필요합니다.

유동 IP 주소의 경로 또는 별칭 IP 구현 유형 선택 여부에 따라 유동 IP 주소의 요구사항이 다릅니다.

유동 IP 주소에 정적 경로 구현을 사용하는 경우 IP 주소는 서브네트워크 IP 주소 범위를 벗어나야 하며 조직의 확장 네트워크에 있는 다른 모든 항목은 이 주소를 사용할 수 없습니다. 네트워크 관리자에게 문의하여 사용하기에 적절한 IP 주소를 확인하세요.

유동 IP 주소에 별칭 IP 주소 구현을 사용하는 경우, 호스트가 사용 중인 서브네트워크의 IP 주소 범위에서 IP 주소를 예약해야 합니다.

별칭 IP 주소 구현의 경우에만 별칭 IP 주소를 예약합니다.

  1. 호스트 VM에서 터미널을 열거나 Cloud Shell을 엽니다.

    Cloud Shell로 이동

  2. IP 주소를 예약합니다.

    gcloud compute addresses create vip-name --region region --subnet subnet-name \
      --addresses ip-addr-optional

    주소 속성을 지정하는 것은 선택사항입니다. IP 주소를 입력하지 않으면 Compute Engine에서 서브네트워크의 IP 주소를 선택합니다.

  3. 데이터베이스 서버를 설치하고 HA 클러스터를 구성할 때 사용할 예약된 IP 주소를 표시하고 기록합니다.

    gcloud compute addresses describe vip-name --region=region

    예를 들면 다음과 같습니다.

    db2-ha-s1:~ # gcloud compute addresses describe db2-ha-vip-dh1 --region=us-central1
    address: 10.1.0.30
    addressType: INTERNAL
    creationTimestamp: '2018-11-28T11:34:14.478-08:00'
    description: ''
    id: '6558342813288977241'
    kind: compute#address
    name: db2-ha-vip-dh1
    region: https://www.googleapis.com/compute/v1/projects/solutions-writers/regions/us-central1
    selfLink: https://www.googleapis.com/compute/v1/projects/solutions-writers/regions/us-central1/addresses/db2-ha-vip-dh1
    status: RESERVED
    subnetwork: https://www.googleapis.com/compute/v1/projects/solutions-writers/regions/us-central1/subnetworks/example-sap-   subnetwork

각 호스트 VM 인스턴스의 메타데이터에 유동 IP 주소 추가

선택한 경로 또는 별칭 IP 구현 유형을 포함한 유동 IP 주소에 대한 정보를 클러스터의 각 VM 인스턴스에 대한 커스텀 메타데이터로 지정합니다. 유동 IP 주소의 구현 유형을 선택하는 방법에 대한 자세한 내용은 Google Cloud의 IBM Db2 HA 클러스터에 대한 유동 IP 주소를 참조하세요.

구현 유형에 따라 설정하는 메타데이터 매개변수가 다릅니다. 다음 두 섹션에서 유동 IP 주소 구현에 적용되는 섹션의 지침을 따르세요.

유동 IP 주소의 경로 구현을 위한 메타데이터 설정

유동 IP 주소에 경로 구현을 사용하는 경우 다음 표의 매개변수를 사용하고 표 다음에 나오는 절차를 따라 인스턴스 메타데이터를 설정합니다.

매개변수 용도
sap_ibm_vip_solution route Google Cloud 정적 경로를 사용하여 호스트 간에 유동 IP 주소 전환을 지원하는 멀티 영역 배포임을 나타냅니다.
sap_ibm_db2_vip ip-address 이전 단계에서 예약한 유동 IP 주소를 지정합니다.
sap_ibm_db2_routename route-name 정적 경로의 임의 이름을 지정합니다. 예를 들어 db2-dh1-vip-route를 사용할 수 있습니다.
sap_ibm_db2_routenet vpc-network-name IBM Db2 HA 클러스터가 포함된 VPC 네트워크를 지정합니다.

유동 IP 주소의 정적 경로 구현에 대한 인스턴스 메타데이터를 설정하려면 다음 안내를 따르세요.

  1. 호스트 VM에서 터미널을 열거나 Cloud Shell을 엽니다.

    Cloud Shell로 이동

  2. 클러스터의 각 호스트 VM 인스턴스에서 유동 IP 주소의 경로 구현에 동일한 메타데이터를 지정합니다.

    gcloud compute instances add-metadata instance-name \
    --metadata sap_ibm_vip_solution=route,sap_ibm_db2_vip=ip-address,\
    sap_ibm_db2_routename=route-name,sap_ibm_db2_routenet=vpc-network-name \
    --zone instance-zone

유동 IP 주소의 별칭 IP 주소 구현에 대한 메타데이터 설정

유동 IP 주소에 별칭 IP 주소 구현을 사용하는 경우 다음 표의 매개변수를 사용하고 표 다음에 나오는 절차를 따라 인스턴스 메타데이터를 설정합니다.

매개변수 용도
sap_ibm_vip_solution alias Google Cloud 별칭 IP 주소를 사용하여 호스트 간에 유동 IP 주소 전환을 지원하는 단일 영역 배포임을 나타냅니다.
sap_ibm_db2_vip ip-address 이전 단계에서 예약한 유동 IP 주소를 지정합니다.
sap_ibm_db2_vip_range alias-ip-range-name 필요한 경우 별칭 IP 범위의 임의 이름을 지정합니다. 예를 들어 db2-dh1-vip-alias를 사용할 수 있습니다. 기본값은 서브네트워크 이름입니다.

유동 IP 주소의 별칭 IP 구현에 대한 인스턴스 메타데이터를 설정하려면 다음 안내를 따르세요.

  1. 호스트 VM에서 터미널을 열거나 Cloud Shell을 엽니다.

    Cloud Shell로 이동

  2. 클러스터의 각 호스트 VM 인스턴스에서 유동 IP 주소의 별칭 IP 주소 구현에 동일한 메타데이터를 지정합니다.

    gcloud compute instances add-metadata instance-name \
    --metadata sap_ibm_vip_solution=alias,sap_ibm_db2_vip=ip-address,\
    sap_ibm_db2_vip_range=alias-ip-range-name --zone instance-zone

인스턴스 메타데이터 검토 또는 변경

설정한 인스턴스 메타데이터를 검토하려면 다음을 사용하세요.

gcloud compute instances describe instance-name --zone instance-zone

커스텀 메타데이터를 변경해야 하는 경우에는 다음을 사용하세요.

gcloud compute instances add-metadata instance-name --metadata  parm-name=parm-value

/etc/hosts에 호스트 이름 및 IP 주소 추가

클러스터 설정 중에 SAP 클러스터 설정 도구가 각 호스트 VM 및 유동 IP 주소의 호스트 이름과 내부 IP 주소의 유효성을 검사합니다. 유효성 검사에 성공하려면 원하는 편집기를 사용하여 각 호스트 VM의 /etc/hosts 파일에 각 호스트 VM 및 유동 IP 주소의 IP 주소, 호스트 이름 및 VPC 내부 DNS 이름을 추가합니다.

예를 들어 다음 예시에서는 루트 권한으로 /etc/hosts를 업데이트합니다.

echo "#Db2 HA floating IP additions" >> /etc/hosts
echo 10.2.0.24 db2-ha-vip-dh1 db2-ha-vip-dh1.c.solutions-writers.internal >> /etc/hosts
echo 10.1.0.3 db2-ha-s1 db2-ha-s1.us-central1-c.c.db2-ha-project.internal >> /etc/hosts
echo 10.1.0.2 db2-ha-s2 db2-ha-s2.us-central1-f.c.db2-ha-project.internal >> /etc/hosts

이전 예시에서는 각 줄에서 호스트 이름과 >> 사이의 문자열이 VPC 내부 DNS 서비스에서 사용하는 VPC 내부 DNS 이름입니다.

호스트 VM은 영역 필드를 포함하는 영역별 내부 DNS 이름을 사용합니다. 유동 IP 주소는 영역 필드를 포함하지 않는 전역 내부 DNS 이름을 사용합니다.

VM 호스트의 경우 호스트 VM의 터미널에서 다음 명령어를 입력하여 내부 DNS 이름을 검색할 수 있습니다.

curl "http://metadata.google.internal/computeMetadata/v1/instance/hostname" \
-H "Metadata-Flavor: Google"

유동 IP 주소의 경우 다음 형식을 사용하여 직접 입력할 수 있습니다.

vip-host-name.c.project-name.internal

/etc/hosts 파일을 업데이트하면 /etc/hosts 파일의 관련 정보가 다음 예시와 유사해야 합니다.

#Db2 HA floating IP additions
10.2.0.24 db2-ha-vip-dh1 db2-ha-vip-dh1.c.solutions-writers.internal
10.1.0.3 db2-ha-s1 db2-ha-s1.us-central1-c.c.db2-ha-project.internal
10.1.0.2 db2-ha-s2 db2-ha-s2.us-central1-f.c.db2-ha-project.internal

운영체제 준비

VM을 만들었으면 IBM Db2 HA 클러스터용으로 운영체제를 준비합니다.

요구사항은 SAP와 IBM에서 정의합니다. SAP 문서에서는 Compute Engine 호스트 VM에 사전 설치되지 않은 Perl 및 Korn Shell과 같은 소프트웨어 설치를 요구합니다.

최신 요구사항은 다음 문서에서 확인하세요.

데이터베이스 서버 설치 및 IBM Db2 HA 클러스터 생성

IBM Db2 High availability solution: IBM Tivoli System Automation for Multiplatforms의 지침을 따라 IBM Db2 및 HA 클러스터를 설치하고 구성하기 전에 참고 내용에 특히 주의하며 다음 절차 개요를 살펴보세요.

SAP NetWeaver 및 기본 애플리케이션 서버를 설치하려면 Google Cloud SAP NetWeaver 문서SAP Help Portal에 제공되는 관련 SAP 설치 가이드를 참조하세요.

다음 단계는 설치 절차의 개요입니다. 자세한 내용은 SAP 문서를 참조하세요.

  1. SAP 문서에 설명된 대로 기본 인스턴스와 보조 인스턴스, 각 인스턴스와 해당 인스턴스 사이에 키 기반 SSH 연결을 설정합니다. SSH는 SAP 클러스터 설정 도구에서 사용합니다. 각 호스트의 모든 연결을 테스트합니다. 예를 들어 db2-ha-s1에서 다음 2가지를 테스트합니다.

    • ssh db2-ha-s1
    • ssh db2-ha-s2
  2. SAP 지원 포털에서 Db2의 전체 SAP 미디어 세트를 VM에 다운로드하거나 복사합니다.

  3. 기본 호스트 VM에서 SAP Software Provisioning Manager(SWPM)를 사용하여 IBM Db2 데이터베이스 서버를 설치합니다.

  4. 보조 호스트 VM에서 SAP 동종 시스템 복사와 같은 방법을 사용하여 대기 데이터베이스를 설정합니다.

  5. 두 호스트 VM에 IBM Db2 및 IBM TSAMP의 라이선스 파일을 설치합니다. SAP에서 획득한 IBM 라이선스를 설치하는 방법에 대한 자세한 내용은 SAP Note 816773 - DB6: Installing an SAP OEM license를 참조하세요.

  6. 두 호스트 VM에서 데이터베이스 버전 및 운영체제 버전이 지원하는 최신 버전의 TSAMP를 설치합니다.

  7. 기본 호스트 VM에서 최신 버전의 SAP 클러스터 설정 도구인 sapdb2cluster.sh를 사용하여 IBM Db2 HA 클러스터를 구성하고 생성합니다.

  8. 클러스터가 생성되었으면 기본 호스트에서 DB2 고가용성 인스턴스 구성 유틸리티(db2haicu)를 사용하여 클러스터가 장애 조치할 수 있는지 테스트합니다.

    1. SAP 클러스터 설정 도구와 Korn 셸을 종료합니다.

    2. 기본 인스턴스에서 기본 데이터베이스 서버가 온라인 상태인지 확인합니다.

      lssam

      lssam 출력에서 발췌한 다음 예시에서는 기본 데이터베이스 인스턴스가 온라인 상태입니다.

      Online IBM.ResourceGroup:db2_db2dh1_db2dh1_DH1-rg Nominal=Online
              '- Online IBM.Application:db2_db2dh1_db2dh1_DH1-rs
                      |- Online IBM.Application:db2_db2dh1_db2dh1_DH1-rs:db2-ha-s1
                      '- Offline IBM.Application:db2_db2dh1_db2dh1_DH1-rs:db2-ha-s2

    3. 데이터베이스 인스턴스 사용자로 전환합니다.

      sudo su - db2sid

    4. db2haicu 유틸리티를 시작합니다.

      db2haicusid

    5. db2haicu 인터페이스에서 옵션 5를 선택하고 프롬프트를 따릅니다.

    6. db2haicu 유틸리티를 종료합니다.

    7. 기본 호스트에서 보조 호스트가 현재 온라인 상태인지 확인합니다.

      lssam

      lssam 출력에서 발췌한 다음 예시에서는 보조 데이터베이스 인스턴스가 온라인 상태입니다.

      Online IBM.ResourceGroup:db2_db2dh1_db2dh1_DH1-rg Nominal=Online
              '- Online IBM.Application:db2_db2dh1_db2dh1_DH1-rs
                      |- Offline IBM.Application:db2_db2dh1_db2dh1_DH1-rs:db2-ha-s1
                      '- Online IBM.Application:db2_db2dh1_db2dh1_DH1-rs:db2-ha-s2

클러스터 구성을 완료하려면 다음 섹션의 지침에 따라 유동 IP 주소용 커스텀 TSAMP 리소스를 만들고 TSAMP에서 이를 IBM Db2 인스턴스 리소스와 연결합니다.

유동 IP 주소용 TSAMP 커스텀 리소스 만들기

TSAMP가 유동 IP 주소를 관리할 수 있게 하려면 유동 IP 주소용 TSAMP 커스텀 리소스를 만들어야 합니다. TSAMP가 유동 IP 주소 리소스를 관리하면서 Google Cloud와 상호작용할 수 있게 하려면 Google Cloud에서 도우미 스크립트를 다운로드하고 구성해야 합니다.

Google Cloud 도우미 스크립트 다운로드

클러스터의 각 호스트에서 Google Cloud 도우미 스크립트를 다운로드하고 권한을 설정합니다.

  1. 기본 및 대기 호스트 모두에서 기본 VM의 /root 디렉터리에 있는 루트 사용자 권한으로 스크립트를 다운로드합니다.

    wget https://storage.googleapis.com/sapdeploy/gceTSAMP/gcp_floating_ip.sh

  2. 두 호스트에서 스크립트에 대한 권한을 설정합니다.

    chmod 744 gcp_floating_ip.sh

유동 IP 주소용 TSAMP 커스텀 리소스 생성 및 구성

클러스터의 모든 호스트에서 유동 IP 주소용 TSAMP 커스텀 리소스를 만들고 구성하세요.

  1. 어느 호스트에서든 선호하는 방법을 사용하여 cluster_res.conf라는 구성 파일을 만들고 NodeNameList 매개변수를 호스트 이름으로 업데이트한 후 다음 텍스트를 붙여넣습니다.

    PersistentResourceAttributes::
      Name="gcp_floating_ip-rs"
      ResourceType=1
      StartCommand="/root/gcp_floating_ip.sh start"
      StopCommand="/root/gcp_floating_ip.sh stop"
      MonitorCommand="/root/gcp_floating_ip.sh status"
      MonitorCommandPeriod=30
      MonitorCommandTimeout=30
      StartCommandTimeout=600
      StopCommandTimeout=600
      UserName="root"
      RunCommandsSync=1
      ProtectionMode=0
      NodeNameList={"host-1","host-2"}

  2. 기본 호스트에서 루트 사용자 권한으로 다음 명령어를 사용하여 TSAMP 커스텀 리소스를 만듭니다.

    export CT_MANAGEMENT_SCOPE=2
    mkrsrc -f cluster_res.conf IBM.Application
    mkrg -l None gcp_floating_ip-rg
    chrg -o Online gcp_floating_ip-rg
    addrgmbr -g gcp_floating_ip-rg -m F IBM.Application:gcp_floating_ip-rs
    rgreq -o start gcp_floating_ip-rg

  3. 기본 호스트에서 루트 사용자 권한으로 온라인 상태인 Db2 인스턴스 리소스가 온라인 유동 IP 리소스와 동일한 호스트에 있는지 확인합니다.

    lssam

    출력에서 온라인 리소스는 모두 동일한 호스트 VM에 있어야 합니다.

    Online IBM.ResourceGroup:db2_db2dh1_db2dh1_DH1-rg Nominal=Online
            '- Online IBM.Application:db2_db2dh1_db2dh1_DH1-rs
                    |- Online IBM.Application:db2_db2dh1_db2dh1_DH1-rs:db2-ha-s1
                    '- Offline IBM.Application:db2_db2dh1_db2dh1_DH1-rs:db2-ha-s2
    Online IBM.ResourceGroup:gcp_floating_ip.sh_rg Nominal=Online
            '- Online IBM.Application:gcp_floating_ip.sh_rs
                    |- Online IBM.Application:gcp_floating_ip.sh_rs:db2-ha-s1
                    '- Offline IBM.Application:gcp_floating_ip.sh_rs:db2-ha-s2

    유동 IP 주소 리소스가 데이터베이스 인스턴스가 있는 호스트와 동일한 호스트에서 온라인 상태가 아니면 유동 IP 주소 리소스를 이동하세요.

    rgreq -o move -n host-to-move-from gcp_floating_ip-rg

  4. 기본 호스트에서 루트 사용자 권한으로 데이터베이스 인스턴스 리소스와 유동 IP 주소 리소스 간의 TSAMP 내 관계를 설정합니다.

    rgreq -o lock gcp_floating_ip-rg
    rgreq -o lock db2_db2sid_db2sid_SID-rg
    mkrel -o NoCondition -p Collocated \
      -S IBM.Application:gcp_floating_ip-rs -G IBM.Application:db2_db2sid_db2sid_SID-rs \
      db2hadr_colo_gcp_floating_ip
    rgreq -o unlock db2_db2sid_db2sid_SID-rg
    rgreq -o unlock gcp_floating_ip-rg

    데이터베이스 인스턴스 리소스와 유동 IP 주소 리소스 간의 관계를 설정한 후에는 다음 섹션에 설명된 대로 장애 조치를 다시 테스트할 수 있습니다.

Google Cloud 기반 SAP용 Db2 HA 클러스터 배포 확인

IBM Db2 HA 클러스터가 올바르게 구성되었는지 확인하려면 장애 조치를 트리거하고 모든 온라인 리소스가 한 호스트 VM에서 다른 호스트 VM으로 이동하는지 확인합니다.

장애 조치 테스트를 수행하려면 다음 안내를 따르세요.

  1. 기본 호스트에서 루트 사용자 권한으로 온라인 리소스가 현재 어느 호스트 VM에 있는지 확인합니다.

    lssam

  2. 기본 호스트에서 db2 인스턴스 사용자로 변경합니다.

    sudo su - db2sid

  3. db2haicu 유틸리티를 시작합니다.

    db2haicu

  4. db2haicu 유틸리티 인터페이스에서 옵션 5를 선택하고 프롬프트를 따라 장애 조치를 트리거합니다.

  5. db2haicu 유틸리티가 처리를 완료하면 유틸리티를 종료합니다.

  6. 루트 사용자로 전환합니다.

    sudo su -

  7. 온라인 리소스가 다른 호스트 VM으로 이동했는지 확인합니다.

SAP용 Google Cloud 에이전트 설치 검증

VM을 배포하고 SAP 시스템을 설치했으면 SAP용 Google Cloud 에이전트가 올바르게 작동하는지 확인합니다.

SAP용 Google Cloud 에이전트가 실행 중인지 확인

에이전트가 실행 중인지 확인하려면 다음 단계를 따릅니다.

  1. 호스트 VM 인스턴스와 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 호스트 에이전트가 측정항목을 수신하는지 확인

SAP용 Google Cloud 에이전트가 인프라 측정항목을 수집하고 SAP 호스트 에이전트로 올바르게 전송하는지 확인하려면 다음 단계를 수행하세요.

  1. SAP 시스템에서 ST06 트랜잭션을 입력합니다.
  2. 개요 창에서 다음 필드의 가용성과 콘텐츠를 확인하여 SAP 및 Google 모니터링 인프라의 엔드 투 엔드 설정이 올바른지 확인합니다.

    • 클라우드 제공업체: Google Cloud Platform
    • 향상된 모니터링 액세스: TRUE
    • 향상된 모니터링 세부정보: ACTIVE

배포 후 작업 수행

Google Cloud에서 IBM Db2 고가용성 시스템을 사용하기 전에 IBM Db2 High Availability Solution: IBM Tivoli System Automation for Multiplatforms에 설명된 다음을 포함한 모든 설치 후 작업을 완료하는 것이 좋습니다.

  1. 데이터베이스 클러스터 유효성 검사

  2. TSAMP 핵심 정책 백업

  3. 데이터베이스 수정 팩 업데이트

  4. 유동 IP 주소의 호스트 이름과 IP 주소를 사용하도록 Db2 클라이언트 연결 업데이트. 예를 들어 SAP ABAP 애플리케이션 서버의 db2cli.ini 파일을 업데이트합니다.

DB2 HA 클러스터에서 NAT 게이트웨이를 사용하는 경우 SAP용 IBM Db2 배포 가이드의 NAT 게이트웨이 설치 완료에 설명된 대로 NAT 게이트웨이 설정을 완료합니다.