RHEL 9/8上でローカルストレージを管理するためのStratisのインストール方法
StratisはRHELディストリビューションに付属する新しい機能の一つです。Stratisはシンプルさと使用の改善に焦点を当てつつ、同時に高度なストレージ機能へのアクセスを提供するローカルストレージ管理ソリューションです。XFSファイルシステムを使用し、以下のような高度なストレージ機能へのアクセスを提供します:
- スリムプロビジョニング
- ファイルシステムスナップショット
- ティアリング
- プールベースの管理
- モニタリング
基本的に、Stratisは1つ以上のローカルディスクまたはディスクパーティションから作成されるストレージプールです。Stratisはシステム管理者が複雑なストレージ構成を設定し、管理するのを助けます。
さらに進む前に、私たちが進むにつれて出くわすことになるいくつかの技術用語を見てみましょう:
- プール:プールは1つ以上のブロックデバイスで構成されています。プールの総サイズは、ブロックデバイスの合計の和に等しいです。
- blockdev: あなたが推測したように、これはディスクパーティションなどのブロックデバイスを指します。
- ファイルシステム: ファイルシステムは、固定サイズの全体として提供されず、薄いプロビジョニング層です。ファイルシステムの実際のサイズは、データが追加されるにつれて増加します。Stratisは、データサイズがファイルシステムの仮想サイズに近づくと、自動的にファイルシステムのサイズを拡張します。
Stratisで使用できるブロックデバイスには以下が含まれます:
- LVM 論理ボリューム
- LUKS
- SSD(ソリッドステートドライブ)
- デバイスマッパー マルチパス
- iSCSI
- HDD(ハードディスクドライブ)
- mdraid
- NVMeストレージデバイス
Stratisのソフトウェアコンポーネント
Stratisは2つのソフトウェアユーティリティを提供します:
- Stratis-cli: これはStratisに付属するコマンドラインツールです。
- Stratisd デーモン:これはブロックデバイスを作成および管理し、DBUS APIを提供する役割を果たすデーモンです。
RHEL 9/8にStratisをインストールする方法
Stratisが何であるかを見て、いくつかの用語を定義しました。次に、RHEL 9/8ディストリビューション(CentOS 8でも動作します)にStratisをインストールして構成しましょう。
RHEL 9/8にStratisをインストールする
RHEL 9/8 システムに Stratis をインストールする方法を見てみましょう。ルートユーザーとしてログインし、コマンドを実行します。
# dnf install stratisd stratis-cli
インストールされたパッケージに関する詳細情報を見つけるには、コマンドを実行してください。
# rpm -qi stratisd stratis-cli
Stratisのインストールが成功した後、コマンドを実行してサービスを開始します。
# systemctl enable --now stratisd
Stratisのステータスを確認するには、コマンドを実行してください。
# systemctl status stratisd
Stratisプールを作成する
Stratisプールを作成するには、使用中でないか、マウントされていないブロックデバイスが必要です。また、Stratisdサービスが稼働中であることも前提としています。さらに、使用するブロックデバイスは、少なくとも1 GBのサイズでなければなりません。
RHEL 9/8システムでは、以下の4つの追加ブロックデバイスがあります:/dev/xvdb、/dev/xvdc、/dev/xvdd、/dev/xvde。ブロックデバイスを表示するには、lsblkコマンドを実行してください。
# lsblk
これらのブロックデバイスのいずれにもパーティションテーブルは存在しないはずです。コマンドを使用してこれを確認できます。
# blkid -p /dev/xvdb
出力がない場合は、ブロックデバイスにパーティションテーブルが存在しないことを意味します。ただし、パーティションテーブルが存在する場合は、以下のコマンドを使用してワイプできます:
# wipefs -a /<device-path>
1つのブロックデバイスからストラティスプールを作成する
単一のブロックデバイスからStratisプールを作成するには、この構文を使用します。
# stratis pool create <pool-name> <block-device>
/dev/xvdbからプールを作成するには、コマンドを実行します。
# stratis pool create my_pool_1 /dev/xvdb
作成されたプールランを確認するために。
# stratis pool list
複数のブロックデバイスからStratisプールを作成する
複数のデバイスからプールを作成するには、以下の構文を使用してすべてのデバイスを一行にリストします。
# stratis pool create <pool_name> device-1 device-2 device-n
/dev/xvdc、/dev/xvdd、および/dev/xvdeからプールを作成するには、コマンドを実行します。
# stratis pool create my_pool_2 /dev/xvdc /dev/xvdd/ /dev/xvde
再び、コマンドを使用して利用可能なプールをリストしてください。
# stratis pool list
この時点で、あなたは2つのプールを持っているはずです:my_pool_1 と my_pool_2。
上記のように、プールmy_pool_2が占めているハードディスクスペースは、最初に作成したプールの3倍であり、それは10GBのメモリを持つ1つのブロックデバイスから作成されたものです。
プールからファイルシステムを作成する
ファイルシステムを作成したので、構文を使用してプールの1つからファイルシステムを作成できます。
# stratis fs create <poolname> <filesystemname>
例えば、my_pool_1 と my_pool_2 からそれぞれ filesystem-1 と filesystem-2 を作成するには、次のコマンドを実行します:
# stratis fs create my_pool_1 filesystem-1
stratis fs create my_pool_2 filesystem-2
新しく作成されたファイルシステムを表示するには、コマンドを実行してください。
# stratis fs list
ファイルシステムの結果を1つのプールに絞り込むには、次のコマンドを実行します:
# stratis fs list <poolname>
my_pool_2のファイルシステムをチェックするには、コマンドを実行してください。
# stratis fs list my_pool_2
さて、lsblkコマンドを実行すると、出力は以下のサンプル出力に似たものになるはずです。
# lsblk
Stratisファイルシステムのマウント
私たちは今、既存のファイルシステムをマウントしてアクセスできるようにします。最初に、マウントポイントを作成してください。
最初のプールのファイルシステムに対して、次のコマンドを実行します:
# mkdir /data
mount /stratis/my_pool_1/filesystem-1 /data
第二プールの第二ファイルシステムに対して、コマンドを実行してください。
# mkdir /block
mount /stratis/my_pool_2/filesystem-2 /block
現在のマウントポイントの存在を確認するには、dfコマンドを実行してください:
# df -Th | grep stratis
完璧です!私たちのマウントポイントが存在することがはっきりと見えます。
持続的にStratisファイルシステムをマウントする
私たちが作成したマウントポイントは再起動後には持続しません。それらを永続的にするために、まず各ファイルシステムのUUIDを取得します:
# blkid -p /stratis/my_pool_1/filesystem-1
blkid -p /stratis/my_pool_2/filesystem-2
今すぐUUIDとマウントポイントオプションを/etc/fstabにコピーしてください。
# echo "UUID=c632dcf5-3e23-46c8-82b6-b06a4cc9d6a7 /data xfs defaults 0 0" | sudo tee -a /etc/fstab
echo "UUID=b485ce80-be18-4a06-8631-925132bbfd78 /block xfs defaults 0 0" | sudo tee -a /etc/fstab
新しい設定をシステムに登録するには、次のコマンドを実行してください:
# systemctl daemon-reload
構成が期待通りに動作することを確認するために、ファイルシステムをマウントします。
# mount /data
mount /block
Stratisファイルシステムの削除
ファイルシステムを削除するには、まず最初に、以下のようにファイルシステムをアンマウントする必要があります。
# umount /mount-point
この場合、私たちは持っているでしょう。
# umount /data
ファイルシステムを破壊するには、次の構文を使用してください:
# stratis filesystem destroy <poolname> <filesystem-name>
それでは、私たちには次のようになるでしょう:
# stratis filesystem destroy my_pool_1 filesystem-1
ファイルシステムの削除を確認するには、コマンドを実行してください。
# stratis filesystem list my_pool_1
my_pool_1 に関連付けられたファイルシステムが削除されたことが出力から明確に確認できます。
既存のStratisプールにディスクを追加する
既存のプールにディスクを追加するには、次のコマンドを使用します:
# stratis pool add-data <poolname> /<devicepath>
例えば、追加のディスク/dev/xvdfをmy_pool_1に追加するには、次のコマンドを実行します:
# stratis pool add-data my_pool_1 /dev/xvdf
my_pool_1のサイズが追加のボリュームを加えた後、2倍になったことに注意してください。
Stratisスナップショットを作成する
スナップショットは、特定の時点におけるファイルシステムのコピーを薄くプロビジョニングされた状態で読み書きします。
スナップショットを作成するには、次のコマンドを実行します:
# stratis fs snapshot <poolname> <fsname> <snapshotname>
この場合、コマンドは次のようになります:
# stratis fs snapshot my_pool_2 filesystem-2 mysnapshot
スナップショットに日付タグを追加するには、データ属性-$ (date +%Y-%m-%d)を追加してください。下のスクリーンショットのようになります。
スナップショットの作成を確認するには、次のコマンドを実行してください:
# stratis filesystem list <poolname>
この場合、コマンドは次のようになります:
# stratis filesystem list my_pool_2
ファイルシステムを使用して以前のスナップショットに戻す
Stratisファイルシステムを以前に作成したスナップショットに戻すには、まず元のファイルシステムをアンマウントして削除します。
# umount /stratis/<poolname>/filesystem
私たちのシナリオでは、これはこうなるでしょう。
# umount /stratis/my_pool_2/filesystem-2
次に、元のファイルシステムを使用してスナップショットのコピーを作成します。
# stratis filesystem snapshot <poolname> filesystem-snapshot filesystem
コマンドは次のようになります:
# stratis filesystem snapshot my_pool_2 mysnapshot-2019-10-24 block
最後に、スナップショットをマウントします。
# mount /stratis/my-pool/my-fs mount-point
Stratisスナップショットの削除
スナップショットを削除するには、まずスナップショットのマウントを解除します。
# unmount /stratis/my_pool_2/mysnapshot-2019-10-24
次に、スナップショットを破壊してください:
# stratis filesystem destroy my_pool_2 mysnapshot-2019-10-24
Stratisプールの削除
Stratisプールを削除するには、以下の簡単な手順に従ってください。
1. プール内に存在するファイルシステムをリストします。
# stratis filesystem list <poolname>
2. 次に、プール内のすべてのファイルシステムのマウントを解除します。
# umount /stratis//filesystem-1
umount /stratis//filesystem-2
umount /stratis//filesystem-3
3. ファイルシステムを破壊する。
# stratis filesystem destroy <poolname> fs-1 fs-2
4. そして、プールを取り除いてください。
# stratis pool destroy poolname
この場合、構文は次のようになります。
# stratis pool destroy my_pool_2
プールリストを再確認できます。
# stratis pool list
最後に、ファイルシステムのために/etc/fstabのエントリを削除してください。
ガイドの終わりに来ました。このチュートリアルでは、RHELで層状のローカルストレージを管理するためにStratisをインストールし使用する方法について説明しました。お役に立てたことを願っています。ぜひ試してみて、その結果を教えてください。





















