第16章 System Storage Manager (SSM)
System Storage Manager(SSM) は、さまざまなテクノロジーでストレージを管理するためのコマンドラインインターフェイスを提供します。ストレージシステムは、デバイスマッパー (DM)、論理ボリュームマネージャー (LVM)、および複数のデバイス (MD) の使用により、ますます複雑になっています。これにより、ユーザーフレンドリーではないシステムが作成され、エラーや問題が発生しやすくなっています。SSM は、統一されたユーザーインターフェイスを作成することにより、これを軽減します。このインターフェイスを使用すると、複雑なシステムを簡単に実行できます。たとえば、SSM を使用せずに新しいファイルシステムを作成してマウントするには、5 つのコマンドを使用する必要があります。SSM では、必要なのは 1 つだけです。
本章では、SSM がさまざまなバックエンドと相互作用する方法および一般的なユースケースの一部を説明します。
16.1. SSM のバックエンド
SSM は、
ssmlib/main.py
のコア抽象化レイヤーを使用します。これは、基礎となるテクノロジーの詳細を無視して、デバイス、プール、およびボリュームの抽象化に準拠します。バックエンドを ssmlib/main.py
に登録して、作成、スナップショット、ボリュームやプールの 削除 など、特定のストレージテクノロジーメソッドを処理します。
SSM には複数のバックエンドが登録されています。次のセクションでは、それらの基本情報と、プール、ボリューム、スナップショット、およびデバイスの処理方法の定義について説明します。
16.1.1. Btrfs バックエンド
注記
Btrfs は、Red Hat Enterprise Linux 7 ではテクノロジープレビューとして利用できますが、Red Hat Enterprise Linux 7.4 リリース以降では非推奨になりました。Red Hat Enterprise Linux の将来のメジャーリリースで削除される予定です。
詳細は、Red Hat Enterprise Linux 7.4 リリースノートの 非推奨の機能 を参照してください。
多くの高度な機能を備えたファイルシステムである Btrfs は、SSM のボリューム管理バックエンドとして使用されます。プール、ボリューム、およびスナップショットは、Btrfs バックエンドで作成できます。
16.1.1.1. Btrfs プール
Btrfs ファイルシステム自体がプールです。デバイスを追加して拡張したり、デバイスを削除して縮小したりできます。SSM は、Btrfs プールの作成時に Btrfs ファイルシステムを作成します。つまり、すべての新しい Btrfs プールには、プールと同じ名前のボリュームが 1 つありますが、これはプール全体を削除しないと削除できません。デフォルトの Btrfs プール名は
btrfs_pool
です。
プールの名前がファイルシステムのラベルとして使用されます。ラベルのないシステムに既存の Btrfs ファイルシステムがある場合、Btrfs プールは
btrfs_device_base_nameの形式で内部使用の名前
を生成します。
16.1.1.2. Btrfs ボリューム
プール内の最初のボリュームの後に作成されるボリュームは、サブボリュームと同じです。SSM は、サブボリュームを作成するために、マウントを解除すると、Btrfs ファイルシステムを一時的にマウントします。
ボリュームの名前は、Btrfs ファイルシステムのサブボリュームパスとして使用されます。たとえば、サブボリュームは
/dev/lvm_pool/lvol001
と表示されます。ボリュームを作成するには、このパスにあるすべてのオブジェクトが存在している必要があります。ボリュームは、マウントポイントで参照することもできます。
16.1.1.3. Btrfs スナップショット
スナップショットは、SSM を使用するシステムの Btrfs ボリュームから作成できます。Btrfs では、サブボリュームとスナップショットが区別されないことに注意してください。これは、SSM が Btrfs スナップショットの宛先を認識できないことを意味しますが、特別な名前の形式を認識しようとします。スナップショットの作成時に指定した名前が特定のパターンに該当する場合、スナップショットは認識されず、通常の Btrfs ボリュームとしてリスト表示されます。
16.1.1.4. Btrfs デバイス
Btrfs では、特別なデバイスを作成する必要はありません。
16.1.2. LVM バックエンド
プール、ボリューム、およびスナップショットは、LVM で作成できます。以下の定義は、LVM の観点からのものです。
16.1.2.1. LVM プール
LVM プールは、LVM ボリュームグループと同じです。つまり、デバイスのグループ化と、新しい論理ボリュームを LVM プールから作成できます。デフォルトの LVM プール名は
lvm_pool
です。
16.1.2.2. LVM ボリューム
LVM ボリュームは、通常の論理ボリュームと同じです。
16.1.2.3. LVM スナップショット
LVM ボリュームからスナップショットを作成すると、他の LVM ボリュームと同様に処理できる新しい
スナップショット
ボリュームが作成されます。Btrfs とは異なり、LVM ではスナップショットと通常のボリュームを区別できるため、スナップショット名を特定のパターンに一致させる必要はありません。
16.1.2.4. LVM デバイス
SSM を使用すると、ユーザーに対して物理デバイスに LVM バックエンドを透過的に作成する必要があります。
16.1.3. 暗号化バックエンド
SSM の crypt バックエンドは、cryptsetup および dm-crypt ターゲット を使用して暗号化されたボリュームを管理します。暗号化バックエンドは、通常のブロックデバイス (または LVM や MD ボリュームなどのその他のボリューム) で暗号化ボリュームを作成するための通常のバックエンドとして使用することも、暗号化した LVM ボリュームを 1 つの手順で作成することもできます。
暗号化バックエンドで作成できるのはボリュームのみです。プールには対応しておらず、特別なデバイスは必要ありません。
以下のセクションでは、暗号化の観点からボリュームとスナップショットを定義します。
16.1.3.1. 暗号化ボリューム
crypt ボリュームは dm-crypt により作成され、暗号化されていない形式で元の暗号化デバイスのデータを表します。RAID またはデバイスの連結には対応していません。
luks と plain の 2 つのモード、つまり拡張機能に対応しています。Luks はデフォルトで使用されます。拡張機能の詳細は、man cryptsetup を参照してください。
16.1.3.2. 暗号化スナップショット
暗号化バックエンドはスナップショットに対応していませんが、暗号化したボリュームが LVM ボリュームの上に作成されている場合は、そのボリューム自体をスナップショットすることができます。その後、cryptsetup を使用してスナップショットを開くことができます。
16.1.4. 複数のデバイス (MD) のバックエンド
現在、MD バックエンドは、システム内の MD ボリュームに関する情報の収集に限られています。