IntelliCache

참고:

이 기능은 XenServer를 XenDesktop과 함께 사용할 경우에만 지원됩니다.

IntelliCache와 함께 XenServer를 사용하면 공유 스토리지와 로컬 스토리지를 조합하여 사용할 수 있으므로 호스트되는 가상 데스크톱 인프라를 비용면에서 더 효율적으로 배포할 수 있습니다. 다수의 VM(가상 컴퓨터)이 공통 OS 이미지를 공유하는 경우 특히 유용합니다. 스토리지 어레이에 대한 부하가 줄어들고 성능이 개선됩니다. 또한 로컬 스토리지가 공유 스토리지의 마스터 이미지를 캐시하므로 공유 스토리지를 드나드는 네트워크 트래픽이 줄어듭니다.

IntelliCache는 VM 호스트의 로컬 스토리지에 있는 VM 상위 VDI의 데이터를 캐시하는 방식으로 작동합니다. 이 로컬 캐시는 상위 VDI에서 읽은 데이터로 채워집니다. 다수의 VM이 공통의 상위 VDI를 공유하는 경우 VM은 다른 VM에서 캐시로 읽은 데이터를 사용할 수 있습니다. 공유 스토리지에 있는 마스터 이미지에 추가로 액세스할 필요가 없습니다.

IntelliCache에는 씬 프로비저닝된 로컬 SR이 필요합니다. 씬 프로비저닝은 사용 가능한 스토리지의 사용을 최적화하는 방법입니다. 이 접근 방식을 사용하면 공유 스토리지 대신 로컬 스토리지를 더 많이 사용할 수 있습니다. 이 접근 방식에서는 데이터 블록이 필요에 따라 할당됩니다. 이와 달리 다른 접근 방식의 경우 모든 블록이 미리 할당됩니다.

중요:

씬 프로비저닝은 호스트의 기본 로컬 스토리지 유형을 LVM에서 EXT3으로 변경합니다. XenDesktop 로컬 캐싱이 제대로 작동하려면 씬 프로비저닝을 사용하도록 설정해야 합니다.

씬 프로비저닝을 사용할 경우 관리자는 SR(스토리지 저장소)에 연결된 VM에 해당 SR에서 사용할 수 있는 공간보다 더 많은 스토리지 공간을 제공할 수 있습니다. 간을 항상 확보하고 있지 않으며 LUN이 할당되어도 VM이 데이터를 쓰기 전까지는 데이터 블록을 요청하지 않습니다.

경고:

씬 프로비저닝된 SR은 필요에 따라 해당 VM의 디스크 사용량이 증가할 수 있으므로 물리적 공간을 모두 써버릴 수 있습니다. IntelliCache VM은 로컬 SR 캐시가 가득 찰 경우 자동으로 공유 스토리지를 사용함으로써 이 문제를 해결합니다. 동일한 SR에 기존의 가상 컴퓨터와 IntelliCache VM을 혼합하여 사용하면 IntelliCache VM의 크기가 빠르게 증가할 수 있으므로 이 방법은 사용하지 마십시오.

IntelliCache 배포

IntelliCache는 호스트를 설치하는 동안 사용하도록 설정하거나, 실행 중인 호스트에서 CLI를 통해 수동으로 사용하도록 설정해야 합니다.

Citrix에서는 가장 빠른 데이터 전송을 위해 고성능 로컬 스토리지 장치를 사용할 것을 권장합니다. 예를 들어 SSD(Solid State Disk) 또는 고성능 RAID 배열을 사용합니다. 로컬 디스크의 크기를 결정할 때는 데이터 처리량과 스토리지 용량을 모두 고려해야 합니다. 원본 VDI(가상 디스크 이미지)를 호스트하는 데 사용되는 공유 스토리지 유형은 NFS 또는 EXT 기반이어야 합니다.

호스트 설치 시 사용하도록 설정

호스트를 설치하는 동안 IntelliCache를 사용하도록 설정하려면 Virtual Machine Storage(가상 컴퓨터 스토리지) 화면에서 Enable thin provisioning(씬 프로비저닝 사용)을 선택합니다. 이 옵션을 선택하면 호스트의 로컬 SR이 VM VDI의 로컬 캐싱에 사용되도록 선택됩니다.

Enable thin provisioning(씬 프로비저닝 사용) 설치 관리자 페이지

기존 호스트를 씬 프로비저닝을 사용하도록 변환

기존 LVM 기반 로컬 SR을 삭제하고 이를 씬 프로비저닝된 EXT3 기반 SR로 바꾸려면 다음 명령을 입력합니다.

경고:

이러한 명령은 기존 로컬 SR을 제거하고 SR의 VM은 영구적으로 삭제됩니다.

localsr=`xe sr-list type=lvm host=hostname params=uuid --minimal`
    echo localsr=$localsr
    pbd=`xe pbd-list sr-uuid=$localsr params=uuid --minimal`
    echo pbd=$pbd
    xe pbd-unplug uuid=$pbd
    xe pbd-destroy uuid=$pbd
    xe sr-forget uuid=$localsr
    sed -i "s/'lvm'/'ext'/" /etc/firstboot.d/data/default-storage.conf
    rm -f /etc/firstboot.d/state/10-prepare-storage
    rm -f /etc/firstboot.d/state/15-set-default-storage
    service firstboot start
    xe sr-list type=ext

로컬 캐싱을 사용하도록 설정하려면 다음 명령을 입력합니다.

xe host-disable host=hostname
    localsr=`xe sr-list type=ext host=hostname params=uuid --minimal`
    xe host-enable-local-storage-caching host=hostname sr-uuid=$localsr
    xe host-enable host=hostname

VM 부팅 동작

VM이 부팅될 때 VM VDI의 동작에는 두 가지 옵션이 있습니다.

  1. 공유 데스크톱 모드

    VM 부팅 시 VDI가 이전에 부팅할 때의 상태로 되돌아갑니다. VM이 실행되는 동안 수행된 모든 변경 사항은 VM이 다음에 부팅될 때 손실됩니다.

    영구적인 변경을 수행할 수 없는 사용자에게 표준화된 데스크톱을 제공하려는 경우 이 옵션을 선택합니다.

  2. 개인 데스크톱 모드

    VM 부팅 시 VDI가 마지막으로 종료할 때의 상태를 유지합니다.

    사용자가 자신의 데스크톱에 영구적인 변경을 수행할 수 있도록 하려는 경우 이 옵션을 선택합니다.

VM 캐싱 동작 설정

VDI 플래그 allow-caching은 캐싱 동작을 지정합니다.

공유 데스크톱 모드

공유 데스크톱의 경우 on-boot 옵션이 reset로 설정되고 allow-caching 플래그가 true로 설정됩니다. 새 VM 데이터는 로컬 스토리지에만 기록됩니다. 공유 스토리지에는 쓰기 작업이 수행되지 않습니다. 이것은 공유 스토리지의 부하가 줄어든다는 것을 의미합니다. 그러나 호스트 간에 VM을 마이그레이션할 수는 없습니다.

개인 데스크톱 모드

개인 데스크톱의 경우 on-boot 옵션이 persist로 설정되고 allow-caching 플래그가 true로 설정됩니다. 새 VM 데이터는 로컬 스토리지와 공유 스토리지에 기록됩니다. 캐시된 데이터를 읽을 때는 공유 스토리지에 대한 I/O 트래픽이 필요 없으므로 공유 스토리지의 부하가 줄어듭니다. 다른 호스트로의 VM 마이그레이션이 허용되며 새로운 호스트의 로컬 캐시는 데이터를 읽을 때 채워집니다.

구현 세부 정보 및 문제 해결

Q: IntelliCache는 XenMotion 및 고가용성과 호환됩니까?

A: 가상 데스크톱이 개인 모드, 즉 on-boot=persist인 경우 XenMotion 및 고가용성을 IntelliCache와 함께 사용할 수 있습니다.

경고:

해당 VDI 중 하나라도 캐싱 동작 플래그가 on-boot=resetallow-caching=true로 설정되어 있으면 VM을 마이그레이션할 수 없습니다. 이러한 속성이 설정된 VM을 마이그레이션하려고 하면 실패합니다.

Q: 로컬 캐시는 로컬 디스크의 어디에 위치합니까?

A: 캐시는 SR(스토리지 저장소)에 있습니다. 각 호스트에는 어떤 SR(로컬)이 캐시 파일에 사용되는지를 나타내는 구성 매개 변수(local-cache-sr이라고 함)가 있습니다. 일반적으로 EXT 유형의 SR이 사용됩니다. IntelliCache를 사용하여 VM을 실행하면 SR 내부에 이름이 uuid.vhdcache인 파일이 있는 것을 확인할 수 있습니다. 이 파일은 해당 UUID가 지정된 VDI의 캐시 파일입니다. 이러한 파일은 XenCenter에 표시되지 않으며 이들 파일을 확인할 수 있는 방법은 dom0에 로그인하여 /var/run/sr-mount/sr-uuid의 내용을 표시하는 것뿐입니다.

Q: 캐시로 사용할 특정 SR은 어떻게 지정합니까?

A: 호스트 개체 필드 local-cache-sr은 로컬 SR을 나타냅니다. 다음 명령을 실행하여 값을 볼 수 있습니다.

xe sr-list params=local-cache-sr,uuid,name-label

이 필드는 다음과 같은 경우에 설정됩니다.

  • 호스트 설치 관리자에서 “Enable thin provisioning(씬 프로비저닝 사용)” 옵션을 선택한 경우 호스트 설치 후

  • xe host-enable-local-storage-caching host=host sr-uuid=sr을 실행한 경우 명령을 실행하려면 지정된 호스트를 사용하지 않도록 설정해야 합니다. 이 명령을 사용하는 경우 VM을 종료하십시오.

첫 번째 옵션은 EXT 유형 로컬 SR을 사용하며 호스트가 설치되는 동안 만들어집니다. 두 번째 옵션은 명령줄에 지정된 SR을 사용합니다.

경고:

이러한 단계는 둘 이상의 로컬 SR을 구성한 사용자에게만 필요합니다.

Q: 로컬 캐시는 언제 삭제됩니까?

A: VDI 캐시 파일은 VDI 자체가 삭제되는 경우에만 삭제됩니다. 캐시는 VDI가 VM에 연결될 때(예: VM 시작 시) 재설정됩니다. VDI를 삭제할 때 호스트가 오프라인이면 시작 시 실행되는 SR 동기화가 캐시 파일의 가비지를 수집합니다.

참고:

VM이 다른 호스트로 마이그레이션되거나 종료되는 경우에는 캐시 파일이 호스트에서 삭제되지 않습니다.

Version

IntelliCache