第16章 System Storage Manager (SSM)

System Storage Manager (SSM) は、さまざまなテクノロジーでストレージを管理するコマンドラインインターフェースを提供します。ストレージシステムは、Device Mappers (DM)、論理ボリュームマネージャー (LVM)、Multiple Devices (MD) の使用によってますます複雑になっています。これにより、システムはユーザーが使いにくいものとなり、エラーは問題が生じやすくなります。SSM は統一されたユーザーインターフェースを作成してこの問題を軽減します。このインターフェースによって、ユーザーは複雑なシステムを簡単に実行できるようになります。たとえば、SSM を使用せずに新しいファイルシステムを作成およびマウントするには、5 つのコマンドを使用する必要がありますが、SSM を使用すると 1 つのコマンドのみが必要になります。
本章では、SSM がさまざまなバックエンドと対話する仕組みや、一般的なユースケースを詳細に説明します。

16.1. SSM バックエンド

SSM は、デバイス、プールおよびボリュームの抽象化に準拠する ssmlib/main.py のコア抽象化レイヤーを使用し、基盤のテクノロジーの詳細を無視します。ボリュームおよびプールの createsnapshot、または remove などの特定のストレージ技術を処理するため、バックエンドを ssmlib/main.py で登録できます。
SSM にはすでに複数のバックエンドが登録されています。以下のセクションでは、これらのバックエンドの基本情報を説明し、プール、ボリューム、スナップショット、およびデバイスの処理方法の定義についても説明します。

16.1.1. Btrfs バックエンド

注記

Red Hat Enterprise Linux 7 では、Btrfs をテクノロジープレビュー機能として利用できますが、Red Hat Enterprise Linux 7.4 リリース以降に廃止されました。これは、Red Hat Enterprise Linux の今後のメジャーリリースで削除されます。
詳細は、Red Hat Enterprise Linux 7.4 リリースノートの 「Deprecated Functionality」 を参照してください。
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 ボリューム

プールの最初のボリュームの後に作成されたボリュームはサブボリュームと同じです。サブボリュームを作成するために 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 ボリュームから作成される場合、新規の snapshot ボリュームが作成され、それは他の LVM ボリュームと全く同様の方法で処理されます。Btrfs とは異なり、LVM はスナップショットと通常のボリュームを区別することができるため、スナップショットの名前が特定のパターンに一致している必要はありません。

16.1.2.4. LVM デバイス

SSM では、ユーザーに対して透過的な物理デバイス上に LVM バックエンドを作成する必要があります。

16.1.3. Crypt バックエンド

SSM における Crypt バックエンドは、cryptsetup および dm-crypt target を使用して暗号化されたボリュームを管理します。Crypt バックエンドは、通常のブロックデバイス上 (または LVM または MD ボリュームなどの他のボリューム上) に暗号化されたボリュームを作成するための通常のバックエンドとして使用したり、単一の手順で暗号化された LVM ボリュームを作成するために使用したりできます。
ボリュームのみが crypt バックエンドを使って作成できます。プールはサポートされておらず、特殊なデバイスは不要です。
次のセクションは、crypt の観点からボリュームおよびスナップショットを定義します。

16.1.3.1. crypt ボリューム

crypt ボリュームは dm-crypt によって作成され、元の暗号化されたデバイス上のデータを暗号化されていない状態で表します。RAID またはデバイスの連結はサポートしません。
luks と plain の2 つのモード (拡張) がサポートされます。デフォルトでは luks が使用されます。拡張の詳細は、man cryptsetup の出力を参照してください。

16.1.3.2. crypt スナップショット

Crypt バックエンドはスナップショットの作成をサポートしていません。ただし、暗号化されたボリュームが LVM ボリューム上に作成される場合、ボリューム自体のスナップショットを作成できます。その後、スナップショットは cryptsetup を使用して開くことができます。

16.1.4. Multiple Devices (MD) バックエンド

MD バックエンドは、現時点で、システム内の MD ボリュームについての情報を収集することに制限されています。