第5章 ローカルストレージデプロイメント用に同じクラスターで複数のデバイスクラスを使用したストレージのスケーリング
OpenShift Data Foundation は、同じクラスター内の OSD 用の複数のデバイスクラスの作成をサポートします。作成する追加のデバイスクラスにより、以下が可能になります。
- 同じノードで異なるタイプのディスクを使用する
- 同じノードまたは別のノードで、同じタイプの別のディスクサイズを使用する
- 異なるノードセットに同じタイプのディスクを分離する
- ローカルディスクや論理ユニット番号 (LUN) など、Storage Area Network (SAN) とは異なるリソースを使用する
同じクラスター内に複数のデバイスクラスを作成するには、次のステップを実行する必要があります。
ディスクの追加
同じノードまたは新規ノード上のローカルボリュームセットを一意に識別する新規ディスクをアタッチします。
注記ディスクを追加する前に、既存のローカルボリュームセット
localblock
のmaxSize
またはDisksFilter
パラメーターを変更して、新規に作成された PV を使用しないようにします。- 新しいローカルボリュームセットの作成
- 新しいストレージの接続
5.1. 新しいローカルボリュームセットの作成
異なるサイズで同じタイプのデバイスを使用する場合は、この手順を使用できます。
前提条件
既存のローカルボリュームセット
localblock
のmaxSize
パラメーターを変更し、既存のローカルボリュームセットが新規に作成された PV を使用しないようにします。以下に例を示します。$ oc -n openshift-local-storage patch localvolumesets.local.storage.openshift.io localblock -n openshift-local-storage -p '{"spec": {"deviceInclusionSpec": {"maxSize": "120Gi"}}}' --type merge
この例では、デプロイメント時に作成される既存のローカルボリュームセット
localblock
にはmaxSize
が設定されていない可能性があります。そのため、より高い値 (130Gi) で新しく追加されたディスクを新しいローカルボリュームセットが確実に使用し、既存のローカルボリュームセットの制限と重ならないようにするために、既存のlocalblock
のmaxSize
制限を 120Gi に設定します。- 新しいローカルボリュームセットを作成する際に、ディスクを識別できるように、異なるノード、異なるディスクサイズ、または異なるディスクタイプなどの一意のフィルターを設定します。
- 新しいディスクを追加します。たとえば、サイズが 130Gi の 3 つの新しい SSD/NVME ディスクを追加します。
手順
-
OpenShift Web コンソールから、Operators
Installed Operators をクリックします。 - Project ドロップダウンリストから、ローカルストレージ Operator がインストールされているプロジェクトを選択してください。
- Local Storage をクリックします。
- Local Volume Sets タブをクリックします。
- Local Volume Sets ページで、Create Local Volume Set ボタンをクリックします。
Local Volume Set と Storage Class の名前を入力します。
デフォルトでは、ストレージクラス名としてローカルボリュームセット名が表示されます。名前を変更できます。
Filter Disks By として次のいずれかを選択します。
Disks on all nodes
すべてのノードにある選択したフィルターに一致する利用可能なディスクを使用します。
Disks on selected nodes
選択したノードにある選択したフィルターにのみ一致する利用可能なディスクを使用します。
-
Disk Type の利用可能なリストから、
SSD/NVMe
を選択します。 Advanced セクションを拡張し、以下のオプションを設定します。
- ボリュームモード
- Volume Mode で Block が選択されていることを確認します。
- デバイスタイプ
- ドロップダウンリストから 1 つ以上のデバイスタイプを選択します。
- ディスクサイズ
- デバイスに含める必要がある最小サイズと、デバイスの最大利用可能サイズを設定します。
- ディスクの最大数の制限
- これは、ノードで作成できる PV の最大数を示します。このフィールドが空のままの場合、PV は一致するノードで利用可能なすべてのディスクに作成されます。
- Create をクリックします。
- 新しいローカルボリュームセットに新しく作成された PV が使用可能になるまで待ちます。
検証手順
ローカルボリュームセットが作成されていることを確認します。
$ oc get localvolumeset -n openshift-local-storage NAME AGE localblock 16h localvolume2 43m
ローカルストレージクラスを確認します。
oc get sc NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE localblock kubernetes.io/no-provisioner Delete WaitForFirstConsumer false 15h localvolume2 kubernetes.io/no-provisioner Delete WaitForFirstConsumer false 27m ocs-storagecluster-ceph-rbd openshift-storage.rbd.csi.ceph.com Delete Immediate true 15h [...]
PV が使用可能になるまで待機し、新しいストレージクラス
localvolume2
を使用していることを確認します。以下に例を示します。
$ oc get pv | grep localvolume2 local-pv-14c0b1d 130Gi RWO Delete Available localvolume2 <unset> 8m55s local-pv-41d0d077 130Gi RWO Delete Available localvolume2 <unset> 7m24s local-pv-6c57a345 130Gi RWO Delete Available localvolume2 <unset> 5m4s