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

これは未公開の文書です SUSE® Storage 1.12 (Dev).

複数のディスク

SUSE Storageは、ノード上でボリュームデータを保存するために複数のディスクの使用をサポートしています。

デフォルトでは、SUSE Storageはホストの`/var/lib/longhorn`ディレクトリにボリュームデータを保存します。ストレージに別のディスクを使用するには、新しいディスクを追加し、デフォルトのディレクトリのスケジューリングを無効にすることができます。このアプローチは、特定の要件に基づいてストレージを管理する柔軟性を提供します。

ディスクを追加

SUSE Storageにディスクを追加する前に、Longhornノードのホスト上のディレクトリにマウントしてください。

  1. ディスクを選択:Longhornストレージ用の物理または仮想ディスクを選択し、拡張ベースのファイルシステム(例:ext4またはXFS)でフォーマットします。

  2. ディスクをマウント:ディスクをホスト上のディレクトリにマウントします。例えば、`/mnt/example-disk`のように。ディレクトリがアクセス可能で正しく構成されていることを確認してください。

ディスクがマウントされた後、UIまたは`kubectl`コマンドラインツールを使用してSUSE Storageに追加できます。

SUSE Storage UIを使用

  1. *ノード*タブに移動し、ノードを選択して、ドロップダウンメニューから*ディスクの編集*を選択します。

  2. ディスクのマウントパスをディスクリストに追加します。

`kubectl`を使用

  1. `kubectl edit node.longhorn.io <node-name>`を実行してLonghornノードリソースを変更します。

  2. ディスクパスを`spec.disks`に追加します。次に例を示します。

    ...
    spec:
      ...
      disks:
        ...
        example-disk:
          allowScheduling: true
          diskDriver: ""
          diskType: filesystem
          evictionRequested: false
          path: /mnt/example-disk
          storageReserved: 0
          tags: []
    ...
  3. エディタを保存して終了します。

ディスクが追加されると:

  • SUSE Storageは、ディスクの最大容量や使用可能容量などのストレージ詳細を自動的に検出します。

  • ディスクがボリュームデータの保存に適している場合、SUSE Storageはボリュームをスケジュールし始めます。

  1. 他のSUSE Storageディスクですでに使用されているディスクパスを追加することはできません。

  2. SUSE Storageは、ファイルシステムIDを使用して重複マウントを検出します。したがって、同じノード上の他のディスクと*同じファイルシステムID*を持つディスクを追加することはできません。

    詳細については、問題 #2477を参照してください。

ルートディスク予約

オプションで、UIの*予約済みスペース*フィールドや`spec.disks.<disk-name>.storageReserved`を使用して、他の目的のためにディスクスペースの一部(バイト単位)を予約できます。SUSE Storageは、この予約済みスペースをボリュームデータに使用しません。

計算リソース(例えば、メモリやディスク)が圧迫されているときにノードの安定性を維持するために、`kubelet`は一部のスペースを空けておく必要があります。これらの重要なリソースが枯渇すると、ノードの不安定性につながる可能性があります。

デフォルトでは、SUSE Storageはルートディスクスペースの30%(/var/lib/longhorn)を予約しており、特に複数のボリュームをスケジュールした後に、`kubelet`による`DiskPressure`の状態などの問題を防ぎます。この動作は`storage-reserved-percentage-for-default-disk`設定によって制御されます。

ノード上のディスクに代替パスを使用する

ディスクに異なるパス(元のマウントポイントではなく)を使用したい場合、mount --bind`を使って代替パスを作成できます。シンボリックリンク(`ln -s)は*使用しないでください*。シンボリックリンクはLonghornポッド内で正しく解決されません。

ノード再起動後に代替パスが再マウントされることを確認してください。例えば、`/etc/fstab`に追加することで実現できます。

ディスクを削除する

ノードとディスクは、将来のスケジューリングから除外できます。ノードのスケジューリングが無効になっても、すでにノードにスケジュールされたストレージは自動的に解放されないことに注意してください。

ディスクを削除するには:

  1. ディスクのスケジューリングを無効にします。

  2. エラー状態にあるものを含め、ディスク上にレプリカやバックイメージが残らないことを確認してください。無効なディスクからレプリカを退避させる方法については、レプリカ退避用のディスクまたはノードの選択を参照してください。

ディスクが空でスケジューリングが無効になったら、安全にノード構成から削除できます。

設定

ボリュームスケジューリングに影響を与える2つのグローバル設定があります:

  • `StorageOverProvisioningPercentage`は、ディスク上で*スケジュール可能*な最大総ストレージを、その使用可能な容量に対して定義します。式は次のとおりです:

ScheduledStorage / (MaximumStorage - ReservedStorage)

デフォルトでは、この設定は`100`%です。

例えば、50 GiBが予約された200 GiBのディスクでは、SUSE Storageは150 GiBの使用可能スペースを考慮します。デフォルト設定では、SUSE Storageは最大150 GiBのボリュームデータをスケジュールできます。

ワークロードは通常、割り当てられたボリュームサイズ全体を消費しないため、SUSE Storageはデータを保存するためにスパースファイルを使用しており、この設定を増やすことは一般的に安全で、ディスクの利用効率を最適化するのに役立ちます。

  • `StorageMinimalAvailablePercentage`は、新しいレプリカをスケジュールするためにディスク上に残るべき最小の空きスペースの割合を指定します。式は次のとおりです:

AvailableStorage / MaximumStorage

デフォルトでは、この設定は`25`%です。

例えば、50 GiBが予約された200 GiBのディスクでは、SUSE Storageは利用可能なスペースが37.5 GiB(150 GiBの25%)を下回ると、新しいレプリカのスケジュールを停止します。新しいボリュームも、そのサイズが利用可能なスペースをその制限以下に押し下げる場合はスケジュールされません。

この設定は、ディスクが過剰に満杯になるのを防ぎ、スケジューリングのエラーやボリューム操作の問題を引き起こす可能性を減らします。

SUSE Storageは現在、すべてのシナリオで`StorageMinimalAvailablePercentage`制限を完全に強制することができません。

  1. Longhornボリュームは、特にスナップショットが取得されると、要求されたサイズよりも多くのスペースを使用する可能性があります。

  2. SUSE Storageはデフォルトでオーバープロビジョニングを許可します。