다음을 통해 공유


Azure Arc 지원 SQL Managed Instance에 대한 스토리지 분야

스토리지는 Azure Arc 지원 SQL Managed Instance(Arc 지원 SQL Managed Instance) 배포에서 중요한 구성 요소입니다. 이 문서에 설명된 스토리지 관련 개념이 Kubernetes 클러스터의 작동에 미치는 영향을 이해하는 것은 스토리지 디자인 선택 및 관리의 중요한 측면입니다.

Kubernetes는 기본 스토리지와 직접 상호 작용하는 대신 스토리지 클래스를 통해 다양한 스토리지 기술에 추상화 계층을 제공합니다. 클라우드 공급자, 하드웨어 공급업체 및 기타 Kubernetes 관리형 플랫폼은 특정 환경 및 구현 시나리오에 적합한 다양한 StorageClass 옵션을 제공합니다.

Arc 지원 SQL Managed Instance는 스토리지 클래스 사용을 제한하거나 적용하지 않으므로 올바른 스토리지 디자인 및 구성을 선택하는 것이 중요합니다. Arc 지원 SQL Managed Instance에 대한 스토리지 디자인은 운영 체제 미설치 또는 가상 머신에서 실행할 때 SQL Server용 백업 스토리지 디바이스를 선택하는 것만큼 중요합니다. 이러한 선택은 궁극적으로 RPO, RTO, 용량 및 성능과 관련된 요구 사항을 나타냅니다.

Arc 지원 SQL Managed Instance 배포의 경우 스토리지 기능 및 구성을 효과적으로 계획하는 것이 성공적으로 작동하는 데 중요합니다. 고려해야 할 스토리지 관련 요소에 대해 알아보고 Arc 지원 SQL Managed Instance 구성에 대한 권장 사항을 읽어보세요.

아키텍처

다음 아키텍처 다이어그램은 Azure Arc 지원 데이터 서비스 구성 요소의 논리적 디자인을 보여 줍니다. 이러한 구성 요소에는 필수 Azure Arc 데이터 컨트롤러와 참조용으로 프로비전된 데이터베이스를 포함하는 하나 이상의 Arc 지원 SQL Managed Instance가 포함됩니다. Azure Arc 데이터 컨트롤러와 Arc 지원 SQL Managed Instance는 모두 Kubernetes 배포 및 스토리지 인프라 공급자에 따라 달라지는 스토리지 디바이스를 지원하는 옵션을 제공합니다.

Azure Arc 지원 데이터 서비스 논리 아키텍처 다이어그램을 보여 주는 스크린샷.

디자인 고려 사항

다음은 스토리지 디자인 및 구성에 대한 고려 사항입니다.

저장소 클래스

Azure Arc 지원 데이터 서비스 구성 요소에 적합한 Kubernetes StorageClass 및 구성을 선택하는 것은 데이터 스토리지 성능, 복원력 및 용량에 중요합니다.

StorageClass, PV(PersistentVolume)PVC(PersistentVolumeClaim)는 시스템이 Azure Arc 지원 데이터 서비스 구성 요소를 프로비전할 때 Kubernetes 클러스터에서 만드는 Kubernetes 리소스 개체입니다.

StorageClass 옵션은 클라우드 공급자, 하드웨어 공급업체가 제공하는 제품 및 Kubernetes 관리자가 구성한 내용에 따라 달라집니다. PersistentVolumeClaim은 StorageClass 및 요청된 크기에 대해 PersistentVolume을 만들도록 요청합니다. 다음 다이어그램은 이러한 Kubernetes 리소스와 스토리지 클래스의 잠재적 옵션 간의 관계에 대한 참조입니다.

스토리지 클래스 옵션이 있는 Kubernetes 스토리지 개념을 보여 주는 스크린샷.

PV 및 PVC Kubernetes 리소스는 각각 Azure Arc 데이터 컨트롤러 및 Arc 지원 SQL Managed Instance를 프로비전할 때 구성됩니다.

선택할 수 있는 두 가지 스토리지 유형이 있습니다.

  • 로컬: Pod가 실행 중인 Kubernetes 노드에 연결된 로컬 스토리지 디바이스에 탑재된 볼륨입니다. 이 유형의 스토리지는 일반적으로 원격/공유 스토리지에 비해 IOPS(초당 입출력 작업 수) 및 처리량과 함께 짧은 대기 시간을 제공합니다.
  • 원격/공유 스토리지: 네트워크 연결 스토리지 디바이스는 기본 제공 중복성이 있는 경향이 있습니다. 일반적인 스토리지 옵션은 NAS 및 SAN 디바이스입니다.

StorageClass를 선택할 때 다음 표준을 고려합니다. 이러한 기준은 빌드할 모든 데이터베이스 서버에 대해서도 적용됩니다.

  • 성능: 스토리지 디바이스 입력/출력(I/O) 처리량 및 IOPS는 데이터베이스 요구 사항을 충족해야 합니다.
  • 읽기/쓰기 비율: 워크로드를 이해하면 적절한 비용으로 요구 사항을 가장 잘 충족하도록 지원 하드웨어를 선택하는 데 도움이 될 수 있습니다. 쓰기 작업이 많은 워크로드는 RAID 0 구성을 활용할 수 있지만 자주 액세스하지 않는 데이터는 SAN 디바이스 스토리지를 사용하여 가장 잘 처리될 수 있습니다.
  • 데이터베이스 격리 및 공동 위치: Arc 지원 SQL Managed Instance 인스턴스의 모든 데이터베이스는 PV를 공유하므로 데이터베이스를 Arc 지원 SQL Managed Instance 인스턴스로 이동하고 스토리지 리소스 경합을 방지하도록 선택할 수 있습니다.
  • 용량: 정의된 스토리지 크기는 PVC 크기를 조정할 필요가 없도록 데이터 컨트롤러 및 데이터베이스 인스턴스의 향후 용량을 충족해야 합니다. 선택한 StorageClass에 있을 수 있는 스토리지 제한 사항을 고려합니다.
  • 액세스 모드: 스토리지 클래스 공급자에는 서로 다른 액세스 모드가 있으므로 Pod에서 스토리지를 탑재하고 읽고 쓸 수 있는 방법에 대한 다양한 기능을 지원합니다. SQL Backup 볼륨에는 RWX(여러 번 읽기 쓰기)가 필요합니다.
  • 중복: 하드웨어 디스크 오류가 발생하는 경우 원활한 장애 조치(failover)를 지원하기 위해 RAID(물리적 스토리지 계층)에서 데이터를 복제합니다. 이는 AG(가용성 그룹)에서 수행하는 데이터베이스 수준 중복성과는 별개입니다.

Azure Arc 데이터 컨트롤러와 Arc 지원 SQL Managed Instance Arc 데이터 서비스는 모두 데이터베이스 데이터에 대해 서로 다른 스토리지 클래스를 구성하기 위한 세분화된 옵션을 제공합니다. 또한 이러한 데이터 서비스는 필요에 맞게 스토리지 클래스를 유연하게 선택할 수 있는 로그를 제공합니다.

데이터 컨트롤러

Arc 지원 SQL Managed Instance의 인스턴스를 만들기 위한 필수 조건으로 Kubernetes 클러스터에 단일 Azure Arc 데이터 컨트롤러가 필요합니다. 클러스터에서 실행되는 둘 이상의 데이터 컨트롤러는 지원되지 않습니다.

Azure Arc 데이터 컨트롤러에는 Kubernetes 클러스터에서 실행되는 네 가지 상태 저장 Pod(컨트롤러 SQL, 컨트롤러 API, 로그 DB 및 메트릭 DB)가 있습니다. 각 Pod에는 데이터 및 로그 볼륨에 대해 두 개의 영구 볼륨이 필요합니다. 데이터 컨트롤러 구성 요소 자체가 기본적으로 데이터 내구성을 제공하지 않으므로 모든 데이터 컨트롤러 구성 요소에는 데이터 내구성을 보장하기 위해 원격 StorageClass가 필요합니다.

Azure Arc 데이터 컨트롤러에 필요한 컴퓨팅 및 메모리 리소스를 고려해야 합니다. 다음 다이어그램은 데이터 컨트롤러 스토리지, PV 및 PVC Kubernetes 리소스를 나타냅니다.

Azure Arc 데이터 컨트롤러 스토리지를 보여 주는 스크린샷.

데이터 컨트롤러 기본 볼륨 크기 조정이 권장되는 최솟값입니다. 사용하는 스토리지는 데이터베이스 수, 데이터베이스 사용 방법 및 생성된 로그 수에 따라 달라집니다. Azure Arc 데이터 컨트롤러 StorageClass는 짧은 대기 시간에 민감하지 않습니다. 그럼에도 불구하고 클러스터에 Arc 지원 SQL Managed Instance 배포가 많은 경우 사용자는 더 빠른 성능의 스토리지를 통해 Grafana 및 Kibana 인터페이스의 이점을 볼 수 있습니다. Grafana 및 Kibana는 데이터 컨트롤러와 함께 배포되고 Arc 지원 SQL Managed Instance에 대한 메트릭 및 로그를 보기 위해 대시보드로 프로비전된 오픈 소스 모니터링 시각화 도구입니다.

데이터 컨트롤러 프로비저닝

Azure Arc 데이터 컨트롤러를 프로비전할 때 로그와 데이터 모두에 대해 StorageClass 및 스토리지 용량을 구성합니다. 그런 다음, 로그와 데이터 모두에 대한 스토리지를 구성하면 데이터 컨트롤러 Pod에 대해 만든 8개의 모든 PV에 적용됩니다. 프로비저닝하는 동안 용량, 로그 보존 및 Kubernetes 서비스 유형과 같은 보안과 관련된 항목과 같은 기본 매개 변수를 재정의하는 사용자 지정 배포 템플릿을 지정할 수 있습니다. 프로비전이 완료되면 PV 및 PVC Kubernetes 개체가 만들어집니다.

데이터 컨트롤러에 대한 StorageClass는 프로비전된 후에는 변경할 수 없다는 것을 이해하는 것이 중요합니다. StorageClass를 지정하지 않으면 데이터 컨트롤러는 Kubernetes 인스턴스 또는 공급자에 따라 달라질 수 있는 Kubernetes 기본 StorageClass를 사용합니다.

Azure Arc 데이터 컨트롤러를 제거하면 연결된 모든 영구 볼륨이 삭제됩니다. 데이터 컨트롤러를 제거하기 전에 조직에서 저장해야 하는 Azure Arc 지원 데이터 서비스 컨트롤 플레인 수준 로그를 보관합니다.

Azure Arc 지원 SQL Managed Instance

Arc 지원 SQL Managed Instance는 비즈니스 요구 사항에 따라 범용 및 중요 비즈니스용 두 가지 계층을 제공합니다. 두 계층 모두 구성할 수 있는 최소 및 최대 Arc 지원 SQL Managed Instance 제한을 검토하고 배포된 Kubernetes 클러스터에 적절한 컴퓨팅 및 메모리 용량이 있는지 확인하는 것이 중요합니다.

지정된 데이터베이스 인스턴스에 여러 데이터베이스가 있는 시나리오에서 모든 데이터베이스는 Arc 지원 SQL Managed Instance에 대해 지정된 동일한 StorageClass, PVC 및 PV를 사용합니다. 단일 Kubernetes 클러스터에 Arc 지원 SQL Managed Instance의 여러 인스턴스를 가질 수 있습니다. 이 구성은 독립적인 영구 볼륨을 허용하며 Arc 지원 SQL Managed Instance의 다른 인스턴스에 데이터베이스를 배포하여 다른 데이터베이스와 IO 경합을 분리하는 데 도움이 될 수 있습니다.

다음 표에서는 각 Arc 지원 SQL Managed Instance Pod에서 사용하는 다양한 영구 볼륨과 해당 용도에 대해 설명합니다.

영구 볼륨 Description 스토리지 클래스 요구 사항
데이터 SQL Database 데이터 파일(.mdf 파일) 계층에 따라 다름
DataLogs SQL Database 로그 파일(.ldf 파일) 계층에 따라 다름
로그 SQL 에이전트, 오류 로그, 추적 파일, 상태 로그 계층에 따라 다름
Backup 전체, Diff, 트랜잭션 로그를 포함한 SQL Server 백업 파일 원격, ReadWriteMany 액세스 모드

범용 서비스 계층

Arc 지원 SQL Managed Instance의 범용 계층은 데이터베이스 인스턴스에 대한 원격 스토리지를 사용해야 하므로 Pod가 실패할 경우 새로 만든 Pod에서 데이터를 계속 사용할 수 있습니다. 장애 조치(failover)는 Kubernetes Pod 및 노드 오케스트레이션에 의해 관리됩니다. 이 구성은 SQL 가용성 그룹 및 여러 Arc 지원 SQL Managed Instance 복제본을 사용하는 중요 비즈니스용에 비해 덜 복잡합니다. 범용 계층의 단일 Pod 구성은 다른 복제본의 스토리지 용량을 복제할 필요가 없으므로 스토리지 양을 최소화할 수 있음을 의미합니다.

Arc 지원 SQL Managed Instance 범용 스토리지를 보여 주는 스크린샷.

중요 비즈니스 서비스 계층

중요 비즈니스용 계층은 데이터 및 로그 볼륨을 로컬 또는 원격 스토리지 클래스에 저장할 수 있는 여러 Pod 모델을 사용합니다. 스토리지 디바이스가 노드에 직접 연결되므로 로컬 스토리지 클래스는 일반적으로 대기 시간 및 처리량 측면에서 더 나은 성능을 발휘합니다. 원격 스토리지는 일반적으로 기본 제공 중복성을 제공하지만 로컬 스토리지에 비해 대기 시간과 처리량이 낮은 경우가 많습니다. 더 많은 중요 비즈니스용 데이터베이스 복제본을 사용하려면 데이터, 로그DataLogs에 대한 추가 영구 볼륨이 필요합니다. 필요한 총 스토리지 용량이 훨씬 큽니다.

다음 다이어그램에서는 두 개의 복제본이 있는 Arc 지원 SQL Managed Instance에 대한 중요 비즈니스용 스토리지 구성을 보여 줍니다.

Arc 지원 SQL Managed Instance 중요 비즈니스용 스토리지를 보여 주는 스크린샷.

중요 비즈니스용을 사용하면 두 개 또는 세 개의 보조 복제본을 구성할 수 있습니다. 장애 조치(failover)는 SQL Always On 가용성 그룹에 의해 관리되며, 범용 계층보다 업그레이드 및 실패에 대한 가동 중지 시간을 줄입니다.

동기 커밋 모드 데이터 복제를 사용하여 여러 복제본을 구성하면 실패한 Pod, 노드 또는 스토리지 하드웨어와 같은 오류로부터 더 잘 보호할 수 있습니다. 복제본에 여러 개의 데이터 복사본이 있기 때문에 오류로부터 보호합니다. 클라이언트가 보조 수신기 엔드포인트를 사용할 때 연결할 수 있는 읽기 확장 인스턴스로 보조 복제본을 구성하는 것이 좋습니다.

Azure Arc SQL Managed Instance 프로비저닝 및 제거

Arc 지원 SQL Managed Instance를 프로비전할 때 필요한 Arc 지원 SQL Managed Instance 영구 볼륨 각각에 서로 다른 스토리지 클래스를 유연하게 할당할 수 있습니다. DataDataLogs에 대한 고성능 스토리지 옵션을 원할 수 있지만 로그백업 볼륨은 비용 효율적인 StorageClass 옵션을 사용하여 비용을 절감할 수 있습니다. 로컬 스토리지를 사용하는 시나리오에서는 디스크 I/O의 경합을 방지하기 위해 볼륨이 서로 다른 노드 및 물리적 스토리지 디바이스에 배치할 수 있는지 확인합니다. DataDataLogs를 동일한 실제 드라이브에 배치하면 해당 스토리지 드라이브에 대한 경합이 발생하여 성능이 저하될 수 있습니다. 대신 DataDataLogs를 별도의 스토리지 드라이브에 배치하여 데이터베이스 데이터와 로그 모두에 대한 I/O를 병렬화하는 것을 고려합니다.

Arc 지원 SQL Managed Instance를 삭제해도 연결된 PV 및 PVC는 제거되지 않습니다. 이 동작을 통해 실수로 삭제한 경우 데이터베이스 파일에 액세스할 수 있습니다.

디자인 권장 사항

다음은 스토리지 디자인 및 구성에 대한 권장 사항입니다.

프로덕션 워크로드에 대한 스토리지 클래스

특정 퍼블릭 클라우드의 경우 프로덕션 워크로드에 권장되는 스토리지 클래스는 다음 표에 나와 있습니다.

공급자 유효성 검사 및 권장 스토리지
AKS(Azure Kubernetes Service) Azure Managed Disks(프리미엄 계층)
Amazon EKS(Elastic Kubernetes Service) EBS CSI 스토리지 드라이버
Google(GKE) GCE 영구 디스크

온-프레미스 또는 다중 클라우드 시나리오에서 프로덕션 StorageClass를 선택할 때 의도한 스토리지 용량, IOPS, 중복성 및 처리량 요구 사항을 충족할 수 있는지 확인합니다. 다음 섹션에서는 이러한 시나리오에 대한 추가 권장 사항을 제공합니다.

데이터 컨트롤러 디자인

원격 공유 StorageClass를 선택하여 데이터 내구성을 보장합니다. Pod 또는 노드가 제거된 경우 Pod를 다시 가져와서 영구 볼륨에 다시 연결할 수 있습니다. 밑줄이 그어진 StorageClass는 중복성과 고가용성을 제공해야 합니다.

Arc 지원 데이터 서비스 데이터 컨트롤러를 만들 때 사용자 지정 배포 템플릿을 사용하는 것이 좋습니다. 사용자 지정 템플릿을 사용하면 스토리지 클래스, 데이터 및 로그의 스토리지 크기, 보안 및 Kubernetes 서비스 유형을 미세 조정할 수 있습니다. 환경 및 엔터프라이즈 요구 사항에 맞게 사용자 지정할 수 있습니다. Azure Arc 데이터 컨트롤러에는 총 8개의 영구 볼륨이 필요합니다. 기본 최소 구성은 데이터의 경우 15Gi, PV의 로그에는 10Gi를 허용합니다. 최소 권장 사항을 충족할 뿐만 아니라 클러스터에서 실행되는 많은 Arc 지원 SQL Managed Instance 구현을 통해 더 높은 성장을 지원하는 용량을 구성합니다. 이 구성은 향후 PVC 크기를 조정할 필요가 없습니다.

클러스터에 많은 데이터베이스와 Arc 지원 SQL Managed Instance 배포가 있는 경우 대기 시간이 짧은 StorageClass를 선택하는 것이 좋습니다. 대기 시간이 짧을수록 Grafana 및 Kibana 인터페이스의 사용자 환경이 향상됩니다.

Azure Arc 지원 SQL Managed Instance 마이그레이션

Arc 지원 SQL Managed Instance의 마이그레이션 및 배포와 관련된 모든 신규 및 기존 데이터베이스를 계획하고 설명하는 것이 좋습니다. 계획을 세우면 나중에 인스턴스 간에 데이터베이스를 이동할 필요가 없습니다.

Kubernetes 클러스터 조직에 따라 환경(비 prod, prod), 지역 및 기타 비즈니스 요소를 구분해야 하는 필요성에 따라 Arc 지원 SQL Managed Instance 배포를 다른 Kubernetes 클러스터에 프로비전합니다. 추가 권장 사항은 리소스 조직 디자인 영역을 검토하세요. 클러스터에서 여러 데이터베이스 인스턴스를 구성하는 경우 I/O 경합을 방지하기 위해 사용 중인 데이터베이스를 자체 인스턴스로 분리해야 합니다.

노드 레이블을 사용하여 데이터베이스 인스턴스를 별도의 노드에 배치하여 전체 I/O 트래픽을 여러 노드에 분산하도록 합니다. 레이블을 구성하려면 Kubernetes 노드 선호도 및 선호도 방지 레이블과 함께 Kubernetes 노드 레이블을 참조하세요. 가상화된 환경에서 작동하는 경우 I/O가 실제 호스트 수준에서 적절하게 분산되어 있는지 확인합니다.

데이터, 로그, DataLogsBackup에 대한 적절한 스토리지 크기를 포함하도록 Arc 지원 SQL Managed Instance의 용량을 계획합니다. Arc 지원 SQL Managed Instance의 인스턴스에 상주할 모든 데이터베이스의 현재 요구 사항과 예상되는 증가를 모두 수용하도록 용량을 계획할 때 향후 PVC의 크기를 조정할 필요가 없습니다. 병렬 I/O 작업이 발생할 수 있도록 DataDataLogs에 대해 별도의 물리적 드라이브를 선택합니다. 병렬 I/O 작업은 공유 드라이브를 사용할 때 발생할 수 있는 경합을 방지하여 성능이 향상됩니다.

Arc 지원 SQL Managed Instance의 중요 비즈니스용 또는 범용 계층의 배포를 지시할 수 있는 몇 가지 요인이 있지만 로컬 스토리지를 사용하는 중요 비즈니스용 가장 짧은 대기 시간과 가장 높은 가용성을 제공합니다. 특정 시점 복원, 고가용성 및 재해 복구와 관련된 권장 사항은 Arc 지원 SQL Managed Instance 비즈니스 연속성 디자인 영역을 검토하세요. 또한 Arc 지원 SQL Managed Instance 비용 거버넌스 디자인 영역을 검토하여 계층 간의 비용 영향에 대해 자세히 알아봅니다.

다음 하위 섹션에서는 각 계층에 대한 보다 구체적인 권장 사항을 제공합니다.

범용 서비스 계층 권장 사항

최적의 성능을 위해 데이터DataLogs 영구 볼륨에 대해 대기 시간이 짧은 원격 StorageClass를 선택하는 것이 좋습니다. 백업로그 영구 볼륨에 대해 인터넷 제공 StorageClass를 사용하도록 구성된 온-프레미스 클러스터와 같이 네트워크 파티션을 도입하는 StorageClass를 사용하지 마세요.

중요 비즈니스용 서비스 계층 권장 사항

선택한 각 모드에 대해 서로 다른 구성이 필요한 가용성 모드 차이점을 검토하는 것이 좋습니다.

가능한 가장 낮은 대기 시간 요구 사항 시나리오는 Kubernetes 인프라에 대한 옵션인 경우 로컬 스토리지를 선택합니다. 로컬 스토리지 볼륨은 디스크 I/O에서 경합을 방지하고 성능을 최대화하려면 서로 다른 기본 스토리지 디바이스에 배치되어야 합니다. 스토리지 디바이스에는 운영 체제 파티션 호스팅과 같은 여러 함수가 없어야 합니다.

읽기 집약적인 워크로드 및 고가용성을 위해 여러 복제본을 구성하고 보조 복제본을 읽기 Scale-Out 인스턴스로 사용하도록 애플리케이션 또는 클라이언트를 구성합니다. 보조 복제본은 기본적으로 읽을 수 없습니다. 설정을 구성할 수 있습니다.

모니터링

Azure Arc 데이터 컨트롤러 및 클러스터에 있는 Arc 지원 SQL Managed Instance의 모든 인스턴스를 포함하여 Arc 지원 데이터 서비스에서 만든 모든 PVC를 모니터링하는 것이 좋습니다. PVC가 용량에 근접할 때 알림을 표시하도록 경고를 설정합니다. 알림을 통해 용량에 도달하기 전에 PVC의 크기를 조정할 수 있습니다. 직접 연결된 클러스터의 경우 PVC 모니터링 및 경고는 Azure Monitor 및 Container Insights를 통해 수행됩니다. 간접 연결 클러스터를 사용하는 경우 Grafana 및 Kibana에서 모니터링 및 경고를 수행합니다. Grafana 설치에는 Arc 지원 SQL Managed Instance 메트릭 및 Kubernetes 리소스에 대한 대시보드가 포함되어 있습니다.

Arc 지원 SQL Managed Instance 모니터링에 대한 추가 권장 사항은 Arc 지원 SQL Managed Instance 거버넌스 분야를 검토하세요.

다음 단계

하이브리드 및 다중 클라우드 경험에 대한 자세한 내용은 다음 문서를 참조하세요.