Azure Files SMB를 사용하여 HA SAP NetWeaver 설치

Microsoft와 SAP는 이제 Azure Files 프리미엄 SMB(서버 메시지 블록) 파일 공유를 완벽하게 지원합니다. SAP SWPM(Software Provisioning Manager) 1.0 SP32 및 SWPM 2.0 SP09(이상)는 Azure Files 프리미엄 SMB 스토리지를 지원합니다.

Azure Files 프리미엄 SMB 공유 크기를 조정하기 위한 특별한 요구 사항이 있습니다. 이 문서에는 워크로드를 배포하고, 적절한 스토리지 크기를 선택하고, Azure Files 프리미엄 SMB에 대한 최소 설치 요구 사항을 충족하는 방법에 대한 구체적인 권장 사항이 포함되어 있습니다.

HA(고가용성) SAP 솔루션에는 sapmnt, trans인터페이스 디렉터리를 호스트하기 위해 고가용성 파일 공유가 필요합니다. Azure Files 프리미엄 SMB는 Windows 환경에서 SAP용 공유 파일 시스템을 위한 간단한 Azure PaaS(Platform as a Service) 솔루션입니다. Azure Files 프리미엄 SMB는 가용성 집합 및 가용성 영역과 함께 사용할 수 있습니다. Azure Files 프리미엄 SMB는 다른 지역에 대한 DR(재해 복구) 시나리오에도 사용할 수 있습니다.

참고 항목

파일 공유를 사용하여 SAP ASCS/SCS 인스턴스를 클러스터링하는 작업은 SAP Kernel 7.22(이상)가 있는 SAP 시스템에서 지원됩니다. 자세한 내용은 SAP Note 2698948을 참조하세요.

SAP 시스템용 Azure Files 프리미엄 SMB의 크기 조정 및 배포

Azure Files 프리미엄 SMB 배포를 계획할 때에는 다음 사항을 평가해야 합니다.

  • 파일 공유 이름 sapmnt는 스토리지 계정당 한 번 만들 수 있습니다. /sapmnt/<SID1>/sapmnt/<SID2>와 같은 동일한 /sapmnt 공유에 디렉터리로 추가 SID(스토리지 ID)를 만들 수 있습니다.
  • 적절한 크기, IOPS 및 처리량을 선택합니다. 공유에 대해 제안된 크기는 SID당 256GB입니다. 공유의 최대 크기는 5,120GB입니다.
  • Azure Files 프리미엄 SMB는 스토리지 계정당 100만 개가 넘는 파일이 있는 매우 큰 sapmnt 공유에 대해 최적의 성능으로 수행되지 않을 수 있습니다.  수백만 개의 작업 로그 파일을 생성하는 수백만 개의 배치 작업이 있는 고객은 SAP Note 16083에 설명된 대로 이를 정기적으로 다시 구성해야 합니다. 필요한 경우 이전 작업 로그를 다른 Azure Files 프리미엄 SMB 파일 공유로 이동하거나 보관할 수 있습니다. sapmnt가 매우 클 것으로 예상되면 다른 옵션(예: Azure NetApp Files)을 고려하세요.
  • 프라이빗 네트워크 엔드포인트를 사용하는 것이 좋습니다.
  • 단일 스토리지 계정 및 해당 파일 공유에 너무 많은 SID를 두지 마세요.
  • 일반적인 지침에 따라, 4개가 넘는 비프로덕션 SID를 함께 두지 마세요.
  • 전체 개발, 프로덕션 및 QAS(품질 보증 시스템) 환경을 하나의 스토리지 계정이나 파일 공유에 두지 마세요. 공유가 실패하면 전체 SAP 환경의 가동 중지 시간이 발생합니다.
  • 작은 시스템을 제외한 다른 스토리지 계정에 sapmnt전송 디렉터리를 배치하는 것이 좋습니다. SAP 기본 애플리케이션 서버를 설치하는 동안 SAPinst는 전송 호스트 이름을 요청합니다. 다른 스토리지 계정의 FQDN은 <storage_account>.file.core.windows.net으로 입력해야 합니다.
  • 인터페이스에 사용되는 파일 시스템을 /sapmnt/<SID>와 동일한 스토리지 계정에 두지 마세요.
  • SAP 사용자 및 그룹을 sapmnt 공유에 추가해야 합니다. Azure Portal에서 스토리지 파일 데이터 SMB 공유 권한 상승 기여자 권한을 설정합니다.

별도의 스토리지 계정에 전송, 인터페이스sapmnt를 분산하면 처리량과 복원력이 향상됩니다. 또한 성능 분석도 간소화됩니다. 단일 Azure Files 스토리지 계정에 많은 SID 및 기타 파일 시스템을 배치하고 처리량 제한에 도달하여 스토리지 계정의 성능이 저하되는 경우, 문제를 유발하는 SID 또는 애플리케이션을 식별하기 어렵습니다.

계획

Important

Active Directory 통합을 사용하여 Azure Files 프리미엄 SMB에 SAP HA 시스템을 설치하려면 팀 간 협업이 필요합니다. 다음 팀이 협력하여 작업을 달성하는 것이 좋습니다.

  • Azure 팀: 스토리지 계정, 스크립트 실행 및 AD 디렉터리 동기화를 설정 및 구성합니다.
  • Active Directory 팀: 사용자 계정 및 그룹을 만듭니다.
  • 기본 팀: SWPM을 실행하고 필요한 경우 ACL(액세스 제어 목록)을 설정합니다.

Active Directory 통합을 사용하여 Azure Files 프리미엄 SMB에 SAP NetWeaver HA 시스템을 설치하기 위한 필수 구성 요소는 다음과 같습니다.

  • SAP 서버를 Active Directory 도메인에 가입합니다.
  • Microsoft Entra Connect를 사용하여 SAP 서버가 포함된 Active Directory 도메인을 Microsoft Entra ID에 복제합니다.
  • Azure ExpressRoute를 통과하여 온-프레미스 도메인 컨트롤러에 연결하는 것을 방지하려면 하나 이상의 Active Directory 도메인 컨트롤러가 Azure 환경에 있어야 합니다.
  • Azure 지원 팀은 Active Directory 통합을 사용하여 Azure Files SMB에 대한 설명서를 검토해야 합니다. 이 비디오에서는 간소화를 위해 수정(DNS) 및 건너뛴(DFS-N) 추가 구성 옵션을 보여 줍니다. 하지만 이는 유효한 구성 옵션입니다.
  • Azure Files PowerShell 스크립트를 실행하는 사용자에게 Active Directory에서 개체를 만들 수 있는 권한이 있어야 합니다.
  • 설치에 SWPM 버전 1.0 SP32 및 SWPM 2.0 SP09 이상을 사용합니다. SAPInst 패치는 749.0.91 이상이어야 합니다.
  • 스크립트가 실행되는 Windows Server 인스턴스에 최신 PowerShell 릴리스를 설치합니다.

설치 시퀀스

사용자 및 그룹 만들기

Active Directory 관리자는 로컬 Windows Server Active Directory 인스턴스에 로컬 관리자 권한이 있는 도메인 사용자 3명과 글로벌 그룹 1개를 미리 만들어야 합니다.

SAPCONT_ADMIN@SAPCONTOSO.local에는 도메인 관리자 권한이 있으며 SAP 시스템 사용자 및 SAP_<SAPSID>_GlobalAdmin 그룹으로 SAPinst, <sid>admSAPService<SID>를 실행하는 데 사용됩니다. SAP 설치 가이드에는 이러한 계정에 필요한 특정 세부 정보가 포함되어 있습니다.

참고 항목

SAP 사용자 계정은 도메인 관리자가 아니어야 합니다. 일반적으로 SAPinst를 실행하는 데 <sid>adm을 사용하지 않는 것이 좋습니다.

Synchronization Service Manager 확인

Active Directory 관리자 또는 Azure 관리자는 Microsoft Entra Connect에서 Synchronization Service Manager를 확인해야 합니다. 기본적으로 Microsoft Entra ID로 복제하는데 약 30분 정도 소요됩니다.

스토리지 계정, 프라이빗 엔드포인트 및 파일 공유 만들기

Azure 관리자는 다음 작업을 완료해야 합니다.

  1. 기본 탭에서 프리미엄 ZRS(영역 중복 스토리지) 또는 LRS(로컬 중복 스토리지)를 사용하여 스토리지 계정을 만듭니다. 영역 배포가 있는 고객은 ZRS를 선택해야 합니다. 여기에서 관리자는 표준 또는 프리미엄 계정 설정 중에서 선택해야 합니다.

    Screenshot of the Azure portal that shows basic information for creating a storage account.

    Important

    프로덕션 용도로 사용하려면 프리미엄 계정을 선택하는 것이 좋습니다. 프로덕션 용도가 아닌 경우에는 표준 계정이면 충분합니다.

  2. 고급 탭에서 기본 설정은 OK입니다.

    Screenshot of the Azure portal that shows advanced information for creating a storage account.

  3. 네트워킹 탭에서 관리자는 프라이빗 엔드포인트를 사용하기로 결정합니다.

    Screenshot of the Azure portal that shows networking information for creating a storage account.

    1. 스토리지 계정에 대해 프라이빗 엔드포인트 추가를 선택한 다음, 프라이빗 엔드포인트 생성을 위한 정보를 입력합니다.

      Screenshot of the Azure portal that shows options for private endpoint definition.

    2. 필요한 경우 <storage_account_name>.file.core.windows.net에 대한Windows DNS에 DNS A 레코드를 추가합니다. (새 DNS 영역에 있어야 할 수도 있습니다.) DNS 관리자와 이 항목에 대해 설명합니다. 새 영역은 조직 외부에서 업데이트하면 안 됩니다.

      Screenshot of DNS Manager that shows private endpoint DNS definition.

  4. 적절한 크기로 sapmnt 파일 공유를 만듭니다. 제안된 크기는 650 IOPS, 75MB/초 송신 및 50MB/초 수신을 제공하는 256GB입니다.

    Screenshot of the Azure portal that shows SMB share definition.

  5. Azure Files GitHub 콘텐츠를 다운로드하고 스크립트를 실행합니다.

    이 스크립트는 Active Directory에 컴퓨터 계정 또는 서비스 계정을 만듭니다. 요구 사항은 다음과 같습니다.

    • 스크립트를 실행하는 사용자는 SAP 서버가 포함된 Active Directory 도메인에서 개체를 만들 수 있는 권한이 있어야 합니다. 일반적으로 조직에서는 도메인 관리자 계정(예: SAPCONT_ADMIN@SAPCONTOSO.local)을 사용합니다.
    • 사용자가 스크립트를 실행하기 전에 이 Active Directory 도메인 사용자 계정이 Microsoft Entra ID와 동기화되었는지 확인합니다. 이에 대한 예제는 Azure Portal을 열고 Microsoft Entra 사용자로 이동하여 사용자 SAPCONT_ADMIN@SAPCONTOSO.local이 존재하는지 확인하고 Microsoft Entra 사용자 계정을 확인하는 것입니다.
    • 파일 공유를 보유하는 스토리지 계정이 포함된 리소스 그룹에 대한 이 Microsoft Entra 사용자 계정에 기여자 RBAC(역할 기반 액세스 제어) 역할을 부여합니다. 이 예제에서 SAPCONT_ADMIN@SAPCONTOSO.onmicrosoft.com 사용자에게는 해당 리소스 그룹에 대한 기여자 역할이 부여됩니다.
    • 사용자는 앞에서 지정한 권한이 있는 Active Directory 도메인 사용자 계정을 사용하여 Windows Server 인스턴스에 로그온한 동안 스크립트를 실행해야 합니다.

    이 예제 시나리오에서 Active Directory 관리자는 Windows Server 인스턴스에 SAPCONT_ADMIN@SAPCONTOSO.local로 로그온합니다. 관리자가 Connect-AzAccount PowerShell 명령을 사용하는 경우 관리자는 SAPCONT_ADMIN@SAPCONTOSO.onmicrosoft.com 사용자로 연결합니다. 이상적으로는 Active Directory 관리자와 Azure 관리자가 이 작업을 함께 수행해야 합니다.

    Screenshot of the PowerShell script that creates a local Active Directory account.

    Screenshot of the Azure portal after successful PowerShell script execution.

    Important

    사용자가 Connect-AzAccount PowerShell 스크립트 명령을 실행하는 경우, Windows Server 인스턴스에 로그온하는 데 사용된 Active Directory 도메인 사용자 계정에 해당하고 매핑되는 Microsoft Entra 사용자 계정을 입력하는 것이 좋습니다.

    스크립트가 실행되면 스토리지>파일 공유로 이동하여 Active Directory: 구성됨이 나타나는지 확인합니다.

  6. SAP 사용자에게 <sid>adm, SAPService<SID>SAP_<SAPSID>_GlobalAdmin 그룹을 할당하고 Azure Files 프리미엄 SMB 파일 공유로 이동합니다. Azure Portal에서 스토리지 파일 데이터 SMB 공유 권한 상승 기여자 역할을 선택합니다.

  7. 설치 후 sapmnt 파일 공유에서 ACL을 확인합니다. 그런 다음, DOMAIN\CLUSTER_NAME$ 계정, DOMAIN\<sid>adm 계정, DOMAIN\SAPService<SID> 계정 및 SAP_<SID>_GlobalAdmin 그룹을 추가합니다. 이러한 계정 및 그룹은 sapmnt 디렉터리를 완전히 제어해야 합니다.

    Important

    SAPinst 설치 전에 이 단계를 완료합니다. SAPInst가 파일 공유에 디렉터리와 파일을 만든 후에는 ACL을 변경하는 것이 어렵거나 불가능합니다.

    다음 스크린샷은 컴퓨터 계정을 추가하는 방법을 보여 줍니다.

    Screenshot of Windows Server that shows adding the cluster name to the local Active Directory instance.

    개체 유형에서 컴퓨터를 선택하면 DOMAIN\CLUSTER_NAME$ 계정을 찾을 수 있습니다.

    Screenshot of selecting an object type for an Active Directory computer account.

    Screenshot of options for the computer object type.

    Screenshot of computer account access properties.

  8. 필요한 경우 Azure Files에 대해 만든 컴퓨터 계정을 계정이 만료되지 않은 Active Directory 컨테이너로 이동합니다. 컴퓨터 계정의 이름은 스토리지 계정의 짧은 이름이 됩니다.

    Important

    SMB 공유에 대한 Windows ACL을 초기화하려면 공유를 드라이브 문자에 한 번 탑재합니다.

    스토리지 키는 암호이며 사용자는 Azure\<SMB 공유 이름>입니다.

    Windows screenshot of the one-time mount of the SMB share.

SAP Basis 작업 완료

SAP Basis 작업자는 다음 작업을 완료해야 합니다.

  1. ASCS/ERS 노드에 Windows 클러스터 설치 및 Cloud 감시 추가
  2. 첫 번째 클러스터 노드 설치는 Azure Files SMB 스토리지 계정 이름을 요청합니다. FQDN <storage_account_name>.file.core.windows.net을 입력합니다. SAPinst가 13자를 초과하여 입력할 수 없으면 SWPM 버전이 너무 오래된 것입니다.
  3. ASCS/SCS 인스턴스의 SAP 프로필을 수정합니다.
  4. WSFC(Windows Server 장애 조치(failover) 클러스터)에서 SAP <SID> 역할에 대한 프로브 포트를 업데이트합니다.
  5. 두 번째 ASCS/ERS 노드에 대한 SWPM 설치를 계속합니다. SWPM에는 프로필 디렉터리의 경로만 필요합니다. 프로필 디렉터리에 대한 전체 UNC 경로를 입력합니다.
  6. 데이터베이스와 PAS(기본 애플리케이션 서버) 및 AAS(추가 애플리케이션 서버) 설치를 위한 UNC 프로필 경로를 입력합니다.
  7. PAS 설치 시 전송 호스트 이름을 묻습니다. 전송 디렉터리에 대한 별도의 스토리지 계정 이름의 FQDN을 제공합니다.
  8. SID 및 전송 디렉터리에서 ACL을 확인합니다.

재해 복구 설정

Azure Files 프리미엄 SMB는 재해 복구 시나리오 및 지역 간 복제 시나리오를 지원합니다. Azure Files 프리미엄 SMB 디렉터리의 모든 데이터는 DR 지역의 스토리지 계정에 지속적으로 동기화될 수 있습니다. 자세한 내용은 AzCopy 및 파일 스토리지를 사용하여 데이터 전송에서 파일 동기화 절차를 참조하세요.

DR 이벤트 및 ASCS 인스턴스를 DR 지역으로 장애 조치(failover)한 후 DR 지역의 Azure Files SMB를 가리키도록 SAPGLOBALHOST 프로필 매개 변수를 변경합니다. DR 스토리지 계정에 대해 동일한 준비 단계를 수행하여 스토리지 계정을 Active Directory에 가입하고 SAP 사용자 및 그룹에 대한 RBAC 역할을 할당합니다.

문제 해결

이전에 다운로드한 PowerShell 스크립트에는 구성 유효성 검사를 위한 기본 검사를 수행하는 디버그 스크립트가 포함되어 있습니다.

Debug-AzStorageAccountAuth -StorageAccountName $StorageAccountName -ResourceGroupName $ResourceGroupName -Verbose

다음은 디버그 스크립트 출력의 PowerShell 스크린샷입니다.

Screenshot of the PowerShell script to validate configuration.

다음 스크린샷은 성공적인 도메인 가입의 유효성을 검사하기 위한 기술 정보를 보여 줍니다.

Screenshot of the PowerShell script to retrieve technical info.

선택적 구성

다음 다이어그램은 총 VM 수를 줄이기 위해 Windows Server 장애 조치(failover) 클러스터를 실행하는 Azure VM의 여러 SAP 인스턴스를 보여 줍니다.

이 구성은 SAP ASCS/SCS 클러스터의 로컬 SAP 애플리케이션 서버 또는 Microsoft SQL Server Always On 노드의 SAP ASCS/SCS 클러스터 역할일 수 있습니다.

Important

SQL Server Always On 노드에 로컬 SAP 애플리케이션 서버를 설치할 수는 없습니다.

SAP ASCS/SCS와 Microsoft SQL Server 데이터베이스는 모두 SPOF(단일 실패 지점)입니다. Azure Files SMB를 사용하면 Windows 환경에서 이러한 SPOF를 보호하는 데 도움이 됩니다.

SAP ASCS/SCS의 리소스 사용량은 상당히 작지만 SQL Server 또는 SAP 애플리케이션 서버에 대해 메모리 구성을 2GB 줄이는 것이 좋습니다.

Azure Files SMB를 사용하는 WSFC 노드의 SAP 애플리케이션 서버

다음 다이어그램은 로컬에 설치된 SAP 애플리케이션 서버를 보여 줍니다.

Diagram of a high-availability setup with additional application servers.

참고 항목

이 다이어그램은 추가 로컬 디스크의 사용을 보여 줍니다. 이 설정은 OS 드라이브(C 드라이브)에 애플리케이션 소프트웨어를 설치하지 않을 고객의 경우 선택 사항입니다.

Azure Files SMB를 사용하는 SQL Server Always On 노드의 SAP ASCS/SCS

다음 다이어그램은 로컬 SQL Server가 설정된 Azure Files SMB를 보여 줍니다.

Important

SQL Server 볼륨에 Azure Files SMB를 사용하는 것은 지원되지 않습니다.

Diagram of SAP ASCS/SCS on SQL Server Always On nodes using Azure.

참고 항목

이 다이어그램은 추가 로컬 디스크의 사용을 보여 줍니다. 이 설정은 OS 드라이브(C 드라이브)에 애플리케이션 소프트웨어를 설치하지 않을 고객의 경우 선택 사항입니다.