This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.2.12. ローカルボリュームを使用した永続ストレージ
OpenShift Container Platform は、ローカルボリュームを使用する永続ストレージでプロビジョニングすることが可能です。ローカルの永続ボリュームを使用すると、標準の PVC インターフェースを使用して、ディスクやパーティションなどのローカルのストレージデバイスにアクセスできます。
ローカルボリュームは、Pod をノードに手動でスケジュールせずに使用できます。ボリュームのノード制約がシステムによって認識されるためです。ただし、ローカルボリュームは、依然として基礎となるノードの可用性に依存しており、すべてのアプリケーションに適している訳ではありません。
ローカルボリュームは、静的に作成された永続ボリュームとしてのみ使用できます。
2.12.1. ローカルストレージ Operator のインストール リンクのコピーリンクがクリップボードにコピーされました!
ローカルストレージ Operator はデフォルトで OpenShift Container Platform にインストールされません。以下の手順を使用してこの Operator をインストールし、クラスター内でローカルボリュームを有効にできるように設定します。
前提条件
- OpenShift Container Platform Web コンソールまたはコマンドラインインターフェース (CLI) へのアクセス。
手順
local-storage
プロジェクトを作成します。oc new-project local-storage
$ oc new-project local-storage
Copy to Clipboard Copied! Toggle word wrap Toggle overflow オプション: マスターおよびインフラストラクチャーノードでのローカルストレージの作成を許可します。
ロギングやモニタリングなどのコンポーネントに対応するために、ワーカーノードだけではなく、ローカルストレージ Operator を使用してマスターおよびインフラストラクチャーノードでボリュームを作成する必要のある場合があります。
マスターおよびインフラストラクチャーノードでローカルストレージを作成できるようにするには、以下のコマンドを入力して容認を DaemonSet に追加します。
oc patch ds local-storage-local-diskmaker -n local-storage -p '{"spec": {"template": {"spec": {"tolerations":[{"operator": "Exists"}]}}}}'
$ oc patch ds local-storage-local-diskmaker -n local-storage -p '{"spec": {"template": {"spec": {"tolerations":[{"operator": "Exists"}]}}}}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc patch ds local-storage-local-provisioner -n local-storage -p '{"spec": {"template": {"spec": {"tolerations":[{"operator": "Exists"}]}}}}'
$ oc patch ds local-storage-local-provisioner -n local-storage -p '{"spec": {"template": {"spec": {"tolerations":[{"operator": "Exists"}]}}}}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
UI での操作
Web コンソールからローカルストレージ Operator をインストールします。
- OpenShift Container Platform Web コンソールにログインします。
-
Operators
OperatorHub に移動します。 - Local Storage をフィルターボックスに入力して、ローカルストレージ Operator を見つけます。
- Install をクリックします。
- Create Operator Subscription ページで、A specific namespace on the cluster を選択します。ドロップメニューから local-storage を選択します。
- Update Channel および Approval Strategy の値を必要な値に調整します。
- Subscribe をクリックします。
これが完了すると、ローカルストレージ Operator は Web コンソールの Installed Operators セクションに一覧表示されます。
-
Operators
OperatorHub に移動します。 - Local Storage をフィルターボックスに入力して、ローカルストレージ Operator を見つけます。
- Install をクリックします。
- Create Operator Subscription ページで、A specific namespace on the cluster を選択します。ドロップメニューから local-storage を選択します。
- Update Channel および Approval Strategy の値を必要な値に調整します。
- Subscribe をクリックします。
-
Operators
- これが完了すると、ローカルストレージ Operator は Web コンソールの Installed Operators セクションに一覧表示されます。
CLI からの操作
CLI からローカルストレージ Operator をインストールします。
ローカルストレージ Operator の namespace、OperatorGroup、およびサブスクリプションを定義するために、オブジェクト YAML ファイルを作成します (例:
local-storage.yaml
)。Local-storage の例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- このフィールドは、OpenShift Container Platform のリリースの選択に一致するように編集できます。
以下のコマンドを実行して、ローカルストレージ Operator オブジェクトを作成します。
oc apply -f local-storage.yaml
$ oc apply -f local-storage.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow この時点で、Operator Lifecycle Manager (OLM) はローカルストレージ Operator を認識できるようになります。Operator の ClusterServiceVersion (CSV) はターゲット namespace に表示され、Operator で指定される API は作成用に利用可能になります。
すべての Pod およびローカルストレージ Operator が作成されていることを確認して、ローカルストレージのインストールを検証します。
必要な Pod すべてが作成されていることを確認します。
oc -n local-storage get pods
$ oc -n local-storage get pods NAME READY STATUS RESTARTS AGE local-storage-operator-746bf599c9-vlt5t 1/1 Running 0 19m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ClusterServiceVersion (CSV) YAML マニフェストをチェックして、ローカルストレージ Operator が
local-storage
プロジェクトで利用できることを確認します。oc get csvs -n local-storage
$ oc get csvs -n local-storage NAME DISPLAY VERSION REPLACES PHASE local-storage-operator.4.2.26-202003230335 Local Storage 4.2.26-202003230335 Succeeded
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
すべてのチェックが渡されると、ローカルストレージ Operator が正常にインストールされます。
2.12.2. ローカルボリュームのプロビジョニング リンクのコピーリンクがクリップボードにコピーされました!
ローカルボリュームは動的プロビジョニングで作成できません。代わりに、PersistentVolume がローカルストレージ Operator によって作成される必要があります。このプロビジョナーは、定義されたリソースで指定されているパスでデバイス (ファイルシステムおよびブロックボリュームの両方) を検索します。
前提条件
- ローカルストレージ Operator がインストールされていること。
- ローカルディスクが OpenShift Container Platform ノードに割り当てられていること。
手順
ローカルボリュームリソースを作成します。これは、ノードおよびローカルボリュームへのパスを定義する必要があります。
注記同じデバイスに別の StorageClass 名を使用しないでください。これを行うと、複数の永続ボリューム(PV)が作成されます。
例: ファイルシステム
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- ローカルストレージ Operator がインストールされている namespace。
- 2
- オプション: ローカルストレージボリュームが割り当てられているノードの一覧が含まれるノードセレクター。以下の例では、
oc get node
から取得したノードホスト名を使用します。値が定義されない場合、ローカルストレージ Operator は利用可能なすべてのノードで一致するディスクの検索を試行します。 - 3
- ボリュームモード (
Filesystem
またはBlock
)で、ローカルボリュームのタイプを定義します。 - 4
- ローカルボリュームの初回マウント時に作成されるファイルシステム。
- 5
- 選択するローカルストレージデバイスの一覧を含むパスです。
- 6
- この値を、
/dev/xvdg
などの LocalVolume リソースへの実際のローカルディスクのファイルパスに置き換えます。プロビジョナーが正常にデプロイされると、これらのローカルディスク用に PV が作成されます。
例: ブロック
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- ローカルストレージ Operator がインストールされている namespace。
- 2
- オプション: ローカルストレージボリュームが割り当てられているノードの一覧が含まれるノードセレクター。以下の例では、
oc get node
から取得したノードホスト名を使用します。値が定義されない場合、ローカルストレージ Operator は利用可能なすべてのノードで一致するディスクの検索を試行します。 - 3
- ボリュームモード (
Filesystem
またはBlock
)で、ローカルボリュームのタイプを定義します。 - 4
- 選択するローカルストレージデバイスの一覧を含むパスです。
- 5
- この値を、
/dev/xvdg
などの LocalVolume リソースへの実際のローカルディスクのファイルパスに置き換えます。プロビジョナーが正常にデプロイされると、これらのローカルディスク用に PV が作成されます。
先に作成したファイルを指定して、OpenShift Container Platform クラスターにローカルボリュームリソースを作成します。
oc create -f <local-volume>.yaml
$ oc create -f <local-volume>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow プロビジョナーが作成され、対応する DaemonSet が作成されていることを確認します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow DaemonSet プロセスの必要な数と現在の数に注意してください。必要な数が
0
の場合、これはラベルセレクターが無効であることを示します。PersistentVolume が作成されていることを確認します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.12.3. ローカルボリューム PersistentVolumeClaim の作成 リンクのコピーリンクがクリップボードにコピーされました!
ローカルボリュームは、Pod でアクセスされる PersistentVolumeClaim (PVC) として静的に作成される必要があります。
前提条件
- Persistentvolume がローカルボリュームプロビジョナーを使用して作成されていること。
手順
対応する StorageClass を使用して PVC を作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 作成したファイルを指定して、PVC を OpenShift Container Platform クラスターに作成します。
oc create -f <local-pvc>.yaml
$ oc create -f <local-pvc>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.12.4. ローカル要求を割り当てます。 リンクのコピーリンクがクリップボードにコピーされました!
ローカルボリュームが PersistentVolumeClaim (PVC) にマップされた後に、これをリソース内に指定できます。
前提条件
- PVC が同じ namespace に存在する。
手順
定義された要求をリソースの仕様に追加します。以下の例では、Pod 内で PVC を宣言します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 作成したファイルを指定して、OpenShift Container Platform クラスターにリソースを作成します。
oc create -f <local-pod>.yaml
$ oc create -f <local-pod>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.12.5. ローカルストレージ Operator のリソースの削除 リンクのコピーリンクがクリップボードにコピーされました!
2.12.5.1. ローカルボリュームの削除 リンクのコピーリンクがクリップボードにコピーされました!
ローカルボリュームを削除する必要がある場合があります。LocalVolume リソースのエントリーを削除し、PersistentVolume を削除することで通常は十分ですが、同じデバイスパスを再使用する場合や別の StorageClass でこれを管理する必要がある場合には、追加の手順が必要になります。
以下の手順では、root ユーザーとしてノードにアクセスします。この手順のステップ以外にノードの状態を変更すると、クラスターが不安定になる可能性があります。
前提条件
PersistentVolume の状態は
Released
またはAvailable
である必要があります。警告使用中の PersistentVolume を削除すると、データの損失や破損につながる可能性があります。
手順
以前に作成した LocalVolume を編集して、不要なディスクを削除します。
クラスターリソースを編集します。
oc edit localvolume <name> -n local-storage
$ oc edit localvolume <name> -n local-storage
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
devicePaths
の下の行に移動し、不要なディスクを表すものを削除します。
作成した PersistentVolume を削除します。
oc delete pv <pv-name>
$ oc delete pv <pv-name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ノードのシンボリックリンクを削除します。
ノードにデバッグ Pod を作成します。
oc debug node/<node-name>
$ oc debug node/<node-name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ルートディレクトリーをホストに切り替えます。
chroot /host
$ chroot /host
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ローカルボリュームのシンボリックリンクを含むディレクトリーに移動します。
cd /mnt/local-storage/<sc-name>
$ cd /mnt/local-storage/<sc-name>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- ローカルボリュームの作成に使用される StorageClass の名前。
削除したデバイスに属するシンボリックリンクを削除します。
rm <symlink>
$ rm <symlink>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.12.5.2. ローカルストレージ Operator のアンインストール リンクのコピーリンクがクリップボードにコピーされました!
ローカルストレージ Operator をアンインストールするには、Operator および local-storage
プロジェクトの作成されたすべてのリソースを削除する必要があります。
ローカルストレージ PV がまだ使用中の状態でローカルストレージ Operator をアンインストールすることは推奨されません。PV は Operator の削除後も残りますが、PV およびローカルストレージリソースを削除せずに Operator がアンインストールされ、再インストールされる場合に予測できない動作が生じる可能性があります。
前提条件
- OpenShift Container Platform Web コンソールへのアクセス。
手順
プロジェクトのローカルボリュームリソースを削除します。
oc delete localvolume --all --all-namespaces
$ oc delete localvolume --all --all-namespaces
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Web コンソールからローカルストレージ Operator をアンインストールします。
- OpenShift Container Platform Web コンソールにログインします。
-
Operators
Installed Operators に移動します。 - Local Storage をフィルターボックスに入力して、ローカルストレージ Operator を見つけます。
-
Options メニュー
ローカルストレージ Operator の末尾でクリックします。
- Uninstall Operator をクリックします。
- 表示されるウィンドウで Remove をクリックします。
ローカルストレージ Operator で作成された PV は削除されるまでクラスターに残ります。これらのボリュームが使用されなくなったら、以下のコマンドを実行してこれらのボリュームを削除します。
oc delete pv <pv-name>
$ oc delete pv <pv-name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow local-storage
プロジェクトを削除します。oc delete project local-storage
$ oc delete project local-storage
Copy to Clipboard Copied! Toggle word wrap Toggle overflow