この文書は自動機械翻訳技術を使用して翻訳されています。 正確な翻訳を提供するように努めておりますが、翻訳された内容の完全性、正確性、信頼性については一切保証いたしません。 相違がある場合は、元の英語版 英語 が優先され、正式なテキストとなります。

ボリュームを作成する

空のボリュームを作成する

UI

ヘッダーセクション

  1. ボリューム Name を設定します。

  2. (オプション)ボリューム用の Description を入力します。

基本タブ

  1. NewSource を選択します。

  2. 既存の`StorageClass`を選択します。

  3. ボリュームの Size を構成します。

    空のボリュームを作成
  • 選択した StorageClass のレプリカ数が 1 で、ボリュームが仮想マシンに接続されている場合、仮想マシンは 移行不可 と見なされます。

  • ボリュームが作成されると、選択した StorageClass から関連するパラメータがボリュームにコピーされます。後で StorageClass のパラメータを変更しても、ボリュームには書き戻されません。

オーバーサイズのボリューム

SUSE Virtualization v1.5.0 では SUSE Storage v1.8.1 を使用しており、オーバーサイズのボリューム(例えば、サイズが 999999 Gi のもの)は 準備完了ではない とマークされ、削除できません。

この問題を解決するには、次の手順を実行してください。

  1. PVC webhook ルールを一時的に削除します。

    RULE_INDEX=$(kubectl get \
      validatingwebhookconfiguration longhorn-webhook-validator -o json \
      | jq '.webhooks[0].rules | map(.resources[0] == "persistentvolumeclaims") | index(true)')
    
    if [ -n "$RULE_INDEX" -a "$RULE_INDEX" != "null" ]; then
      kubectl patch validatingwebhookconfiguration longhorn-webhook-validator \
        --type='json' \
        -p="[{'op': 'remove', 'path': '/webhooks/0/rules/$RULE_INDEX'}]"
    fi
  2. 関連する PVC が削除されるのを待ちます。

  3. PVC webhook ルールを復元して、検証を再有効化します。

    kubectl patch validatingwebhookconfiguration longhorn-webhook-validator \
      --type='json' \
      -p='[{"op": "add", "path": "/webhooks/0/rules/-", "value": {"apiGroups":[""],"apiVersions":["v1"],"operations":["UPDATE"],"resources":["persistentvolumeclaims"],"scope":"Namespaced"}}]'

この問題は SUSE Storage v1.8.2 で対処される予定で、SUSE Virtualization v1.5.1 に含まれる可能性があります。

関連する問題: #8096 および #10741

API
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  annotations:
    volume.beta.kubernetes.io/storage-provisioner: driver.longhorn.io
    volume.kubernetes.io/storage-provisioner: driver.longhorn.io
  name: my-vol
  namespace: default
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 10Gi
  volumeMode: Block
  volumeName: pvc-my-vol

新しいボリュームを作成する際には vmstate-persistence および longhorn-static StorageClass を使用しないでください。 vmstate-persistence は TPM および UEFI の永続性に使用され、longhorn-static は既存の SUSE Storage ボリュームの管理に使用されます。

テラフォーム

Harvester Terraform Providerを使用してSUSE Virtualizationに空のボリュームを作成するには、`harvester_volume`リソースブロックを定義します。

resource "harvester_volume" "empty-volume" {
  name      = "empty-volume"
  namespace = "default"

  size = "10Gi"
}

イメージボリュームの作成

  • UI

  • API

  • テラフォーム

ヘッダーセクション

  1. ボリューム Name を設定します。

  2. (オプション)ボリューム用の Description を入力します。

基本タブ

  1. VM ImageSource を選択します。

  2. 既存の Image を選択します。

  3. ボリュームの Size を構成します。

    VMイメージからボリュームを作成する際は、ボリュームサイズがイメージサイズ以上であることを確認してください。設定されたボリュームサイズが基になるイメージのサイズよりも小さい場合、ボリュームが破損する可能性があります。これはqcow2イメージにとって特に重要です。なぜなら、仮想サイズは通常物理サイズよりも大きいためです。デフォルトでは、SUSE Virtualizationはボリュームサイズをイメージの仮想サイズに設定します。

    イメージボリュームを作成

ネームスペース`default`からイメージ`image-8rb2z`の内容で初期化されたボリュームを作成します。

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  annotations:
    harvesterhci.io/imageId: default/image-8rb2z
    volume.beta.kubernetes.io/storage-provisioner: driver.longhorn.io
    volume.kubernetes.io/storage-provisioner: driver.longhorn.io
  name: foobar
  namespace: default
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 5Gi
  storageClassName: longhorn-image-8rb2z
  volumeMode: Block
  volumeName: pvc-foobar

テラフォームを使用してSUSE Virtualizationにボリュームを作成し、イメージの内容で初期化するには、`harvester_volume`リソースブロックを定義し、`image`プロパティを設定します。

resource "harvester_volume" "opensuse154-image-disk" {
  name      = "opensuse154-image-disk"
  namespace = "default"

  size  = "10Gi"
  image = harvester_image.opensuse154.id
}