StratisをインストールしてRHEL8で階層化されたローカルストレージを管理する方法


Stratisは、RHEL8ディストリビューションに付属する新機能の1つです。 Stratisは、シンプルさと使いやすさの向上に重点を置き、同時に高度なストレージ機能へのアクセスを提供するローカルストレージ管理ソリューションです。 XFSファイルシステムを使用し、次のような高度なストレージ機能へのアクセスを許可します。

  • Thin provisioning
  • File system snapshots
  • Tiering
  • Pool-based management
  • Monitoring

基本的に、Stratisは、1つ以上のローカルディスクまたはディスクパーティションから作成されるストレージプールです。 Stratisは、システム管理者が複雑なストレージ構成をセットアップおよび管理するのに役立ちます。

先に進む前に、次のように、あなたがぶつかるはずの専門用語のいくつかを見てみましょう。

  • pool: A pool is made up of one or more block devices. The total size of the pool is equal to the sum total of the block devices.
  • blockdev: As you might have guessed it this refers to block devices such as disk partitions.
  • Filesystem: A filesystem is a thinly provisioned layer which does not come as a total fixed size. The filesystem’s actual size grows as data is added. Stratis automatically grows the size of the filesystem as data size nears the virtual size of the file system.

Stratisで使用できるブロックデバイスは次のとおりです。

  1. LVM Logical Volumes
  2. LUKS
  3. SSDs (Solid State Drives)
  4. Device Mapper Multipath
  5. iSCSI
  6. HDDs (Hard Disk Drives)
  7. mdraid
  8. NVMe storage devices

Stratisは2つのソフトウェアユーティリティを提供します:

  • Stratis-cli: This is the command-line tool that ships with Stratis.
  • Stratisd daemon: This is a daemon that creates and manages block devices and plays a role in providing a DBUS API.

StratisをRHEL8にインストールする方法

Stratisとは何かを見て、いくつかの用語を定義しました。次に、RHEL 8ディストリビューションにStratisをインストールして構成します(CentOS 8でも機能します)。

StratisをRHEL8システムにインストールし、rootユーザーとしてログインして、コマンドを実行する方法を見てみましょう。

# dnf install stratisd stratis-cli

インストールされているパッケージの詳細を確認するには、コマンドを実行します。

# rpm -qi stratisd stratis-cli

Stratisが正常にインストールされたら、コマンドを実行してサービスを開始します。

# systemctl enable --now stratisd

Stratisのステータスを確認するには、コマンドを実行します。

# systemctl status stratisd

Stratisプールを作成するには、使用されていない、またはマウントされていないブロックデバイスが必要です。また、Stratisdサービスが稼働していることを前提としています。さらに、使用するブロックデバイスのサイズは少なくとも1GBである必要があります。

RHEL 8システムには、/dev/xvdb /dev/xvdc /dev/xvdd 、<の4つの追加ブロックデバイスがあります。 code>/dev/xvde 。ブロックデバイスを表示するには、lsblkコマンドを実行します。

# lsblk

これらのブロックデバイスには、パーティションテーブルを設定しないでください。これは、コマンドを使用して確認できます。

# blkid -p /dev/xvdb

出力が得られない場合は、ブロックデバイスにパーティションテーブルが存在しないことを意味します。ただし、パーティションテーブルが存在する場合は、次のコマンドを使用してそれをワイプできます。

# wipefs -a /<device-path>

構文を使用して、単一のブロックデバイスからStratisプールを作成できます。

# stratis pool create <pool-name> <block-device>

たとえば、/dev/xvdb からプールを作成するには、コマンドを実行します。

# stratis pool create my_pool_1 /dev/xvdb

作成されたプールの実行を確認します。

# stratis pool list

複数のデバイスからプールを作成するには、以下の構文を使用して、すべてのデバイスを1行にリストします。

# 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

この時点で、my_pool_1とmy_pool_2の2つのプールが必要です。

上記のように、プールmy_pool_2が占めるハードディスク容量は、10GBのメモリを備えた1つのブロックデバイスのみから作成した最初のプールの3倍です。

ファイルシステムを作成したら、構文を使用してプールの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

次に、既存のファイルシステムにアクセスするためにそれらをマウントします。まず、マウントポイントを作成します。

最初のプールのファイルシステムに対して、次のコマンドを実行します。

# mkdir /data
# mount /stratis/my_pool_1/filesystem-1 /data

2番目のプールの2番目のファイルシステムに対して、コマンドを実行します。

# mkdir /block
# mount /stratis/my_pool_2/filesystem-2 /block

現在のマウントポイントの存在を確認するには、dfコマンドを実行します。

# df -Th | grep  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

ファイルシステムを削除するには、まず、図のようにファイルシステムをアンマウントする必要があります。

# 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 pool add-data <poolname> /<devicepath>

たとえば、追加のディスク/dev/xvdf をmy_pool_1に追加するには、次のコマンドを実行します。

# stratis pool add-data my_pool_1 /dev/xvdf

ボリュームを追加した後、my_pool_1のサイズが2倍になることに注意してください。

スナップショットは、シンプロビジョニングされた読み取りであり、特定の時点でファイルシステムのコピーを書き込みます。

スナップショットを作成するには、次のコマンドを実行します。

# stratis fs snapshot <poolname> <fsname> <snapshotname>

この場合、コマンドは次のようになります。

# stratis fs snapshot my_pool_2 filesystem-2 mysnapshot

以下のスクリーンショットに示すように、データ属性-&#36(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

スナップショットを削除するには、まずスナップショットをアンマウントします。

# unmount /stratis/my_pool_2/mysnapshot-2019-10-24

次に、スナップショットを続行して破棄します。

# stratis filesystem destroy my_pool_2 mysnapshot-2019-10-24

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のエントリを削除します。

ガイドの終わりになりました。このチュートリアルでは、Stratisをインストールして使用し、RHELで階層化されたローカルストレージを管理する方法について説明します。お役に立てば幸いです。試してみて、どうだったか教えてください。