ウェブサイト検索

RHEL 9/8上でローカルストレージを管理するためのStratisのインストール方法


StratisはRHELディストリビューションに付属する新しい機能の一つです。Stratisはシンプルさと使用の改善に焦点を当てつつ、同時に高度なストレージ機能へのアクセスを提供するローカルストレージ管理ソリューションです。XFSファイルシステムを使用し、以下のような高度なストレージ機能へのアクセスを提供します:

  • スリムプロビジョニング
  • ファイルシステムスナップショット
  • ティアリング
  • プールベースの管理
  • モニタリング

基本的に、Stratisは1つ以上のローカルディスクまたはディスクパーティションから作成されるストレージプールです。Stratisはシステム管理者が複雑なストレージ構成を設定し、管理するのを助けます。

さらに進む前に、私たちが進むにつれて出くわすことになるいくつかの技術用語を見てみましょう:

  • プール:プールは1つ以上のブロックデバイスで構成されています。プールの総サイズは、ブロックデバイスの合計の和に等しいです。
  • blockdev: あなたが推測したように、これはディスクパーティションなどのブロックデバイスを指します。
  • ファイルシステム: ファイルシステムは、固定サイズの全体として提供されず、薄いプロビジョニング層です。ファイルシステムの実際のサイズは、データが追加されるにつれて増加します。Stratisは、データサイズがファイルシステムの仮想サイズに近づくと、自動的にファイルシステムのサイズを拡張します。

Stratisで使用できるブロックデバイスには以下が含まれます:

  1. LVM 論理ボリューム
  2. LUKS
  3. SSD(ソリッドステートドライブ)
  4. デバイスマッパー マルチパス
  5. iSCSI
  6. HDD(ハードディスクドライブ)
  7. mdraid
  8. 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をインストールし使用する方法について説明しました。お役に立てたことを願っています。ぜひ試してみて、その結果を教えてください。

関連記事: