第17章 Stratis で階層化ローカルストレージの管理

Stratis の高レベルシステムに統合されている複雑なストレージ設定を簡単に設定および管理できます。

重要

Straits がテクノロジープレビューとして利用可能にテクノロジープレビュー機能に対する Red Hat のサポート範囲の詳細は、「テクノロジプレビュー機能のサポート範囲」を参照してください。

Stratis をデプロイしているお客様は、Red Hat にフィードバックをお寄せください。

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

システム管理者は、Stratis ボリューム管理ファイルシステムをシステム上で有効にしてセットアップし、階層化ストレージを簡単に管理できます。

17.1.1. Stratis の目的と機能

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

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

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

Stratis は、高度なストレージ機能に対応する、ユーザーとカーネルのハイブリッドローカルストレージ管理システムです。Stratis は、ストレージ プール の概念を中心としています。このプールは 1 つ以上のローカルディスクまたはパーティションから作成され、ボリュームはプールから作成されます。

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

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

17.1.2. Stratis ボリュームの構成要素

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

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

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

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

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

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

filesystem

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

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

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

重要

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

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

注記

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

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

本セクションでは、Stratis に使用できるストレージデバイスを一覧で紹介します。

対応デバイス

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

  • LUKS
  • LVM 論理ボリューム
  • MD RAID
  • DM Multipath
  • iSCSI
  • HDD および SSD
  • NVMe デバイス
警告

Stratis は、現行バージョンでは、ハードドライブまたはその他のハードウェアの不具合に対応しません。複数のハードウェアデバイスに Stratis プールを作成すると、データにアクセスするために複数のデバイスが動作状態になっているため、データを損失するリスクが高まります。

対応していないデバイス

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

関連情報

  • iSCSI や、ネットワークを必要とするその他のブロックデバイスの _netdev マウントオプションに関する情報は、man ページの systemd.mount(5) を参照してください。

17.1.4. Stratis のインストール

この手順では、Stratis の使用に必要なパッケージをすべてインストールします。

手順

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

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

    # systemctl enable --now stratisd

17.1.5. Stratis プールの作成

この手順では、1 つ以上のブロックデバイスから暗号化済みまたは暗号化されていない Stratis プールを作成する方法を説明します。

以下の注記は、暗号化された Stratis プールに適用されます。

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

前提条件

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

    DASD デバイスのパーティション設定には、「IBM Z への Linux インスタンスの設定」を参照してください。

手順

  1. 選択したブロックデバイスにファイルシステム、パーティションテーブル、または RAID 署名が含まれている場合は、以下のコマンドで消去します。

    # wipefs --all block-device

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

  2. 選択したブロックデバイスに新しい Stratis プールを作成します。

    注記

    スペースで区切られた、1 行に複数のブロックデバイスを指定します。

    # stratis pool create my-pool block-device-1 block-device-2
    • 暗号化されていない Stratis プールを作成するには、以下のコマンドを使用して手順 3 に移動します。

      # stratis pool create my-pool block-device

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

      注記

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

    • 暗号化された Stratis プールを作成するには、以下の手順を実行します。

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

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

        ここでの key-description は、キーセットの説明または名前です。

      2. 暗号化した Stratis プールを作成し、暗号化に使用する鍵の説明を指定します。代わりに --keyfile-path パラメーターを使用してキーパス を指定することもできます。

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

        詳細は以下のようになります。

        key-description
        暗号化に使用するキーファイルの説明または名前を指定します。
        my-pool
        新しい Stratis プールの名前を指定します。
        block-device
        空のブロックデバイスまたは消去したブロックデバイスへのパスを指定します。
  3. 新しい Stratis プールが作成されていることを確認します。

    # stratis pool list

トラブルシューティング

システムの再起動後に、暗号化した Stratis プール、または構成するブロックデバイスが表示されなくなることがあります。この問題が発生した場合は、Stratis プールのロックを解除して表示されるようにする必要があります。

Stratis プールのロックを解除するには、以下の手順を実行します。

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

    # stratis key set --capture-key key-description
  2. Stratis プールとブロックデバイスをアンロックします。

    # stratis pool unlock
  3. Stratis プールが表示されることを確認します。

    # stratis pool list

関連情報

  • stratis(8) の man ページ

次のステップ

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

この手順では、既存の Stratis プールに Stratis ファイルシステムを作成します。

前提条件

手順

  1. Stratis ファイルシステムをプールに作成するには、次のコマンドを実行します。

    # stratis fs create my-pool my-fs
    • my-pool を、既存の Stratis プールの名前に置き換えます。
    • my-fs を、ファイルシステムの任意の名前に置き換えます。
  2. 確認のために、プールにあるファイルシステムの一覧を表示します。

    # stratis fs list my-pool

関連情報

  • man ページの stratis(8)

次のステップ

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

この手順では、コンテンツにアクセスするために既存の Stratis ファイルシステムをマウントします。

前提条件

手順

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

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

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

関連情報

  • man ページの mount(8)

17.1.8. Stratis ファイルシステムを永続的に維持

この手順では、Stratis ファイルシステムを永続的にマウントして、システムが起動した後に自動的に利用できるようにします。

前提条件

手順

  1. ファイルシステムの UUID 属性を調べます。

    $ lsblk --output=UUID /stratis/my-pool/my-fs

    以下に例を示します。

    例17.1 Stratis ファイルシステムの UUID の表示

    $ lsblk --output=UUID /stratis/my-pool/fs1
    
    UUID
    a1f0b64a-4ebb-4d4e-9543-b1d79f600283
  2. このマウントポイントのディレクトリーがない場合は、作成します。

    # mkdir --parents mount-point
  3. root で /etc/fstab ファイルを編集し、ファイルシステムに行を追加します (UUID で識別されます)。xfs をファイルシステムのタイプとして使用し、x-systemd.requires=stratisd.service オプションを追加します。

    以下に例を示します。

    例17.2 /etc/fstab の /fs1 マウントポイント

    UUID=a1f0b64a-4ebb-4d4e-9543-b1d79f600283 /fs1 xfs defaults,x-systemd.requires=stratisd.service 0 0
  4. システムが新しい設定を登録するように、マウントユニットを再生成します。

    # systemctl daemon-reload
  5. ファイルシステムをマウントして、設定が機能することを確認します。

    # mount mount-point

17.2. 追加のブロックデバイスで Stratis ボリュームの拡張

Stratis ファイルシステムのストレージ容量を増やすために、追加のブロックデバイスを Stratis プールに追加できます。

17.2.1. Stratis ボリュームの構成要素

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

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

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

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

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

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

filesystem

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

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

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

重要

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

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

注記

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

17.2.2. Stratis プールへのブロックデバイスの追加

この手順では、Stratis ファイルシステムで使用できるように、1 つ以上のブロックデバイスを Stratis プールに追加します。

前提条件

  • Stratis がインストールされている。「Stratis のインストール」を参照してください。
  • stratisd サービスが実行している。
  • Stratis プールに追加するブロックデバイスは使用されておらず、マウントされていない。
  • Stratis プールに追加するブロックデバイスは使用されておらず、それぞれ 1 GiB 以上である。

手順

  • 1 つ以上のブロックデバイスをプールに追加するには、以下を使用します。

    # stratis pool add-data my-pool device-1 device-2 device-n

関連情報

  • man ページの stratis(8)

17.3. Stratis ファイルシステムの監視

Stratis ユーザーは、システムにある Stratis ボリュームに関する情報を表示して、その状態と空き容量を監視できます。

17.3.1. さまざまなユーティリティーが報告する Stratis のサイズ

本セクションでは、df などの標準的なユーティリティーと、stratis ユーティリティーにより報告される Stratis サイズの相違点を説明します。

df などの標準的な Linux ユーティリティーは、Stratis 上の 1TiB の XFS ファイルシステムレイヤーのサイズを報告します。これは 1 TiB です。Stratis の実際のストレージ使用量は、シンプロビジョニングにより少なくなっており、また XFS レイヤーが満杯に近くなると Stratis が自動的にファイルシステムを拡張するため、これは特に有用な情報ではありません。

重要

Stratis ファイルシステムに書き込まれているデータ量を定期的に監視します。これは Total Physical Used の値として報告されます。これが Total Physical Size の値を超えていないことを確認してください。

関連情報

  • man ページの stratis(8)

17.3.2. Stratis ボリュームの情報表示

この手順では、Stratis ボリュームに関する合計サイズ、使用済みサイズ、空きサイズ、ファイルシステム、プールに属するブロックデバイスなどの統計情報を一覧表示します。

前提条件

手順

  • システムで Stratis に使用されているすべての ブロックデバイス に関する情報を表示する場合は、次のコマンドを実行します。

    # stratis blockdev
    
    Pool Name  Device Node    Physical Size   State  Tier
    my-pool    /dev/sdb            9.10 TiB  In-use  Data
  • システムにあるすべての Stratis プール に関する情報を表示するには、次のコマンドを実行します。

    # stratis pool
    
    Name    Total Physical Size  Total Physical Used
    my-pool            9.10 TiB              598 MiB
  • システムにあるすべての Stratis ファイルシステム に関する情報を表示するには、次のコマンドを実行します。

    # stratis filesystem
    
    Pool Name  Name  Used     Created            Device
    my-pool    my-fs 546 MiB  Nov 08 2018 08:03  /stratis/my-pool/my-fs

関連情報

  • man ページの stratis(8)

17.4. Stratis ファイルシステムでのスナップショットの使用

Stratis ファイルシステムのスナップショットを使用して、ファイルシステムの状態を任意の時点でキャプチャーし、後でそれを復元できます。

17.4.1. Stratis スナップショットの特徴

本セクションでは、Stratis ファイルシステムのスナップショットのプロパティーと制限事項を説明します。

Stratis では、スナップショットは、別の Stratis ファイルシステムのコピーとして作成した通常の Stratis ファイルシステムです。スナップショットには、元のファイルシステムと同じファイルの内容が含まれていますが、スナップショットが変更するときにファイル内容が変更する可能性があります。スナップショットにどんな変更を加えても、元のファイルシステムには反映されません。

Stratis の現在のスナップショット実装は、次のような特徴があります。

  • ファイルシステムのスナップショットは別のファイルシステムです。
  • スナップショットと元のファイルシステムのリンクは、有効期間中は行われません。スナップショットされたファイルシステムは、元のファイルシステムよりも長く存続します。
  • スナップショットを作成するためにファイルシステムをマウントする必要はありません。
  • 各スナップショットは、XFS ログに必要となる実際のバッキングストレージの約半分のギガバイトを使用します。

17.4.2. Stratis スナップショットの作成

この手順では、既存の Stratis ファイルシステムのスナップショットとして Stratis ファイルシステムを作成します。

前提条件

手順

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

    # stratis fs snapshot my-pool my-fs my-fs-snapshot

関連情報

  • man ページの stratis(8)

17.4.3. Stratis スナップショットのコンテンツへのアクセス

この手順では、Stratis ファイルシステムのスナップショットをマウントして、読み書き操作にアクセスできるようにします。

前提条件

手順

  • スナップショットにアクセスするには、/stratis/my-pool/ ディレクトリーから通常のファイルシステムとしてマウントします。

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

関連情報

17.4.4. Stratis ファイルシステムを以前のスナップショットに戻す

この手順では、Stratis ファイルシステムの内容を、Stratis スナップショットでキャプチャーされた状態に戻します。

前提条件

手順

  1. 必要に応じて、後でそれにアクセスできるように、ファイルシステムの現在の状態のバックアップを作成します。

    # stratis filesystem snapshot my-pool my-fs my-fs-backup
  2. 元のファイルシステムをアンマウントして削除します。

    # umount /stratis/my-pool/my-fs
    # stratis filesystem destroy my-pool my-fs
  3. 元のファイルシステムの名前でスナップショットのコピーを作成します。

    # stratis filesystem snapshot my-pool my-fs-snapshot my-fs
  4. 元のファイルシステムと同じ名前でアクセスできるようになったスナップショットをマウントします。

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

my-fs という名前のファイルシステムの内容は、スナップショット my-fs-snapshot と同じになりました。

関連情報

  • man ページの stratis(8)

17.4.5. Stratis スナップショットの削除

この手順では、Stratis スナップショットをプールから削除します。スナップショットのデータは失われます。

前提条件

手順

  1. スナップショットをアンマウントします。

    # umount /stratis/my-pool/my-fs-snapshot
  2. スナップショットを破棄します。

    # stratis filesystem destroy my-pool my-fs-snapshot

関連情報

  • man ページの stratis(8)

17.5. Stratis ファイルシステムの削除

既存の Stratis ファイルシステム、または Stratis プールを削除して、そこに含まれるデータを破棄できます。

17.5.1. Stratis ボリュームの構成要素

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

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

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

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

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

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

filesystem

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

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

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

重要

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

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

注記

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

17.5.2. Stratis ファイルシステムの削除

この手順では、既存の Stratis ファイルシステムを削除します。そこに保存されているデータは失われます。

前提条件

手順

  1. ファイルシステムをアンマウントします。

    # umount /stratis/my-pool/my-fs
  2. ファイルシステムを破棄します。

    # stratis filesystem destroy my-pool my-fs
  3. ファイルシステムがもう存在しないことを確認します。

    # stratis filesystem list my-pool

関連情報

  • man ページの stratis(8)

17.5.3. Stratis プールの削除

この手順では、既存の Stratis プールを削除します。そこに保存されているデータは失われます。

前提条件

手順

  1. プールにあるファイルシステムの一覧を表示します。

    # stratis filesystem list my-pool
  2. プール上のすべてのファイルシステムをアンマウントします。

    # umount /stratis/my-pool/my-fs-1 \
             /stratis/my-pool/my-fs-2 \
             /stratis/my-pool/my-fs-n
  3. ファイルシステムを破棄します。

    # stratis filesystem destroy my-pool my-fs-1 my-fs-2
  4. プールを破棄します。

    # stratis pool destroy my-pool
  5. プールがなくなったことを確認します。

    # stratis pool list

関連情報

  • man ページの stratis(8)

このページには機械翻訳が使用されている場合があります (詳細はこちら)。