개발 및 준비 목적으로 개별 가상 하드 디스크(vmdk 컨테이너)의 복제본을 생성하고 이를 다른 시스템으로 이동/배포해야 하는 경우가 많습니다.
작동 중인 POC를 해킹할 수 있었지만 이제 제어하고 싶지 않은 많은 가상 머신에서 작동하는 일반적인 방법이 필요합니다. ESX 데이터 저장소(가상 머신당 많은 가상 HDD가 있음)의 실제 vmdk 파일에 블록 장치를 매핑하는 데 문제가 있습니다.
이 vmdk 확인은 개별 가상 머신에서 수행되도록 설계되었으며 모든 ESXi 호스트에 대한 SSH 액세스 권한이 있습니다. 이를 통해 vmdk 복제본을 생성하고 검색할 수 있습니다. (예, 이것은 매우 해키적이고 위험합니다.)
예를 들어 결국에는 스크립트에 질문을 하면 스크립트 what's the corresponding file of /dev/sdd?
가 응답해야 합니다./vmfs/volumes/12345678-12345678-1234-123456789abc/foobar/filenamewithoutsemanticalinformation.vmdk
가상 머신 내의 특정 블록 장치에 매핑된 vmdk 파일의 실제 경로를 확인하는 방법은 무엇입니까?
VM 내부의 SCSI 대상 ID를 vmx 파일의 vHDD 항목과 일치시키는 방법에 대한 아이디어가 있지만 이것이 신뢰할 수 있는 정보인지는 모르겠습니다.
고쳐 쓰다
잠시 동안 사용해 본 후 SCSI 컨트롤러와 대상 ID의 일치가 안정적이고 쉽게 제어할 수 있다는 확신이 들었습니다. 이 경우 신뢰할 수 있다는 것은 ID가 시스템에 의해 변경되지 않으며 vmx 파일에 이름과 번호가 지정된 대로 게스트에게 완전히 노출된다는 의미입니다. 이 중 하나를 사용하여 lsscsi
블록 장치의 컨트롤러 및 대상 ID를 가져옵니다. 그런 다음 <controller>:<target>.filename
vmx 파일을 grep하고 결과에서 파일 이름을 추출 할 수 있습니다 .
올바른 vmx 파일을 찾는 것은 새로운 문제입니다. 이는 find-grep
데이터 저장소의 모든 vmx 파일에서 가상 머신의 MAC 주소를 조회하여 수행됩니다. 이는 가장 좋은 방법이 아니며 대규모 설치에는 권장되지 않습니다.