Citrix Hypervisor

스토리지

이 섹션에서는 물리적 스토리지 하드웨어가 VM (가상 시스템) 에 매핑되는 방법과 Management API에서 스토리지 관련 작업을 수행하는 데 사용하는 소프트웨어 개체에 대해 설명합니다. 지원되는 각 스토리지 유형에 대한 자세한 섹션에는 다음 정보가 포함됩니다.

  • 유형별 디바이스 구성 옵션과 함께 CLI를 사용하여 VM용 스토리지를 생성하는 절차
  • 백업용 스냅샷 생성
  • 스토리지 관리 모범 사례

스토리지 저장소 (SR)

SR(스토리지 저장소)은 VM(가상 컴퓨터) VDI(가상 디스크 이미지)가 저장되는 특정 스토리지 대상입니다. VDI는 HDD (가상 하드 디스크 드라이브) 를 나타내는 저장소 추상입니다.

SR은 유연하며 다음 드라이브에 대한 지원 기능이 내장되어 있습니다.

로컬로 연결됨:

  • SATA
  • SCSI
  • SAS
  • NVMe

로컬 물리적 스토리지 하드웨어는 하드 디스크 드라이브 (HDD) 또는 솔리드 스테이트 드라이브 (SSD) 일 수 있습니다.

원격 연결:

  • iSCSI
  • NFS
  • SAS
  • SMB(버전 3에만 해당)
  • 파이버 채널

참고:

파이버 채널을 통한 NVMe 및 TCP를 통한 NVMe는 지원되지 않습니다.

SR 및 VDI 추상화를 통해 고급 스토리지 기능을 지원하는 스토리지 대상에 노출할 수 있습니다. 예를 들어 씬 프로비저닝, VDI 스냅샷, 고속 클론 복제와 같은 고급 기능을 사용할 수 있습니다. 고급 작업을 직접 지원하지 않는 스토리지 하위 시스템의 경우 이러한 기능을 구현하는 소프트웨어 스택이 제공됩니다. 이 소프트웨어 스택은 Microsoft의 가상 하드 디스크 (VHD) 사양을 기반으로 합니다.

스토리지 저장소는 영구적인 온디스크 데이터 구조입니다. 기본 블록 디바이스를 사용하는 SR 유형의 경우 SR을 생성하는 프로세스에는 지정된 스토리지 대상에 있는 기존 데이터가 모두 지워집니다. NFS와 같은 다른 스토리지 유형은 기존 SR과 병렬로 스토리지 어레이에 컨테이너를 생성합니다.

각 Citrix Hypervisor 서버는 여러 SR과 서로 다른 SR 유형을 동시에 사용할 수 있습니다. 이러한 SR은 호스트 간에 공유되거나 특정 호스트 전용으로 사용될 수 있습니다. 공유 스토리지는 정의된 리소스 풀 내에서 여러 호스트 간에 풀링됩니다. 공유 SR은 네트워크를 통해 풀의 각 호스트에 액세스할 수 있어야 합니다. 단일 리소스 풀의 모든 서버에는 공통된 공유 SR이 하나 이상 있어야 합니다. 공유 스토리지를 여러 풀 간에 공유할 수 없습니다.

SR 명령은 포함된 개별 VDI를 생성, 삭제, 크기 조정, 복제, 연결 및 검색하는 작업을 제공합니다. 스토리지 저장소를 관리하는 CLI 작업은 SR 명령에 설명되어 있습니다.

경고:

Citrix Hypervisor는 모든 SR 유형에 대해 LUN의 외부 SAN 수준에서 스냅샷을 지원하지 않습니다.

가상 디스크 이미지 (VDI)

가상 디스크 이미지(VDI)는 가상 하드 디스크 드라이브 (HDD) 를 나타내는 저장소 추상화입니다. VDI는 Citrix Hypervisor에서 가상화된 스토리지의 기본 단위입니다. VDI는 Citrix Hypervisor 서버와 독립적으로 존재하는 영구적인 온디스크 개체입니다. VDI 관리를 위한 CLI 작업은 VDI 명령에 설명되어 있습니다. 디스크의 데이터 표시는 SR 유형에 따라 다릅니다. 각 SR에 대한 별도의 스토리지 플러그인 인터페이스(SM API)가 데이터를 관리합니다.

물리적 블록 디바이스(PBD)

물리적 블록 디바이스는 물리적 서버와 연결된 SR 간의 인터페이스를 나타냅니다. PBD는 지정된 SR을 호스트에 매핑할 수 있는 커넥터 개체입니다. PBD는 지정된 스토리지 대상에 연결하고 해당 대상과 상호 작용하는 데 사용되는 장치 구성 필드를 저장합니다. 예를 들어 NFS 장치 구성에는 NFS 서버의 IP 주소와 Citrix Hypervisor 서버가 마운트하는 연결된 경로가 포함됩니다. PBD 개체는 지정된 Citrix Hypervisor 서버에 대해 지정된 SR의 런타임 연결을 관리합니다. PBD와 관련된 CLI 작업은 PBD 명령에 설명되어 있습니다.

VBD (가상 블록 디바이스)

가상 블록 디바이스는 VDI와 VM 간의 매핑을 허용하는 커넥터 개체(위에서 설명한 PBD와 유사)입니다. VBD는 VM에 VDI를 연결하기 위한 메커니즘을 제공할 뿐만 아니라 디스크 I/O 우선 순위 및 지정된 VDI의 통계 및 VDI를 부팅할 수 있는지 여부와 관련된 매개 변수를 미세 조정할 수 있습니다. VBD와 관련된 CLI 작업은 VBD 명령에 설명되어 있습니다.

스토리지 객체 요약

다음 이미지는 지금까지 제시된 스토리지 객체가 어떻게 관련되어 있는지를 요약한 것입니다.

스토리지 저장소 및 관련 객체에 대한 그래픽 개요

가상 디스크 데이터 형식

일반적으로 다음과 같은 유형의 물리적 스토리지를 VDI에 매핑할 수 있습니다.

  1. LUN의 논리 볼륨 기반 VHD: 기본 Citrix Hypervisor 블록 기반 저장소는 논리 볼륨 관리자를 디스크에 삽입합니다. 이 디스크는 로컬 연결 장치 (LVM) 이거나 파이버 채널, iSCSI 또는 SAS를 통한 SAN 연결 LUN입니다. VDI는 볼륨 관리자 내에서 볼륨으로 표시되며 VHD 형식으로 저장되어 스냅샷 및 클론에서 참조 노드의 씬 프로비저닝을 허용합니다.

  2. LUN의 파일 기반 QCOW2: 가상 머신 이미지는 iSCSI 소프트웨어 이니시에이터 또는 하드웨어 HBA를 통해 연결된 LUN의 GFS2 공유 디스크 파일 시스템에 씬 프로비저닝된 QCOW2 형식 파일로 저장됩니다.

  3. 파일 시스템의 파일 기반 VHD: VM 이미지는 로컬 비공유 파일 시스템 (EXT3/EXT4 유형 SR), 공유 NFS 대상 (NFS 유형 SR) 또는 원격 SMB 대상 (SMB 유형 SR) 에 씬 프로비저닝된 VHD 형식 파일로 저장됩니다.

VDI 유형

GFS2 SR의 경우 QCOW2 VDI가 생성됩니다.

다른 SR 유형의 경우 VHD 형식 VDI가 생성됩니다. VDI를 생성할 때 raw를 사용하도록 선택할 수 있습니다. 이 옵션은 xe CLI를 사용해야만 지정할 수 있습니다.

참고:

LVM 기반 SR 또는 HBA/VDI SR별 LUN 에 원시 VDI를 생성하면 소유하는 VM이 모든 VM에 속하는 이전에 삭제된 모든 형식의 VDI의 일부였던 데이터에 액세스할 수 있습니다. 이 옵션을 사용하기 전에 보안 요구 사항을 고려하는 것이 좋습니다.

NFS, EXT 또는 SMB SR의 원시 VDI는 VM에 속하는 이전에 삭제된 VDI의 데이터에 대한 액세스를 허용하지 않습니다.

type=raw을(를) 사용하여 VDI가 생성되었는지 확인하려면 해당 sm-config 맵을 확인합니다. 이 목적을 위해 sr-param-listvdi-param-list xe 명령을 각각 사용할 수 있습니다.

xe CLI를 사용하여 원시 가상 디스크 생성

  1. 다음 명령을 실행하여 가상 디스크를 배치할 SR의 UUID가 지정된 VDI를 만들 수 있습니다.

    xe vdi-create sr-uuid=sr-uuid type=user virtual-size=virtual-size \
            name-label=VDI name sm-config:type=raw
    <!--NeedCopy-->
    
  2. 새 가상 디스크를 VM에 연결합니다. VM 내의 디스크 도구를 사용하여 파티션을 만들고 포맷하거나 새 디스크를 사용합니다. vbd-create 명령을 사용하여 VBD를 생성하여 가상 디스크를 VM에 매핑할 수 있습니다.

VDI 형식 간 변환

원시 형식과 VHD 형식 간에 직접 변환할 수는 없습니다. 대신 VDI (위에서 설명한 원시 또는 VHD) 를 만든 다음 기존 볼륨에서 VDI 로 데이터를 복사할 수 있습니다. xe CLI를 사용하여 새 VDI의 가상 크기가 적어도 복사 중인 VDI와 같은지 확인합니다. 예를 들어 vdi-param-list 명령을 사용하여 virtual-size 필드를 확인하여 이 작업을 수행할 수 있습니다. 그런 다음 이 새 VDI를 VM에 연결하고 VM 내에서 선호하는 도구를 사용하여 데이터의 직접 블록 복사를 수행할 수 있습니다. 예를 들어 Windows의 표준 디스크 관리 도구 또는 Linux의 dd 명령입니다. 새 볼륨이 VHD 볼륨인 경우 빈 섹터를 디스크에 쓰지 않도록 하는 도구를 사용합니다. 이 작업을 수행하면 기본 저장소 리포지토리에서 공간이 최적으로 사용되도록 할 수 있습니다. 파일 기반 복사 방식이 더 적합할 수 있습니다.

VHD 기반 및 QCO2 기반 VDI

VHD 및 QCOW2 이미지를 체인으로 연결하여 두 VDI가 공통 데이터를 공유할 수 있습니다. VHD 지원 또는 QCOW2 지원 VM이 복제되는 경우, 그 결과로 생성되는 VM은 복제 시 공통 온디스크 데이터를 공유합니다. 각 VM은 격리된 기록 중 복사 버전의 VDI에서 자체 변경을 진행합니다. 이 기능을 사용하면 템플릿에서 이러한 VM을 신속하게 복제할 수 있으므로 새 VM을 매우 빠르게 프로비저닝하고 배포할 수 있습니다.

VM 및 관련 VDI가 시간이 지남에 따라 복제되면 연결된 VDI 트리가 생성됩니다. 체인의 VDI 중 하나가 삭제되면 Citrix Hypervisor 체인의 다른 VDI를 합리화하여 불필요한 VDI를 제거합니다. 이 병합 프로세스는 비동기적으로 실행됩니다. 회수되는 디스크 공간 및 프로세스 수행에 소요되는 시간은 VDI의 크기와 공유 데이터의 양에 따라 다릅니다.

VHD 및 QCOW2 형식 모두 씬 프로비저닝을 지원합니다. VM이 디스크에 데이터를 쓸 때 이미지 파일이 미세하게 세분화된 청크로 자동 확장됩니다. 파일 기반 VHD 및 GFS2 기반 QCOW2 의 경우 이 접근 방식은 VM 이미지 파일이 물리적 스토리지에서 필요한 만큼의 공간만 차지한다는 점에서 상당한 이점을 제공합니다. LVM 기반 VHD의 경우, 기본 논리 볼륨 컨테이너는 VDI의 가상 크기에 맞게 크기를 조정해야 합니다. 그러나 스냅샷이나 클론이 발생할 때 기본 Copy-On-Write 인스턴스 디스크의 사용되지 않은 공간이 회수됩니다. 두 동작의 차이점을 다음과 같이 설명할 수 있습니다.

  • LVM 기반 VHD 이미지의 경우 체인 내의 다른 디스크 노드는 디스크에 기록된 만큼의 데이터만 소비합니다. 그러나 리프 노드(VDI 클론) 는 디스크의 가상 크기로 완전히 확장된 상태로 유지됩니다. 스냅샷 리프 노드(VDI 스냅샷)는 사용되지 않는 경우 압축된 상태를 유지하며 읽기 전용 상태로 연결하여 압축된 할당 상태를 유지할 수 있습니다. 읽기-쓰기가 연결된 스냅샷 노드는 연결 시 완전히 팽창되고 분리 시 수축됩니다.

  • 파일 기반 VHDGFS2 기반 QCOW2 이미지의 경우, 모든 노드는 기록된 만큼의 데이터만 사용합니다. 리프 노드 파일은 활발하게 작성될 때 데이터를 수용할 수 있도록 커집니다. VM에 100GB VDI가 할당되고 OS가 설치된 경우 VDI 파일은 물리적으로 디스크의 OS 데이터 크기와 약간의 메타데이터 오버헤드가 됩니다.

단일 VHD 또는 QCOW2 템플릿을 기반으로 VM을 복제할 때 각 하위 VM은 새로운 변경 사항이 새 VM에 기록되는 체인을 형성합니다. 이전 블록은 상위 템플릿에서 직접 읽습니다. 새 VM이 추가 템플릿으로 변환되고 더 많은 VM이 복제된 경우 결과적으로 체인의 성능이 저하됩니다. Citrix Hypervisor 최대 체인 길이 30을 지원합니다. 정당한 이유 없이 이 한계에 접근하지 마십시오. 확실하지 않은 경우 Citrix Hypervisor 센터를 사용하여 VM을 “복사”하거나 vm-copy 명령을 사용하여 체인 길이를 다시 0으로 재설정합니다.

합성에 대한 VHD 관련 참고 사항

SR에 대해 단 하나의 병합 프로세스만 활성화됩니다. 이 프로세스 스레드는 SR 마스터 호스트에서 실행됩니다.

풀의 마스터 서버에서 실행 중인 중요 VM이 있는 경우 다음 단계를 수행하여 가끔 느린 I/O를 완화할 수 있습니다.

  • SR 마스터가 아닌 다른 호스트로 VM 마이그레이션

  • 디스크 I/O 우선 순위를 더 높은 수준으로 설정하고 스케줄러를 조정합니다. 자세한 내용은 가상 디스크 I/O 요청 우선 순위 지정을 참조하십시오.

스토리지