9.11. 仮想マシンをエクスポートする


仮想マシン (VM) とその関連ディスクをエクスポートして、別のクラスターにインポートしたり、フォレンジックボリューム分析などの別の用途に使用したりできます。

コマンドラインインターフェイスを使用して、VirtualMachineExport カスタムリソース (CR) を作成します。

または、virtctl vmexport コマンド を使用して VirtualMachineExport CR を作成し、エクスポートされたボリュームをダウンロードすることもできます。

注記

Migration Toolkit for Virtualization を使用して、OpenShift Virtualization クラスター間で仮想マシンを移行できます。

9.11.1. VirtualMachineExport カスタムリソースの作成

VirtualMachineExport カスタムリソース (CR) を作成して、VirtualMachineVirtualMachineSnapshot、または PersistentVolumeClaim CR から永続ボリューム要求 (PVC) をエクスポートできます。

エクスポートできるオブジェクトは次のとおりです。

  • 仮想マシン: 指定した仮想マシンの永続ボリューム要求をエクスポートします。
  • 仮想マシンスナップショット: VirtualMachineSnapshot CR に含まれる PVC をエクスポートします。
  • PVC: PVC をエクスポートします。PVC が virt-launcher Pod などの別の Pod で使用されている場合、エクスポートは PVC が使用されなくなるまで Pending 状態のままになります。

VirtualMachineExport CR は、エクスポートされたボリュームの内部および外部リンクを作成します。内部リンクはクラスター内で有効です。外部リンクには、Ingress または Route を使用してアクセスできます。

エクスポートサーバーは、次のファイル形式をサポートしています。

  • raw: raw ディスクイメージファイル。
  • gzip: 圧縮されたディスクイメージファイル。
  • dir: PVC ディレクトリーとファイル。
  • tar.gz: 圧縮された PVC ファイル。

前提条件

  • 仮想マシンをエクスポートするために、仮想マシンがシャットダウンされている。
  • OpenShift CLI (oc) がインストールされている。

手順

  1. 次の例に従って、VirtualMachineVirtualMachineSnapshot、または PersistentVolumeClaim CR からボリュームをエクスポートするための VirtualMachineExport マニフェストを作成し、example-export.yaml として保存します。

    VirtualMachineExport の例:

    apiVersion: export.kubevirt.io/v1beta1
    kind: VirtualMachineExport
    metadata:
      name: example-export
    spec:
      source:
        apiGroup: "kubevirt.io"
        kind: VirtualMachine
        name: example-vm
      ttlDuration: 1h
    • spec.source.apiGroup は、エクスポートするリソースの API グループを定義します。

      • VirtualMachine には kubevirt.io を使用してください。
      • VirtualMachineSnapshot には snapshot.kubevirt.io を使用してください。
      • PersistentVolumeClaim には "" を使用します。
    • spec.source.kind は、エクスポートのデータソースを定義します。このフィールドには主に 3 つの値が使用されます。

      • VirtualMachine
      • 仮想マシンのスナップショット
      • PersistentVolumeClaim
    • spec.ttlDuration は、エクスポートされたリソースが自動的に削除されるまでの時間を定義します。デフォルトは 2 時間です。
  2. VirtualMachineExport CR を作成します。

    $ oc create -f example-export.yaml
  3. VirtualMachineExport CR を取得します。

    $ oc get vmexport example-export -o yaml

    エクスポートされたボリュームの内部および外部リンクは、status スタンザに表示されます。

    出力例:

    apiVersion: export.kubevirt.io/v1beta1
    kind: VirtualMachineExport
    metadata:
      name: example-export
      namespace: example
    spec:
      source:
        apiGroup: ""
        kind: PersistentVolumeClaim
        name: example-pvc
      tokenSecretRef: example-token
    status:
      conditions:
      - lastProbeTime: null
        lastTransitionTime: "2022-06-21T14:10:09Z"
        reason: podReady
        status: "True"
        type: Ready
      - lastProbeTime: null
        lastTransitionTime: "2022-06-21T14:09:02Z"
        reason: pvcBound
        status: "True"
        type: PVCReady
      links:
        external:
          cert: |-
            -----BEGIN CERTIFICATE-----
            ...
            -----END CERTIFICATE-----
          volumes:
          - formats:
            - format: raw
              url: https://vmexport-proxy.test.net/api/export.kubevirt.io/v1beta1/namespaces/example/virtualmachineexports/example-export/volumes/example-disk/disk.img
            - format: gzip
              url: https://vmexport-proxy.test.net/api/export.kubevirt.io/v1beta1/namespaces/example/virtualmachineexports/example-export/volumes/example-disk/disk.img.gz
            name: example-disk
        internal:
          cert: |-
            -----BEGIN CERTIFICATE-----
            ...
            -----END CERTIFICATE-----
          volumes:
          - formats:
            - format: raw
              url: https://virt-export-example-export.example.svc/volumes/example-disk/disk.img
            - format: gzip
              url: https://virt-export-example-export.example.svc/volumes/example-disk/disk.img.gz
            name: example-disk
      phase: Ready
      serviceName: virt-export-example-export
    • status.links.external はIngress または Route を使用してクラスターの外部からアクセスできる外部リンクを定義します。
    • status.links.internal は、クラスター内でのみ有効な内部リンクを定義します。
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

Red Hat ドキュメントについて

Legal Notice

Theme

© 2026 Red Hat
トップに戻る