Virtual Machine Storage Configuration
스토리지 구성은 성공적인 데이터베이스 구축에 매우 중요하며, 특히 단일 ESXi 호스트 또는 데이터스토어에 여러 SQL Server VM을 통합하는 가상 환경에서는 더욱 그렇습니다. 스토리지 서브시스템은 충분한 I/O 처리량과 ESXi 호스트에서 실행 중인 모든 VM의 누적 요구 사항을 수용할 수 있는 스토리지 용량을 제공해야 합니다. 또한 물리적 배포에서 가상 배포로 이동할 때는 사용 중인 공유 스토리지 인프라 측면에서 변경 사항을 고려해야 합니다.
SQL Server 스토리지 구성에 대한 모범 사례에 대한 자세한 내용은 Microsoft의 SQL Server 데이터베이스 엔진 및 Azure SQL 데이터베이스용 성능 센터를 참조하시기 바랍니다. 이 가이드의 모범 사례와 함께 이러한 권장 사항을 따르세요. 성능 문제 10건 중 8건은 스토리지 하위 시스템 구성으로 인해 발생하므로 이 섹션에 특히 주의하십시오.
vSphere 스토리지 옵션
vSphere는 스토리지 구성을 위한 몇 가지 옵션을 제공합니다. 가장 널리 사용되는 옵션은 블록 스토리지 시스템의 VMFS 포맷 데이터스토어이지만 이것이 유일한 옵션은 아닙니다. 오늘날 스토리지 관리자는 스토리지 관리 수준을 한 단계 끌어올려 VM이 스토리지 시스템의 기본 개체가 되는 vSphere Virtual Volumes™와 같은 새로운 기술을 활용할 수 있습니다. 다른 옵션으로는 VMware vSAN™과 같은 하이퍼 컨버지드 솔루션 및/또는 EMC의 XtremIO와 같은 올플래시 어레이가 있습니다. 이 섹션에서는 vSphere에서 실행되는 가상화된 SQL Server 배포에 사용할 수 있는 다양한 스토리지 옵션에 대해 설명합니다.
공유 스토리지 하위 시스템의 VMFS
vSphere Virtual Machine File System (VMFS)은 오늘날에도 VMware 고객 사이에서 가장 일반적으로 사용되는 옵션입니다. 다음 그림에서 볼 수 있듯이 스토리지 어레이는 최하위 계층에 있으며, vSphere에 논리적 디스크(스토리지 어레이 볼륨 또는 LUN)로 표시되는 물리적 디스크로 구성됩니다. 이는 물리적 배포와 동일합니다. 그런 다음 스토리지 어레이 LUN은 ESXi 하이퍼바이저에 의해 VMFS 볼륨으로 포맷되며 이 볼륨에 가상 디스크가 상주합니다. 그런 다음 이러한 가상 디스크가 게스트 OS에 제공됩니다.
VMware Virtual Machine File System(VMFS)
VMFS는 VM에 최적화된 스토리지 가상화를 제공하는 클러스터된 파일 시스템입니다. 각 VM은 작은 파일 세트로 캡슐화되며 VMFS는 물리적 SCSI 기반 디스크 및 파티션에서 이러한 파일을 위한 기본 스토리지 시스템입니다. VMware는 VMFS용 블록 스토리지(파이버 채널 및 iSCSI 프로토콜)를 지원합니다.
사용 중인 환경의 ESXi 호스트에서 지원되는 가장 높은 버전의 VMFS를 사용하는 것이 좋습니다. VMFS5와 최신 버전의 VMFS(6) 간의 차이점에 대한 포괄적인 목록은 VMFS 데이터스토어 이해를 참조하십시오.
데이터스토어에 대한 액세스를 공유하는 모든 ESXi 호스트가 원하는 vSphere 버전으로 업그레이드된 후에만 VMFS 데이터스토어를 업그레이드하는 것을 고려하십시오.
Network File System(NFS)[55]
ESXi에 내장된 NFS 클라이언트는 TCP/IP를 통해 NFS(네트워크 파일 시스템) 프로토콜을 사용하여 NAS 서버에 있는 지정된 NFS 볼륨에 액세스합니다. ESXi 호스트는 볼륨을 마운트하여 스토리지 요구 사항에 사용할 수 있습니다. 블록 스토리지와의 주요 차이점은 NAS/NFS는 파일 수준 액세스를 제공하고, NFS 데이터스토어에는 VMFS 포맷이 필요하지 않다는 점입니다.
VMware vSphere는 NFS 3과 NFS 4.1을 모두 지원하지만, NFS 4.1을 사용할 때 현재 지원되지 않는 일부 vSphere 기능 및 작업(예: SIOC, SDRS, SAN 또는 vVols를 사용한 SRM 등)이 있다는 점에 유의해야 합니다. 각 버전의 이점 및 차이점에 대한 포괄적인 목록은 네트워크 파일 시스템 데이터스토어 이해를 참조하십시오.
이제 vSphere 8.0에는 NFS 마운트 요청의 유효성을 검사하고 실패 시 NFS 마운트를 다시 시도할 수 있는 기능이 있습니다.
NFS 데이터스토어 고려 사항:
vSphere 8.0은 NFS 프로토콜의 각 버전당 최대 256개의 NFS 마운트 지점을 지원합니다. 즉, 각 ESXi 호스트에 256개의 NFS3 및 256개의 NFS4.1 데이터스토어를 동시에 마운트할 수 있습니다.
기본적으로 가장 낮은 번호(일명 vmk0)의 VMkernel 인터페이스가 NFS 서버에 액세스하는 데 사용됩니다. NFS 서버가 ESXi 관리 네트워크 외부(가급적이면 라우팅할 수 없는 별도의 서브넷)에 위치해야 하며 NFS 서버에 액세스하기 위한 별도의 VMkernel 인터페이스가 생성되어 있어야 합니다.
NFS 서버에 액세스하려면 최소 10기가비트 물리적 네트워크 어댑터를 사용하는 것이 좋습니다.
자세한 내용은 다음 참조를 참조하십시오:
- NFS Storage Guidelines and Requirements
- Best Practices for Running NFS with VMware vSphere
- Best Practices for running VMware vSphere™ on Network Attached Storage
가상화 환경의 NFS 데이터스토어에서 SQL Server 지원
SQL Server 자체는 2008 버전부터 네트워크 파일에 데이터베이스를 배치하기 위한 기본(추적 플래그 없음) 지원을 제공하며, 2012 버전부터 클러스터된 데이터베이스에 대한 지원을 포함합니다[56]. 가상화된 플랫폼의 경우, 가상 머신에서 실행되는 SQL Server 인스턴스가 NFS 데이터스토어에 배치되면 기본 스토리지 유형에 대한 지식이 없습니다. 이 사실로 인해 다음과 같은 구성이 지원됩니다:
- NFS 데이터스토어는 SQL Server 2008 이상을 실행하는 VM에 대해 지원됩니다.
- SQL Server 2012 버전부터 비공유 스토리지를 사용하는 상시 가용성 그룹(AG)
- 공유 디스크(FCI) 클러스터링은 NFS 데이터스토어에서 지원되지 않습니다.
Raw Device Mapping
RDM(Raw Device Mapping)을 사용하면 VM이 VMFS로 포맷하지 않고도 물리적 스토리지 하위 시스템의 볼륨에 직접 액세스할 수 있습니다. RDM은 블록 스토리지(파이버 채널 또는 iSCSI)에서만 사용할 수 있습니다. RDM은 VMFS 볼륨에서 원시 볼륨으로 연결되는 심볼릭 링크를 제공하는 것으로 생각할 수 있습니다. 매핑은 볼륨을 VMFS 볼륨의 파일로 표시합니다. 원시 볼륨이 아닌 매핑 파일은 VM 구성에서 참조됩니다. 수년에 걸쳐 네이티브 VMFS 및 VMDK의 최적화가 증가하고 vVols가 도입됨에 따라 vSphere에서 가상화된 워크로드에 RDM을 사용하는 기술적 근거는 점차 줄어들고 있습니다.
성능 관점에서 볼 때 VMFS와 RDM 볼륨 모두 유사한 트랜잭션 처리량을 제공할 수 있습니다[57]. 다음 도표는 몇 가지 성능 테스트를 요약한 것입니다[58].
그림 55. 초당 랜덤 혼합(50% 읽기/50% 쓰기) I/O 작업(높을수록 좋음)
그림 56. 초당 순차 읽기 I/O 작업(높을수록 좋음)
클러스터된 VMDK[59]
VMFS와 RDM 간의 성능 및 크기 격차(RDM과 VMFS/VMDK 모두 최대 62TB 크기 가능)[60]가 좁혀진 후, RDM 디스크 사용에 대한 주요 고려 사항은 Microsoft Windows Server 장애 조치 클러스터링(WSFC)에 대한 SCSI-3 Persistent Reservation 요구 사항을 지원해야 한다는 것이 되었습니다. WSFC는 참여 노드 간/노드 간에 공유 디스크가 필요한 Microsoft SQL Server FCI(Always on Failover Cluster Instance)를 포함하여 Microsoft Windows 플랫폼의 모든 애플리케이션 수준 고가용성 구성 옵션을 뒷받침하는 클러스터링 솔루션입니다. vSphere 7.0의 “Clustered VMDK” 기능이 출시됨에 따라 이제 SCSI-3 Persistent Reservation 기능을 지원하여 WSFC 노드 간/노드 간에 VMDK를 성공적으로 공유할 수 있습니다. 따라서 더 이상 WSFC 공유 디스크 클러스터링에 RDM이 필요하지 않습니다[61].
클러스터된 VMDK를 사용할 때 고려해야 할 사항과 제한 사항은 VMware vSphere 제품 설명서의 “Limitations of Clustered VMDK support for WSFC” 섹션에 자세히 나와 있습니다[62].
몇 가지 제한 사항만 충족하면 기존 VMFS 데이터스토어에서 클러스터된 VMDK 지원을 사용하도록 설정할 수 있습니다. 클러스터된 VMDK 지원 데이터스토어는 범용 데이터스토어를 위한 것이 아니므로 클러스터된 VMDK를 고려할 때는 가능하면 실용적인 경우 고객이 전용 LUN을 새로 생성하여 사용하는 것이 좋습니다.
이 기능의 가장 일반적인 용도는 SSQL Server Failover Clustering Instance (FCI)를 생성하는 데 필요한 공유 디스크 WSFC(Windows Server Failover Clustering)에 대한 지원입니다.
이 용도로 기존 데이터스토어를 다시 사용해야 하는 경우, 특히 해당 VMDK가 FCI 구성에 참여하지 않을 경우에는 기존의 모든 VMDK를 대상 데이터스토어에서 마이그레이션할 것을 VMware는 적극 권장합니다. VMware는 클러스터된 VMDK 사용 데이터스토어에서 공유 VMDK와 비공유 VMDK의 혼합을 지원하지 않습니다.
데이터스토어가 프로비저닝된 후에만 데이터스토어에서 클러스터된 VMDK에 대한 지원을 사용하도록 설정할 수 있습니다.
프로세스는 아래 이미지와 같습니다:
vSphere Virtual Volumes[63]
vSphere Virtual Volumes를 사용하면 기존 스토리지 어레이가 제공하는 다양한 기능을 활용하면서 애플리케이션별 요구 사항을 기반으로 스토리지 프로비저닝 결정을 내릴 수 있습니다. vSphere Virtual Volumes가 제공하는 주요 이점 중 일부는 운영 효율성과 유연한 소비 모델에 중점을 두고 있습니다:
- 논리적 수준에서의 유연한 소비 - vSphere Virtual Volumes는 물리적 하드웨어 리소스를 논리적 용량 풀(vSphere에서는 가상 데이터스토어로 표시됨)로 추상화하여 SAN 및 NAS 디바이스를 가상화합니다.
- VM 수준에서 보다 세밀한 제어 - vSphere Virtual Volumes는 기본 물리적 스토리지 표현(LUN, 파일 시스템, 오브젝트 등)과 독립적인 새로운 가상 디스크 컨테이너(가상 볼륨)를 정의합니다. VM 단위로 스토리지 작업을 실행하고 압축, 스냅샷, 중복 제거, 암호화, 복제 등과 같은 기본 어레이 기반 데이터 서비스를 개별 VM에 프로비저닝하는 것이 가능해집니다. 이를 통해 관리자는 각 개별 VM에 올바른 스토리지 서비스 수준을 제공할 수 있습니다.
- Storage Policy-Based Management (SPBM)를 사용하여 VM마다 서로 다른 스토리지 정책을 구성할 수 있습니다. 이러한 정책은 물리적 스토리지 시스템에 인스턴스화되므로 성능 및 기타 데이터 서비스에 대한 VM 수준의 세분화가 가능합니다.
- Storage Policy-Based Management (SPBM)을 사용하면 스토리지 서비스 수준 요구 사항(용량, 성능, 가용성 등)을 VM이 연결된 논리적 템플릿(정책)의 형태로 캡처할 수 있습니다. SPBM은 정책 요구 사항을 충족하는 사용 가능한 데이터스토어를 식별하여 VM 배치를 자동화하고, vSphere Virtual Volumes와 결합하여 필요한 데이터 서비스를 동적으로 인스턴스화합니다. 또한 SPBM은 정책 시행을 통해 VM의 수명주기 전반에 걸쳐 서비스 수준 모니터링 및 규정 준수를 자동화합니다.
- vVol 2.0(vSphere 6.5)부터 시작되는 어레이 기반 복제
- SCSI-3 영구 예약에 대한 지원은 vSphere 6.7부터 시작되었습니다. 기본 스토리지 하위 시스템이 클러스터된 VMDK를 지원하지 않는 경우 RDM 디스크 대신 vVol 디스크를 사용하여 Windows 페일오버 클러스터에 디스크 리소스를 제공할 수 있습니다.
vSphere에서 vVols를 활용하려면 스토리지 벤더의 VASA 지원이 필요합니다.
vSphere 가상 볼륨 기능은 대규모 데이터베이스가 직면하고 있는 많은 문제를 해결하는 데 도움이 됩니다:
- 비즈니스 크리티컬 가상화 데이터베이스는 성능에 대한 엄격한 SLA를 충족해야 하며, 스토리지는 일반적으로 RAM 및 CPU, 심지어 네트워크에 비해 가장 느린 구성 요소입니다.
- 데이터베이스 크기는 점점 커지는 동시에 백업 창과 시스템 성능에 미치는 영향을 줄여야 할 필요성이 증가하고 있습니다.
- 프로덕션 환경에서 QA 및 기타 환경으로 데이터베이스를 복제하고 새로 고쳐야 할 필요성이 정기적으로 발생합니다. 최신 데이터베이스의 크기는 프로덕션 환경에서 다른 환경으로 데이터를 복제하고 새로 고치기가 더 어렵게 만듭니다.
- 중요도 수준이 다른 데이터베이스에는 서로 다른 스토리지 성능 특성과 기능이 필요합니다.
vSphere Virtual Volumes를 기본 기술로 사용하여 SAN에서 SQL Server를 가상화하는 경우 모범 사례 및 지침은 VMFS 데이터스토어를 사용할 때와 동일하게 유지됩니다.
VM의 가상 디스크가 상주하는 물리적 스토리지가 이 문서의 스토리지 모범 사례에 자세히 설명된 대로 RAID, I/O, 레이턴시, 큐 깊이 등과 관련하여 SQL Server 구현의 요구 사항을 수용할 수 있는지 확인해야 합니다.