SAP HANA용 Persistent Disk를 하이퍼디스크로 마이그레이션

이 문서에서는 SAP HANA 데이터베이스에서 사용하는 Persistent Disk 볼륨을 Google Cloud Hyperdisk 볼륨으로 마이그레이션하는 방법을 설명합니다.

하이퍼디스크, 특히 하이퍼디스크 익스트림은 SSD 기반의 Persistent Disk 유형보다 SAP HANA에 대해 더 나은 성능을 제공합니다.

SAP HANA 데이터베이스에서 사용하는 Persistent Disk 볼륨을 Hyperdisk 볼륨으로 마이그레이션하려면 Google Cloud의 디스크 스냅샷SAP HANA 빠른 다시 시작 옵션을 사용합니다.

이전 고려사항 검토

  • 이전 데이터: SAP HANA 빠른 다시 시작 옵션이 도우미로 사용됩니다. 데이터베이스 테이블이 로드될 때까지 기다릴 필요가 없으므로 디스크를 분쇄하는 동안 다운타임을 줄입니다. 단, 행 저장소 및 바이너리 대형 객체 (BLOB) 데이터 유형을 새로고침하는 데 필요한 시간을 고려해야 합니다.
  • 다운타임: 이전 프로세스에는 최소한의 다운타임이 필요하지만 다운타임의 실제 기간은 다음 작업을 완료하는 데 걸리는 시간에 따라 달라집니다.

    • 디스크 스냅샷 만들기

      디스크 스냅샷을 만드는 동안 다운타임을 줄이려면 계획된 마이그레이션 활동 전에 디스크 스냅샷을 만든 후 활동과 더 가까운 곳에 스냅샷을 추가로 만들어 스냅샷 간 차이를 줄이면 됩니다.

    • Persistent Disk 볼륨의 스냅샷을 사용하여 Hyperdisk 볼륨 만들기

    • SAP HANA 테이블을 SAP HANA 메모리로 새로고침

  • 기존 디스크로 되돌리기: 이전 중에 문제가 발생하면 기존 디스크로 되돌릴 수 있습니다. 기존 디스크는 이 절차의 영향을 받지 않으며 직접 삭제할 때까지 사용할 수 있습니다. 자세한 내용은 기존 디스크로 대체를 참고하세요.

시작하기 전에

SAP HANA 데이터베이스에서 사용하는 Persistent Disk 볼륨을 Hyperdisk 볼륨으로 마이그레이션하기 전에 다음 조건이 충족되었는지 확인합니다.

  • SAP HANA는 Hyperdisk를 지원하는 SAP 인증 Compute Engine 인스턴스에서 실행됩니다.
  • /hana/data/hana/log 볼륨은 별도의 디스크에 호스팅됩니다.
  • Linux 논리 볼륨 관리는 SAP HANA 스토리지 지속성에 사용됩니다. 직접 스토리지를 사용할 수도 있지만 /etc/fstab 테이블을 통해 명시적인 기기를 다시 매핑해야 합니다.
  • SAP HANA 시스템에 SAP HANA 빠른 다시 시작 옵션이 사용 설정됩니다.

    이를 사용 설정하는 방법에 관한 자세한 내용은 SAP HANA 빠른 다시 시작 사용 설정을 참고하세요.

  • SAP HANA 데이터베이스의 유효한 백업을 사용할 수 있습니다. 필요한 경우 이 백업을 사용하여 데이터베이스를 복원할 수 있습니다.

  • 대상 Compute Engine 인스턴스가 고가용성(HA) 클러스터의 일부인 경우 클러스터가 유지보수 모드인지 확인합니다.

  • SAP HANA 데이터베이스에서 수평 확장 배포를 사용하는 경우 각 SAP HANA 인스턴스에 대해 이 가이드의 절차를 반복합니다.

  • SAP HANA 데이터베이스가 실행 중입니다.

  • tmpfs 파일 시스템이 MAIN 데이터 프래그먼트의 콘텐츠로 완전히 로드됩니다. 파일 시스템 사용률을 보려면 다음 명령어를 실행합니다.

    df -Th

    출력은 다음 예시와 비슷합니다.

    #  df -Th
    Filesystem                        Type      Size  Used Avail Use% Mounted on
    ...
    /dev/mapper/vg_hana_shared-shared xfs       1.0T   56G  968G   6% /hana/shared
    /dev/mapper/vg_hana_data-data     xfs        14T  5.7T  8.2T  41% /hana/data
    /dev/mapper/vg_hana_log-log       xfs       512G  7.2G  505G   2% /hana/log
    /dev/mapper/vg_hana_usrsap-usrsap xfs        32G  276M   32G   1% /usr/sap
    tmpfsDB10                         tmpfs     5.7T  800G  4.9T  14% /hana/tmpfs0/DB1
    tmpfsDB11                         tmpfs     5.7T  796G  4.9T  14% /hana/tmpfs1/DB1
    tmpfsDB12                         tmpfs     5.7T  783G  4.9T  14% /hana/tmpfs2/DB1
    tmpfsDB13                         tmpfs     5.7T  780G  4.9T  14% /hana/tmpfs3/DB1
    tmpfsDB14                         tmpfs     5.7T  816G  4.9T  15% /hana/tmpfs4/DB1
    tmpfsDB15                         tmpfs     5.7T  780G  4.9T  14% /hana/tmpfs5/DB1
    tmpfsDB16                         tmpfs     5.7T  816G  4.9T  15% /hana/tmpfs6/DB1
    tmpfsDB17                         tmpfs     5.7T  780G  4.9T  14% /hana/tmpfs7/DB1
    

Persistent Disk 볼륨을 하이퍼디스크 볼륨으로 마이그레이션

이 섹션에서는 /hana/data/hana/log 볼륨을 Persistent Disk 볼륨에서 Hyperdisk 볼륨으로 마이그레이션하는 방법을 설명합니다.

마이그레이션 프로세스를 보여주기 위해 다음 구성 예시가 사용됩니다.

  • 머신 유형: m2-ultramem-416(12TB 메모리, vCPU 416개)
  • Google Cloud 문서 Terraform: SAP HANA 수직 확장 배포 가이드를 사용하여 배포된 SAP HANA 수직 확장 시스템
    • OS: SLES for SAP 15 SP1
    • SAP HANA: HANA 2 SPS06, 패치 63
    • 기본 디스크 유형: SSD 영구 디스크 (pd-ssd)
    • /hana/data/hana/log 볼륨은 별도의 디스크에 마운트되며 LVM 및 XFS를 통해 빌드됩니다.
    • SAP HANA 빠른 다시 시작 옵션이 사용 설정되어 있고 데이터베이스에 6TB의 데이터가 로드됩니다. 이 작업을 수행하는 방법에 대한 자세한 내용은 SAP HANA 빠른 다시 시작 사용 설정을 참고하세요.

Persistent Disk 볼륨을 Hyperdisk 볼륨으로 마이그레이션하려면 다음 단계를 따르세요.

  1. HDB stop 명령어를 실행하여 SAP HANA 데이터베이스를 중지합니다.

    HDB stop
    

    또는 sapcontrol 명령어를 실행할 수 있습니다.

    sapcontrol -nr INSTANCE_NUMBER -function StopSystem HDB
    

    INSTANCE_NUMBER를 SAP HANA 시스템의 인스턴스 수로 바꿉니다.

    자세한 내용은 SAP 문서 SAP HANA 시스템 시작 및 중지를 참조하세요.

  2. 파일 시스템에서 /hana/data/hana/log 볼륨을 마운트 해제합니다.

    umount /hana/data
    umount /hana/log
    
  3. 다음 방법 중 하나를 사용하여 /hana/data/hana/log 볼륨을 호스팅하는 디스크의 이름을 확인합니다.

    • ls 명령어를 실행합니다.

      ls -l /dev/disk/by-id/
      

      출력에는 다음 예와 같이 디스크 이름을 기기에 매핑하는 내용이 표시됩니다.

      ...
      lrwxrwxrwx 1 root root  9 May 18 20:14 google-hana-vm-data00001 -> ../../sdb
      lrwxrwxrwx 1 root root  9 May 18 20:14 google-hana-vm-log00001 -> ../../sdc
      ...
      
    • gcloud compute instances describe 명령어를 실행합니다.

      gcloud compute instances describe INSTANCE_NAME
          --zone=ZONE
      

      다음을 바꿉니다.

      • INSTANCE_NAME: 컴퓨팅 인스턴스의 이름입니다.
      • ZONE: 컴퓨팅 인스턴스의 영역입니다.

      출력에는 컴퓨팅 인스턴스에 연결된 디스크를 비롯한 컴퓨팅 인스턴스에 관한 세부정보가 표시됩니다. 예를 들면 다음과 같습니다.

      gcloud compute instances describe hana-vm --zone europe-west4-a
      ...
      disks:
      - autoDelete: false
      deviceName: hana-vm-shared00001
      diskSizeGb: '1024'
      - autoDelete: false
      deviceName: hana-vm-usrsap00001
      diskSizeGb: '32'
      - autoDelete: false
      deviceName: hana-vm-data00001
      diskSizeGb: '14093'
      - autoDelete: false
      deviceName: hana-vm-log00001
      diskSizeGb: '512'
      
    • Google Cloud 콘솔에서 Compute Engine VM 인스턴스 페이지로 이동하고 컴퓨팅 인스턴스 이름을 클릭합니다. 스토리지 섹션에 연결된 디스크 정보가 표시됩니다.

  4. /hana/data/hana/log 볼륨을 호스팅하는 디스크의 스냅샷을 만듭니다.

    gcloud compute snapshots create DATA_DISK-snapshot \
      --project=PROJECT_ID \
      --source-disk-zone=SOURCE_DISK_ZONE  \
      --source-disk=DATA_DISK \
    gcloud compute snapshots create LOG_DISK-snapshot \
      --project=PROJECT_ID \
      --source-disk-zone=SOURCE_DISK_ZONE \
      --source-disk=LOG_DISK
    

    다음을 바꿉니다.

    • DATA_DISK: /hana/data 볼륨을 호스팅하는 디스크의 이름으로, 데이터 디스크의 스냅샷에 접두사로 설정됩니다.
    • LOG_DISK: /hana/log 볼륨을 호스팅하는 디스크의 이름으로, 로그 디스크의 스냅샷 접두사로 설정됩니다.
    • PROJECT_ID: 디스크가 배포된 Google Cloud 프로젝트의 ID입니다.
    • SOURCE_DISK_ZONE: 디스크가 배포된 Compute Engine 영역

    스냅샷을 만드는 방법에 대한 자세한 내용은 디스크 스냅샷 만들기 및 관리를 참고하세요.

  5. 만든 디스크 스냅샷을 사용하여 /hana/data/hana/log 볼륨의 Hyperdisk 볼륨을 만듭니다.

    gcloud compute disks create DATA_DISK-hd \
         --project=PROJECT_ID \
         --zone=ZONE \
         --type=HYPERDISK_TYPE \
         --provisioned-iops=IOPS_DATA_DISK \
         --source-snapshot=DATA_DISK-snapshot \
     gcloud compute disks create LOG_DISK-hd \
         --project=PROJECT_ID \
         --zone=ZONE \
         --type=HYPERDISK_TYPE \
         --provisioned-iops=IOPS_LOG_DISK \
         --source-snapshot=LOG_DISK-snapshot
    

    다음을 바꿉니다.

    • DATA_DISK: /hana/data 볼륨을 호스팅하는 Persistent Disk 볼륨의 이름으로, 생성하는 Hyperdisk 볼륨의 이름에 접두사로 설정됩니다.
    • LOG_DISK: /hana/log 볼륨을 호스팅하는 Persistent Disk 볼륨의 이름으로, 생성하는 Hyperdisk 볼륨의 이름에 접두사로 설정됩니다.
    • PROJECT_ID: Google Cloud 프로젝트의 ID입니다.
    • HYPERDISK_TYPE: 만들려는 하이퍼디스크 유형입니다(예: hyperdisk-extreme).
    • ZONE: 하이퍼디스크 볼륨을 배포해야 하는 Compute Engine 영역
    • IOPS_DATA_DISK: /hana/data를 호스팅하기 위해 만들려는 하이퍼디스크에 설정할 IOPS입니다. 성능 요구사항에 따라 IOPS를 설정합니다.
    • IOPS_LOG_DISK: /hana/log를 호스팅하기 위해 만들려는 하이퍼디스크에 설정할 IOPS입니다. 성능 요구사항에 따라 IOPS를 설정합니다.

    Hyperdisk Balanced (hyperdisk-balanced) 볼륨을 만드는 경우 처리량을 설정할 수도 있습니다.

    SAP HANA에서 Hyperdisk 볼륨을 사용하기 위해 설정해야 하는 최소 크기, IOPS, 처리량에 관한 자세한 내용은 SSD 기반 Persistent Disk 및 Hyperdisk 볼륨의 최소 크기에서 Compute Engine 머신 유형에 해당하는 행을 참고하세요.

    스냅샷에서 디스크를 복원하는 방법에 관한 자세한 내용은 스냅샷에서 복원을 참고하세요.

  6. SAP HANA 데이터베이스를 호스팅하는 Compute Engine 인스턴스에서 /hana/data/hana/log 볼륨을 호스팅하는 영구 디스크 볼륨을 분리합니다.

    gcloud compute instances detach-disk INSTANCE_NAME \
      --disk=DATA_DISK \
      --zone=ZONE
    gcloud compute instances detach-disk INSTANCE_NAME \
      --disk=LOG_DISK \
      --zone=ZONE
    

    다음을 바꿉니다.

    • INSTANCE_NAME: Compute Engine 인스턴스의 이름
    • DATA_DISK: 분리하려는 /hana/data 볼륨을 호스팅하는 Persistent Disk 볼륨의 이름입니다.
    • LOG_DISK: 분리하려는 /hana/log 볼륨을 호스팅하는 Persistent Disk 볼륨의 이름입니다.
    • ZONE: 디스크가 배포된 Compute Engine 영역
  7. 만든 하이퍼디스크 볼륨을 SAP HANA 데이터베이스를 호스팅하는 Compute Engine 인스턴스에 연결합니다.

    gcloud compute instances attach-disk INSTANCE_NAME \
        --disk=DATA_DISK-hd \
        --zone=ZONE
    gcloud compute instances attach-disk INSTANCE_NAME \
       --disk=LOG_DISK-hd \
        --zone=ZONE
    

    다음을 바꿉니다.

    • INSTANCE_NAME: Compute Engine 인스턴스의 이름
    • DATA_DISK: /hana/data 볼륨을 호스팅하는 데 사용할 하이퍼디스크 볼륨의 이름입니다.
    • LOG_DISK: /hana/log 볼륨을 호스팅하는 데 사용할 하이퍼디스크 볼륨의 이름입니다.
    • ZONE: 하이퍼디스크가 배포된 Compute Engine 영역
  8. 하이퍼디스크 볼륨을 마운트하려면 root 또는 sudo 액세스 권한이 있는 사용자로 다음 단계를 수행합니다.

    1. LVM 기기 매핑 충돌을 방지하기 위해 모든 기기 매핑 정의를 삭제합니다.

      dmsetup remove_all
      
    2. 모든 디스크에서 볼륨 그룹을 검사하고, 캐시를 다시 빌드하고, 누락된 볼륨(LVM 포함)을 만듭니다.

      vgscan -v --mknodes
      

      출력은 다음과 비슷합니다.

      Scanning all devices to initialize lvmetad.
      Reading volume groups from cache.
      Found volume group "vg_hana_data" using metadata type lvm2
      Found volume group "vg_hana_shared" using metadata type lvm2
      Found volume group "vg_hana_log" using metadata type lvm2
      Found volume group "vg_hana_usrsap" using metadata type lvm2
      
    3. 볼륨 그룹을 활성화합니다.

      vgchange -ay
      

      출력은 다음과 비슷합니다.

      1 logical volume(s) in volume group "vg_hana_data" now active
      1 logical volume(s) in volume group "vg_hana_shared" now active
      1 logical volume(s) in volume group "vg_hana_log" now active
      1 logical volume(s) in volume group "vg_hana_usrsap" now active
      
    4. 논리 볼륨을 스캔합니다.

      lvscan
      

      출력은 다음과 비슷합니다.

      ACTIVE            '/dev/vg_hana_data/data' [13.76 TiB] inherit
      ACTIVE            '/dev/vg_hana_shared/shared' [1024.00 GiB] inherit
      ACTIVE            '/dev/vg_hana_log/log' [512.00 GiB] inherit
      ACTIVE            '/dev/vg_hana_usrsap/usrsap' [32.00 GiB] inherit
      
    5. 디스크를 마운트합니다.

      mount -av
      

      출력은 다음과 비슷합니다.

      /                        : ignored
      /boot/efi                : already mounted
      /hana/shared             : already mounted
      /hana/data               : already mounted
      /hana/log                : already mounted
      /usr/sap                 : already mounted
      swap                     : ignored
      /hana/tmpfs0/DB1         : already mounted
      /hana/tmpfs1/DB1         : already mounted
      /hana/tmpfs2/DB1         : already mounted
      /hana/tmpfs3/DB1         : already mounted
      /hana/tmpfs4/DB1         : already mounted
      /hana/tmpfs5/DB1         : already mounted
      /hana/tmpfs6/DB1         : already mounted
      /hana/tmpfs7/DB1         : already mounted
      
  9. 새 볼륨을 확인합니다.

    • 파일 시스템 사용률을 확인합니다.

      df -Th
      

      출력은 다음과 비슷합니다.

      Filesystem                        Type      Size  Used Avail Use% Mounted on
      ...
      /dev/mapper/vg_hana_shared-shared xfs       1.0T   56G  968G   6% /hana/shared
      /dev/mapper/vg_hana_usrsap-usrsap xfs        32G  277M   32G   1% /usr/sap
      tmpfsDB10                         tmpfs     5.7T  784G  4.9T  14% /hana/tmpfs0/DB1
      tmpfsDB11                         tmpfs     5.7T  783G  4.9T  14% /hana/tmpfs1/DB1
      tmpfsDB12                         tmpfs     5.7T  783G  4.9T  14% /hana/tmpfs2/DB1
      tmpfsDB13                         tmpfs     5.7T  782G  4.9T  14% /hana/tmpfs3/DB1
      tmpfsDB14                         tmpfs     5.7T  783G  4.9T  14% /hana/tmpfs4/DB1
      tmpfsDB15                         tmpfs     5.7T  783G  4.9T  14% /hana/tmpfs5/DB1
      tmpfsDB16                         tmpfs     5.7T  783G  4.9T  14% /hana/tmpfs6/DB1
      tmpfsDB17                         tmpfs     5.7T  782G  4.9T  14% /hana/tmpfs7/DB1
      /dev/mapper/vg_hana_log-log       xfs       512G  7.2G  505G   2% /hana/log
      /dev/mapper/vg_hana_data-data     xfs        14T  5.7T  8.2T  41% /hana/data
      
    • 기기가 새 볼륨에 연결되어 있는지 확인합니다.

      lsblk
      

      출력은 다음과 비슷합니다.

      NAME                    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
      ...
      sdd                       8:48   0    1T  0 disk
      └─vg_hana_shared-shared 254:0    0 1024G  0 lvm  /hana/shared
      sde                       8:64   0   32G  0 disk
      └─vg_hana_usrsap-usrsap 254:3    0   32G  0 lvm  /usr/sap
      sdf                       8:80   0 13.8T  0 disk
      └─vg_hana_data-data     254:1    0 13.8T  0 lvm  /hana/data
      sdg                       8:96   0  512G  0 disk
      └─vg_hana_log-log       254:2    0  512G  0 lvm  /hana/log
      
  10. 다음 명령어 중 하나를 사용하여 SAP HANA 데이터베이스를 시작합니다.

    • HDB start 명령어를 실행합니다.

      HDB start
      
    • sapcontrol 명령어를 실행합니다.

      sapcontrol -nr INSTANCE_NUMBER -function StartSystem HDB
      

      INSTANCE_NUMBER를 SAP HANA 데이터베이스의 인스턴스 수로 바꿉니다.

      자세한 내용은 SAP HANA 시스템 시작 및 중지를 참고하세요.

기존 디스크로 대체

디스크 마이그레이션이 실패하는 경우 마이그레이션 절차가 시작되기 전에 존재한 데이터가 포함되어 있으므로 기존 영구 디스크 볼륨을 대체로 사용할 수 있습니다.

SAP HANA 데이터베이스를 원래 상태로 복원하려면 다음 단계를 따르세요.

  1. SAP HANA 데이터베이스를 호스팅하는 Compute Engine 인스턴스를 중지합니다.
  2. 만든 Hyperdisk 볼륨을 분리합니다.
  3. 기존 Persistent Disk 볼륨을 컴퓨팅 인스턴스에 다시 연결합니다.
  4. 컴퓨팅 인스턴스를 시작합니다.