第35章 ストレージデバイスの管理


35.1. Stratis ファイルシステムの設定

Stratis は、物理ストレージデバイスのプールを管理するためにサービスとして実行され、複雑なストレージ設定のセットアップと管理を支援しながら、ローカルストレージ管理を使いやすく簡素化します。

重要

Stratis はテクノロジープレビュー機能としてのみご利用いただけます。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat では、実稼働環境での使用を推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。Red Hat のテクノロジープレビュー機能のサポート範囲の詳細は、https://access.redhat.com/ja/support/offerings/techpreview/ を参照してください。

35.1.1. Stratis とは

Stratis は、Linux 用のローカルストレージ管理ソリューションです。これは、シンプルさと使いやすさに力を入れており、高度なストレージ機能にアクセスできます。

Stratis を使用すると、以下の活動をより簡単に行うことができます。

  • ストレージの初期設定
  • その後の変更
  • 高度なストレージ機能の使用

Stratis は、高度なストレージ機能をサポートするローカルストレージ管理システムです。Stratis は、ストレージ プール の概念を中心としています。このプールは 1 つ以上のローカルディスクまたはパーティションから作成され、ファイルシステムはプールから作成されます。

プールにより、次のような多くの便利な機能を使用できます。

  • ファイルシステムのスナップショット
  • シンプロビジョニング
  • 階層化
  • 暗号化

関連情報

35.1.2. Stratis ボリュームのコンポーネント

Stratis ボリュームを構成するコンポーネントについて説明します。

外部的には、Stratis は、コマンドラインインターフェイスおよび API に次のボリュームコンポーネントを表示します。

blockdev
ディスクやディスクパーティションなどのブロックデバイス。
pool

1 つ以上のブロックデバイスで設定されています。

プールの合計サイズは固定で、ブロックデバイスのサイズと同じです。

プールには、dm-cache ターゲットを使用した不揮発性データキャッシュなど、ほとんどの Stratis レイヤーが含まれています。

Stratis は、各プールの /dev/stratis/my-pool/ ディレクトリーを作成します。このディレクトリーには、プール内の Stratis ファイルシステムを表すデバイスへのリンクが含まれています。

filesystem

各プールには、ファイルを格納する 1 つ以上のファイルシステムを含めることができます。

ファイルシステムはシンプロビジョニングされており、合計サイズは固定されていません。ファイルシステムの実際のサイズは、そこに格納されているデータとともに大きくなります。データのサイズがファイルシステムの仮想サイズに近づくと、Stratis はシンボリュームとファイルシステムを自動的に拡張します。

ファイルシステムは XFS でフォーマットされています。

重要

Stratis は、Stratis を使用して作成したファイルシステムに関する情報を追跡し、XFS はそれを認識しません。また、XFS を使用して変更を行っても、自動的に Stratis に更新を作成しません。ユーザーは、Stratis が管理する XFS ファイルシステムを再フォーマットまたは再設定しないでください。

Stratis は、/dev/stratis/my-pool/my-fs パスにファイルシステムへのリンクを作成します。

注記

Stratis は、dmsetup リストと /proc/partitions ファイルに表示される多くの Device Mapper デバイスを使用します。同様に、lsblk コマンドの出力は、Stratis の内部の仕組みとレイヤーを反映します。

35.1.3. Stratis で使用可能なブロックデバイス

Stratis で使用可能なストレージデバイス。

対応デバイス

Stratis プールは、次の種類のブロックデバイスで動作するかどうかをテスト済みです。

  • LUKS
  • LVM 論理ボリューム
  • MD RAID
  • DM Multipath
  • iSCSI
  • HDD および SSD
  • NVMe デバイス
対応していないデバイス

Stratis にはシンプロビジョニングレイヤーが含まれているため、Red Hat はすでにシンプロビジョニングされているブロックデバイスに Stratis プールを配置することを推奨しません。

35.1.4. Stratis のインストール

Stratis に必要なパッケージをインストールします。

手順

  1. Stratis サービスとコマンドラインユーティリティーを提供するパッケージをインストールします。

    # yum install stratisd stratis-cli
  2. stratisd サービスが有効になっていることを確認します。

    # systemctl enable --now stratisd

35.1.5. 暗号化されていない Stratis プールの作成

1 つ以上のブロックデバイスから暗号化されていない Stratis プールを作成できます。

前提条件

  • Stratis がインストールされている。詳細は、Stratis のインストール を参照してください。
  • stratisd サービスを実行している。
  • Stratis プールを作成するブロックデバイスは使用されておらず、マウントされていない。
  • Stratis プールを作成する各ブロックデバイスが、1 GB 以上である。
  • IBM Z アーキテクチャーでは、/dev/dasd* ブロックデバイスをパーティションに分割している。Stratis プールの作成には、パーティションデバイスを使用します。

    DASD デバイスのパーティション分割の詳細は、IBM Z での Linux インスタンスの設定 を参照してください。

注記

暗号化されていない Stratis プールを暗号化することはできません。

手順

  1. Stratis プールで使用する各ブロックデバイスに存在するファイルシステム、パーティションテーブル、または RAID 署名をすべて削除します。

    # wipefs --all block-device

    ここで、block-device は、ブロックデバイスへのパスになります (例: /dev/sdb)。

  2. 選択したブロックデバイスに新しい暗号化されていない Stratis プールを作成します。

    # stratis pool create my-pool block-device

    ここで、block-device は、空のブロックデバイスまたは消去したブロックデバイスへのパスになります。

    次のコマンドを使用して、1 行に複数のブロックデバイスを指定することもできます。

    # stratis pool create my-pool block-device-1 block-device-2

検証

  • 新しい Stratis プールが作成されていることを確認します。

    # stratis pool list

35.1.6. Web コンソールを使用した暗号化されていない Stratis プールの作成

Web コンソールを使用して、1 つ以上のブロックデバイスから暗号化されていない Stratis プールを作成できます。

前提条件

  • RHEL 8 Web コンソールがインストールされている。

    手順は、Web コンソールのインストールおよび有効化 を参照してください。

  • stratisd サービスを実行している。
  • Stratis プールを作成するブロックデバイスは使用されておらず、マウントされていない。
  • Stratis プールを作成する各ブロックデバイスが、1 GB 以上である。
注記

暗号化されていない Stratis プールの作成後に、当該 Stratis プールを暗号化することはできません。

手順

  1. RHEL 8 Web コンソールにログインします。

    詳細は、Web コンソールへのログイン を参照してください。

  2. Storage をクリックします。
  3. ストレージ テーブルで、メニューボタンをクリックし、Stratis プールの作成を 選択します。
  4. 名前 フィールドに、Stratis プールの名前を入力します。
  5. Stratis プールの作成元となる Block devices を選択します。
  6. オプション:プール内に作成する各ファイルシステムの最大サイズを指定する場合は、Manage filesystem sizes を選択します。
  7. Create をクリックします。

検証

  • Storage セクションに移動し、Devices テーブルに新しい Stratis プールが表示されていることを確認します。

35.1.7. 暗号化された Stratis プールの作成

データを保護するために、1 つ以上のブロックデバイスから暗号化された Stratis プールを作成できます。

暗号化された Stratis プールを作成すると、カーネルキーリングはプライマリー暗号化メカニズムとして使用されます。その後のシステムを再起動すると、このカーネルキーリングは、暗号化された Stratis プールのロックを解除します。

1 つ以上のブロックデバイスから暗号化された Stratis プールを作成する場合は、次の点に注意してください。

  • 各ブロックデバイスは cryptsetup ライブラリーを使用して暗号化され、LUKS2 形式を実装します。
  • 各 Stratis プールは、一意の鍵を持つか、他のプールと同じ鍵を共有できます。これらのキーはカーネルキーリングに保存されます。
  • Stratis プールを構成するブロックデバイスは、すべて暗号化または暗号化されていないデバイスである必要があります。同じ Stratis プールに、暗号化したブロックデバイスと暗号化されていないブロックデバイスの両方を含めることはできません。
  • 暗号化 Stratis プールのデータ層に追加されるブロックデバイスは、自動的に暗号化されます。

前提条件

  • Stratis v2.1.0 以降がインストールされている。詳細は、Stratis のインストール を参照してください。
  • stratisd サービスを実行している。
  • Stratis プールを作成するブロックデバイスは使用されておらず、マウントされていない。
  • Stratis プールを作成するブロックデバイスが、それぞれ 1GB 以上である。
  • IBM Z アーキテクチャーでは、/dev/dasd* ブロックデバイスをパーティションに分割している。Stratis プールでパーティションを使用します。

    DASD デバイスのパーティション分割の詳細は、IBM Z での Linux インスタンスの設定 を参照してください。

手順

  1. Stratis プールで使用する各ブロックデバイスに存在するファイルシステム、パーティションテーブル、または RAID 署名をすべて削除します。

    # wipefs --all block-device

    ここで、block-device は、ブロックデバイスへのパスになります (例: /dev/sdb)。

  2. キーセットをまだ作成していない場合には、以下のコマンドを実行してプロンプトに従って、暗号化に使用するキーセットを作成します。

    # stratis key set --capture-key key-description

    ここでの key-description は、カーネルキーリングで作成されるキーへの参照になります。

  3. 暗号化した Stratis プールを作成し、暗号化に使用する鍵の説明を指定します。key-description オプションを使用する代わりに、--keyfile-path オプションを使用してキーのパスを指定することもできます。

    # stratis pool create --key-desc key-description my-pool block-device

    以下の部分には、

    key-description
    直前の手順で作成したカーネルキーリングに存在するキーを参照します。
    my-pool
    新しい Stratis プールの名前を指定します。
    block-device

    空のブロックデバイスまたは消去したブロックデバイスへのパスを指定します。

    次のコマンドを使用して、1 行に複数のブロックデバイスを指定することもできます。

    # stratis pool create --key-desc key-description my-pool block-device-1 block-device-2

検証

  • 新しい Stratis プールが作成されていることを確認します。

    # stratis pool list

35.1.8. Web コンソールを使用した暗号化された Stratis プールの作成

データを保護するために、Web コンソールを使用して、1 つ以上のブロックデバイスから暗号化された Stratis プールを作成できます。

1 つ以上のブロックデバイスから暗号化された Stratis プールを作成する場合は、次の点に注意してください。

  • 各ブロックデバイスは cryptsetup ライブラリーを使用して暗号化され、LUKS2 形式を実装します。
  • 各 Stratis プールは、一意の鍵を持つか、他のプールと同じ鍵を共有できます。これらのキーはカーネルキーリングに保存されます。
  • Stratis プールを構成するブロックデバイスは、すべて暗号化または暗号化されていないデバイスである必要があります。同じ Stratis プールに、暗号化したブロックデバイスと暗号化されていないブロックデバイスの両方を含めることはできません。
  • 暗号化 Stratis プールのデータ層に追加されるブロックデバイスは、自動的に暗号化されます。

前提条件

  • RHEL 8 Web コンソールがインストールされている。

    手順は、Web コンソールのインストールおよび有効化 を参照してください。

  • Stratis v2.1.0 以降がインストールされている。
  • stratisd サービスを実行している。
  • Stratis プールを作成するブロックデバイスは使用されておらず、マウントされていない。
  • Stratis プールを作成する各ブロックデバイスが、1 GB 以上である。

手順

  1. RHEL 8 Web コンソールにログインします。

    詳細は、Web コンソールへのログイン を参照してください。

  2. Storage をクリックします。
  3. ストレージ テーブルで、メニューボタンをクリックし、Stratis プールの作成を 選択します。
  4. 名前 フィールドに、Stratis プールの名前を入力します。
  5. Stratis プールの作成元となる Block devices を選択します。
  6. 暗号化のタイプを選択します。パスフレーズ、Tang キーサーバー、またはその両方を使用できます。

  7. オプション:プール内に作成する各ファイルシステムの最大サイズを指定する場合は、Manage filesystem sizes を選択します。
  8. Create をクリックします。

検証

  • Storage セクションに移動し、Devices テーブルに新しい Stratis プールが表示されていることを確認します。

35.1.9. Web コンソールを使用した Stratis プールの名前変更

Web コンソールを使用して、既存の Stratis プールの名前を変更できます。

前提条件

  • RHEL 8 Web コンソールがインストールされている。

    手順は、Web コンソールのインストールおよび有効化 を参照してください。

  • Stratis がインストールされている。

    Web コンソールがデフォルトで Stratis を検出してインストールしている。ただし、Stratis を手動でインストールする場合は、Stratis のインストール を参照してください。

  • stratisd サービスを実行している。
  • Stratis プールが作成されている。

手順

  1. RHEL 8 Web コンソールにログインします。

    詳細は、Web コンソールへのログイン を参照してください。

  2. Storage をクリックします。
  3. Storage テーブルで、名前を変更する Stratis プールをクリックします。
  4. Stratis pool ページで、Name フィールドの横にある edit をクリックします。
  5. Rename Stratis pool ダイアログボックスで、新しい名前を入力します。
  6. Rename をクリックします。

35.1.10. Stratis ファイルシステムでオーバープロビジョニングモードを設定する

ストレージスタックは、オーバープロビジョニングの状態になる可能性があります。ファイルシステムのサイズが、そのファイルシステムをサポートするプールよりも大きい場合には、プールがいっぱいになります。これを防ぐには、オーバープロビジョニングを無効にします。これにより、プール上のすべてのファイルシステムのサイズが、プールによって提供される使用可能な物理ストレージを超えないようにします。重要なアプリケーションやルートファイルシステムに Stratis を使用する場合、このモードにより特定の障害ケースを防止できます。

オーバープロビジョニングを有効にすると、ストレージが完全に割り当てられたことを API シグナルに通知します。通知は、残りのプールスペースがすべていっぱいになると、Stratis に拡張するスペースが残っていないことをユーザーに通知する警告として機能します。

前提条件

手順

プールを正しく設定するには、次の 2 つの方法があります。

  1. 1 つ以上のブロックデバイスからプールを作成します。

    # stratis pool create pool-name /dev/sdb
  2. 既存のプールにオーバープロビジョニングモードを設定します。

    # stratis pool overprovision pool-name <yes|no>
    • "yes" に設定すると、プールへのオーバープロビジョニングが有効になります。つまり、プールでサポートされる Stratis ファイルシステムの論理サイズの合計が、使用可能なデータ領域の量を超える可能性があります。

検証

  1. 以下のコマンドを実行し、Stratis プールの全一覧を表示します。

    # stratis pool list
    
    Name          Total Physical                    Properties     UUID                                   Alerts
    pool-name     1.42 TiB / 23.96 MiB / 1.42 TiB   ~Ca,~Cr,~Op    cb7cb4d8-9322-4ac4-a6fd-eb7ae9e1e540
  2. ubuntu pool list の出力に、プールのオーバープロビジョニングモードフラグが表示されているかどうかを確認します。~ は NOT を表す数学記号であるため、~Op はオーバープロビジョニングなしという意味です。
  3. オプション:以下のコマンドを実行して、特定のプールでオーバープロビジョニングを確認します。

    # stratis pool overprovision pool-name yes
    
    # stratis pool list
    
    Name          Total Physical                    Properties     UUID                                   Alerts
    pool-name     1.42 TiB / 23.96 MiB / 1.42 TiB   ~Ca,~Cr,~Op    cb7cb4d8-9322-4ac4-a6fd-eb7ae9e1e540

35.1.11. Stratis プールの NBDE へのバインド

暗号化された Stratis プールを Network Bound Disk Encryption (NBDE) にバインドするには、Tang サーバーが必要です。Stratis プールを含むシステムが再起動すると、Tang サーバーに接続して、カーネルキーリングの説明を指定しなくても、暗号化したプールのロックを自動的に解除します。

注記

Stratis プールを補助 Clevis 暗号化メカニズムにバインドすると、プライマリーカーネルキーリング暗号化は削除されません。

前提条件

手順

  • 暗号化された Stratis プールを NBDE にバインドする。

    # stratis pool bind nbde --trust-url my-pool tang-server

    ここでは、以下のようになります。

    my-pool
    暗号化された Stratis プールの名前を指定します。
    tang-server
    Tang サーバーの IP アドレスまたは URL を指定します。

35.1.12. Stratis プールの TPM へのバインド

暗号化された Stratis プールを Trusted Platform Module (TPM) 2.0 にバインドすると、プールを含むシステムが再起動され、カーネルキーリングの説明を指定しなくても、プールは自動的にロック解除されます。

前提条件

手順

  • 暗号化された Stratis プールを TPM にバインドします。

    # stratis pool bind tpm my-pool key-description

    ここでは、以下のようになります。

    my-pool
    暗号化された Stratis プールの名前を指定します。
    key-description
    暗号化された Stratis プールの作成時に生成されたカーネルキーリングに存在するキーを参照します。

35.1.13. カーネルキーリングを使用した暗号化 Stratis プールのロック解除

システムの再起動後、暗号化した Stratis プール、またはこれを構成するブロックデバイスが表示されない場合があります。プールの暗号化に使用したカーネルキーリングを使用して、プールのロックを解除できます。

前提条件

手順

  1. 以前使用したものと同じキー記述を使用して、キーセットを再作成します。

    # stratis key set --capture-key key-description

    ここで、key-description は、暗号化された Stratis プールの作成時に生成されたカーネルキーリングに存在するキーを参照します。

  2. Stratis プールが表示されることを確認します。

    # stratis pool list

35.1.14. 補助暗号化からの Stratis プールのバインド解除

暗号化した Stratis プールを、サポート対象の補助暗号化メカニズムからバインドを解除すると、プライマリーカーネルキーリングの暗号化はそのまま残ります。これは、最初から Clevis 暗号化を使用して作成されたプールには当てはまりません。

前提条件

  • Stratis v2.3.0 以降がシステムにインストールされている。詳細は、Stratis のインストール を参照してください。
  • 暗号化された Stratis プールを作成している。詳細は、暗号化された Stratis プールの作成 を参照してください。
  • 暗号化した Stratis プールは、サポート対象の補助暗号化メカニズムにバインドされます。

手順

  • 補助暗号化メカニズムから暗号化された Stratis プールのバインドを解除します。

    # stratis pool unbind clevis my-pool

    ここでは、以下のようになります。

    my-pool は、バインドを解除する Stratis プールの名前を指定します。

35.1.15. Stratis プールの開始および停止

Stratis プールを開始および停止できます。これにより、ファイルシステム、キャッシュデバイス、シンプール、暗号化されたデバイスなど、プールの構築に使用されたすべてのオブジェクトを分解または停止するオプションが提供されます。プールがデバイスまたはファイルシステムをアクティブに使用している場合、警告が発行され、停止できなくなる可能性があることに注意してください。

停止状態は、プールのメタデータに記録されます。これらのプールは、プールが開始コマンドを受信するまで、次のブートでは開始されません。

前提条件

手順

  • 以下のコマンドを使用して Stratis プールを起動します。--unlock-method オプションは、プールが暗号化されている場合にプールのロックを解除する方法を指定します。

    # stratis pool start pool-uuid --unlock-method <keyring|clevis>
  • または、以下のコマンドを使用して Stratis プールを停止します。これにより、ストレージスタックが切断されますが、メタデータはすべて保持されます。

    # stratis pool stop pool-name

検証

  • 以下のコマンドを使用して、システム上のプールを一覧表示します。

    # stratis pool list
  • 以下のコマンドを使用して、以前に起動していないプールの一覧を表示します。UUID を指定すると、このコマンドは UUID に対応するプールに関する詳細情報を出力します。

    # stratis pool list --stopped --uuid UUID

35.1.16. Stratis ファイルシステムの作成

既存の Stratis プールに Stratis ファイルシステムを作成します。

前提条件

手順

  1. プール上に Stratis ファイルシステムを作成します。

    # stratis filesystem create --size number-and-unit my-pool my-fs

    ここでは、以下のようになります。

    number-and-unit
    ファイルシステムのサイズを指定します。仕様形式は、入力の標準サイズ指定形式 (B、KiB、MiB、GiB、TiB、または PiB) に準拠する必要があります。
    my-pool
    Stratis プールの名前を指定します。
    my-fs

    ファイルシステムの任意名を指定します。

    以下に例を示します。

    例35.1 Stratis ファイルシステムの作成

    # stratis filesystem create --size 10GiB pool1 filesystem1

検証

  • プール内のファイルシステムをリスト表示して、Stratis ファイルシステムが作成されているかどうかを確認します。

    # stratis fs list my-pool

35.1.17. Web コンソールを使用した Stratis プール上のファイルシステムの作成

Web コンソールを使用して、既存の Stratis プール上にファイルシステムを作成できます。

前提条件

手順

  1. RHEL 8 Web コンソールにログインします。

    詳細は、Web コンソールへのログイン を参照してください。

  2. Storage をクリックします。
  3. ファイルシステムを作成する Stratis プールをクリックします。
  4. Stratis pool ページで、Stratis filesystems セクションまでスクロールし、Create new filesystem をクリックします。
  5. ファイルシステムの名前を入力します。
  6. ファイルシステムのマウントポイントを入力します。
  7. マウントオプションを選択します。
  8. At boot ドロップダウンメニューで、ファイルシステムをマウントするタイミングを選択します。
  9. ファイルシステムを作成します。

    • ファイルシステムを作成してマウントする場合は、Create and mount をクリックします。
    • ファイルシステムの作成のみを行う場合は、Create only をクリックします。

検証

  • 新しいファイルシステムは、Stratis pool ページの Stratis filesystems タブに表示されます。

35.1.18. Stratis ファイルシステムのマウント

既存の Stratis ファイルシステムをマウントして、コンテンツにアクセスします。

前提条件

手順

  • ファイルシステムをマウントするには、/dev/stratis/ ディレクトリーに Stratis が維持するエントリーを使用します。

    # mount /dev/stratis/my-pool/my-fs mount-point

これでファイルシステムは mount-point ディレクトリーにマウントされ、使用できるようになりました。

35.1.19. systemd サービスを使用して/etc/fstab に非ルート Stratis ファイルシステムを設定する

systemd サービスを使用して、/etc/fstab 内の非ルートファイルシステムの設定を管理できます。

前提条件

手順

  • root として、/etc/fstab ファイルを編集し、非 root ファイルシステムを設定するための行を追加します。

    /dev/stratis/my-pool/my-fs mount-point xfs defaults,x-systemd.requires=stratis-fstab-setup@pool-uuid.service,x-systemd.after=stratis-fstab-setup@pool-uuid.service dump-value fsck_value
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.