9.3. virtctl 명령

virtctl 클라이언트는 OpenShift Virtualization 리소스를 관리하는 명령줄 유틸리티입니다.

표 9.2. virtctl 일반 명령

명령설명

virtctl version

virtctl 클라이언트 및 서버 버전을 확인합니다.

virtctl help

virtctl 명령 목록을 확인합니다.

virtctl <command> -h|--help

특정 명령의 옵션 목록을 확인합니다.

virtctl options

virtctl 명령의 글로벌 명령 옵션 목록을 확인합니다.

9.3.1. VM 및 VMI 관리 명령

virtctl 을 사용하여 VM(가상 머신) 또는 VMI(가상 머신 인스턴스) 상태를 관리하고 VM을 마이그레이션할 수 있습니다.

표 9.3. virtctl VM 관리 명령

명령설명

virtctl start <vm_name>

VM을 시작합니다.

virtctl start --paused <vm_name>

일시 중지된 상태에서 VM을 시작합니다. 이 옵션을 사용하면 VNC 콘솔에서 부팅 프로세스를 중단할 수 있습니다.

virtctl stop <vm_name>

VM을 중지합니다.

virtctl stop <vm_name> --grace-period 0 --force

VM을 강제 중지합니다. 이 옵션을 사용하면 데이터 불일치 또는 데이터 손실이 발생할 수 있습니다.

virtctl pause vm|vmi <vm_name>

VM 또는 VMI를 일시 중지합니다. 머신 상태는 메모리에 유지됩니다.

virtctl unpause vm|vmi <vm_name>

VM 또는 VMI의 일시 정지를 해제합니다.

virtctl migrate <vm_name>

VM을 마이그레이션합니다.

virtctl restart <vm_name>

VM을 다시 시작합니다.

9.3.2. VM 및 VMI 연결 명령

virtctl 을 사용하여 직렬 콘솔에 연결하고, 포트를 노출하고, 프록시 연결을 설정하고, 포트를 지정하고, VM에 대한 VNC 연결을 열 수 있습니다.

표 9.4. virtctl console,expose, vnc 명령

명령설명

virtctl console <vmi_name>

VMI의 직렬 콘솔에 연결합니다.

virtctl expose <vm_name>

VM 또는 VMI의 지정된 포트를 전달하고 서비스를 노드의 지정된 포트에 노출하는 서비스를 생성합니다.

virtctl vnc --kubeconfig=$KUBECONFIG <vmi_name>

VMI에 대한 VNC(Virtual Network Client) 연결을 엽니다.

VNC를 통해 VMI의 그래픽 콘솔에 액세스하려면 로컬 머신에 원격 뷰어가 필요합니다.

virtctl vnc --kubeconfig=$KUBECONFIG --proxy-only=true <vmi_name>

포트 번호를 표시하고 VNC 연결을 통해 뷰어를 사용하여 VMI에 수동으로 연결합니다.

virtctl vnc --kubeconfig=$KUBECONFIG --port=<port-number> <vmi_name>

해당 포트를 사용할 수 있는 경우 지정된 포트에서 프록시를 실행할 포트 번호를 지정합니다.

포트 번호를 지정하지 않으면 프록시는 임의의 포트에서 실행됩니다.

9.3.3. VM 볼륨 내보내기 명령

virtctl vmexport 명령을 사용하여 VM, VM 스냅샷 또는 PVC(영구 볼륨 클레임)에서 내보낸 볼륨을 생성, 다운로드 또는 삭제할 수 있습니다.

표 9.5. virtctl vmexport 명령

명령설명

virtctl vmexport create <vmexport_name> --vm|snapshot|pvc=<object_name>

VirtualMachineExport CR(사용자 정의 리소스)을 생성하여 VM, VM 스냅샷 또는 PVC에서 볼륨을 내보냅니다.

  • --VM: VM의 PVC를 내보냅니다.
  • --snapshot: VirtualMachineSnapshot CR에 포함된 PVC를 내보냅니다.
  • --PVC: PVC를 내보냅니다.
  • 선택 사항: --ttl=1h 는 라이브 시간을 지정합니다. 기본 기간은 2 시간입니다.

virtctl vmexport delete <vmexport_name>

VirtualMachineExport CR을 수동으로 삭제합니다.

virtctl vmexport 다운로드 <vmexport_name> --output=<output_file> --volume=<volume_name>

VirtualMachineExport CR에 정의된 볼륨을 다운로드합니다.

  • --output 은 파일 형식을 지정합니다. 예: disk.img.gz.
  • --volume 은 다운로드할 볼륨을 지정합니다. 하나의 볼륨만 사용할 수 있는 경우 이 플래그는 선택 사항입니다.

선택 사항:

  • --keep-vme 는 다운로드 후 VirtualMachineExport CR을 유지합니다. 기본 동작은 다운로드 후 VirtualMachineExport CR을 삭제하는 것입니다.
  • --insecure 는 비보안 HTTP 연결을 활성화합니다.

virtctl vmexport 다운로드 <vmexport_name> --<vm|snapshot|pvc>=<object_name> --output=<output_file> --volume=<volume_name>

VirtualMachineExport CR을 생성한 다음 CR에 정의된 볼륨을 다운로드합니다.

9.3.4. VM 메모리 덤프 명령

virtctl memory-dump 명령을 사용하여 PVC에서 VM(가상 머신) 메모리 덤프를 출력할 수 있습니다. 기존 PVC를 지정하거나 --create-claim 플래그를 사용하여 새 PVC를 생성할 수 있습니다.

사전 요구 사항

  • PVC 볼륨 모드는 FileSystem 여야 합니다.
  • PVC는 메모리 덤프를 포함할 수 있을 만큼 커야 합니다.

    PVC 크기를 계산하는 공식은 (VMMemorySize + 100Mi) * FileSystemOverhead 입니다. 여기서 100Mi 는 메모리 덤프 오버헤드입니다.

  • 다음 명령을 실행하여 HyperConverged 사용자 정의 리소스에서 핫플러그 기능 게이트를 활성화해야 합니다.

    $ oc patch hco kubevirt-hyperconverged -n openshift-cnv \
      --type json -p '[{"op": "add", "path": "/spec/featureGates", \
      "value": "HotplugVolumes"}]'

메모리 덤프 다운로드

메모리 덤프를 다운로드하려면 virtctl vmexport download 명령을 사용해야 합니다.

$ virtctl vmexport download <vmexport_name> --vm\|pvc=<object_name> \
  --volume=<volume_name> --output=<output_file>

표 9.6. virtctl memory-dump 명령

명령설명

virtctl memory-dump get <vm_name> --claim-name=<pvc_name>

PVC에 VM의 메모리 덤프를 저장합니다. 메모리 덤프 상태는 VirtualMachine 리소스의 status 섹션에 표시됩니다.

선택 사항:

  • --create-claim 은 적절한 크기로 새 PVC를 생성합니다. 이 플래그에는 다음 옵션이 있습니다.

    • --storage-class=<storage_class& gt; : PVC의 스토리지 클래스를 지정합니다.
    • --access-mode=<access_mode&gt; : ReadWriteOnce 또는 ReadWriteMany 를 지정합니다.

virtctl memory-dump get <vm_name>

동일한 PVC를 사용하여 virtctl memory-dump 명령을 재실행합니다.

이 명령은 이전 메모리 덤프를 덮어씁니다.

virtctl memory-dump remove <vm_name>

메모리 덤프를 제거합니다.

대상 PVC를 변경하려면 메모리 덤프를 수동으로 제거해야 합니다.

이 명령은 VM과 PVC 간의 연결을 제거하여 메모리 덤프가 VirtualMachine 리소스의 status 섹션에 표시되지 않도록 합니다. PVC는 영향을 받지 않습니다.

9.3.5. 이미지 업로드 명령

virtctl image-upload 명령을 사용하여 VM 이미지를 데이터 볼륨에 업로드할 수 있습니다.

표 9.7. virtctl image-upload 명령

명령설명

virtctl image-upload dv <datavolume_name> --image-path=</path/to/image> --no-create

VM 이미지를 이미 존재하는 데이터 볼륨에 업로드합니다.

virtctl image-upload dv <datavolume_name> --size=<datavolume_size> --image-path=</path/to/image>

VM 이미지를 지정된 요청된 크기의 새 데이터 볼륨에 업로드합니다.

9.3.6. 환경 정보 명령

virtctl 을 사용하여 버전, 파일 시스템, 게스트 운영 체제 및 로그인한 사용자에 대한 정보를 볼 수 있습니다.

표 9.8. virtctl 환경 정보 명령

명령설명

virtctl fslist <vmi_name>

게스트 시스템에서 사용 가능한 파일 시스템을 확인합니다.

virtctl guestosinfo <vmi_name>

게스트 머신의 운영 체제에 대한 정보를 봅니다.

virtctl userlist <vmi_name>

게스트 머신에서 로그인한 사용자를 확인합니다.