인텔리캐시™
XenServer®와 IntelliCache를 함께 사용하면 공유 스토리지와 로컬 스토리지의 조합을 사용하여 호스팅된 가상 데스크톱 인프라 배포를 더욱 비용 효율적으로 만들 수 있습니다. 많은 가상 머신(VM)이 공통 OS 이미지(기본 이미지)를 공유할 때 특히 유용합니다. 스토리지 어레이의 부하가 줄어들고 성능이 향상됩니다. 또한, 로컬 스토리지가 공유 스토리지에서 기본 이미지를 캐시하므로 공유 스토리지와의 네트워크 트래픽이 감소합니다.
IntelliCache는 VM 호스트의 로컬 스토리지에 VM 데이터를 캐싱하여 작동합니다. 이 로컬 캐시된 데이터에는 다음이 포함됩니다:
- 기본 이미지(VM의 상위 VDI)의 캐시된 복사본. 이 파일은 씬 프로비저닝되며 읽기 전용입니다. 공유 스토리지의 기본 이미지 VDI에서 데이터를 읽을 때 채워집니다. 많은 VM이 공통 기본 이미지 VDI를 공유하는 경우, 한 VM은 다른 VM에서 캐시로 읽어 들인 데이터를 사용할 수 있습니다. 공유 스토리지의 기본 이미지에 대한 추가 액세스는 필요하지 않습니다.
- VDI별 델타 디스크의 캐시된 복사본. 이 로컬 델타 디스크에 변경 사항을 쓸 수 있습니다. 비영구 VM의 경우, 로컬 캐시된 델타 디스크의 데이터는 VM 부팅 시 삭제됩니다. 영구 VM의 경우, 로컬 캐시된 델타 디스크의 데이터는 VM 부팅 시 공유 스토리지의 델타 디스크에 다시 기록됩니다.
전제 조건
IntelliCache 기능에는 다음 요구 사항이 있습니다:
-
프리미엄 에디션 라이선스: 인텔리캐시는 Citrix Virtual Desktops와 함께 XenServer 프리미엄 에디션을 사용할 때만 지원됩니다.
-
스토리지: IntelliCache를 사용하려면 캐시된 데이터용 로컬 SR과 소스 가상 디스크 이미지(VDI)용 공유 SR이 모두 필요합니다. 이러한 SR은 IntelliCache VM에만 사용하십시오. 기존 가상 머신과 IntelliCache VM을 동일한 SR에 혼합하여 사용하지 마십시오.
-
공유 스토리지: 소스 VDI를 호스팅하는 데 사용되는 공유 스토리지는 다음 유형 중 하나여야 합니다:
- NFS
- SMB3
- Shared LVM (iSCSI or HBA)
-
로컬 스토리지: 가장 빠른 데이터 전송을 보장하기 위해 고성능 로컬 스토리지 장치를 사용하는 것이 좋습니다. 예를 들어, 솔리드 스테이트 디스크 또는 고성능 RAID 어레이를 사용하십시오. 로컬 디스크의 크기를 조정할 때 데이터 처리량과 스토리지 용량을 모두 고려하십시오.
IntelliCache에는 씬 프로비저닝된 EXT3/EXT4 로컬 SR이 필요합니다. Citrix Virtual Desktops 로컬 캐싱이 제대로 작동하려면 씬 프로비저닝을 반드시 활성화해야 합니다. XenServer 설치 시 또는 나중에 명령줄에서 씬 프로비저닝을 활성화할 수 있습니다. 씬 프로비저닝은 호스트의 기본 로컬 스토리지 유형을 LVM에서 EXT4로 변경합니다. 자세한 내용은 IntelliCache 배포를 참조하십시오.
씬 프로비저닝은 사용 가능한 스토리지를 최적화하는 방법입니다. 이 접근 방식을 통해 공유 스토리지 대신 로컬 스토리지를 더 많이 사용할 수 있습니다. 데이터 블록의 온디맨드 할당에 의존합니다. 다른 접근 방식에서는 모든 블록이 미리 할당됩니다. 씬 프로비저닝을 통해 관리자는 스토리지 리포지토리(SR)에 연결하는 VM에 SR에서 사용 가능한 것보다 더 많은 스토리지 공간을 제공할 수 있습니다. 공간 보장은 없으며, LUN 할당은 VM이 데이터를 쓸 때까지 데이터 블록을 요구하지 않습니다.
씬 프로비저닝된 SR은 VM이 온디맨드로 디스크 용량을 소비하도록 증가할 수 있으므로 물리적 공간이 부족해질 수 있습니다. IntelliCache VM은 로컬 SR 캐시가 가득 차면 자동으로 공유 스토리지로 대체하여 이 조건을 처리합니다. IntelliCache VM은 크기가 빠르게 증가할 수 있으므로 기존 가상 머신과 IntelliCache VM을 동일한 SR에 혼합하지 마십시오.
-
IntelliCache deployment
IntelliCache 기능을 사용하려면 (#on-xenserver)와 (#on-citrix-virtual-apps-and-desktops) 모두에서 활성화해야 합니다.
젠서버에서
IntelliCache를 사용하려면 호스트 설치 중에 로컬 SR의 씬 프로비저닝을 활성화하거나 CLI를 사용하여 실행 중인 호스트에서 수동으로 활성화해야 합니다. 씬 프로비저닝은 호스트의 기본 로컬 스토리지 유형을 LVM에서 EXT4로 변경합니다.
호스트 설치 시 활성화
호스트 설치 중에 씬 프로비저닝을 활성화하려면 가상 머신 스토리지 화면에서 씬 프로비저닝 활성화를 선택합니다. 이 옵션은 VM VDI의 로컬 캐싱에 사용될 호스트의 로컬 SR을 선택합니다.

기존 호스트를 씬 프로비저닝 사용으로 변환
기존 LVM 로컬 SR을 삭제하고 씬 프로비저닝된 EXT3/EXT4 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 /var/lib/misc/ran-storage-init
systemctl restart storage-init.service
xe sr-list type=ext
<!--NeedCopy-->
로컬 캐싱을 활성화하려면 다음 명령을 입력하십시오.
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
<!--NeedCopy-->
시트릭스 가상 앱 및 데스크톱에서
Citrix Virtual Apps and Desktops에서 Citrix Studio의 XenServer에 연결할 때 IntelliCache를 사용하도록 선택합니다. XenServer에서 로컬 SR의 씬 프로비저닝이 활성화된 경우, Citrix Studio는 XenServer에 대한 연결을 생성할 때 공유 스토리지 장치의 로드를 줄이기 위해 IntelliCache 사용 옵션을 표시합니다.
자세한 내용은 시트릭스 가상 앱 및 데스크톱 제품 설명서를 참조하십시오.
IntelliCache를 사용하는 가상 머신 동작
VDI 플래그 on-boot는 VM이 부팅될 때 VM VDI의 동작을 결정하고, VDI 플래그 allow-caching는 캐싱 동작을 결정합니다.
이러한 매개변수에 사용할 값은 생성하는 VM의 유형과 의도된 용도에 따라 달라집니다.
-
공유 또는 무작위로 할당된 머신의 경우:
-
on-boot매개변수를reset로 설정합니다. -
allow-caching매개변수를true로 설정합니다.
예를 들어:
xe vdi-param-set uuid=vdi_uuid on-boot=reset allow-caching=true <!--NeedCopy-->VM 부팅 시 VDI는 이전 부팅 시의 상태로 되돌아갑니다. VM이 실행되는 동안의 모든 변경 사항은 다음 VM 부팅 시 손실됩니다. 새 VM 데이터는 로컬 스토리지에만 기록됩니다. 공유 스토리지에는 쓰기가 없습니다. 이 접근 방식은 공유 스토리지의 로드를 줄이는 것을 의미합니다. 그러나 VM은 호스트 간에 마이그레이션할 수 없습니다.
사용자가 영구적인 변경을 할 수 없는 표준화된 데스크톱을 제공할 계획이라면 이 옵션을 선택하십시오.
-
-
정적 또는 전용 머신의 경우:
-
on-boot매개변수를persist로 설정합니다. -
allow-caching매개변수를true로 설정합니다.
예를 들어:
xe vdi-param-set uuid=vdi_uuid on-boot=persist allow-caching=true <!--NeedCopy-->VM 부팅 시 VDI는 마지막 종료 시의 상태로 유지됩니다. 새 VM 데이터는 로컬 및 공유 스토리지 모두에 기록됩니다. 캐시된 데이터 읽기는 공유 스토리지로의 I/O 트래픽을 필요로 하지 않으므로 공유 스토리지의 부하가 줄어듭니다. 다른 호스트로의 VM 마이그레이션이 허용되며, 데이터가 읽힐 때 새 호스트의 로컬 캐시가 채워집니다.
사용자가 데스크톱에 영구적인 변경을 허용할 계획이라면 이 옵션을 선택하십시오.
-
참고:
VDI가 GFS2 SR에 있는 VM의 경우, VM 부팅 시 동작은 다른 유형의 SR에 VDI가 있는 VM과 다릅니다. GFS2 SR의 VDI의 경우, 부팅 시 옵션은 VM 부팅 시가 아니라 VM 종료 시 적용됩니다.
구현 세부 정보 및 문제 해결
질문: IntelliCache는 라이브 마이그레이션 및 고가용성과 호환됩니까?
답변: 가상 데스크톱이 개인 모드일 때, 즉 on-boot=persist일 때 IntelliCache와 함께 라이브 마이그레이션 및 고가용성을 사용할 수 있습니다.
경고:
VDI 중 하나라도 캐싱 동작 플래그가
on-boot=reset및allow-caching=true로 설정된 경우 VM을 마이그레이션할 수 없습니다. 이러한 속성을 가진 VM에 대한 마이그레이션 시도는 실패합니다.
질문: 로컬 캐시는 로컬 디스크의 어디에 있습니까?
답변: 캐시는 스토리지 리포지토리(SR)에 있습니다. 각 호스트에는 캐시 파일에 사용할 (로컬) SR을 나타내는 구성 매개변수(local-cache-sr)가 있습니다. 일반적으로 이 SR은 EXT3/EXT4 유형 SR입니다. IntelliCache를 사용하여 VM을 실행하면 SR 내부에 uuid.vhdcache 이름의 파일이 표시됩니다. 이 파일은 지정된 UUID를 가진 VDI의 캐시 파일입니다. 이 파일은 XenCenter에 표시되지 않습니다. 이 파일을 볼 수 있는 유일한 방법은 dom0에 로그인하여 /var/run/sr-mount/sr-uuid의 내용을 나열하는 것입니다.
질문: 캐시로 사용할 특정 SR을 어떻게 지정합니까?
답변: 호스트 개체 필드 local-cache-sr은 로컬 SR을 참조합니다. 다음 명령을 실행하여 해당 값을 볼 수 있습니다.
xe sr-list params=local-cache-sr,uuid,name-label
<!--NeedCopy-->
이 필드는 다음 중 하나로 설정됩니다.
-
호스트 설치 후, 호스트 설치 프로그램에서 “씬 프로비저닝 활성화” 옵션을 선택한 경우, 또는
-
xe host-enable-local-storage-caching host=host sr-uuid=sr을(를) 실행하여. 이 명령은 지정된 호스트를 비활성화해야 합니다. 이 명령을 사용할 때 VM을 종료하십시오.
첫 번째 옵션은 EXT3/EXT4 유형의 로컬 SR을 사용하며 호스트 설치 중에 생성됩니다. 두 번째 옵션은 명령줄에 지정된 EXT3/EXT4 유형의 SR을 사용합니다.
경고:
이 단계는 두 개 이상의 로컬 SR을 구성한 사용자에게만 필요합니다.
질문: 로컬 캐시는 언제 삭제됩니까?
답변: 로컬 캐시에는 두 가지 유형의 정보가 포함됩니다.
- 기본 이미지 디스크를 위한 공유 캐시. 이 공유 캐시 파일은 공유 스토리지에서 읽기 전용 VDI를 미러링하며, 개별 VDI에 대한 작업이 수행될 때 삭제되거나 재설정되지 않습니다.
-
각 VDI에 대한 VDI별 델타 디스크 캐시. 비영구 VM의 경우, VDI가 VM에 연결될 때(예: VM 시작 시) 델타 디스크 캐시가 재설정됩니다. 이 캐시 파일은 VDI 자체가 삭제될 때만 삭제됩니다. VDI를 삭제할 때 호스트가 오프라인이면, 시작 시 실행되는 SR 동기화가 캐시 파일을 가비지 수집합니다.
참고:
VM이 다른 호스트로 마이그레이션되거나 종료될 때 델타 디스크 캐시 파일은 호스트에서 삭제되지 않습니다.