가상 머신 및 TRIM


17

SSD의 성능을 향상시키기 위해 TRIM 지원이 도입되었지만 가상 머신을 최적화하여 가상 디스크를 최적화하는 데 도움이 될 수도 있습니다 (예 : 물리적 파티션의 스토리지가 필요하지 않은 가상 디스크의 어느 부분을 알고 있는지). 어떤 VM 머신도 이런 식으로 TRIM을 사용합니까?

답변:


9
  • Virtualbox 는 v4.2부터 TRIM을 지원합니다
  • 스토리지 : VDI 이미지 사용시 SATA 및 IDE 용 TRIM 및 SCSI 용 UNMAP을 통해 사용하지 않는 이미지 블록을 버리는 기능 지원

http://www.fb-developers.info/blog/2012/virtualbox-v4-2-is-coming/

VHDX는 Windows Server 2012에 도입 된 새로운 가상 하드 디스크 형식으로 최대 64TB의 탄력적 인 고성능 가상 디스크를 만들 수 있습니다. VHDX 형식은 다음과 같은 성능 이점도 제공합니다.

  • ...
  • 데이터 표현의 효율성으로 파일 크기가 작아지고 기본 물리적 저장 장치가 사용되지 않은 공간을 회수 할 수 있습니다. ( 트림에는 패스 스루 또는 SCSI 디스크와 트림 호환 하드웨어가 필요 합니다.)

https://msdn.microsoft.com/en-us/library/windows/hardware/dn567657(v=vs.85).aspx

사용 사례

  • SSD에 마운트 된 소비자 가상 하드 디스크 (VHD) :

    VHD는 처음에는 사용하지 않은 '깨끗한'미디어에 마운트됩니다. VHD를 사용함에 따라 VHD는 파일 등을 위해 저장 매체의 일부를 소비합니다. 저장 매체에서 파일을 삭제하면 완전한 VHD가 SSD에 하나의 파일로 저장되므로 이러한 파일은 SSD에서 제거되지 않습니다. Hyper-V 환경은 VHD 환경에서 파일 삭제가 발생할 때 삭제 된 모든 리전에 대해 File TRIM을 호출합니다. File_TRIM은 SSD 성능으로 최적화 될 수 있도록 SSD로 변환됩니다.
  • 씬 프로비저닝 된 SAN에 마운트 된 소비자 VHD :

    VHD는 초기에 씬 프로비저닝 환경의 최소 슬래브에 마운트됩니다. 파일이 VHD에 저장되면 VHD의 스토리지 풋 프린트는 여러 슬래브에서 커집니다. VHD에서 파일이 제거되면 Hyper-V는 File_TRIM을 기본 씬 프로비저닝 된 SAN으로 호출합니다. TRIM이 SLAB 입도보다 큰 경우 SAN에서 SLAB를 제거 할 수 있으므로 해당 SAN에서 VHD의 설치 공간을 줄일 수 있습니다.

VHD가 Windows 8 기반 서버에 상주하는 경우 Storage Optimizer는 TRIM을 전송하여 마운트 된 VHD 내에서 VHD의 슬래브 설치 공간을 줄입니다.

https://msdn.microsoft.com/en-us/library/hh848053(v=vs.85).aspx

호스트 시스템에 대한 VMWare Workstation Pro 설명서 센터의 디스크 드라이브 요구 사항-SSD (Solid-State Drive) 에도 언급되어 있습니다 .

호스트 시스템에 물리적 SSD (Solid-State Drive)가있는 경우 호스트는 게스트 운영 체제에 SSD에서 실행되고 있음을 알려줍니다.

이를 통해 게스트 운영 체제가 동작을 최적화 할 수 있습니다. 가상 시스템이 SSD를 인식하고이 정보를 사용하는 방법은 게스트 운영 체제 및 가상 디스크의 디스크 유형 (SCSI, SATA 또는 IDE)에 따라 다릅니다.

  • Windows 8, Windows 10, Ubuntu 및 Red Hat Enterprise Linux 가상 머신에서 모든 드라이브 유형은 가상 디스크를 SSD 드라이브로보고 할 수 있습니다.
  • Windows 7 가상 머신에서는 IDE 및 SATA 가상 디스크 만 가상 디스크를 SSD로보고 할 수 있습니다. SCSI 가상 디스크는 가상 머신에서 시스템 드라이브로 사용될 때 SSD로, 또는 가상 머신 내에서 데이터 드라이브로 사용될 때 기계적 드라이브로만보고합니다.
  • Mac 가상 머신에서는 SATA 가상 디스크 만 SSD로보고됩니다. IDE 및 SCSI 가상 디스크는 기계 드라이브로보고됩니다.

가상 머신 운영 체제를 사용하여 가상 머신이 SSD를 가상 디스크로 사용하고 있는지 확인하십시오.

  • vSphereESXi 와 같은 다른 VMware 제품에도 동일하게 적용됩니다.

Q. VMware는 vSphere 6.0의 게스트 OS에서 직접 UNMAP을 지원합니까?

예. vSphere 6.0에서는 공간을 확보하기 위해 게스트 OS에서 직접 발급하는 UNMAP을 지원합니다.

Q. UNMAP을 실행하는 데 필요한 전제 조건은 무엇입니까?

충족해야하는 여러 가지 전제 조건이 있습니다. 이것들은:

  • VMDK는 씬 프로비저닝되어야합니다.
  • 가상 머신 하드웨어 버전은 11이어야합니다 (ESXi 6.0)
  • 고급 설정 EnableBlockDelete는 1로 설정해야합니다.
  • 게스트 OS는 디스크를 씬으로 식별 할 수 있어야합니다 (Windows 2012 [2015 년 10 월 30 일 업데이트]는 B2 모드 페이지를 사용하여이를 수행함)

Q. 회수는 UNMAP에서만 작동합니까? TRIM은 어떻습니까?

이것은 "의존"답변입니다. TRIM은 기본 장치가 SSD – 솔리드 스테이트 디스크 인 경우에만 사용됩니다. 내가 이해 한 바에 따르면 TRIM은 I / O 스택에서 UNMAP으로 변환됩니다. 그러나 TRIM이 UNMAP으로 변환되는 데는 몇 가지 문제가 있습니다. UNMAP은 VMFS의 특정 블록 경계에서 작동하지만 TRIM에는 이러한 제한이 없습니다. 따라서 UNMAP으로 변환 된 특정 TRIM은 블록 정렬 문제로 인해 실패 할 수 있습니다.

http://cormachogan.com/2015/05/07/vsphere-6-0-storage-features-part-8-vaai-unmap-changes/

http://www.codyhosterman.com/2015/04/direct-guest-os-unmap-in-vsphere-6-0/


VMware가 TRIM을 지원하지 않아서 무너 졌기 때문에 VMware가 향후 버전에서이 마케팅 주장을 제거했다고 생각합니다. 참조 여기여기에
톰 헤일에게

1

TRIM을 지원하려면 기본 하드웨어에 대한 자세한 지식이 필요합니다. 정의상 가상 머신 ( VM 게스트 )은 가상 하드웨어에서 실행되므로 해당 하드 드라이브 나 SSD의 세부 사항을 인식하지 못합니다.

따라서 VM 호스트 운영 체제가 TRIM을 이해하면 그 위에서 실행중인 모든 VM 게스트에 충분해야합니다.

일부 VM 호스트는 물리적 드라이브를 "통과"하여 VM 게스트의 운영 체제에 직접 마운트 할 수 있습니다. 정확한 구현에 따라 이론적으로 게스트가 SSD의 TRIM 기능을 지원할 수 있습니다. 대부분의 경우와 마찬가지로 마일리지가 다를 수 있으며 환경에 중요한 경우 커밋하기 전에 철저히 테스트해야합니다.


1
내가 추가 할 수있는 유일한 것은 vm 하드 드라이브 파일이 동적이면 파일을 축소 할 수 있고 호스트가 적절한 경우 SSD에 새로 해제 된 섹터를 잘라내도록 지시하는 것입니다. 파일이 기존 호스트 섹터를 수정하지 않고 커질 때 새 / 트림 된 섹터가 게스트의 쓰기에 사용될 수 있기 때문에 vm 하드 드라이브 파일 쓰기 속도가 빨라질 수 있습니다. 일반적으로 vm 하드 드라이브 파일의 크기를 수정하지만 HD에서 조각화를 방지합니다. SSD를 사용하면 동적이고 주기적으로 축소 될 것입니다.
Scott McClenning

2
-1. TRIM / Unmap이 동적 크기 VM 이미지 파일을 축소하는 데 사용된다는 사실이 누락되었습니다. 결과적으로 호스트 OS는 기본 하드웨어에서 TRIM / 언맵을 발행 할 수 있습니다. 씬 프로비저닝 개념의 중요한 부분입니다.
rustyx

-1

TRIM은 SSD에 대한 쓰기가 512K 블록으로 수행되어야하고 실제로 파일 또는 파일에 의해 사용되는 블록의 양을 결정하는 것이 SSD 드라이브 자체에서 불가능하며 OS 및 파일 시스템에 의해 통신되어야하기 때문에 발명되었습니다.

보다

http://en.wikipedia.org/wiki/TRIM

편집하다:

위키 링크는 내가 할 수있는 것보다 더 잘 말합니다.

TRIM 명령은 디스크 이미지 파일에 저장된 디스크에서는 작동하지 않습니다. 이것은 컴퓨터 파일을 완전히 삭제하거나 끝에서 잘릴 수 있기 때문입니다. 이 문제는 가상 디스크 서비스, 가상 시스템 등과 같은 응용 프로그램에 영향을줍니다.


6
VM은 사용자가 가상 ​​디스크 재 포장 및 축소를 요청할 때 사용되도록 트리밍 된 블록에 대한 정보를 유지할 수 있습니다. VMWare는 현재 비슷한 작업을 수행하지만 VM 내부의 모든 여유 공간을 먼저 덮어 써서 작동합니다.
liori

6
문제는 가상 디스크의 TRIM 작업을 호스트 디스크의 TRIM 작업으로 변환하는 것이 아닙니다. 지적했듯이 직접 작동하지는 않습니다. 문제는 가상 디스크의 TRIM 호출을 호스트 디스크의 이미지 파일 단축으로 변환하는 것에 관한 것입니다.
Pascal Cuoq

1
있습니다 스페어 파일 VM을위한 트림-수있는 디스크 이미지로 사용하기에 적합해야한다.
사용자가 아닌 사용자
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.