論理ボリュームマネージャーの管理
Red Hat Enterprise Linux 7
LVM 論理ボリュームの設定および管理
概要
本書では、クラスター環境における LVM の実行に関する情報など、LVM 論理ボリュームマネージャーについて説明します。
第1章 LVM 論理ボリュームマネージャー リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
この章では、Red Hat Enterprise Linux 7 の初期リリース以降のリリースに新たに組み込まれている LVM 論理ボリュームマネージャーの機能についてまとめています。さらに、論理ボリュームマネージャー (LVM) のコンポーネントの概要を説明します。
1.1. 新機能と変更点 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、Red Hat Enterprise Linux 7 の初期リリース以降に加えられた LVM 論理ボリュームマネージャーの機能のリストを提供します。
1.1.1. Red Hat Enterprise Linux 7.1 の新機能および変更された機能 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Enterprise Linux 7.1 には、ドキュメントや機能を対象とする以下の更新および変更が含まれています。
- シンプロビジョニングされたボリュームと、シンプロビジョングされたスナップショットに関する記載がわかりやすくなりました。LVM シンプロビジョニングに関する追加情報は、lvmthin(7) man ページを参照してください。シンプロビジョングされた論理ボリュームに関する全般的な情報は、「シンプロビジョニングされた論理ボリューム (シンボリューム)」 を参照してください。シンプロビジョニングのスナップショットボリュームの詳細は、「シンプロビジョニングされたスナップショットボリューム」 を参照してください。
- 本書では、lvm dumpconfig コマンドの説明を 「lvmconfig コマンド」 にまとめています。Red Hat Enterprise Linux 7.2 リリースでは、このコマンドの名前が lvmconfig に変更になりました。ただし、以前の形式は引き続き機能します。
- このマニュアルは、LVM プロファイルについて 「LVM プロファイル」 で説明しています。
- 本書では、lvm コマンドの説明を 「lvm コマンドを使用した LVM 情報の表示」 に追加しています。
- Red Hat Enterprise Linux 7.1 リリースでは、「論理ボリュームのアクティブ化の制御」 に記載されているように、lvcreate および lvchange コマンドの -k および -K オプションを使用して、シンプールスナップショットのアクティブ化を制御できます。
- 本書では、vgimport コマンドの
--force引数を説明しています。これにより、物理ボリュームがないボリュームグループをインポートし、その後 vgreduce --removemissing コマンドを実行できます。vgimport コマンドの詳細は、「ボリュームグループの別のシステムへの移動」 を参照してください。 - 本書では、vgreduce コマンドの
--mirrorsonly引数を説明しています。この引数を使用すると、障害が発生した物理ボリュームのミラーイメージである論理ボリュームのみを削除することができます。このオプションの使用方法については、「ボリュームグループの別のシステムへの移動」 を参照してください。
さらに、ドキュメント全体にわたり、技術的な内容の若干の修正と明確化を行いました。
1.1.2. Red Hat Enterprise Linux 7.2 の新機能および変更された機能 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Enterprise Linux 7.2 ではドキュメントと機能が以下のように更新/変更されています。
- 多くの LVM 処理コマンドでは、
-Sオプションまたは--selectオプションで、これらのコマンドの選択基準を定義するようになりました。LVM 選択基準については、新しい付録 付録C LVM 選択基準 に記載されています。 - 本書では、キャッシュ論理ボリュームの作成に関する基本的な手順について 「LVM 論理ボリュームの作成」 で説明します。
- 本書のトラブルシューティングに関する章に、新しいセクション 「マルチパスデバイスに対する重複した PV 警告」 が追加されました。
- Red Hat Enterprise Linux 7.2 リリースでは、lvm dumpconfig コマンドの名前が lvmconfig に変更になりましたが、古い形式は引き続き動作するようになりました。ただし、以前の書式は引き続き利用できます。この変更は本書全体に反映されています。
さらに、ドキュメント全体にわたり、技術的な内容の若干の修正と明確化を行いました。
1.1.3. Red Hat Enterprise Linux 7.3 の新機能および変更された機能 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Enterprise Linux 7.3 ではドキュメントと機能が以下のように更新、変更されています。
- LVM は RAID0 セグメントタイプをサポートします。RAID0 では、ストライプサイズの単位で、複数のデータサブボリュームに論理ボリュームデータが分散されます。RAID0 ボリュームの作成については、「RAID0 ボリュームの作成 (Red Hat Enterprise Linux 7.3 以降)」 を参照してください。
- lvm fullreport コマンドを使用して、物理ボリューム、ボリュームグループ、論理ボリューム、物理ボリュームセグメント、および論理ボリュームセグメントに関する情報を一度に報告できます。このコマンドとその機能の詳細は、lvm-fullreport(8)の man ページを参照してください。
- LVM は、LVM コマンドの実行中に収集された操作、メッセージ、および各オブジェクトのステータス (完全なオブジェクト ID 付き) のログが含まれるログレポートをサポートします。LVM ログレポートの例は、「コマンドログレポート (Red Hat Enterprise Linux 7.3 以降)」 を参照してください。LVM ログレポートの詳細は、lvmreport(7) man ページを参照してください。
- LVM 表示コマンドで
--reportformatオプションを使用して、JSON 形式で出力を表示できます。JSON 形式で表示された出力例は、「JSON 形式の出力 (Red Hat Enterprise Linux 7.3 以降)」 を参照してください。 lvm.conf設定ファイルでrecord_lvs_historyメタデータオプションを有効にして、削除したシンプロビジョニングのスナップショットとシン論理ボリュームを追跡するようにシステムを設定できるようになりました。これにより、元の依存関係チェーンから削除され、過去の論理ボリュームになった論理ボリュームを含む、完全なシンスナップショット依存関係チェーンを表示できます。過去の論理ボリュームについては、「過去の論理ボリュームの追跡および表示 (Red Hat Enterprise Linux 7.3 以降)」 を参照してください。
さらに、ドキュメント全体にわたり、技術的な内容の若干の修正と明確化を行いました。
1.1.4. Red Hat Enterprise Linux 7.4 の新機能および変更された機能 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Enterprise Linux 7.4 では、ドキュメントと機能が以下のように更新、変更されています。
- Red Hat Enterprise Linux 7.4 では、RAID テイクオーバーおよび RAID の再成形 (reshaping) に対応します。機能の概要は、「RAID テイクオーバー (Red Hat Enterprise Linux 7.4 以降)」 と 「RAID 論理ボリュームの再成形 (Red Hat Enterprise Linux 7.4 以降)」 を参照してください。
1.2. 論理ボリューム リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
ボリューム管理により、物理ストレージに抽象化レイヤーが作成され、論理ストレージボリュームを作成できるようになりました。様々な面で、物理ストレージを直接使用するよりも柔軟性が高くなります。論理ボリュームを作成すると、物理ディスクのサイズに制限されなくなります。また、ハードウェアストレージ設定がソフトウェアから見えなくなるため、アプリケーションを停止したりファイルシステムをアンマウントしたりせずに、サイズ変更や移動が可能になります。したがって、運用コストが削減できます。
物理ストレージを直接使用する場合と比較して、論理ボリュームには、以下のような利点があります。
- 容量の柔軟性論理ボリュームを使用すると、ディスクとパーティションを 1 つの論理ボリュームに集約できるため、ファイルシステムを複数のディスクに拡張できます。
- サイズ変更可能なストレージプール基になるディスクデバイスを再フォーマットしたり、パーティションを再作成したりせずに、簡単なソフトウェアコマンドを使用して論理ボリュームのサイズを拡大または縮小できます。
- オンラインデータ移動より新しく、迅速で、障害耐性の高いストレージサブシステムを導入するために、システムがアクティブな状態でもデータを移動できます。データは、ディスクが使用中の場合でもディスクに再配置できます。たとえば、ホットスワップ可能なディスクを削除する前に空にできます。
- 便利なデバイスの命名論理ストレージボリュームは、ユーザーが命名をカスタマイズしたグループで管理できます。
- ディスクのストライピング2 つ以上のディスクにまたがってデータをストライプ化する論理ボリュームを作成できます。これにより、スループットが大幅に向上します。
- ボリュームのミラーリング論理ボリュームは、データのミラーを設定する際に便利な方法を提供します。
- ボリュームスナップショット論理ボリュームを使用すると、一貫したバックアップが可能なデバイススナップショットを取ったり、実際のデータに影響を及ぼすことなく変更の影響をテストしたりできます。
LVM にこれらの機能を実装する方法は、後の章で説明します。
1.3. LVM アーキテクチャーの概要 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
注記
LVM2 には LVM1 との下位互換性があります。vgconvert コマンドを使用して、ボリュームグループを LVM1 形式から LVM2 形式に変換できます。LVM メタデータ形式の変換に関する情報は、vgconvert(8)の man ページを参照してください。
LVM 論理ボリュームの基になる物理ストレージユニットは、パーティション、ディスク全体などのブロックデバイスです。このデバイスは、LVM 物理ボリューム (Physical Volume: PV) として初期化されます。
LVM 論理ボリュームを作成する場合は、物理ボリュームをボリュームグループ (Volume Group: VG) に統合します。これによりディスク領域のプールが作成され、そこから LVM 論理ボリューム (Logical Volume: LV) を割り当てます。このプロセスは、ディスクをパーティションに分割する方法に類似しています。論理ボリュームは、ファイルシステムやアプリケーション (データベースなど) に使用されます。
図1.1「LVM 論理ボリュームのコンポーネント」 は、LVM 論理ボリュームのコンポーネントを簡略に示しています。
図1.1 LVM 論理ボリュームのコンポーネント
LVM 論理ボリュームのコンポーネントの詳細は、2章LVM コンポーネント を参照してください。
1.4. Red Hat High Availability クラスターの LVM 論理ボリューム リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Red Hat High Availability Add-On で対応している LVM ボリュームでは、2 つのクラスター設定を使用できます。
- クラスターの 1 つのノードのみが 1 度にストレージにアクセスする、アクティブ/パッシブフェイルオーバー設定の HA-LVM (High Availability LVM) ボリューム。
- 1 つ以上のクラスターが同時にストレージにアクセスする必要がある、アクティブ/アクティブ設定の CLVM (Clustered Logical Volume) を使用する LVM ボリューム。CLVM は Resilient Storage Add-On の一部です。
1.4.1. CLVM または HA-LVM の選択 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
CLVM または HA-LVM をいつ使用するかは、デプロイされたアプリケーションまたはサービスの必要性に応じて決定する必要があります。
- クラスターの複数のノードが、アクティブ/アクティブシステムで LVM ボリュームへの同時読み取りまたは書き込みを必要とする場合、CLVMD を使用する必要があります。CLVMD は、クラスターのノード全体で LVM ボリュームのアクティベーションおよび変更を同時に調整するシステムを提供します。CLVMD のクラスターロックサービスは、クラスターのさまざまなノードがボリュームと対話し、レイアウトに変更を加え、LVM メタデータを保護します。この保護は、
lvm.confファイルでlocking_typeを 3 に設定し、複数のクラスターノード全体で CLVMD によって管理され、アクティベートされるボリュームグループにクラスター化フラグを設定するなど、該当するボリュームグループの設定が適切に行われます。 - 単一のメンバーのみが 1 度に指定の LVM ボリュームにアクセスする必要があり、アクティブ/パッシブに共有リソースを管理するよう HA クラスターが設定された場合、CLVMD クラスターロックサービスを使用せずに HA-LVM を使用することができます。
ほとんどのアプリケーションは、その他のインスタンスと同時に実行するように設計または最適化されていないため、アクティブ/パッシブ設定での実行により適しています。論理ボリュームがミラーリングされていない場合、クラスター化された論理ボリュームでクラスター対応でないアプリケーションを実行すると、パフォーマンスが低下することがあります。これは、論理ボリューム自体にクラスター通信のオーバーヘッドが発生するためです。クラスター対応のアプリケーションは、クラスターファイルシステムとクラスター対応の論理ボリュームにより発生するパフォーマンスの低下を上回るパフォーマンスの向上を実現できるようにする必要があります。実現が容易かどうかは、アプリケーションやワークロードによって異なります。クラスターの要件を判断し、アクティブ/アクティブのクラスターを最適化する努力に価値があるかどうかを判断して、どちらの LVM を使用するかを選択します。ほとんどの場合は、HA-LVM を使用すると HA を最適化できます。
HA-LVM および CLVM は、複数のマシンが変更を重複して行うと発生する LVM メタデータとその論理ボリュームの破損を防ぐという点で似ています。これは、複数のマシンがオーバーラッピングの変更を許可されている場合に発生します。HA-LVM では、論理ボリュームは、アクティベートする場合は排他的に行うように制限されているため、一度に 1 つのマシンでしかアクティブになりません。そのため、ストレージドライバーのローカル (非クラスター) 実装のみが使用されます。このようにクラスターの調整オーバーヘッドが発生しないようにすると、パフォーマンスが向上します。CLVM にはこのような制限はなく、ユーザーはクラスターのすべてのマシンで論理ボリュームをアクティベートすることができます。これにより、クラスター対応のストレージドライバーの使用が強制され、クラスター対応のファイルシステムとアプリケーションが優先されます。
1.4.2. クラスター内での LVM ボリュームの設定 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Enterprise Linux 7 では、クラスターは Pacemaker で管理されます。HA-LVM および CLVM 論理ボリュームは、Pacemaker クラスターと併用される場合のみサポートされ、クラスターリソースとして設定する必要があります。
- HA-LVM ボリュームを Pacemaker クラスターの一部として設定する手順は、High Availability Add-On の管理のRed Hat High Availability クラスターのアクティブ/パッシブ Apache HTTP サーバーを参照してください。この手順には以下が含まれます。
- LVM 論理ボリュームの設定
- クラスターのみがボリュームグループをアクティベートできるようにする
- LVM ボリュームをクラスターリソースとして設定する
- クラスターで CLVM ボリュームを設定する手順はGlobal File System 2のクラスターでの GFS2 ファイルシステムの設定を参照してください。
第2章 LVM コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
この章では、LVM 論理ボリュームのコンポーネントについて説明します。
2.1. 物理ボリューム リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
LVM 論理ボリュームの基になる物理ストレージユニットは、パーティション、ディスク全体などのブロックデバイスです。LVM 論理ボリューム用にデバイスを使用する場合は、デバイスを物理ボリューム (PV) として初期化する必要があります。ブロックデバイスを物理ボリュームとして初期化すると、デバイスの先頭位置にラベルが付けられます。
LVM ラベルは、デフォルトでは 2 番目の 512 バイトセクターに配置されます。物理ボリュームを作成する場合は、先頭の 4 つのセクターのいずれかにラベルを配置することにより、このデフォルト設定を書き換えることができます。これにより、必要に応じて LVM ボリュームを、このセクターを利用する他のユーザーと併用できるようになります。
デバイスがシステムの起動時に任意の順序で初期化されても、LVM ラベルにより物理デバイスの識別とデバイスの順序付けが正しく行われます。LVM ラベルは、再起動してもクラスター全体で維持されます。
LVM ラベルは、デバイスを LVM 物理ボリュームとして識別するものです。これには、物理ボリューム用のランダムな一意識別子 (UUID) が含まれます。また、ブロックデバイスのサイズもバイト単位で保存し、LVM メタデータがデバイスのどこに保存されているかも記録します。
LVM メタデータには、システムにある LVM ボリュームグループの設定詳細が含まれています。デフォルトでは、メタデータの複製コピーが、ボリュームグループ内で、すべての物理ボリュームの、すべてのメタデータ領域に保存されています。LVM メタデータのサイズは小さく、ASCII 形式が使用されます。
現在、LVM では、各物理ボリュームにメタデータのコピーを 1 つまたは 2 つ保存できます。コピーをゼロにすることもできます。デフォルトでは 1 つ保存されます。物理ボリューム上に保存するメタデータのコピー数を一度設定したら、その数を後で変更することはできません。最初のコピーはデバイスの先頭にあるラベルの後に保存されます。2 つ目のコピーがある場合は、デバイスの最後に配置されます。意図したものとは別のディスクに誤って書き込みを行い、ディスクの先頭領域を上書きしてしまった場合でも、デバイス後部にある 2 つ目のコピーでメタデータを復元できます。
LVM メタデータとメタデータパラメーターの変更に関する詳細は、付録E LVM ボリュームグループメタデータ を参照してください。
2.1.1. LVM 物理ボリュームのレイアウト リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
図2.1「物理ボリュームレイアウト」 は、LVM 物理ボリュームのレイアウトを示しています。LVM ラベルが 2 番目のセクターにあり、その後にメタデータ領域、使用可能なデバイス領域と続きます。
注記
Linux カーネル (および本書) では、セクターのサイズを 512 バイトとしています。
図2.1 物理ボリュームレイアウト
2.1.2. ディスク上の複数パーティション リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
LVM の使用により、ディスクパーティションから物理ボリュームを作成できます。Red Hat では、以下のような理由により、ディスク全体に対応するパーティションを 1 つ作成し、1 つの LVM 物理ボリュームとしてラベルを付けることを推奨しています。
- 管理上の利便性各ディスクが一度だけ表示されると、システムのハードウェアの追跡が簡単になります。これは、特にディスクに障害が発生した場合に役に立ちます。さらに、1 つのディスクに物理ボリュームが複数あると、システムの起動時に、不明なパーティションに関するカーネルの警告が発生する可能性があります。
- ストライピングのパフォーマンスLVM は、2 つの物理ボリュームが同じ物理ディスクにあるかどうかを認識しません。2 つの物理ボリュームが同じ物理ディスクにあるときに、ストライプ化された論理ボリュームを作成すると、作成されたボリュームのディスクは同じでも、パーティションは異なる可能性があります。このとき、パフォーマンスは、改善ではなく低下します。
1 つのディスクを、複数の LVM 物理ボリュームに分割しないといけない場合があります (推奨はされません)。たとえば、ディスクがほとんどないシステムで、既存システムを LVM ボリュームに移行する場合に、パーティション間でデータを移動しなければならない場合があります。さらに、大容量のディスクが存在し、管理目的で複数のボリュームグループを必要とする場合は、そのディスクにパーティションを設定する必要があります。ディスクに複数のパーティションがあり、そのパーティションがいずれも同じボリュームグループにある場合に、ストライプ化ボリュームを作成するときは、論理ボリュームに追加するパーティションを注意して指定してください。
2.2. ボリュームグループ リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
物理ボリュームはボリュームグループ (VG) に統合されます。これにより、論理ボリュームに割り当て可能なディスク領域のプールが作成されます。
ボリュームグループ内で、割り当て可能なディスク領域は、エクステントと呼ばれる固定サイズの単位に分割されます。割り当て可能な領域の最小単位は、1 エクステントです。エクステントは、物理ボリュームでは物理エクステントと呼ばれます。
論理ボリュームには、物理エクステントと同じサイズの論理エクステントが割り当てられます。そのため、エクステントのサイズは、ボリュームグループ内のすべての論理ボリュームで同じになります。ボリュームグループは、論理エクステントを物理エクステントにマッピングします。
2.3. LVM 論理ボリューム リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
LVM では、ボリュームグループは論理ボリュームに分割されます。以下のセクションでは、論理ボリュームのタイプを説明します。
2.3.1. リニアボリューム リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
リニアボリュームは、複数の物理ボリュームの領域を 1 つの論理ボリュームに統合します。たとえば、60GB ディスクが 2 つある場合は、120GB の論理ボリュームを作成できます。物理ストレージは連結されます。
リニアボリュームを作成すると、論理ボリュームの領域に、物理エクステントの範囲が順番に割り当てられます。たとえば、図2.2「エクステントのマッピング」 にあるように、1 から 99 までの論理エクステントが 1 つ目の物理ボリュームにマッピングされ、100 から 198 までの論理エクステントが 2 つ目の物理ボリュームにマッピングされます。アプリケーションからは、サイズが 198 エクステントのデバイスが 1 つあるように見えます。
図2.2 エクステントのマッピング
論理ボリュームを設定する物理ボリュームのサイズは、同じである必要はありません。図2.3「サイズの異なる物理ボリュームを用いたリニアボリューム」 物理エクステントサイズが 4MB のボリュームグループ
VG1 を表示します。このボリュームグループには、PV1 と PV2 という名前の 2 つの物理ボリュームが含まれます。1 エクステントは 4MB なので、物理ボリュームが分割される単位は 4MB になります。この例では、PV1 は 200 エクステントのサイズ(800MB)で、PV2 はサイズが 100 エクステント(400 MB)です。リニアボリュームは、エクステントサイズ 1 から 300 (4MB から 1200MB) の間で作成できます。この例では、LV1 という名前のリニアボリュームのサイズは 300 エクステントです。
図2.3 サイズの異なる物理ボリュームを用いたリニアボリューム
物理エクステントのプールから、必要なサイズの複数のリニア論理ボリュームを設定できます。図2.4「複数の論理ボリューム」 は、図2.3「サイズの異なる物理ボリュームを用いたリニアボリューム」 と同じボリュームグループを示していますが、この場合、2 つの論理ボリュームがボリュームグループから抜け出されています。
LV1 は、サイズが 250 のエクステント(1000MB)と LV2 (サイズが 50 エクステント)の LV2 です。
図2.4 複数の論理ボリューム
2.3.2. ストライプ化論理ボリューム リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
LVM 論理ボリュームにデータを書き込む際に、ファイルシステムは、基になる物理ボリューム全体にデータを分配します。このとき、ストライプ化論理ボリュームを作成すると、データを物理ボリュームに書き込む方法を制御できます。順次の読み取りおよび書き込みが大量に行われる場合には、これによりデータ I/O の効率を向上できます。
ストライピングは、ラウンドロビン式で、指定した数の物理ボリュームにデータを書き込んでいくことで、パフォーマンスを向上させます。I/O は、ストライピングでは並行して実行されます。これにより、ストライプで追加される各物理ボリュームでは、ほぼ直線的なパフォーマンスの向上が期待できます。
以下は、3 つの物理ボリュームにデータがストライプ化されている状態を示しています。この図は、以下のようになります。
- データの 1 番目のストライプは、1 番目の物理ボリュームに書き込まれます。
- データの 2 番目のストライプは、2 番目の物理ボリュームに書き込まれます。
- データの 3 番目のストライプは、3 番目の物理ボリュームに書き込まれます。
- データの 4 番目のストライプは、1 番目の物理ボリュームに書き込まれます。
ストライプ化された論理ボリュームでは、ストライプのサイズは、エクステントのサイズより小さくなります。
図2.5 3 つの PV にまたがるデータのストライピング
ストライプ化論理ボリュームは、別のデバイスセットを最初のセットの末端に連結すれば拡張できます。ストライプ化論理ボリュームを拡張するには、ストライプに対応するボリュームグループを設定する、基になる物理ボリュームセットに、十分な空き領域が必要です。たとえば、ボリュームグループ全域を使用している 2 way ストライプがある場合は、そのボリュームグループに物理ボリュームを 1 つだけ追加しても、ストライプは拡張できません。ボリュームグループには物理ボリュームを 2 つ以上追加する必要があります。ストライプ化ボリュームの拡張の詳細は、「ストライプ化ボリュームの拡張」 を参照してください。
2.3.3. RAID 論理ボリューム リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
LVM は、RAID0、1、4、5、6、および 10 に対応します。LVM RAID ボリュームには以下の特徴があります。
- LVM で作成および管理される RAID 論理ボリュームは、MD カーネルドライバーを使用します。
- RAID1 イメージはアレイから一時的に切り離して、後でアレイにマージし直すことができます。
- LVM RAID ボリュームはスナップショットに対応
RAID 論理ボリュームの作成方法は、「RAID 論理ボリューム」 を参照してください。
注記
RAID 論理ボリュームはクラスターには対応していません。RAID 論理ボリュームは、1 台のマシンに作成して排他的にアクティブにすることができますが、複数のマシンで同時にアクティブにすることはできません。
2.3.4. シンプロビジョニングされた論理ボリューム (シンボリューム) リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
論理ボリュームは、シンプロビジョニングにできます。これにより、利用可能なエクステントよりも大きな論理ボリュームを作成できます。シンプロビジョニングを使用すると、シンプールと呼ばれる、空き領域のストレージプールを管理でき、アプリケーションで必要になった時に任意の数のデバイスに割り当てることができます。後でアプリケーションが実際に論理ボリュームに書き込むときに割り当てられるように、シンプールにバインドするデバイスを作成できます。シンプールは、ストレージ領域をコスト効率よく割り当てる必要がある場合に、動的に拡張できます。
注記
クラスターのノード間では、シンボリュームに対応していません。シンプールとそのすべてのシンボリュームは、1 つのクラスターノードで排他的にアクティブにする必要があります。
ストレージ管理者は、シンプロビジョニングを使用することで物理ストレージをオーバーコミットできるため、多くの場合は、追加のストレージを購入する必要がなくなります。たとえば、10 人のユーザーから、各自のアプリケーションに使用するファイルシステムをそれぞれ 100GB 要求された場合、ストレージ管理者は各ユーザーに 100GB のファイルシステムを作成します (ただし、実際には 100GB 未満のストレージが、必要に応じて使用されます)。
注記
シンプロビジョニングを使用する場合は、ストレージ管理者がストレージプールを監視し、容量が満杯になり始めたら容量を追加することが重要です。
利用可能な領域をすべて使用できるようにするために、LVM はデータの破棄に対応します。これにより、破棄されたファイルや、その他のブロック範囲で以前に使用された領域を再利用できます。
シンボリュームの作成方法は、「シンプロビジョニングされた論理ボリュームの作成」 を参照してください。
シンボリュームは、新たに実装されたコピーオンライト (COW) スナップショット論理ボリュームに対応します。これにより、多くの仮想デバイスでシンプール内の同一データを共有できます。シンプロビジョニングのスナップショットボリュームの詳細は、「シンプロビジョニングされたスナップショットボリューム」 を参照してください。
2.3.5. スナップショットボリューム リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
LVM スナップショット機能により、サービスを中断せずに任意の時点でデバイスの仮想イメージを作成できます。スナップショットの取得後に作成元のデバイスに変更が加えられると、データが変更する前に、これから変更する部分のコピーがスナップショット機能により作成されるため、このコピーを使用して、デバイスの状態を再構築できます。
注記
LVM は、シンプロビジョニングのスナップショットに対応しますシンプロビジョニングのスナップショットボリュームの詳細は、「シンプロビジョニングされたスナップショットボリューム」 を参照してください。
注記
LVM スナップショットは、クラスターのノード間では対応していません。クラスター化されたボリュームグループ内にスナップショットボリュームは作成できません。
スナップショットは、スナップショットの作成後に変更したデータ部分のみをコピーするため、スナップショット機能に必要なストレージは最小限になります。たとえば、複製元の大部分が更新されない場合は、その容量の 3-5 % があればスナップショットを十分に維持することができます。
注記
ファイルシステムのスナップショットコピーは仮想コピーであり、ファイルシステムのメディアバックアップを実際に作成するわけではありません。スナップショットは、バックアップの代替手順にはなりません。
作成元のボリュームへの変更を保管するために確保する領域は、スナップショットのサイズによって異なります。たとえば、スナップショットを作成してから作成元を完全に上書きした場合に、その変更を保管するのに必要なスナップショットのサイズは、作成元のボリュームと同じか、それ以上になります。スナップショットのサイズは、予想される変更レベルに応じて決定する必要があります。たとえば、
/usr など、その大部分が読み取り用ボリュームの有効期間の短いスナップショットに必要な領域は、/home など、書き込みの数が多いボリュームの有効期間の長いスナップショットに必要な領域よりも小さくなります。
スナップショットが満杯になると、作成元のボリュームの変更を追跡できなくなるため、そのスナップショットは無効になります。スナップショットのサイズは定期的に監視する必要があります。ただし、スナップショットのサイズは完全に変更することが可能なため、ストレージに余裕があれば、スナップショットが停止しないように、スナップショットのボリュームサイズを拡大できます。逆に、スナップショットのボリュームサイズが必要以上に大きければ、そのボリュームのサイズを縮小して、他の論理ボリュームで必要となる領域を確保できます。
スナップショットのファイルシステムを作成しても、作成元への完全な読み取り/書き込みのアクセスは引き続き可能です。スナップショット上のチャンクを変更した場合は、そのチャンクにマークが付けられ、そこには、作成元のボリュームのコピーは入りません。
スナップショット機能にはいくつかの用途があります。
- 最も一般的な用途は、継続的にデータを更新している稼動中のシステムを停止せずに、論理ボリューム上でバックアップを実行する必要がある場合にスナップショットを撮ることです。
- スナップショットファイルシステムで fsck コマンドを実行してファイルシステムの整合性を確認し、元のファイルシステムを修復する必要があるかどうかを判断できます。
- スナップショットは読み取りおよび書き込み用であるため、スナップショットを撮ってそのスナップショットにテストを実行することにより、実際のデータに触れることなく、実稼働データにアプリケーションのテストを実行できます。
- LVM ボリュームを作成して、Red Hat の仮想化と併用することが可能です。LVM スナップショットを使用して、仮想ゲストイメージのスナップショットを作成できます。このスナップショットは、最小限のストレージを使用して、既存のゲストの変更や新規ゲストの作成を行う上で利便性の高い方法を提供します。Red Hat Virtualization による LVM ベースのストレージプールの作成についての詳細は、『仮想化管理ガイド』 を参照してください。
スナップショットボリュームの作成に関する情報は、「スナップショットボリュームの作成」 を参照してください。
lvconvert コマンドの
--merge オプションを使用して、スナップショットを作成元のボリュームにマージできます。この機能の用途の 1 つがシステムロールバックの実行で、データやファイルを紛失した場合や、システムを以前の状態に復元する必要がある場合に行います。スナップショットボリュームのマージの結果作成される論理ボリュームには、複製元のボリューム名、マイナー番号、UUID が付けられ、マージされたスナップショットは削除されます。このオプションの使用方法については、「スナップショットボリュームのマージ」 を参照してください。
2.3.6. シンプロビジョニングされたスナップショットボリューム リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Enterprise Linux は、シンプロビジョニングのスナップショットボリュームのサポートを提供します。シンプロビジョニングのスナップショットボリュームにより、多くの仮想デバイスを同じデータボリュームに格納できます。これにより管理が簡略化され、スナップショットボリューム間でのデータ共有が可能になります。
シンボリュームや、LVM スナップショットボリュームの場合、シンプロビジョニングのスナップショットボリュームは、クラスターのノード間では対応していません。スナップショットボリュームは、1 つのクラスターノードで排他的にアクティブにする必要があります。
シンプロビジョニングのスナップショットボリュームの利点は以下のとおりです。
- 同じボリュームからのスナップショットが複数ある場合に、シンプロビジョニングのスナップショットボリュームを使用すれば、ディスクの使用量を減らすことができます。
- 作成元が同じスナップショットが複数ある場合は、作成元に 1 回書き込むことにより、1 回の COW 操作でデータを保存できます。作成元のスナップショットの数を増やしても、速度が大幅に低下することはありません。
- シンプロビジョニングのスナップショットボリュームは、別のスナップショットの作成元の論理ボリュームとして使用できます。これにより、再帰的スナップショット (スナップショットのスナップショットのそのまたスナップショットなど) の深度を任意に決定できます。
- シン論理ボリュームのスナップショットにより、シン論理ボリュームを作成することもできます。COW 操作が必要になるまで、あるいはスナップショット自体が書き込まれるまで、データ領域は消費されません。
- シンプロビジョニングのスナップショットボリュームは、作成元とともにアクティブにしておく必要はありません。そのため、スナップショットボリュームが多数ある場合は、作成元のみをアクティブにし、スナップショットボリュームはアクティブにしないでおくことができます。
- シンプロビジョニングのスナップショットボリュームの作成元を削除すると、そのボリュームのスナップショットは、それぞれ独立したシンプロビジョニングボリュームになります。したがって、スナップショットとその作成元のボリュームをマージする代わりに、作成元のボリュームを削除し、その独立したボリュームを新たな作成元ボリュームにして、シンプロビジョニングのスナップショットを新たに作成できます。
シンプロビジョニングのスナップショットボリュームを使用する利点は数多くありますが、古い LVM スナップショットボリューム機能の方がニーズに適している場合もあります。
- シンプールのチャンクサイズは変更できません。シンプールのチャンクサイズが大きい場合 (1MB など) や、そのチャンクのサイズでは効率的ではない短期間のスナップショットが必要な場合は、代わりに以前のスナップショット機能を使用できます。
- シンプロビジョニングのスナップショットボリュームのサイズを制限することはできません。スナップショットは、必要な場合はシンプール内の全領域を使用します。これは、ニーズに適さない場合があります。
一般的には、使用するスナップショットの形式を決定する際に、使用しているサイトの特定要件を考慮するようにしてください。
注記
シンプロビジョニングを使用する場合は、ストレージ管理者がストレージプールを監視し、容量が満杯になり始めたら容量を追加することが重要です。シンプロビジョニングのスナップショットボリュームの設定および表示に関する情報は、「シンプロビジョニングされたスナップショットボリュームの作成」 を参照してください。
2.3.7. キャッシュボリューム リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Enterprise Linux 7.1 リリースでは、LVM は高速ブロックデバイス (SSD ドライブなど) を、大規模な低速ブロックデバイスのライトバックまたはライトスルーキャッシュとして使用することをサポートします。既存の論理ボリュームのパフォーマンスを改善するためにキャッシュ論理ボリュームを作成したり、大規模で低速なデバイスと共に小規模で高速なデバイスで設定される新規のキャッシュ論理ボリュームを作成したりできます。
LVM キャッシュボリュームを作成する方法は、「LVM 論理ボリュームの作成」 を参照してください。
第3章 LVM 管理の概要 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
この章では、LVM 論理ボリュームを設定するのに使用する管理手順の概要を説明します。本章は、必要なステップについて全般的な理解を図ることを目的としています。一般的な LVM 設定手順の具体的な手順は、5章LVM 設定の例 を参照してください。
LVM 管理の実行に使用できる CLI コマンドの説明は、4章CLI コマンドでの LVM 管理 を参照してください。
3.1. 論理ボリューム作成の概要 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
以下は、LVM 論理ボリュームを作成するのに必要な手順の概要です。
- LVM ボリューム用に使用するパーティションを物理ボリュームとして初期化します (この操作によってラベル付けされます)。
- ボリュームグループを作成します。
- 論理ボリュームを作成します。
論理ボリュームを作成したら、ファイルシステムを作成してマウントします。本書の例では、GFS2 ファイルシステムを使用します。
- mkfs.gfs2 コマンドを使用して、論理ボリューム上に GFS2 ファイルシステムを作成します。
- mkdir コマンドでマウントポイントを作成します。クラスター化システムでは、そのクラスター内のすべてのノードにマウントポイントを作成します。
- ファイルシステムをマウントします。システムの各ノードの
fstabファイルに行を追加することができます。
注記
GFS2 ファイルシステムはスタンドアロンシステム、またはクラスター設定で実装することが可能ですが、Red Hat Enterprise Linux 7 リリースでは、GFS2 を 1 ノードのファイルシステムとして使用することはサポートしていません。Red Hat は、クラスターファイルシステムのスナップショットのマウントを目的 (例: バックアップ) とした、単一ノードの GFS2 ファイルシステムを引き続きサポートします。
LVM セットアップ情報の保存エリアは、ボリュームが作成されたマシンではなく物理ボリュームにあるため、LVM ボリュームの作成はマシンから独立して行われます。ストレージを使用するサーバーにはローカルコピーがありますが、物理ボリュームにあるものから再作成することもできます。LVM のバージョンが互換性を持つ場合には、物理ボリュームを異なるサーバーに接続できます。
3.2. 論理ボリュームのファイルシステムの拡張 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
論理ボリュームのファイルシステムを拡張するには、以下の手順を実行します。
- 既存のボリュームグループに、論理ボリュームを拡張するのに十分な空き領域があるかどうかを調べます。空き領域が足りない場合は、次の手順を実行します。
- pvcreate コマンドを使用して、新しい物理ボリュームを作成します。
- vgextend コマンドを使用して、新しい物理ボリュームを含めるように、拡張している論理ボリュームを含むボリュームグループを拡張します。
- ボリュームグループがより大きなファイルシステムを含めるのに十分な大きさになったら、lvresize コマンドで論理ボリュームを拡張します。
- 論理ボリュームでファイルシステムのサイズを変更します。
lvresize コマンドの
-r オプションを使用することで、1 つのコマンドで論理ボリュームを拡張し、基になるファイルシステムのサイズを変更できることに注意してください。
3.3. 論理ボリュームのバックアップ リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
メタデータのバックアップとアーカイブは、
lvm.conf ファイルで無効になっていない限り、ボリュームグループまたは論理ボリュームの設定変更時に常に自動的に作成されます。デフォルトでは、メタデータのバックアップは /etc/lvm/backup ファイルに保存され、メタデータのアーカイブは /etc/lvm/archive ファイルに保存されます。/etc/lvm/archive ファイルに保存されているメタデータのアーカイブが保持される期間と、保存されるアーカイブファイルの数は、lvm.conf ファイルに設定できるパラメーターにより決まります。日ごとのシステムバックアップには、バックアップに /etc/lvm ディレクトリーの内容が含まれている必要があります。
メタデータバックアップでは、論理ボリュームのユーザーとシステムのデータはバックアップされない点に注意してください。
vgcfgbackup コマンドを使用すると、手動でメタデータを
/etc/lvm/backup ファイルにバックアップできます。vgcfgrestore コマンドを使用してメタデータを復元できます。vgcfgbackup および vgcfgrestore コマンドは、「ボリュームグループメタデータのバックアップ」 で説明されています。
3.4. ロギング リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
すべてのメッセージ出力は、以下についてそれぞれ選択されたロギングレベルで、ロギングモジュールから出力されます。
- 標準出力/エラー
- syslog
- ログファイル
- 外部ログ関数
ロギングレベルは、
/etc/lvm/lvm.conf ファイルで設定されます。このファイルは、付録B LVM 設定ファイル で説明されています。
3.5. メタデータデーモン (lvmetad) リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
LVM はオプションで、デーモン(lvmetad)および
udev ルールで実装された中央メタデータキャッシュを使用できます。メタデータデーモンには、LVM コマンドのパフォーマンスを向上する主な目的が 2 つあります。これにより、udev は、論理ボリュームまたはボリュームグループ全体がシステムで利用可能になったときに、自動的にアクティブにすることができます。
lvm.conf 設定ファイルで global/use_lvmetad 変数を 1 に設定すると、LVM がデーモンを使用するように設定されています。これはデフォルト値です。lvm.conf 設定ファイルの詳細は、付録B LVM 設定ファイル を参照してください。
注記
現在、lvmetad デーモンはノード間ではサポートされておらず、ロックタイプはローカルのファイルベースにする必要があります。lvmconf --enable-cluster/--disable-cluster コマンドを使用すると、
use_lvmetad 設定を含む lvm.conf ファイルが適切に設定されます( locking_type=3の場合は 0 である必要があります)。ただし、Pacemaker クラスターでは、ocf:heartbeat:clvm リソースエージェント自体がこれらのパラメーターを開始手順の一部として設定することに注意してください。
use_lvmetad の値を 1 から 0 に変更する場合は、以下のコマンドを使用して lvmetad サービスを手動で再起動するか、停止する必要があります。
systemctl stop lvm2-lvmetad.service
# systemctl stop lvm2-lvmetad.service
通常、各 LVM コマンドを使用すると、ディスクスキャンが実行され、関連するすべての物理ボリュームが検索され、ボリュームグループのメタデータが読み取られます。ただし、メタデータデーモンが実行中で有効な場合、このスキャンは負荷がかかるため省略できます。代わりに、
udev ルールを使用して、各デバイスが利用可能になったときに lvmetad デーモンは 1 回だけスキャンします。これにより I/O の量が大幅に削減されるため、特にディスクが多いシステムで LVM 操作を完了するのに必要な時間を減らすことができます。
実行時に新規のボリュームグループが利用可能な場合 (例: ホットプラグまたは iSCSI を使用)、その論理ボリュームを使用するにはアクティブにする必要があります。lvmetad デーモンが有効な場合には、
lvm.conf 設定ファイルの activation/auto_activation_volume_list オプションを使用して、自動的にアクティベートするボリュームグループまたは論理ボリューム(あるいはその両方)のリストを設定できます。lvmetad デーモンを使用しない場合は、手動でアクティベートする必要があります。
注記
lvmetad デーモンが実行しているときに、pvscan --cache device コマンドを実行すると、
/etc/lvm/lvm.conf ファイルの filter = 設定が適用されません。デバイスをフィルタリングするには、global_filter = 設定を使用する必要があります。グローバルフィルターに失敗したデバイスは LVM では開かれず、スキャンもされません。VM で LVM を使用しているときに、VM 内のデバイスのコンテンツを物理ホストでスキャンする必要がない場合などは、グローバルフィルターの使用が必要になる場合があります。
3.6. lvm コマンドを使用した LVM 情報の表示 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
lvm コマンドは、LVM サポートおよび設定に関する情報を表示するのに使用できる組み込みオプションを提供します。
- lvm devtypes認識されているビルトインブロックデバイスのタイプを表示します (Red Hat Enterprise Linux リリース 6.6 以降)。
- lvm formats認識されているメタデータ形式を表示します。
- lvm helpLVM ヘルプテキストを表示します。
- lvm segtypes認識されている論理ボリュームセグメントタイプを表示します。
- lvm tagsこのホストに定義したタグを表示します。LVM オブジェクトタグの詳細は、付録D LVM オブジェクトタグ を参照してください。
- lvm version現在のバージョン情報を表示します。
第4章 CLI コマンドでの LVM 管理 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
この章では、論理ボリュームを作成し、保守するために LVM CLI (Command Line Interface) コマンドで実行できる個別の管理タスクについてまとめています。
LVM コマンドラインインターフェイス (CLI) の他にも、System Storage Manager (SSM) を使用して LVM 論理ボリュームを設定することができます。SSM と LVM の使用方法については、『ストレージ管理ガイド』 を参照してください。
4.1. CLI コマンドの使用 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
すべての LVM CLI コマンドに共通する特性がいくつかあります。
コマンドラインの引数でサイズが必要な場合は、常に単位を明示的に指定できます。単位を指定しないと、デフォルトで KB または MB が指定されます。LVM CLI コマンドでは、分数を使用できません。
コマンドライン引数で単位を指定する場合は、LVM が大文字と小文字を区別しません。たとえば、M と m は同じで、2 の累乗 (1024 の倍数) が使用されます。ただし、コマンドで
--units 引数を指定すると、小文字は、単位が 1024 の倍数であることを示し、その単位は 1000 の倍数であることを示します。
ここで、コマンドではボリュームグループまたは論理ボリューム名を引数として取り、完全パス名はオプションになります。vg0 という名前のボリュームグループ内の論理ボリューム
lvol0 は、vg0 /lvol0 として指定できます。ボリュームグループのリストは必須ですが、空の場合は、ボリュームグループのリストが置き換えられます。論理ボリュームのリストが必要ですが、ボリュームグループを指定すると、そのボリュームグループにある論理ボリュームがすべて置き換えられます。たとえば、lvdisplay vg0 コマンドは、ボリュームグループ vg0 内のすべての論理ボリュームを表示します。
すべての LVM コマンドは、出力の詳細レベルを上げるために複数回入力できる
-v 引数を受け入れます。たとえば、次の例は、lvcreate コマンドのデフォルト出力を示しています。
lvcreate -L 50MB new_vg
# lvcreate -L 50MB new_vg
Rounding up size to full physical extent 52.00 MB
Logical volume "lvol0" created
以下のコマンドは、lvcreate コマンドの出力と
-v 引数を表示します。
また、
-vv、-vvv、-vvvv 引数を使用して、コマンドの実行に関する詳細を表示することもできます。-vvvv 引数は、この時点で情報の最大数を提供します。以下の例は、 lvcreate コマンドで -vvvv 引数を指定して、出力の最初の行のみを示しています。
コマンドの
--help 引数を使用して、LVM CLI コマンドのヘルプを表示できます。
commandname --help
# commandname --help
コマンドの man ページを表示するには、man コマンドを実行します。
man commandname
# man commandname
man lvm コマンドは、LVM に関する一般的なオンライン情報を提供します。
すべての LVM オブジェクトは、内部的には、オブジェクトを作成する際に割り当てられる UUID で参照されます。これは、ボリュームグループの一部である
/dev/sdf という物理ボリュームを削除し、プラグインし直したときに、現在 /dev/sdk であることを確認する場合に役立ちます。LVM は、物理ボリュームを、デバイス名ではなく UUID で識別するため、デバイス名が変わっても物理ボリュームを見つけることができます。物理ボリュームの作成時に物理ボリュームの UUID を指定する方法については、「物理ボリュームメタデータの復元」 を参照してください。
4.2. 物理ボリュームの管理 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、物理ボリューム管理の様々な場面で使用するコマンドについて説明します。
4.2.1. 物理ボリュームの作成 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
以下のセクションでは、物理ボリュームの作成に使用するコマンドを説明します。
4.2.1.1. パーティションタイプの設定 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
ディスクデバイス全体を物理ボリュームに使用している場合は、そのディスクにはパーティションテーブルを含めないでください。ディスクパーティションが DOS の場合は、fdisk、cfdisk などのコマンドを使用して、パーティション ID を 0x8e に設定する必要があります。ディスクデバイス全体に物理ボリュームがある場合は、パーティションテーブルのみを消去する必要がありますが、このとき、そのディスクにあるデータはすべて効果的に破棄されます。以下のコマンドを使用すれば、最初のセクターをゼロで初期化し、既存のパーティションテーブルを削除できます。
dd if=/dev/zero of=PhysicalVolume bs=512 count=1
# dd if=/dev/zero of=PhysicalVolume bs=512 count=1
4.2.1.2. 物理ボリュームの初期化 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
pvcreate コマンドを使用して、物理ボリュームとして使用するブロックデバイスを初期化します。初期化は、ファイルシステムのフォーマットと同様です。
以下のコマンドは、
/dev/sdd、/dev/sde、および /dev/sdf を LVM 物理ボリュームとして初期化し、後で LVM 論理ボリュームとして使用します。
pvcreate /dev/sdd /dev/sde /dev/sdf
# pvcreate /dev/sdd /dev/sde /dev/sdf
ディスク全体ではなく、パーティションを初期化するには、パーティションで pvcreate コマンドを実行します。以下の例では、パーティション
/dev/hdb1 を LVM 物理ボリュームとして初期化し、後で LVM 論理ボリュームとして使用します。
pvcreate /dev/hdb1
# pvcreate /dev/hdb1
4.2.1.3. ブロックデバイスのスキャン リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
以下の例のように、lvmdiskscan コマンドを使用して、物理ボリュームとして使用できるブロックデバイスをスキャンできます。
4.2.2. 物理ボリュームの表示 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
LVM 物理ボリュームのプロパティーを表示するのに使用できるコマンドは、pvs、pvdisplay、および pvscan の 3 つです。
pvs コマンド:物理ボリュームの情報を設定可能な形式で出力します。pvs コマンドでは形式をかなり自由に制御できるため、スクリプト作成に役立ちます。pvs コマンドで出力をカスタマイズする詳細な方法は、「LVM 用のカスタム報告」 を参照してください。
pvdisplay コマンドは、各物理ボリュームの詳細の複数行出力を提供します。物理プロパティー (サイズ、エクステント、ボリュームグループなど) が、決められた形式で表示されます。
以下の例は、1 つの物理ボリュームに対する pvdisplay コマンドの出力を示しています。
pvscan コマンド:システムにある物理ボリュームで対応している LVM ブロックデバイスをすべてスキャンします。
以下のコマンドでは、検出された物理デバイスがすべて表示されます。
このコマンドで、特定の物理ボリュームがスキャンされないように、
lvm.conf ファイルでフィルターを定義できます。フィルターを使用してスキャンされるデバイスを制御する方法は、「フィルターを使用した LVM デバイススキャンの制御」 を参照してください。
4.2.3. 物理ボリューム上での割り当て防止 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
pvchange コマンドを使用すると、1 つまたは複数の物理ボリュームの空き領域で物理エクステントが割り当てられないようにすることができます。これは、ディスクエラーが発生した場合や、物理ボリュームを取り除く場合に必要となる可能性があります。
次のコマンドは、
/dev/sdk1 での物理エクステントの割り当てを許可しません。
pvchange -x n /dev/sdk1
# pvchange -x n /dev/sdk1
pvchange コマンドで
-xy 引数を使用すると、以前は許可されていない割り当てを許可できます。
4.2.4. 物理ボリュームのサイズ変更 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
何らかの理由で基礎となるブロックデバイスのサイズを変更する必要がある場合は、pvresize コマンドを使用して LVM のサイズを更新します。このコマンドは、LVM が物理ボリュームを使用しているときに実行できます。
4.2.5. 物理ボリュームの削除 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
デバイスを LVM で使用する必要がなくなった場合は、pvremove コマンドを使用して LVM ラベルを削除できます。pvremove コマンドを実行すると、空の物理ボリュームにある LVM メタデータをゼロにします。
削除する物理ボリュームがボリュームグループの一部になっている場合は、「ボリュームグループからの物理ボリュームの削除」 の説明に従って、vgreduce コマンドで、ボリュームグループから物理ボリュームを取り除く必要があります。
pvremove /dev/ram15
# pvremove /dev/ram15
Labels on physical volume "/dev/ram15" successfully wiped
4.3. ボリュームグループの管理 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
本セクションでは、ボリュームグループ管理のさまざまな特徴を実行するコマンドを説明します。
4.3.1. ボリュームグループの作成 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
1 つまたは複数の物理ボリュームからボリュームグループを作成するには、vgcreate コマンドを使用します。vgcreate コマンドは、名前で新しいボリュームグループを作成し、そこに物理ボリュームを 1 つ以上追加します。
以下のコマンドは、物理ボリューム
/dev/sdd1 および /dev/sde1 を含む vg1 という名前のボリュームグループを作成します。
vgcreate vg1 /dev/sdd1 /dev/sde1
# vgcreate vg1 /dev/sdd1 /dev/sde1
ボリュームグループの作成に物理ボリュームが使用されると、ディスク領域はデフォルトで 4MB のエクステントに分割されます。このエクステントは、論理ボリュームのサイズを拡張/縮小する最小単位です。エクステントの数が多くても、論理ボリュームの I/O パフォーマンスに影響を与えることはありません。
エクステントサイズのデフォルトサイズが適切でない場合は、vgcreate コマンドに
-s オプションを使用して、エクステントサイズを指定できます。vgcreate コマンドに -p 引数と -l 引数を使用すると、ボリュームグループに追加可能な物理ボリュームまたは論理ボリュームの数に制限をかけることができます。
デフォルトでは、ボリュームグループは、同じ物理ボリューム上に並行ストライプを配置しないなど、常識的な規則に従って物理エクステントを割り当てます。これは、normal の割り当てポリシーです。vgcreate コマンドで --alloc 引数を使用して、連続 した、任意の場所、またはクローズの割り当てポリシーを指定でき ます。一般的に、normal 以外の割り当てポリシーは、異常な範囲または非標準のエクステント割り当てを指定する必要がある特別な場合にのみ必要になります。LVM で物理エクステントを割り当てる方法の詳細は、「LVM の割り当て」 を参照してください。
LVM ボリュームグループと基礎となる論理ボリュームは、
/dev ディレクトリー内のデバイス特殊ファイルディレクトリーツリーに、以下のレイアウトで含まれます。
/dev/vg/lv/
/dev/vg/lv/
たとえば、
myvg1 と myvg2 のボリュームグループを作成し、それぞれに lv01、lv02、および lv03 という名前の 3 つの論理ボリュームを作成すると、デバイス特有のファイルが 6 つ作成されます。
デバイス特有のファイルは、対応する論理ボリュームがアクティブになっていないと表示されません。
LVM におけるデバイスの最大サイズは、64 ビット CPU 上で 8 エクサバイトです。
4.3.2. LVM の割り当て リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
LVM の操作で物理エクステントを 1 つまたは複数の論理ボリュームに割り当てる必要がある場合、割り当ては以下のように行われます。
- ボリュームグループで割り当てられていない物理エクステントのセットが、割り当てのために生成されます。コマンドラインの末尾に物理エクステントの範囲を指定すると、指定した物理ボリュームの中で、その範囲内で割り当てられていない物理エクステントだけが、割り当て用エクステントとして考慮されます。
- 割り当てポリシーは順番に試行されます。最も厳格なポリシー(
contiguous)から始まり、最後は--allocオプションで指定した割り当てポリシーか、特定の論理ボリュームまたはボリュームグループにデフォルトとして設定されている割り当てポリシーが試行されます。割り当てポリシーでは、埋める必要がある空の論理ボリューム領域の最小番号の論理エクステントから始まり、割り当てポリシーによる制限に従って、できるだけ多くの領域の割り当てを行います。領域が足りなくなると、LVM は次のポリシーに移動します。
割り当てポリシーの制限は以下のとおりです。
- contiguous の割り当てポリシーでは、論理ボリュームの最初の論理エクステントではない論理エクステントの物理的な場所が、その直前の論理エクステントの物理的な場所に隣接して
いる必要があります。論理ボリュームがストライプ化またはミラーリングされる場合、連続した割り当て制限は、スペースが必要な各ストライプまたはミラーイメージ(leg)に個別に適用されます。 clingの割り当てポリシーでは、既存の論理ボリュームに追加する論理エクステントに使用される物理ボリュームが、その論理ボリュームの最初の 1 つ以上の論理エクステントによってすでに使用されている必要があります。設定パラメーターallocation/cling_tag_listが定義されている場合には、一覧表示されたタグのいずれかが両方の物理ボリュームに存在する場合、2 つの物理ボリュームが一致します。これにより、割り当てのために、同様のプロパティー (物理的な場所など) が設定されている物理ボリュームのグループにタグを付け、その物理ボリュームを同等なものとして処理できます。cling ポリシーを LVM タグと併用して、LVM ボリュームの拡張時に使用する追加の物理ボリュームを指定する方法の詳細は、「割り当てポリシーを閉じた論理ボリュームの拡張」 を参照してください。論理ボリュームがストライプ化またはミラーリングされる場合、移動した割り当て制限は、領域が必要な各ストライプまたはミラーイメージ(leg)に個別に適用されます。normalの割り当てポリシーは、並列論理ボリューム内の同じオフセットにある並列論理ボリューム(つまり、別のストライプまたはミラーイメージ/レッグ)にすでに割り当てられている論理エクステントと同じ物理ボリュームを共有する物理エクステントを選択しません。ミラーデータを保持するために、論理ボリュームと同時にミラーログを割り当てる場合、normalの割り当てポリシーは、最初にログとデータに対して異なる物理ボリュームを選択しようとします。これが可能でなく、allocation/mirror_logs_require_separate_pvs設定パラメーターが 0 に設定されている場合は、ログがデータの一部と物理ボリュームを共有できるようになります。同様に、シンプールメタデータを割り当てる場合、normalの割り当てポリシーはミラーログの割り当てと同じ考慮事項に従います。これは、allocation/thin_pool_metadata_require_separate_pvs設定パラメーターの値に基づいています。- 割り当て要求を満たすのに十分な空きエクステントがあっても、normal の割り当てポリシーによって使用されていない場合は、たとえ同じ物理ボリュームに 2 つのストライプを配置することでパフォーマンスが低下する場合でも、anywhere 割り当てポリシーによってパフォーマンスが低下します。
割り当てポリシーは、vgchange コマンドを使用して変更できます。
注記
定義された割り当てポリシーに従って、このセクションで説明されている以上のレイアウトの操作が必要な場合は、今後のバージョンでコードが変更する可能性があることに注意してください。たとえば、割り当て可能な空き物理エクステントの数が同じ 2 つの空の物理ボリュームをコマンドラインで指定する場合、現行バージョンの LVM では、それが表示されている順番に使用が検討されます。ただし、今後のリリースで、そのプロパティーが変更されない保証はありません。特定の論理ボリューム用に特定のレイアウトを取得することが重要な場合は、各手順に適用される割り当てポリシーに基づいて LVM がレイアウトを決定することがないように、lvcreate と lvconvert を順に使用してレイアウトを構築してください。
特定のケースで、割り当てプロセスがどのように行われているかを確認するには、コマンドに
-vvvv オプションを追加するなどして、デバッグロギングの出力を表示します。
4.3.3. クラスター内でのボリュームグループ作成 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
vgcreate コマンドを使用して、単一のノードで作成するのと同じく、クラスター環境に CLVM ボリュームグループを作成します。
注記
Red Hat Enterprise Linux 7 では、クラスターは Pacemaker で管理されます。クラスター化された LVM 論理ボリュームは Pacemaker クラスターと併用される場合のみサポートされ、クラスターリソースとして設定する必要があります。クラスター内での LVM ボリュームの設定に関する詳細は、「Red Hat High Availability クラスターの LVM 論理ボリューム」 を参照してください。
クラスターのメンバーが共有するボリュームグループは、vgcreate -cy または vgchange -cy コマンドで clustered 属性を設定して作成する必要があります。CLVMD が実行されている場合、クラスター属性は自動的に設定されます。この clustered 属性は、ボリュームグループが CLVMD によって管理および保護される必要があることを示します。クラスターによって共有されず、単一のホストのみが認識できるボリュームグループを作成する場合は、この clustered 属性を vgcreate -cn または vgchange -cn コマンドで無効にする必要があります。
デフォルトでは、clustered 属性で共有ストレージに作成されたボリュームグループは、その共有ストレージにアクセス可能なすべてのコンピューターによって認識されます。ただし、vgcreate コマンドの
-cn オプションを使用して、ローカルにあるボリュームグループを作成し、クラスター内の 1 つのノードにのみ表示することができます。
クラスター環境で以下のコマンドを実行すると、コマンドを実行しているノードに対してローカルとなるボリュームグループが作成されます。このコマンドは、物理ボリューム
/dev/sdd1 および /dev/sde1 を含むローカルボリューム vg1 を作成します。
vgcreate -c n vg1 /dev/sdd1 /dev/sde1
# vgcreate -c n vg1 /dev/sdd1 /dev/sde1
vgchange コマンドの
-c オプションを使用して、既存のボリュームグループがローカルまたはクラスター化されているかどうかを変更できます。これについては、「ボリュームグループのパラメーター変更」 で説明されています。
既存のボリュームグループがクラスター化ボリュームグループであるかどうかは、vgs コマンドで確認できます。これは、ボリュームがクラスター化されている場合に c 属性を表示します。以下のコマンドは、ボリュームグループ
VolGroup00 および testvg1 の属性を表示します。この例では、VolGroup00 はクラスター化されていませんが、testvg1 は、Attr 見出しの c 属性で示されるようにクラスター化されています。
vgs
# vgs
VG #PV #LV #SN Attr VSize VFree
VolGroup00 1 2 0 wz--n- 19.88G 0
testvg1 1 1 0 wz--nc 46.00G 8.00M
4.3.4. ボリュームグループへの物理ボリュームの追加 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
物理ボリュームを既存のボリュームグループに追加するには、vgextend コマンドを使用します。vgextend コマンドは、空き物理ボリュームを 1 つ以上追加して、ボリュームグループの容量を増やします。
以下のコマンドは、物理ボリューム
/dev/sdf1 をボリュームグループ vg1 に追加します。
vgextend vg1 /dev/sdf1
# vgextend vg1 /dev/sdf1
4.3.5. ボリュームグループの表示 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
LVM ボリュームグループのプロパティーを表示するのに使用できるコマンドは 2 つあります。vgs および vgdisplay です。
vgscan コマンドは、ボリュームグループのすべてのディスクをスキャンし、LVM キャッシュファイルを再構築するにも、ボリュームグループを表示します。vgscan コマンドの詳細は、「キャッシュファイル構築のためのボリュームグループのディスクスキャン」 を参照してください。
vgs コマンド:ボリュームグループの情報を設定可能な形式で提供し、1 ボリュームグループにつき 1 行ずつ表示します。vgs コマンドでは、形式をかなり自由に制御できるため、スクリプト作成に役立ちます。vgs コマンドを使用して出力をカスタマイズする方法は、「LVM 用のカスタム報告」 を参照してください。
vgdisplay コマンドは、決められた形式でボリュームグループのプロパティー(サイズ、エクステント、物理ボリュームの数など)を表示します。以下の例は、ボリュームグループ
new_vg に対する vgdisplay コマンドの出力を示しています。ボリュームグループを指定しないと、既存のボリュームグループがすべて表示されます。
4.3.6. キャッシュファイル構築のためのボリュームグループのディスクスキャン リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
vgscan コマンド:システム内で対応しているすべてのディスクデバイスをスキャンし、LVM 物理ボリュームおよびボリュームグループを検索します。これにより、
/etc/lvm/cache/.cache ファイルに LVM キャッシュファイルが作成され、現在の LVM デバイスのリストを維持します。
LVM は、システムの起動時に、vgcreate コマンドを実行するとき、LVM が不整合を検出したときなど、システム起動時やその他のタイミングで vgscan コマンドを自動的に実行します。
注記
ハードウェア設定を変更し、ノードにデバイスを追加または削除する場合に、vgscan コマンドを手動で実行し、システムの起動時に存在しなかったシステムに新しいデバイスを確認させる必要がある場合があります。これは、たとえば、SAN 上のシステムに新しいディスクを追加したり、物理ボリュームとしてラベルが付けられた新しいディスクをホットプラグする場合に必要になる可能性があります。
/etc/lvm/lvm.conf ファイルでフィルターを定義して、特定のデバイスを回避するためにスキャンを制限できます。フィルターを使用してスキャンされるデバイスを制御する方法は、「フィルターを使用した LVM デバイススキャンの制御」 を参照してください。
以下の例は、vgscan コマンドの出力を示しています。
vgscan
# vgscan
Reading all physical volumes. This may take a while...
Found volume group "new_vg" using metadata type lvm2
Found volume group "officevg" using metadata type lvm2
4.3.7. ボリュームグループからの物理ボリュームの削除 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
ボリュームグループから未使用の物理ボリュームを削除するには、vgreduce コマンドを使用します。vgreduce コマンドは、空の物理ボリュームを 1 つまたは複数削除して、ボリュームグループの容量を縮小します。これにより、物理ボリュームが解放され、異なるボリュームグループで使用したり、システムから削除できるようになります。
ボリュームグループから物理ボリュームを削除する前に、pvdisplay コマンドを使用して、その物理ボリュームが論理ボリュームで使用されていないことを確認できます。
物理ボリュームが使用中の場合は、pvmove コマンドを使用して、データを別の物理ボリュームに移行する必要があります。次に、vgreduce コマンドを使用して物理ボリュームを削除します。
以下のコマンドは、ボリュームグループ
my_volume_group から物理ボリューム /dev/hda1 を削除します。
vgreduce my_volume_group /dev/hda1
# vgreduce my_volume_group /dev/hda1
論理ボリュームに、障害のある物理ボリュームが含まれる場合は、その論理ボリュームを使用することはできません。見つからない物理ボリュームをボリュームグループから削除します。その物理ボリュームに論理ボリュームが割り当てられていない場合は、vgreduce コマンドの
--removemissing パラメーターを使用できます。
障害が発生した物理ボリュームに、セグメントタイプが mirror の論理ボリュームの
ミラー イメージが含まれる場合は、vgreduce --removemissing --mirrorsonly --force コマンドを使用して、ミラーからそのイメージを削除できます。これにより、物理ボリュームのミラーイメージである論理ボリュームのみが削除されます。
LVM ミラーの障害から回復する方法は、「LVM ミラー障害からの回復」 を参照してください。ボリュームグループから紛失した物理ボリュームを削除する方法は、「紛失した物理ボリュームのボリュームグループからの削除」 を参照してください。
4.3.8. ボリュームグループのアクティブ化と非アクティブ化 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
ボリュームグループを作成すると、デフォルトでアクティブになります。これは、そのグループ内の論理ボリュームがアクセス可能で、かつ変更される可能性があることを意味します。
ボリュームグループを非アクティブ化し、カーネルに認識されないようにする必要のある様々な状況があります。ボリュームグループを非アクティブまたは非アクティブにするには、vgchange コマンドの
-a (--available)引数を使用します。
以下の例では、ボリュームグループ
my_volume_group を非アクティブにします。
vgchange -a n my_volume_group
# vgchange -a n my_volume_group
クラスターロッキングが有効な場合には、e を追加すると、1 つのノードでボリュームグループが排他的にアクティブ化または非アクティブ化されます。l を追加すると、ローカルノードでのみボリュームグループがアクティブ化または非アクティブ化されます。単一ホストのスナップショットを使用する論理ボリュームは、一度に 1 つのノードでしか利用できないため、常に排他的にアクティブ化されます。
「論理ボリュームグループのパラメーター変更」 で説明されているように、lvchange コマンドを使用して個別の論理ボリュームを非アクティブ化できます。クラスター内の個別ノード上で論理ボリュームをアクティブ化する方法は、「クラスター内の個別ノードでの論理ボリュームのアクティブ化」 を参照してください。
4.3.9. ボリュームグループのパラメーター変更 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
「ボリュームグループのアクティブ化と非アクティブ化」 で説明されているように、vgchange コマンドは、ボリュームグループを非アクティブ化およびアクティブ化するために使用されます。また、このコマンドを使用して、既存のボリュームグループに関するボリュームグループパラメーターを変更することもできます。
以下のコマンドは、ボリュームグループ
vg00 の論理ボリュームの最大数を 128 に変更します。
vgchange -l 128 /dev/vg00
# vgchange -l 128 /dev/vg00
vgchange コマンドで変更できるボリュームグループパラメーターの説明は、vgchange(8)の man ページを参照してください。
4.3.10. ボリュームグループの削除 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
論理ボリュームがないボリュームグループを削除するには、vgremove コマンドを使用します。
vgremove officevg
# vgremove officevg
Volume group "officevg" successfully removed
4.3.11. ボリュームグループの分割 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
ボリュームグループの物理ボリュームを分割して新しいボリュームグループを作成するには、vgsplit コマンドを使用します。
論理ボリュームはボリュームグループ間で分割することはできません。それぞれの既存の論理ボリュームは完全に物理ボリューム上に存在し、既存または新規のボリュームグループを形成している必要があります。ただし、必要に応じて、pvmove コマンドを使用して分割を強制することができます。
以下の例では、新しいボリュームグループ
smallvg を、元のボリュームグループ bigvg から分割します。
vgsplit bigvg smallvg /dev/ram15
# vgsplit bigvg smallvg /dev/ram15
Volume group "smallvg" successfully split from "bigvg"
4.3.12. ボリュームグループの統合 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
2 つのボリュームグループを統合して 1 つのボリュームグループにするには、vgmerge コマンドを使用します。ボリュームの物理エクステントサイズが同じで、かつ両ボリュームグループの物理ボリュームおよび論理ボリュームのサマリーがマージ先ボリュームグループの制限内に収まる場合は、非アクティブなマージ元のボリュームを、アクティブまたは非アクティブのマージ先ボリュームにマージができます。
以下のコマンドは、非アクティブなボリュームグループ
my_vg をアクティブまたは非アクティブなボリュームグループ databases にマージして、詳細なランタイム情報を提供します。
vgmerge -v databases my_vg
# vgmerge -v databases my_vg
4.3.13. ボリュームグループメタデータのバックアップ リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
メタデータのバックアップとアーカイブは、
lvm.conf ファイルで無効になっていない限り、ボリュームグループまたは論理ボリュームへの設定変更時に自動的に作成されます。デフォルトでは、メタデータのバックアップは /etc/lvm/backup ファイルに保存され、メタデータのアーカイブは /etc/lvm/archive ファイルに保存されます。vgcfgbackup コマンドを使用すると、手動でメタデータを /etc/lvm/backup ファイルにバックアップできます。
vgcfgrestore コマンドは、ボリュームグループのメタデータを、アーカイブからボリュームグループのすべての物理ボリュームに復元します。
vgcfgrestore コマンドを使用して物理ボリュームのメタデータを復元する例は、「物理ボリュームメタデータの復元」 を参照してください。
4.3.14. ボリュームグループの名前変更 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
vgrename コマンドを使用して、既存のボリュームグループの名前を変更します。
以下のいずれかのコマンドにより、既存のボリュームグループ
vg02 の名前が my_volume_groupに変更されます。
vgrename /dev/vg02 /dev/my_volume_group
# vgrename /dev/vg02 /dev/my_volume_group
vgrename vg02 my_volume_group
# vgrename vg02 my_volume_group
4.3.15. ボリュームグループの別のシステムへの移動 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
LVM ボリュームグループ全体を、別のシステムに移動できます。これを行うときは、vgexport コマンドと vgimport コマンドを使用することが推奨されます。
注記
vgimport コマンドの
--force 引数を使用できます。これにより、物理ボリュームがないボリュームグループをインポートし、その後 vgreduce --removemissing コマンドを実行できます。
vgexport コマンドは、非アクティブなボリュームグループにシステムがアクセスできないようにするため、物理ボリュームの割り当てを解除できます。vgimport コマンドは、vgexport コマンドで非アクティブになった後に、そのボリュームグループに再びマシンにアクセスできるようにします。
ボリュームグループを 2 つのシステム間で移行するには、以下の手順に従います。
- ボリュームグループ内のアクティブなボリュームのファイルにアクセスしているユーザーがいないことを確認してから、論理ボリュームをアンマウントします。
- vgchange コマンドの
-a n引数を使用して、ボリュームグループを非アクティブとしてマークします。これにより、ボリュームグループでこれ以上の動作ができなくなります。 - vgexport コマンドを使用してボリュームグループをエクスポートします。これにより、削除するシステムからボリュームグループへアクセスできなくなります。ボリュームグループのエクスポート後、以下の例のように、pvscan コマンドを実行すると、物理ボリュームは、エクスポートされたボリュームグループにあるものとして表示されます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次にシステムがシャットダウンする時に、ボリュームグループを設定していたディスクを外して、新しいシステムに接続できます。 - ディスクが新しいシステムに接続されたら、vgimport コマンドを使用してボリュームグループをインポートし、新しいシステムからアクセスできるようにします。
- vgchange コマンドで
-a y引数を使用して、ボリュームグループをアクティブにします。 - ファイルシステムをマウントして使用できるようにします。
4.3.16. ボリュームグループディレクトリーの再作成 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
ボリュームグループディレクトリーと論理ボリューム特殊ファイルを再作成するには、vgmknodes コマンドを使用します。このコマンドは、アクティブな論理ボリュームに必要な
/dev ディレクトリー内の LVM2 特殊ファイルを確認します。このコマンドは不足しているファイルを作成し、未使用のファイルを削除します。
vgscan コマンドに mknodes 引数を指定すると、vgmknodes コマンドを vgscan コマンドに組み込むことができます。
4.4. 論理ボリュームの管理 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、論理ボリューム管理の様々な要素を実行するコマンドを説明します。
4.4.1. リニア論理ボリュームの作成 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
論理ボリュームを作成するには、lvcreate コマンドを使用します。論理ボリュームに名前を指定しないと、デフォルトの名前
lvol# が使用されます。ここで、# は論理ボリュームの内部番号になります。
論理ボリュームを作成すると、論理ボリュームがボリュームグループから作成され、ボリュームグループを設定する物理ボリュームの空きエクステントが使用されます、通常、論理ボリュームは、その下層の物理ボリュームで次に使用可能な空き領域を使用します。通常、論理ボリュームは、次に解放された物理ボリュームで使用できる領域を使用します。論理ボリュームを編集すると、物理ボリューム内の領域を再割り当てます。
以下のコマンドは、ボリュームグループ
vg1 に、論理ボリューム 10 ギガバイトを作成します。
lvcreate -L 10G vg1
# lvcreate -L 10G vg1
論理ボリュームサイズのデフォルト単位はメガバイトです。以下のコマンドは、ボリュームグループ
testvg に 1500 メガバイトのリニア論理ボリューム testlv を作成し、ブロックデバイス /dev/testvg/testlv を作成します。
lvcreate -L 1500 -n testlv testvg
# lvcreate -L 1500 -n testlv testvg
以下のコマンドは、ボリュームグループ
vg0 の空きエクステントから gfslv という名前の 50 ギガバイト論理ボリュームを作成します。
lvcreate -L 50G -n gfslv vg0
# lvcreate -L 50G -n gfslv vg0
lvcreate の
-l 引数を使用すると、論理ボリュームのサイズをエクステントで指定できます。この引数を使用すると、関連するボリュームグループ、論理ボリューム、または物理ボリュームセットのサイズの割合も指定できます。接尾辞 %VG はボリュームグループの合計サイズ、接尾辞 %FREE はボリュームグループの残りの空き容量、そして接尾辞 %PVS は物理ボリュームの空き容量を示します。スナップショットの場合は、サイズに接尾辞 %ORIGIN を使用して、元の論理ボリュームの合計サイズをパーセンテージで指定することができます (100%ORIGIN にすると、元の論理ボリューム全体が使用されます)。サイズをパーセンテージで指定した場合は、新規の論理ボリュームにおける論理エクステントに上限が設定されます。したがって、作成する LV の論理エクステントの正確な数は、コマンドが完了するまで決定されません。
以下のコマンドは、ボリュームグループ
testvg の 60% 領域を使用する、論理ボリューム mylv を作成します。
lvcreate -l 60%VG -n mylv testvg
# lvcreate -l 60%VG -n mylv testvg
以下のコマンドは、ボリュームグループ
testvg の未割り当て領域をすべて使用する、論理ボリューム yourlv を作成します。
lvcreate -l 100%FREE -n yourlv testvg
# lvcreate -l 100%FREE -n yourlv testvg
lvcreate コマンドに
-l 引数を使用すると、ボリュームグループ全体を使用する論理ボリュームを作成できます。もう 1 つの方法では、vgdisplay コマンドを使用して合計 PE サイズを検索し、その結果を lvcreate コマンドへの入力として使用します。
以下のコマンドは、ボリュームグループ
testvg を入力する論理ボリューム mylv を作成します。
vgdisplay testvg | grep "Total PE" lvcreate -l 10230 -n mylv testvg
# vgdisplay testvg | grep "Total PE"
Total PE 10230
# lvcreate -l 10230 -n mylv testvg
論理ボリュームの作成に使用した下層の物理ボリュームは、物理ボリュームを削除する必要がある場合に重要になる可能性があります。そのため、論理ボリュームを作成する際にはこの可能性を考慮する必要があります。ボリュームグループから物理ボリュームを削除する方法は、「ボリュームグループからの物理ボリュームの削除」 を参照してください。
ボリュームグループで、特定の物理ボリュームから論理ボリュームを割り当てる場合は、lvcreate コマンドラインの最後に物理ボリュームを指定します。以下のコマンドは、ボリュームグループ
testvg に、物理ボリューム /dev/sdg1 から割り当てた論理ボリューム testlv を作成します。
lvcreate -L 1500 -n testlv testvg /dev/sdg1
# lvcreate -L 1500 -n testlv testvg /dev/sdg1
論理ボリュームに使用する物理ボリュームのエクステントを指定することができます。以下の例では、ボリュームグループ
testvg で、エクステントが 0 から 24 の物理ボリューム /dev/sda1 とエクステント 50 から 124 の物理ボリューム /dev/sdb1 からリニア論理ボリュームを作成します。
lvcreate -l 100 -n testlv testvg /dev/sda1:0-24 /dev/sdb1:50-124
# lvcreate -l 100 -n testlv testvg /dev/sda1:0-24 /dev/sdb1:50-124
以下の例では、エクステントが 0 から 25 の物理ボリューム
/dev/sda1 からリニア論理ボリュームを作成し、エクステント 100 で論理ボリュームの配置を続行します。
lvcreate -l 100 -n testlv testvg /dev/sda1:0-25:100-
# lvcreate -l 100 -n testlv testvg /dev/sda1:0-25:100-
論理ボリュームのエクステントの割り当て方法に関するデフォルトポリシーは inherit で、ボリュームグループに同じポリシーが適用されます。このポリシーは lvchange コマンドを使用して変更できます。割り当てポリシーの詳細は、「ボリュームグループの作成」 を参照してください。
4.4.2. ストライプ化ボリュームの作成 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
連続的な読み取りと書き込みが大量に行われる場合は、ストライプ化論理ボリュームを作成すると、データ I/O が効率が上がります。ストライプ化ボリュームに関する一般的な情報は、「ストライプ化論理ボリューム」 を参照してください。
ストライプ化論理ボリュームを作成する場合は、lvcreate コマンドの
-i 引数を使用してストライプの数を指定します。これにより、論理ボリュームがストライプ化される物理ボリュームの数が決定します。ストライプ数は、ボリュームグループ内の物理ボリュームの数よりも多くすることはできません (--alloc anywhere 引数が使用されない限り)。
ストライプ化論理ボリュームを設定する下層の物理デバイスのサイズが異なる場合、ストライブ化ボリュームの最大サイズは、一番小さいデバイスにより決まります。2 レッグのストライプの最大サイズは、小さい方のデバイスの 2 倍になります。3 レッグのストライプの最大サイズは、一番小さいデバイスの 3 倍になります。
以下のコマンドは、64 キロバイトのストライプを持つ 2 つの物理ボリュームにまたがってストライプ化論理ボリュームを作成します。論理ボリュームのサイズは 50 ギガバイトで、
gfslv という名前で、ボリュームグループ vg0 から取り除かれます。
lvcreate -L 50G -i 2 -I 64 -n gfslv vg0
# lvcreate -L 50G -i 2 -I 64 -n gfslv vg0
リニアボリュームと同じく、ストライプに使用する物理ボリュームのエクステントを指定できます。以下のコマンドは、ストライプボリューム 100 エクステントをサイズで作成します。このエクステントのサイズは、2 つの物理ボリューム間の
ストライプ(striplv )で、ボリュームグループ testvg にあります。ストライプは、/dev/sda1 のセクター 0-49 と、/dev/sdb1 のセクター 50 - 99 を使用します。
lvcreate -l 100 -i 2 -n stripelv testvg /dev/sda1:0-49 /dev/sdb1:50-99
# lvcreate -l 100 -i 2 -n stripelv testvg /dev/sda1:0-49 /dev/sdb1:50-99
Using default stripesize 64.00 KB
Logical volume "stripelv" created
4.4.3. RAID 論理ボリューム リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
LVM は、RAID0、1、4、5、6、および 10 に対応します。
注記
RAID 論理ボリュームはクラスターには対応していません。RAID 論理ボリュームは、1 台のマシンに作成して排他的にアクティブにすることができますが、複数のマシンで同時にアクティブにすることはできません。排他的ではないミラー化されたボリュームが必要な場合は、「ミラー化ボリュームの作成」 で説明されているように、セグメントタイプの
mirror を指定してボリュームを作成する必要があります。
RAID 論理ボリュームを作成するには、raid タイプを lvcreate コマンドの
--type 引数として指定します。表4.1「RAID のセグメントタイプ」 では、可能な RAID セグメントタイプを説明します。
| セグメントタイプ | 説明 | ||
|---|---|---|---|
raid1 | RAID1 ミラーリング。-m を指定し、ストライピングを指定しない場合の、lvcreate コマンドの --type 引数のデフォルト値になります。 | ||
raid4 | RAID4 専用パリティーディスク | ||
raid5 | raid5_lsと同じ | ||
raid5_la |
| ||
raid5_ra |
| ||
raid5_ls |
| ||
raid5_rs |
| ||
raid6 | raid6_zrと同じ | ||
raid6_zr |
| ||
raid6_nr |
| ||
raid6_nc |
| ||
raid10 |
| ||
raid0/raid0_meta (Red Hat Enterprise Linux 7.3 以降) | ストライピング。RAID0 では、ストライプサイズの単位で、複数のデータサブボリュームに論理ボリュームデータが分散されます。これは、パフォーマンスを向上させるために使用します。論理ボリュームのデータは、いずれかのデータサブボリュームで障害が発生すると失われます。RAID0 ボリュームの作成については、「RAID0 ボリュームの作成 (Red Hat Enterprise Linux 7.3 以降)」 を参照してください。 |
ほとんどのユーザーの場合、5 つの使用可能なプライマリータイプ(
raid1、raid4、raid5、raid6、raid10)のいずれかを指定するだけで十分です。
RAID 論理ボリュームを作成するとき、LVM は、データまたはアレイ内のパリティーサブボリュームごとに、サイズが 1 エクステントのメタデータサブボリュームを作成します。たとえば、2 方向の RAID1 アレイを作成すると、メタデータサブボリュームが 2 つ(
lv_rmeta_0 および lv_rmeta_1)と、データサブボリュームが 2 つ(lv_rimage_0 および lv_rimage_ 1)作成されます。同様に、3 方向のストライプ(および暗黙的なパリティーデバイスが 1 つ)の RAID4 を作成すると、メタデータサブボリュームが 4 つ(lv_rmeta_0、lv_rmeta _1、lv_rmeta_2、および lv_rmeta_3)、4 つのデータサブボリューム(lv_rimage_0、lv_rimage_1、lv_rimage _2、および lv_rimage_3 )が作成されます。
以下のコマンドは、ボリュームグループ
my_vg 内に、1 ギガバイトの 2 方向の RAID1 アレイ my_lv を作成します。
lvcreate --type raid1 -m 1 -L 1G -n my_lv my_vg
# lvcreate --type raid1 -m 1 -L 1G -n my_lv my_vg
-m 引数に指定する値に応じて、さまざまなコピー数を指定して RAID1 アレイを作成できます。同様に、-i argument オプションに、RAID 4、5、または 6 の論理ボリュームのストライプ数を指定します。-I 引数でストライプのサイズを指定することもできます。
以下のコマンドは、ボリュームグループ
my_vg に、サイズが 1 ギガバイトで、名前が my_lv の RAID5 アレイ(ストライプ 3 つ + 暗黙的なパリティードライブ 1 つ)を作成します。ストライプ数の指定は、LVM ストライプ化ボリュームの場合と同じように行います。パリティードライブは、正確な数だけ自動的に追加されます。
lvcreate --type raid5 -i 3 -L 1G -n my_lv my_vg
# lvcreate --type raid5 -i 3 -L 1G -n my_lv my_vg
以下のコマンドは、ボリュームグループ
my_vg に、サイズが 1 ギガバイトで、名前が my_lv の RAID6 アレイ(ストライプ 3 つ + 暗黙的なパリティードライブ 2 つ)を作成します。
lvcreate --type raid6 -i 3 -L 1G -n my_lv my_vg
# lvcreate --type raid6 -i 3 -L 1G -n my_lv my_vg
LVM で RAID 論理ボリュームを作成した後、他の LVM 論理ボリュームと同じようにボリュームをアクティブ化、変更、削除、表示、および使用することができます。
RAID10 論理ボリュームを作成する際に、
sync 操作で論理ボリュームを初期化するのに必要なバックグラウンド I/O は、特に RAID 論理ボリュームを多数作成している場合に、その他の I/O 操作(ボリュームグループメタデータへの更新など)を LVM デバイスに押し出す可能性があります。これにより、他の LVM 操作が遅くなる可能性があります。
RAID 論理ボリュームが初期化される速度は、復旧スロットルを実装することで制御できます。
sync 操作が実行される速度は、lvcreate コマンドの --minrecoveryrate および --maxrecoveryrate オプションを使用して、これらの操作の最小および最大 I/O 速度を設定することにより制御できます。オプションは以下のように指定します。
--maxrecoveryrate Rate[bBsSkKmMgG]RAID 論理ボリュームの最大復旧速度を設定し、通常の I/O 操作が押し出されないようにします。速度 アレイ内の各デバイスに対して、1 秒あたりの量を指定します。接尾辞を指定しない場合は、kiB/sec/device (デバイスごとに kiB/秒) と見なされます。復旧速度を 0 に設定すると無制限になります。--minrecoveryrate Rate[bBsSkKmMgG]RAID 論理ボリュームの最小復旧速度を設定し、負荷の高い通常の I/O がある場合でも、sync操作の I/O が最小スループットを達成できるようにします。速度 アレイ内の各デバイスに対して、1 秒あたりの量を指定します。接尾辞を指定しない場合は、kiB/sec/device (デバイスごとに kiB/秒) と見なされます。
以下のコマンドは、最大速度が 128 kiB/sec/device で、サイズが 10 ギガバイトのストライプが 3 つある、2 方向の RAID10 アレイを作成します。このアレイは
my_lv という名前で、ボリュームグループ my_vg にあります。
lvcreate --type raid10 -i 2 -m 1 -L 10G --maxrecoveryrate 128 -n my_lv my_vg
# lvcreate --type raid10 -i 2 -m 1 -L 10G --maxrecoveryrate 128 -n my_lv my_vg
RAID のスクラブ操作の最小および最大復旧速度を指定することもできます。RAID スクラビングの情報は、「RAID 論理ボリュームのスクラビング」 を参照してください。
注記
LVM RAID Calculator を使用すると、RAID ストレージで論理ボリュームを作成するコマンドを生成できます。このアプリケーションは、現在のストレージまたは作成予定のストレージについて入力した情報を使用してコマンドを生成します。LVM RAID Calculator アプリケーションは、https://access.redhat.com/labs/lvmraidcalculator/ で使用できます。
以下のセクションでは、LVM RAID デバイスで実行できる管理タスクについて説明します。
4.4.3.1. RAID0 ボリュームの作成 (Red Hat Enterprise Linux 7.3 以降) リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
RAID0 ボリュームを作成するコマンドの書式は以下のとおりです。
lvcreate --type raid0[_meta] --stripes Stripes --stripesize StripeSize VolumeGroup [PhysicalVolumePath ...]
lvcreate --type raid0[_meta] --stripes Stripes --stripesize StripeSize VolumeGroup [PhysicalVolumePath ...]
| パラメーター | 説明 |
|---|---|
--type raid0[_meta] | raid0 を指定すると、メタデータボリュームなしで RAID0 ボリュームが作成されます。raid0_meta を指定すると、メタデータボリュームとともに RAID0 ボリュームが作成されます。RAID0 には耐障害性がないため、RAID1/10 の場合のようにミラーリングされたすべてのデータブロックを格納したり、RAID4/5/6 の場合のようにすべてのパリティーブロックを計算して格納する必要はありません。したがって、ミラーリングされたブロックまたはパリティーブロックの再同期の進行状態を把握するメタデータボリュームは必要ありません。ただし、RAID0 から RAID4/5/6/10 への変換ではメタデータボリュームが必須になり、raid0_meta を指定すると、割り当ての失敗を防ぐために、これらのメタデータが事前に割り当てられます。 |
--stripes Stripes | 論理ボリュームを分散するデバイスの数を指定します。 |
--stripesize StripeSize | 各ストライプのサイズをキロバイト単位で指定します。これは、次のデバイスに移動する前にデバイスに書き込まれるデータの量です。 |
VolumeGroup | 使用するボリュームグループを指定します。 |
PhysicalVolumePath ... | 使用するデバイスを指定します。指定しない場合は、LVM によって、Stripes オプションに指定されているデバイスの数が、各ストライプに 1 つずつ選択されます。 |
4.4.3.2. リニアデバイスの RAID デバイスへの変換 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
既存のリニア論理ボリュームを RAID デバイスに変換するには、lvconvert コマンドの
--type 引数を使用します。
以下のコマンドは、ボリュームグループ
my_vg のリニア論理ボリューム my_lv を、2 方向の RAID1 アレイに変換します。
lvconvert --type raid1 -m 1 my_vg/my_lv
# lvconvert --type raid1 -m 1 my_vg/my_lv
RAID 論理ボリュームは、メタデータとデータサブボリュームのペアで設定されているため、リニアデバイスを RAID1 アレイに変換すると、メタデータサブボリュームが作成され、リニアボリュームが存在する物理ボリューム (のいずれか) にある、作成元の論理ボリュームに関連付けられます。イメージは、メタデータ/データサブボリュームのペアに追加されます。たとえば、作成元のデバイスは以下のとおりです。
lvs -a -o name,copy_percent,devices my_vg
# lvs -a -o name,copy_percent,devices my_vg
LV Copy% Devices
my_lv /dev/sde1(0)
2 方向の RAID1 アレイに変換すると、デバイスには、以下のデータとメタデータサブボリュームのペアが含まれます。
複製元の論理ボリュームとペアのメタデータイメージを同じ物理ボリュームに配置できないと、lvconvert は失敗します。
4.4.3.3. LVM RAID1 論理ボリュームの LVM リニア論理ボリュームへの変換 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
lvconvert コマンドを使用して、既存の RAID1 LVM 論理ボリュームを LVM リニア論理ボリュームに変換するには、
-m0 引数を指定します。これにより、RAID アレイを設定する全 RAID データサブボリュームおよび全 RAID メタデータサブボリュームが削除され、最高レベルの RAID1 イメージがリニア論理ボリュームとして残されます。
以下の例は、既存の LVM RAID1 論理ボリュームを示しています。
以下のコマンドは、LVM RAID1 論理ボリューム
my_vg/my_lv を、LVM リニアデバイスに変換します。
lvconvert -m0 my_vg/my_lv lvs -a -o name,copy_percent,devices my_vg
# lvconvert -m0 my_vg/my_lv
# lvs -a -o name,copy_percent,devices my_vg
LV Copy% Devices
my_lv /dev/sde1(1)
LVM RAID1 論理ボリューム を LVM リニアボリュームに変換する場合は、削除する物理ボリュームを指定できます。以下の例は、2 つのイメージ(
/dev/sda1 および /dev/sdb1 )で設定される LVM RAID1 論理ボリュームのレイアウトを示しています。この例では、lvconvert コマンドは /dev/sda1 を削除して、/dev/sdb1 をリニアデバイスを設定する物理ボリュームとして残すように指定します。
4.4.3.4. ミラー化 LVM デバイスの RAID1 デバイスへの変換 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
lvconvert コマンドを使用して、セグメントタイプが
mirror の既存のミラーリングされた LVM デバイスを RAID1 LVM デバイスに変換するには、--type raid1 引数を指定します。これにより、ミラーサブボリューム(*_mimage_*)の名前が RAID サブボリューム(*_rimage_*)に変更されます。さらに、ミラーログは削除され、対応するデータサブボリュームと同じ物理ボリュームのデータサブボリューム用に、メタデータサブボリューム(*_rmeta_*)が作成されます。
以下の例は、ミラー化論理ボリューム
my_vg/my_lv のレイアウトを示しています。
以下のコマンドは、ミラー化論理ボリューム
my_vg/my_lv を、RAID1 論理ボリュームに変換します。
4.4.3.5. RAID 論理ボリュームのサイズ変更 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
RAID 論理ボリュームのサイズは、以下の方法で変更できます。
- いずれのタイプの RAID 論理ボリュームのサイズも、lvresize コマンドまたは lvextend コマンドで増やすことができます。これは、RAID イメージの数を変更するものではありません。ストライプ化 RAID 論理ボリュームでは、ストライプ化 RAID 論理ボリュームの作成時と同じ、ストライプを丸める制約が適用されます。RAID ボリュームの拡張の詳細は、「RAID ボリュームの拡張」 を参照してください。
- いずれのタイプの RAID 論理ボリュームのサイズも、lvresize コマンドまたは lvreduce コマンドで減らすことができます。これは、RAID イメージの数を変更するものではありません。lvextend コマンドでは、ストライプ化 RAID 論理ボリュームの作成時と同じストライプを丸める制約が適用されます。論理ボリュームのサイズを変更するコマンド例は、「論理ボリュームの縮小」 を参照してください。
- Red Hat Enterprise Linux 7.4 では、lvconvert コマンドで
--stripes Nパラメーターを使用すると、ストライプ化 RAID 論理ボリューム(raid4/5/6/10)のストライプの数を変更できます。このように、ストライプを追加または削除することで、RAID 論理ボリュームのサイズを増減できます。raid10ボリュームにはストライプを追加することしかできないため注意してください。この機能は、同じ RAID レベルを維持しながら、RAID 論理ボリュームの属性を変更することができる、RAID の 再成形 機能になります。RAID 再成形と、lvconvert コマンドを使用して RAID 論理ボリュームを再生成する例は、lvmraid(7)の man ページを参照してください。
4.4.3.6. 既存の RAID1 デバイス内のイメージ数の変更 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
既存の RAID1 アレイ内のイメージ数は、LVM ミラーリングの初期実装でイメージ数を変更する場合と同様に変更できます。lvconvert コマンドを使用して、追加または削除するメタデータ/データサブボリュームのペアの数を指定します。LVM ミラーリングの初期実装におけるボリューム設定の変更方法については、「ミラー化ボリューム設定の変更」 を参照してください。
lvconvert コマンドを使用して RAID1 デバイスにイメージを追加する場合は、作成されるデバイス用イメージの総数を指定するか、デバイスに追加するイメージ数を指定できます。メタデータ/データイメージのペアを置く物理ボリュームを指定することもできます。
メタデータサブボリューム(
*_rmeta_*という名前)は、対応するデータサブボリューム( *_rimage_*)と同じ物理デバイスに常に存在します。メタデータ/データのサブボリュームのペアは、--alloc anywhere を指定しない限り、RAID アレイにある別のメタデータ/データサブボリュームのペアと同じ物理ボリュームには作成されません。
RAID1 ボリュームにイメージを追加するコマンドの形式は、以下のとおりです。
lvconvert -m new_absolute_count vg/lv [removable_PVs] lvconvert -m +num_additional_images vg/lv [removable_PVs]
lvconvert -m new_absolute_count vg/lv [removable_PVs]
lvconvert -m +num_additional_images vg/lv [removable_PVs]
たとえば、以下のコマンドは、2 方向の RAID1 アレイである LVM デバイス
my_vg/my_lv を表示します。
以下のコマンドは、2 方向の RAID1 デバイス
my_vg/my_lv を、3 方向の RAID1 デバイスに変換します。
イメージを RAID1 アレイに追加する場合は、イメージに使用する物理ボリュームを指定できます。次のコマンドは、2 方向の RAID1 デバイス
my_vg/my_lv を 3 方向の RAID1 デバイスに変換し、物理ボリューム /dev/sdd1 がアレイに使用されるように指定します。
RAID1 アレイからイメージを削除するには、以下のコマンドを使用します。lvconvert コマンドを使用して RAID1 デバイスからイメージを削除する場合、作成されるデバイスのイメージの合計数を指定するか、デバイスから削除するイメージ数を指定できます。または、デバイスを削除する物理ボリュームを指定することもできます。
lvconvert -m new_absolute_count vg/lv [removable_PVs] lvconvert -m -num_fewer_images vg/lv [removable_PVs]
lvconvert -m new_absolute_count vg/lv [removable_PVs]
lvconvert -m -num_fewer_images vg/lv [removable_PVs]
また、イメージとその関連付けられたメタデータのサブボリュームを削除すると、それよりも大きな番号のイメージがそのスロットを引き継ぎます。
lv_rimage_ 0、lv_rimage_ 1、および lv_rimage _2 で構成される 3 方向 RAID1 アレイからlv_rimage_ 1 を削除すると、これにより lv_rimage_ 0 と lv_rimage_ 1 で構成される RAID1 アレイが作成されます。サブボリューム lv_rimage_ 2 の名前が、空のスロットを引き継いで lv_rimage_ 1 になります。
以下の例は、3 方向の RAID1 論理ボリューム
my_vg/my_lv のレイアウトを示しています。
以下のコマンドは、3 方向の RAID1 論理ボリュームを、2 方向の RAID1 論理ボリュームに変換します。
以下のコマンドは、3 方向の RAID1 論理ボリュームを 2 方向 RAID1 論理ボリュームに変換し、
/dev/sde1 として削除するイメージを含む物理ボリュームを指定します。
4.4.3.7. RAID イメージを複数の論理ボリュームに分割 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
RAID 論理ボリュームのイメージを分割して新しい論理ボリュームを形成できます。RAID イメージを分割する手順は、「ミラー化論理ボリュームの冗長イメージの分割」 で説明されているように、ミラー化論理ボリュームの冗長イメージを分割する手順と同じです。
RAID イメージを分割するコマンドの形式は、以下のとおりです。
lvconvert --splitmirrors count -n splitname vg/lv [removable_PVs]
lvconvert --splitmirrors count -n splitname vg/lv [removable_PVs]
既存の RAID1 論理ボリュームから RAID イメージを削除する場合と同様に (「既存の RAID1 デバイス内のイメージ数の変更」 で説明)、RAID データのサブボリューム (およびその関連付けられたメタデータのサブボリューム) をデバイスから削除する場合、それより大きい番号のイメージは、そのスロットを埋めるために番号が変更になります。そのため、RAID アレイを構成する論理ボリューム上のインデックス番号は連続する整数となります。
注記
RAID1 アレイがまだ同期していない場合は、RAID イメージを分割できません。
以下の例は、2 方向の RAID1 論理ボリューム
my_lv を、my_lv と new の 2 つのリニア論理ボリュームに分割します。
以下の例は、3 方向の RAID1 論理ボリューム
my_lv を、2 方向の RAID1 論理ボリューム my_lv とリニア論理ボリューム newに分割します。
4.4.3.8. RAID イメージの分割とマージ リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
lvconvert コマンドの
--splitmirrors 引数とともに --trackchanges 引数を使用すると、すべての変更を追跡しながら、RAID1 アレイのイメージを一時的に読み取り専用に分割できます。これにより、イメージの分割後に変更になったアレイの部分のみを再同期する一方で、後でそのイメージをアレイにマージし直すことができます。
RAID イメージを分割する lvconvert コマンドの形式は、以下のとおりです。
lvconvert --splitmirrors count --trackchanges vg/lv [removable_PVs]
lvconvert --splitmirrors count --trackchanges vg/lv [removable_PVs]
--trackchanges 引数を使用して RAID イメージを分割する場合、分割するイメージを指定することはできますが、分割されるボリューム名を変更することはできません。また、分割して作成されたボリュームには以下の制限があります。
- 作成された新規ボリュームは読み取り専用です。
- 新規ボリュームのサイズは変更できません。
- 残りのアレイの名前は変更できません。
- 残りのアレイのサイズは変更できません。
- 新規のボリュームと、残りのアレイを個別にアクティブにすることはできません。
指定した
--trackchanges 引数を使用して分割されたイメージをマージするには、lvconvert コマンドに --merge 引数を指定して実行します。イメージをマージすると、イメージが分割されてから変更したアレイの部分のみが再同期されます。
RAID イメージをマージする lvconvert コマンドの形式は、以下のとおりです。
lvconvert --merge raid_image
lvconvert --merge raid_image
以下の例は、残りのアレイへの変更を追跡する一方で、RAID1 論理ボリュームを作成し、そのボリュームからイメージを分割します。
以下の例は、残りのアレイへの変更の追跡時に、RAID1 ボリュームからイメージを分割します。その後、ボリュームをアレイにマージし直しています。
RAID1 ボリュームからイメージを分割したら、2 番目の lvconvert --splitmirrors コマンドを実行し、
--trackchanges 引数を指定せずにイメージを分割する初期 lvconvert コマンドを繰り返すことで、分割された永続化できます。これにより、--trackchanges 引数が作成されたリンクが破損します。
--trackchanges 引数を使用してイメージを分割した後に、意図的に追跡されているイメージを永続的に分割しない限り、そのアレイで後続の lvconvert --splitmirrors コマンドを発行することはできません。
以下の一連のコマンドは、イメージを分割してこれを追跡してから、追跡されるイメージを永久に分割します。
ただし、以下の一連のコマンドは失敗する点に注意してください。
同様に、以下の一連のコマンドも失敗します。分割されたイメージが追跡されていないためです。
4.4.3.9. RAID 障害ポリシーの設定 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
LVM RAID は、
lvm.conf ファイルの raid_fault_policy フィールドで定義された設定に基づいて、デバイス障害を自動で処理します。
raid_fault_policyフィールドがallocateに設定されている場合、システムは障害が発生したデバイスをボリュームグループの予備デバイスに置き換えようとします。予備のデバイスがないと、システムログにレポートが送信されます。raid_fault_policyフィールドがwarnに設定されている場合、システムは警告を生成し、デバイスが失敗したことを示します。これにより、ユーザーは実施する一連の動作を確認できます。
残りのデバイスで該当するポリシーに対応できる限り、RAID 論理ボリュームは操作を続行します。
4.4.3.9.1. allocateRAID 障害ポリシー リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
以下の例では、
raid_fault_policy フィールドは lvm.conf ファイルで allocate に設定されています。RAID 論理ボリュームは、以下のように配置されます。
/dev/sde デバイスに障害が発生した場合、システムログはエラーメッセージを表示します。
raid_fault_policy フィールドが allocate に設定されているため、障害が発生したデバイスは、ボリュームグループの新しいデバイスに置き換えられます。
障害が発生したデバイスを交換しても、LVM は、障害が発生したデバイスが見つけられないと示すことに注意してください。これは、障害が発生したデバイスが、RAID 論理ボリュームからは削除されても、ボリュームグループからは削除されていないためです。障害が発生したデバイスをボリュームグループから削除するには、vgreduce --removemissing VG を実行します。
raid_fault_policy が allocate に設定されているが、予備のデバイスがない場合は、割り当てに失敗し、論理ボリュームはそのままになります。割り当てが失敗した場合は、「warnRAID 障害ポリシー」 で説明されているように、ドライブを修正し、その後で論理ボリュームを非アクティブ化およびアクティブ化できます。また、「RAID デバイスの交換」 で説明されているように、障害が発生したデバイスを置き換えることも可能です。
4.4.3.9.2. warnRAID 障害ポリシー リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
以下の例では、
raid_fault_policy フィールドは lvm.conf ファイルで warn に設定されています。RAID 論理ボリュームは、以下のように配置されます。
/dev/sdh デバイスが失敗すると、システムログはエラーメッセージを表示します。ただし、この場合、LVM はイメージの 1 つを置き換えて、RAID デバイスを自動的に修復しようとはしません。代わりに、デバイスに障害が発生した場合は、以下に示すように lvconvert コマンドの --repair 引数を使用してデバイスを置き換えることができます。
障害が発生したデバイスを交換しても、LVM は、障害が発生したデバイスが見つけられないと示すことに注意してください。これは、障害が発生したデバイスが、RAID 論理ボリュームからは削除されても、ボリュームグループからは削除されていないためです。障害が発生したデバイスをボリュームグループから削除するには、vgreduce --removemissing VG を実行します。
デバイス障害が一時的な障害であったり、障害が発生したデバイスの修復が可能な場合は、lvchange コマンドの
--refresh オプションを使用して、障害が発生したデバイスの復旧を開始できます。これまでは、論理ボリュームを非アクティブ化してからアクティブ化することが必要でした。
次のコマンドは、論理ボリュームを更新します。
lvchange --refresh my_vg/my_lv
# lvchange --refresh my_vg/my_lv
4.4.3.10. RAID デバイスの交換 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
RAID は従来の LVM ミラーリングとは異なります。LVM ミラーリングでは、障害が発生したデバイスを削除する必要がありました。削除しないと、ミラー化論理ボリュームがハングします。RAID アレイは、障害があるデバイスがあっても稼働し続けることができます。RAID1 以外の RAID タイプでデバイスを削除すると、レベルが低い RAID に変換されます (たとえば、RAID6 から RAID5、もしくは RAID4 または RAID5 から RAID0)。したがって、障害が発生したデバイスを無条件に削除してから交換するのではなく、lvconvert コマンドで
--replace 引数を使用して、RAID ボリュームのデバイスを 1 回で置き換えることができます。
lvconvert --replace の形式は、以下のとおりです。
lvconvert --replace dev_to_remove vg/lv [possible_replacements]
lvconvert --replace dev_to_remove vg/lv [possible_replacements]
以下の例では、RAID1 論理ボリュームを作成した後に、そのボリューム内のデバイスを交換しています。
以下の例では、RAID1 論理ボリュームを作成した後に、そのボリュームのデバイスを交換し、交換したデバイスに使用する物理ボリュームを指定しています。
一度に 2 つ以上の RAID デバイスを交換するには、以下の例のように複数の
replace 引数を指定します。
注記
lvconvert --replace コマンドを使用して交換ドライブを指定する場合、交換用のドライブは、アレイですでに使用されている追加領域から割り当てるべきではありません。たとえば、
lv_rimage_0 と lv_rimage_ 1 は同じ物理ボリュームに配置しないでください。
4.4.3.11. RAID 論理ボリュームのスクラビング リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
LVM は、RAID 論理ボリュームのスクラビングに対応します。RAID スクラビングは、アレイ内のデータおよびパリティーブロックをすべて読み込み、それが一貫しているかどうかを確認するプロセスです。
lvchange コマンドの
--syncaction オプションを使用して、RAID スクラビング操作を開始します。check または repair のいずれかの操作を指定します。check 操作はアレイを超え、アレイ内の不一致の数を記録しますが、それらを修復しません。修復 操作では、検出時に不一致が修正します。
RAID 論理ボリュームのスクラビングを実行するコマンドの形式は以下のとおりです。
lvchange --syncaction {check|repair} vg/raid_lv
lvchange --syncaction {check|repair} vg/raid_lv
注記
lvchange --syncaction repair vg/raid_lv 操作は、lvconvert --repair vg/raid_lv と同じ機能を実行しません。lvchange --syncaction repair 操作は、アレイでバックグラウンドの同期操作を開始しますが、lvconvert --repair 操作は、ミラーまたは RAID 論理ボリュームで障害が発生したデバイスを修復または交換するように設計されています。
新しい RAID スクラビング操作をサポートするため、lvs コマンドは、
raid_sync_action と raid_mismatch_count の 2 つの新しい出力可能なフィールドをサポートするようになりました。これらのフィールドは、デフォルトでは出力されません。これらのフィールドを表示するには、以下のように lvs の -o パラメーターを使用して指定します。
lvs -o +raid_sync_action,raid_mismatch_count vg/lv
lvs -o +raid_sync_action,raid_mismatch_count vg/lv
raid_sync_action フィールドは、raid ボリュームが現在実行している同期操作を表示します。これには、以下のいずれかの値を使用できます。
idle: すべての同期操作が完了している(何も実行しません)。再同期: アレイを初期化、またはマシン障害後の復旧を実行する。recover: アレイ内のデバイスの置き換えcheck: アレイの不一致を検索する。repair: 不整合を検索し、修復します。
raid_mismatch_count フィールドは、check 操作時に見つかった不一致の数を表示します。
lvs コマンドの
Cpy%Sync フィールドは、check および repair を含む raid_sync_action 操作のいずれかの進捗を出力するようになりました。
lvs コマンドの
lv_attr フィールドは、RAID スクラビング操作をサポートする追加のインジケーターを提供するようになりました。このフィールドのビット 9 は、論理ボリュームの正常性を示し、以下のインジケーターに対応するようになりました。
- (m) ismatches (不一致) は、RAID 論理ボリュームに不一致があることを示します。この文字は、スクラビング操作で RAID に一貫性がない部分があることを検出した後に表示されます。
- (r)efresh (更新) は、LVM がデバイスラベルを読み取り、デバイスを稼働できると認識した場合でも、RAID アレイのデバイスに障害が発生し、カーネルがこれを障害と認識していることを示します。この論理ボリュームを、デバイスが利用可能になったことをカーネルに通知するために更新する (refresh) か、もしくはデバイスに障害が発生したと思われる場合はデバイスを置き換える (replace) 必要があります。
lvs コマンドについての情報は、「オブジェクト表示フィールド」 を参照してください。
RAID スクラビング操作を実行する際に、
sync 操作で必要になるバックグラウンド I/O は、その他の I/O 操作(ボリュームグループメタデータへの更新など)を LVM デバイスに押し出す可能性があります。これにより、他の LVM 操作が遅くなる可能性があります。復旧スロットルを実装して RAID 論理ボリュームのスクラビングを実行する速度を制御できます。
sync 操作が実行される速度は、lvchange コマンドの --minrecoveryrate および --maxrecoveryrate オプションを使用して、これらの操作の最小および最大 I/O 速度を設定することにより制御できます。オプションは以下のように指定します。
--maxrecoveryrate Rate[bBsSkKmMgG]RAID 論理ボリュームの最大復旧速度を設定し、通常の I/O 操作が押し出されないようにします。速度 アレイ内の各デバイスに対して、1 秒あたりの量を指定します。接尾辞を指定しない場合は、kiB/sec/device (デバイスごとに kiB/秒) と見なされます。復旧速度を 0 に設定すると無制限になります。--minrecoveryrate Rate[bBsSkKmMgG]RAID 論理ボリュームの最小復旧速度を設定し、負荷の高い通常の I/O がある場合でも、sync操作の I/O が最小スループットを達成できるようにします。速度 アレイ内の各デバイスに対して、1 秒あたりの量を指定します。接尾辞を指定しない場合は、kiB/sec/device (デバイスごとに kiB/秒) と見なされます。
4.4.3.12. RAID テイクオーバー (Red Hat Enterprise Linux 7.4 以降) リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
LVM は、Raid テイクオーバー をサポートします。これは、RAID 論理ボリュームの RAID レベルを別のレベル (たとえば RAID 5 から RAID 6) へ変えることを意味します。RAID レベルの変更は、通常、デバイスの耐障害性を増減したり、論理ボリュームのストライプ化をやり直すために行われます。RAID テイクオーバーには lvconvert を使用します。RAID テイクオーバーの詳細と、lvconvert を使用して RAID 論理ボリュームを変換する例は、lvmraid(7)の man ページを参照してください。
4.4.3.13. RAID 論理ボリュームの再成形 (Red Hat Enterprise Linux 7.4 以降) リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
RAID 再成形 は、同じ RAID レベルを維持しつつ、RAID 論理ボリュームの属性を変更することを示しています。変更できる属性には、RAID レイアウト、ストライプのサイズ、ストライプの数などがあります。RAID 再成形と、lvconvert コマンドを使用して RAID 論理ボリュームを再生成する例は、lvmraid(7)の man ページを参照してください。
4.4.3.14. RAID1 論理ボリュームでの I/O 操作の制御 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
lvchange コマンドの
--writemostly パラメーターおよび --writebehind パラメーターを使用して、RAID1 論理ボリュームのデバイスの I/O 操作を制御できます。これらのパラメーターを使用する書式は以下のとおりです。
--[RAID]writemostly PhysicalVolume[:{t|y|n}]RAID1 論理ボリュームのデバイスをwrite-mostlyとしてマークします。これらのドライブのすべての読み取りは、必要でない限り回避されます。このパラメーターを設定することにより、ドライブに対する I/O 操作の回数を最小限に抑えることができます。デフォルトでは、論理ボリュームに指定した物理ボリュームのwrite-mostly属性を yes に設定します。:nを物理ボリュームに追加してwrite-mostlyフラグを削除したり、:tを指定して値を切り替えたりすることができます。--writemostly引数は、1 つのコマンドで複数回指定できるため、論理ボリューム内のすべての物理ボリュームに対して、一度に書き込み属性を切り替えることができます。--[raid]writebehind IOCountwrite-mostlyとしてマークされている RAID1 論理ボリュームのデバイスに許可される未処理の書き込みの最大数を指定します。この値を上回ると書き込みは同期され、設定要素になっているデバイスへの書き込みがすべて、アレイが書き込みの完了を知らせる前に完了してしまいます。この値をゼロに設定すると、設定はクリアになり、システムが値を任意に選択できるようになります。
4.4.3.15. RAID 論理ボリュームのリージョンサイズの変更 (Red Hat Enterprise Linux 7.4 以降) リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
RAID 論理ボリュームを作成すると、論理ボリュームのリージョンサイズは、
/etc/lvm/lvm.conf ファイルの raid_region_size パラメーターの値になります。このデフォルト値は、lvcreate コマンドの -R オプションで上書きできます。
RAID 論理ボリュームを作成したら、lvconvert コマンドの
-R オプションを使用してボリュームのリージョンサイズを変更できます。以下の例では、論理ボリューム vg/raidlv のリージョンサイズを 4096K に変更します。リージョンサイズを変更する場合は、RAID ボリュームを同期する必要があります。
lvconvert -R 4096K vg/raid1
# lvconvert -R 4096K vg/raid1
Do you really want to change the region_size 512.00 KiB of LV vg/raid1 to 4.00 MiB? [y/n]: y
Changed region size on RAID LV vg/raid1 to 4.00 MiB.
4.4.4. ミラー化ボリュームの作成 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Enterprise Linux 7.0 リリースの場合、「RAID 論理ボリューム」 で説明されているように、LVM は RAID 1/4/5/6/10 に対応します。RAID 論理ボリュームはクラスターには対応していません。RAID 論理ボリュームは、1 台のマシンに作成して排他的にアクティブにすることができますが、複数のマシンで同時にアクティブにすることはできません。排他的ではないミラー化されたボリュームが必要な場合は、このセクションで説明するように、セグメントタイプの
mirror を指定してボリュームを作成する必要があります。
注記
mirror セグメントタイプを指定した既存の LVM デバイスを RAID1 LVM デバイスに変換する方法は、「ミラー化 LVM デバイスの RAID1 デバイスへの変換」 を参照してください。
注記
ミラー化された LVM 論理ボリュームをクラスター内に作成するには、単一ノード上に
mirror のセグメントタイプでミラー化 LVM 論理ボリュームを作成するのと同じコマンドと手順が必要です。ただし、クラスター内にミラー化された LVM ボリュームを作成するには、クラスターとクラスターミラーインフラストラクチャーが実行中で、クラスターがクォーラムである必要があり、クラスターロッキングを有効にするには lvm.conf ファイルのロッキングタイプを適切に設定する必要があります。クラスター内におけるミラー化ボリュームの作成例は、「クラスター内でのミラー化 LVM 論理ボリュームの作成」 をご覧ください。
単一クラスター内の複数のノードから短時間に連続して複数の LVM ミラーを作成または変換するコマンドを実行しようとすると、これらのコマンドのバックログが生じる場合があります。これによって、要求した操作がタイムアウトになって失敗する可能性があります。この問題を回避するために、そのクラスターのいずれかのノードから、クラスターミラー作成コマンドを実行することを推奨します。
ミラー化ボリュームを作成する場合、lvcreate コマンドの
-m 引数で作成するデータのコピー数を指定します。-m1 を指定すると、ファイルシステムの 2 つのコピー (リニア論理ボリュームと 1 つのコピー) が作成されます。同様に、-m2 を指定すると 2 つのミラーを作成し、ファイルシステムの 3 つのコピーを生成します。
以下のコマンドは、ミラーが 1 つあるミラー化論理ボリュームを作成します。ボリュームのサイズは 50 ギガバイトで、
mirrorlv という名前であり、ボリュームグループ vg0 から取得されます。
lvcreate --type mirror -L 50G -m 1 -n mirrorlv vg0
# lvcreate --type mirror -L 50G -m 1 -n mirrorlv vg0
デフォルトでは、LVM ミラーデバイスは、複製されるデバイスを、サイズが 512KB のリージョンに分割します。lvcreate コマンドの
-R 引数を使用して、リージョンサイズをメガバイトで指定できます。また、lvm.conf ファイルで mirror_region_size 設定を編集して、デフォルトのリージョンサイズを変更することもできます。
注記
クラスターインフラストラクチャーの制限により、デフォルトのリージョンサイズ (512KB) では、1.5TB を超えるクラスターミラーは作成できません。1.5TB よりも大きなミラーを必要とするユーザーは、リージョンサイズをデフォルトよりも大きくする必要があります。リージョンサイズが小さいままだと、LVM の作成がハングしてします。また、その他の LVM コマンドでもハングの可能性があります。
1.5TB を超えるミラーのリージョンサイズを指定する一般的なガイドラインとして、lvcreate コマンドの
-R 引数としてその番号を使用して、ミラーサイズをテラバイトで取得し、その番号を次の 2 の累乗に上げることができます。たとえば、ミラーサイズが 1.5TB の場合は、-R 2 を指定できます。ミラーサイズが 3TB の場合は、-R 4 を指定できます。ミラーサイズが 5TB の場合、-R 8 を指定できます。
以下のコマンドは、リージョンサイズが 2MB のミラー化論理ボリュームを作成します。
lvcreate --type mirror -m 1 -L 2T -R 2 -n mirror vol_group
# lvcreate --type mirror -m 1 -L 2T -R 2 -n mirror vol_group
ミラーが作成されると、ミラーのリージョンは同期されます。ミラーコンポーネントが大きい場合は、同期プロセスに時間がかかる可能性があります。回復する必要のないミラーを新規に作成する場合は、最初のデバイスからの初期同期が不要であることを示す
--nosync 引数を指定できます。
LVM は、単一または複数のミラーと同期するリージョンを追跡するのに使用する小さなログを維持します。デフォルトでは、このログはディスクに保持され、再起動後も永続化するため、マシンが再起動/クラッシュするたびにミラーを再同期する必要はありません。
--mirrorlog 引数を使用すると、このログがメモリーで保持されるように指定できるため、余分なログデバイスが不要になります。ただし、この場合は、再起動のたびにミラー全体を再同期する必要がでてきます。
以下のコマンドは、ボリュームグループ
bigvg からミラー化論理ボリュームを作成します。論理ボリュームは ondiskmirvol という名前で、ミラーが 1 つあります。ボリュームのサイズは 12MB で、ミラーログをメモリーに保持します。
lvcreate --type mirror -L 12MB -m 1 --mirrorlog core -n ondiskmirvol bigvg
# lvcreate --type mirror -L 12MB -m 1 --mirrorlog core -n ondiskmirvol bigvg
Logical volume "ondiskmirvol" created
このミラーログは、ミラーレッグが作成されるデバイスとは異なるデバイスで作成されます。ただし、vgcreate コマンドの
--alloc anywhere 引数を使用して、ミラーレッグのいずれかと同じデバイスにミラーログを作成できます。ただし、これによりパフォーマンスが低下する場合がありますが、配下のデバイスが 2 つしかなくてもミラーを作成できます。
以下のコマンドは、単一のミラーを持つミラー化論理ボリュームを作成します。このミラーログはミラーレッグの 1 つと同じデバイス上にあります。この例では、ボリュームグループ
vg0 は 2 つのデバイスのみで設定されます。このコマンドを使用すると、ボリュームグループ vg0 に、名前が mirrorlv という名前の 500 MB のボリュームが作成されます。
lvcreate --type mirror -L 500M -m 1 -n mirrorlv -alloc anywhere vg0
# lvcreate --type mirror -L 500M -m 1 -n mirrorlv -alloc anywhere vg0
注記
クラスター化されたミラーでは、ミラーログ管理は、その時点でクラスター ID の最も低いクラスターノードによって行われます。そのため、クラスターミラーログを保持するデバイスがクラスターのサブセット上で利用できなくなる場合、最も低い ID を持つクラスターノードがミラーログへのアクセスを保持する限り、クラスター化されたミラーは影響を受けることなく、機能を継続することができます。ミラーは影響を受けないため、自動修正アクション (修復) も実行されません。ただし、最も低い ID のクラスターノードがミラーログにアクセスできなくなると、(他のノードからログへのアクセスが可能かどうかにかかわらず) 自動アクションが作動します。
ミラーリングされているミラーログを作成するには、
--mirrorlog ミラーリングされた 引数を指定できます。以下のコマンドは、ボリュームグループ bigvg からミラー化論理ボリュームを作成します。論理ボリュームは twologvol という名前で、1 つのミラーがあります。このボリュームのサイズは 12MB で、ミラーログがミラー化され、各ログは別個のデバイス上に保管されます。
lvcreate --type mirror -L 12MB -m 1 --mirrorlog mirrored -n twologvol bigvg
# lvcreate --type mirror -L 12MB -m 1 --mirrorlog mirrored -n twologvol bigvg
Logical volume "twologvol" created
標準のミラーログと同様に、vgcreate コマンドの
--alloc anywhere 引数を使用すると、ミラーレッグと同じデバイスに冗長ミラーログを作成できます。これによってパフォーマンスが低下する可能性がありますが、各ログを別個のデバイス上に保管するための配下のデバイス数がミラーレッグに対して十分でない場合でも、冗長ミラーログの作成が可能となります。
ミラーが作成されると、ミラーのリージョンは同期されます。ミラーコンポーネントが大きい場合は、同期プロセスに時間がかかる可能性があります。回復する必要のないミラーを新規に作成する場合は、最初のデバイスからの初期同期が不要であることを示す
--nosync 引数を指定できます。
ミラーレッグとログ用に使用するデバイス、およびそのデバイスで使用するエクステントを指定することができます。ログを特定のディスクに強制するには、それが配置されるディスク上のエクステントを正確に 1 つ指定します。LVM は、コマンドラインでデバイスがリスト表示される順序を必ずしも優先しません。物理ボリュームがリストにあれば、それが割り当てが実行される唯一の領域になります。割り当て済みの物理エクステントがリストにある場合、そのエクステントは無視されます。
以下のコマンドは、単一のミラーとミラー化されない単一ログを持つミラー化論理ボリュームを作成します。ボリュームのサイズは 500 MB で、これは
mirrorlv という名前で、ボリュームグループ vg0 から取得されます。最初のミラーレッグはデバイス /dev/sda1 にあり、2 番目のミラーレッグはデバイス /dev/sdb1 にあり、ミラーログは /dev/sdc1 にあります。
lvcreate --type mirror -L 500M -m 1 -n mirrorlv vg0 /dev/sda1 /dev/sdb1 /dev/sdc1
# lvcreate --type mirror -L 500M -m 1 -n mirrorlv vg0 /dev/sda1 /dev/sdb1 /dev/sdc1
以下のコマンドは、ミラーが 1 つあるミラー化論理ボリュームを作成します。ボリュームのサイズは 500 MB で、これは
mirrorlv という名前で、ボリュームグループ vg0 から取得されます。最初のミラーレッグは、デバイス /dev/sda1 のエクステント 0 から 499、ミラーの 2 番目のレッグは、デバイス /dev/sdb1 のエクステント 0 から 499 に、ミラーログはデバイス /dev/sdc1 のエクステント 0 から始まります。エクステントサイズは 1MB です。指定されたエクステントのいずれかが割り当て済みである場合は、それらは無視されます。
lvcreate --type mirror -L 500M -m 1 -n mirrorlv vg0 /dev/sda1:0-499 /dev/sdb1:0-499 /dev/sdc1:0
# lvcreate --type mirror -L 500M -m 1 -n mirrorlv vg0 /dev/sda1:0-499 /dev/sdb1:0-499 /dev/sdc1:0
注記
単一の論理ボリューム内でストライピングとミラーリングを併用することが可能です。論理ボリュームの作成と同時にミラーの数 (
--mirrors X) とストライプの数 (--stripes Y) を指定すると、ミラーデバイスの設定デバイスがストライプ化されます。
4.4.4.1. ミラー化論理ボリュームの障害ポリシー リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
lvm.conf ファイルの activation セクションにある mirror_image_fault_policy パラメーターおよび mirror_log_fault_policy パラメーターを使用すると、デバイスの障害が発生した場合にミラー化論理ボリュームがどのように動作するかを定義できます。これらのパラメーターが remove に設定されると、システムは障害のあるデバイスを削除して、そのデバイスなしで実行しようとします。これらのパラメーターが 割り当て に設定されると、システムは障害のあるデバイスを削除し、そのデバイスの代わりとなる新しいデバイスの領域の割り当てを試みます。代替に適切なデバイスと領域を割り当てることができない場合、このポリシーは remove ポリシーのように機能します。
デフォルトでは、
mirror_log_fault_policy パラメーターは allocate に設定されます。ログにこのポリシーを使用すると、処理が高速になり、クラッシュやシステムの再起動時にも同期状態を記憶する機能が維持されます。このポリシーを remove に設定すると、ログデバイスに障害が発生したときに、ミラーがインメモリーログを使用するよう変換されます。この場合、ミラーはクラッシュと再起動後に同期状態を記憶せず、ミラー全体が再同期されます。
デフォルトでは、
mirror_image_fault_policy パラメーターは remove に設定されます。このポリシーでは、ミラーイメージに障害が発生すると、良好なコピーが 1 つしか残っていない場合は、ミラーが非ミラー化デバイスに変換されます。ミラーデバイス用にこのポリシーを allocate に設定するには、ミラーでデバイスを再同期する必要があります。これは処理に時間がかかりますが、デバイスのミラー特性を保持します。
注記
LVM ミラーにデバイス障害が発生すると、2 段階の回復プロセスが実行されます。第 1 段階では、障害が発生したデバイスの削除が行われます。これによってミラーは、単一のリニアデバイスに縮小されます。第 2 段階では、
mirror_log_fault_policy パラメーターが allocate に設定されている場合、障害が発生したデバイスの置き換えを試みます。ただし、第 2 段階では、他のデバイスが利用可能である場合、ミラーが以前使用していたデバイスの中から、障害とは関係のないデバイスが選択されるという保証はない点に注意してください。
LVM ミラー障害の発生時に手作業で回復する方法については、「LVM ミラー障害からの回復」 を参照してください。
4.4.4.2. ミラー化論理ボリュームの冗長イメージの分割 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
ミラー化論理ボリュームの冗長イメージを分割して、新たな論理ボリュームを形成することができます。イメージを分割するには、lvconvert コマンドの
--splitmirrors 引数を使用して、分割する冗長イメージの数を指定します。コマンドの --name 引数を使用して、newly-split-off 論理ボリュームの名前を指定する必要があります。
以下のコマンドは、ミラー化論理ボリューム
vg/lv から、copy という名前の新しい論理ボリュームを分割します。新しい論理ボリュームには 2 つのミラーレッグが含まれます。この例では、LVM は分割するデバイスを選択しています。
lvconvert --splitmirrors 2 --name copy vg/lv
# lvconvert --splitmirrors 2 --name copy vg/lv
分割するデバイスを指定することが可能です。以下のコマンドは、ミラー化論理ボリューム
vg/lv から、copy という名前の新しい論理ボリュームを分割します。新しい論理ボリュームには、/dev/sdc1 と /dev/sde1 のデバイスで設定される 2 つのミラーレッグが含まれます。
lvconvert --splitmirrors 2 --name copy vg/lv /dev/sd[ce]1
# lvconvert --splitmirrors 2 --name copy vg/lv /dev/sd[ce]1
4.4.4.3. ミラー化論理ボリュームの修復 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
lvconvert --repair コマンドを使用すると、ディスク障害後にミラーを修復できます。これによって、ミラーは整合性のある状態に戻ります。lvconvert --repair コマンドは、インタラクティブなコマンドで、システムで障害が発生したデバイスの置き換えを試行するかどうかを指定するように求められます。
- プロンプトを省略して、障害が発生したデバイスをすべて置き換えるには、コマンドラインで
-yオプションを指定します。 - プロンプトを省略して、障害が発生したデバイスのいずれも置き換えるには、コマンドラインで
-fオプションを指定します。 - プロンプトを省略し、それでもミラーイメージとミラーログの代替ポリシーを示すには、
lvm.confファイルの mirror_log_fault_policy パラメーターおよびパラメーターで指定されたデバイス置き換えポリシーを使用するようにmirror_device_fault_policy--use-policies引数を指定します。
4.4.4.4. ミラー化ボリューム設定の変更 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
lvconvert コマンドを使用すると、論理ボリュームに含まれるミラーの数を増減できます。これにより、論理ボリュームをミラー化ボリュームからリニアボリュームに、またはリニアボリュームからミラー化ボリュームに変換できます。また、このコマンドを使用して、
corelog などの既存の論理ボリュームの他のミラーパラメーターを再設定することもできます。
リニアボリュームをミラー化ボリュームに変換する際には、既存ボリューム用にミラーレッグを作成することになります。つまり、ボリュームグループにはミラーレッグ用とミラーログ用のデバイスと領域がなければならないことを意味します。
ミラーレッグを 1 つ失うと、LVM はそのボリュームをリニアボリュームに変換するため、ミラーの冗長性なしにボリュームに引き続きアクセスできます。レッグを置き換えたら、lvconvert コマンドを使用してミラーを復元します。この手順は、「LVM ミラー障害からの回復」 で提供されています。
以下のコマンドは、リニア論理ボリューム
vg00/lvol1 をミラー化論理ボリュームに変換します。
lvconvert -m1 vg00/lvol1
# lvconvert -m1 vg00/lvol1
以下のコマンドは、ミラー化論理ボリューム
vg00/lvol1 をリニア論理ボリュームに変換し、ミラーレッグを削除します。
lvconvert -m0 vg00/lvol1
# lvconvert -m0 vg00/lvol1
以下の例は、既存の論理ボリューム
vg00/lvol1 にミラーレッグを追加します。この例は、lvconvert コマンドがボリュームを 2 つのミラーレッグを持つボリュームに変更する前後のボリュームの設定を示しています。
4.4.5. シンプロビジョニングされた論理ボリュームの作成 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
論理ボリュームは、シンプロビジョニングにできます。これにより、利用可能なエクステントよりも大きな論理ボリュームを作成できます。シンプロビジョニングを使用すると、シンプールと呼ばれる、空き領域のストレージプールを管理でき、アプリケーションで必要になった時に任意の数のデバイスに割り当てることができます。後でアプリケーションが実際に論理ボリュームに書き込むときに割り当てられるように、シンプールにバインドするデバイスを作成できます。シンプールは、ストレージ領域をコスト効率よく割り当てる必要がある場合に、動的に拡張できます。
注記
このセクションでは、シンプロビジョニングされた論理ボリュームを作成し、拡張するために使用する基本的なコマンドの概要を説明します。LVM シンプロビジョニングの詳細と、シンプロビジョニングされた論理ボリュームと共に LVM コマンドおよびユーティリティーを使用する方法は、lvmthin(7) man ページを参照してください。
注記
クラスターのノード間では、シンボリュームに対応していません。シンプールとそのすべてのシンボリュームは、1 つのクラスターノードで排他的にアクティブにする必要があります。
シンボリュームを作成する場合は、以下のタスクを実行します。
- vgcreate コマンドを使用して、ボリュームグループを作成します。
- lvcreate コマンドを使用して、シンプールを作成します。
- lvcreate コマンドを使用して、シンプール内にシンボリュームを作成します。
lvcreate コマンドに
-T (または --thin)オプションを使用して、シンプールまたはシンボリュームを作成できます。また、lvcreate の -T オプションを使用して、1 つのコマンドで同時にプール内にシンプールとシンボリュームの両方を作成することもできます。
以下のコマンドは、lvcreate コマンドの
-T オプションを使用して、mythinpool という名前のシンプールを作成します。これは、ボリュームグループ vg001 にあり、サイズは 100M です。物理領域のプールを作成しているため、プールのサイズを指定する必要があります。lvcreate コマンドの -T オプションは引数を取りません。コマンドで指定する他のオプションから、作成されるデバイスのタイプが推測されます。
以下のコマンドは、lvcreate コマンドの
-T オプションを使用して、シンプール vg001/mythinpool に thinvolume という名前のシンボリュームを作成します。ここでは、ボリュームを含むプールよりも大きなボリュームの仮想サイズを指定している点に注意してください。
以下のコマンドは、lvcreate コマンドに
-T オプションを使用して、プール内にシンプールとシンボリュームを作成します。これは、lvcreate コマンドにサイズと仮想サイズ引数の両方を指定します。このコマンドは、ボリュームグループ vg001 にシンプール mythinpool を作成し、そのプールに thinvolume という名前の シンボリューム も作成します。
また、lvcreate コマンドの
--thinpool パラメーターを指定して、シンプールを作成することもできます。-T オプションとは異なり、- thinpool パラメーターには、作成するシンプール論理ボリュームの名前である引数が必要です。以下の例は、lvcreate コマンドで --thinpool パラメーターを指定して、mythinpool という名前のシンプールを作成します。これは、ボリュームグループ vg001 にあり、サイズは 100M です。
チャンクサイズを使用するには、以下の基準を使用します。
- チャンクサイズが小さいほどメタデータが大きくなり、パフォーマンスが妨げられますが、スナップショットによる領域使用率が向上します。
- 大規模なチャンクサイズではメタデータ操作が少なくなりますが、スナップショットの効率が低くなります。
LVM2 は、以下のようにチャンクサイズを計算します。
デフォルトでは、LVM は 64KiB のチャンクサイズで始まり、シンプールメタデータデバイスのサイズが 128MiB を超えると、その値を増やします。これにより、メタデータサイズが圧縮されます。これにより、チャンクサイズの値が大きくなるため、スナップショットの使用効率が低くなります。この場合、チャンクのサイズが小さく、メタデータサイズが大きくなる方が適しています。
ボリュームデータサイズが TiB の範囲にある場合は、サポートされる最大サイズであるメタデータサイズとして ~15.8GiB を使用し、要件に応じてチャンクサイズを設定します。ただし、このボリュームデータサイズを拡張し、チャンクサイズを小さくする必要がある場合は、メタデータサイズを拡大することはできません。
警告
Red Hat は、少なくともデフォルトのチャンクサイズを使用することを推奨します。チャンクサイズが小さすぎる場合で、ボリュームのメタデータの容量が不足すると、ボリュームはデータを作成できません。論理ボリュームを監視して、拡張またはメタデータボリュームが完全に満杯になる前にストレージをさらに作成します。メタデータ用の領域が不足しないように、シンプールのチャンクサイズは十分な大きさになるようにしてください。
プールの作成で、ストライピングに対応しています。以下のコマンドは、2 つの 64 kB ストライプと 256 kB のチャンクサイズを持つボリュームグループ
vg001 に pool という名前の 100M シン プール を作成します。また、1T のシンボリューム vg00/thin_lv も作成します。
lvcreate -i 2 -I 64 -c 256 -L 100M -T vg00/pool -V 1T --name thin_lv
# lvcreate -i 2 -I 64 -c 256 -L 100M -T vg00/pool -V 1T --name thin_lv
lvextend コマンドを使用して、シンボリュームのサイズを拡張できます。ただし、シンプールのサイズを縮小することはできません。
以下のコマンドは、既存のシンプールのサイズ (100M) を変更し、100M 拡張します。
他の論理ボリュームのタイプと同様に、lvrename を使用してボリュームの名前を変更したり、lvremove でボリュームを削除したりできます。また、lvs コマンドおよび lvdisplay コマンドを使用してボリュームの情報を表示できます。
デフォルトでは、lvcreate コマンドは、式(Pool_LV_size / Pool_LV_chunk_size * 64)に従って、シンプールのメタデータ論理ボリュームのサイズを設定します。スナップショットが大量にある場合や、シンプールのサイズが小さく、後で大きくなることが予測される場合は、lvcreate コマンドの
--poolmetadatasize パラメーターで、シンプールのメタデータボリュームのデフォルト値を大きくしないといけない場合があります。シンプールのメタデータ論理ボリュームでサポートされる値は 2MiB - 16GiB です。
lvconvert コマンドの
--thinpool パラメーターを使用して、既存の論理ボリュームをシンプールボリュームに変換できます。既存の論理ボリュームをシンプールボリュームに変換する場合は、lvconvert の --thinpool パラメーターとともに --poolmetadata パラメーターを使用して、既存の論理ボリュームをシンプールボリュームのメタデータボリュームに変換する必要があります。
注記
論理ボリュームをシンプールボリュームまたはシンプールメタデータボリュームに変換すると、論理ボリュームのコンテンツが破棄されます。これは、lvconvert はデバイスのコンテンツを保存するのではなく、コンテンツを上書きするためです。
以下の例は、ボリュームグループ
vg001 の既存の論理ボリューム lv1 を、シンプールボリュームに変換します。また、ボリュームグループ vg001 の既存の論理ボリューム lv2 を、そのシンプールボリュームのメタデータボリュームに変換します。
lvconvert --thinpool vg001/lv1 --poolmetadata vg001/lv2
# lvconvert --thinpool vg001/lv1 --poolmetadata vg001/lv2
Converted vg001/lv1 to thin pool.
4.4.6. スナップショットボリュームの作成 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
注記
LVM は、シンプロビジョニングのスナップショットに対応しますシンプロビジョニングされたスナップショットボリュームの作成については、「シンプロビジョニングされたスナップショットボリュームの作成」 を参照してください。
スナップショットボリュームを作成するには、lvcreate コマンドの
-s 引数を使用します。スナップショットボリュームは書き込み可能です。
注記
LVM スナップショットは、クラスターのノード間では対応していません。クラスター化されたボリュームグループ内にスナップショットボリュームは作成できません。ただし、クラスター論理ボリューム上でデータの一貫したバックアップ作成が必要な場合、ボリュームを排他的にアクティブ化した上で、スナップショットを作成することができます。1 つのノード上で論理ボリュームを排他的にアクティブ化する方法は、「クラスター内の個別ノードでの論理ボリュームのアクティブ化」 を参照してください。
注記
ミラー化論理ボリュームを対象とした LVM スナップショットがサポートされています。
RAID 論理ボリュームを対象としたスナップショットに対応しています。RAID 論理ボリュームの作成方法は、「RAID 論理ボリューム」 を参照してください。
LVM では、作成元のボリュームのサイズよりも大きく、そのボリュームのメタデータを必要とするスナップショットボリュームを作成できません。これよりも大きなスナップショットボリュームを指定しても、システムには、作成元のサイズに必要な大きさのスナップショットボリュームのみが作成されます。
デフォルトで、スナップショットボリュームは、通常のアクティブ化コマンドの実行時に省略されます。スナップショットボリュームのアクティブ化を制御する方法は、「論理ボリュームのアクティブ化の制御」 を参照してください。
以下のコマンドは、サイズが
/dev/vg00/snap でサイズが 100 MB のスナップショット論理ボリュームを作成します。これにより、/dev/vg00/lvol1 という名前の元の論理ボリュームのスナップショットが作成されます。元の論理ボリュームにファイルシステムが含まれている場合は、任意のディレクトリー上でスナップショット論理ボリュームをマウントしてから、そのファイルシステムのコンテンツにアクセスし、元のファイルシステムが更新を継続している間にバックアップを実行できます。
lvcreate --size 100M --snapshot --name snap /dev/vg00/lvol1
# lvcreate --size 100M --snapshot --name snap /dev/vg00/lvol1
スナップショット論理ボリュームを作成したら、lvdisplay コマンドで作成元のボリュームを指定すると、すべてのスナップショット論理ボリュームとそのステータス(アクティブまたは非アクティブ)のリストが含まれる出力が表示されます。
以下の例は、論理ボリューム
/dev/new_vg/lvol0 のステータスを示しています。これは、スナップショットボリューム /dev/new_vg/newvgsnap が作成されています。
デフォルトでは lvs コマンドは、作成元のボリュームと、使用されているスナップショットボリュームの現在の割合を表示します。以下の例は、論理ボリューム
/dev/new_vg/lvol0 を含むシステム用の lvs コマンドのデフォルト出力を示しています。この出力では、スナップショットボリューム /dev/new_vg/newvgsnap が作成されています。
lvs
# lvs
LV VG Attr LSize Origin Snap% Move Log Copy%
lvol0 new_vg owi-a- 52.00M
newvgsnap1 new_vg swi-a- 8.00M lvol0 0.20
警告
複製元ボリュームが変更されると、スナップショットのサイズが拡大されるため、lvs コマンドを使用して、スナップショットボリュームのパーセンテージを定期的に監視して、満杯にならないように確認することが重要です。スナップショットは、100% になると完全に消失します。これは、作成元ボリュームの変更されていない部分に書き込みが行われるため、スナップショットが必ず破損するためです。
スナップショットが満杯になると、スナップショット自体が無効になるだけでなく、そのスナップショットデバイスにマウントされているすべてのファイルシステムのマウントが強制的に解除されます。これにより、マウントポイントへのアクセス時に必ず発生するファイルシステムエラーを回避できます。さらに、
lvm.conf ファイルに snapshot_autoextend_threshold オプションを指定できます。このオプションにより、スナップショットの残りの領域が、設定されたしきい値を下回ると、常にスナップショットを自動的に拡張できるようになりました。この機能の利用に際しては、ボリュームグループに未割り当ての領域があることが条件になります
LVM では、作成元のボリュームのサイズよりも大きく、そのボリュームのメタデータを必要とするスナップショットボリュームを作成できません。同様に、スナップショットの自動拡張を実行しても、スナップショットに必要なサイズとして計算される最大サイズを超えて拡張されることはありません。スナップショットのサイズが複製元のボリュームを包含できるまで拡大されると、スナップショットの自動拡張はモニターされなくなります。
snapshot_autoextend_threshold と snapshot_autoextend_percent の設定に関する情報は、lvm.conf ファイルに記載されています。lvm.conf ファイルの詳細は、付録B LVM 設定ファイル を参照してください。
4.4.7. シンプロビジョニングされたスナップショットボリュームの作成 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Enterprise Linux は、シンプロビジョニングのスナップショットボリュームのサポートを提供します。シンプロビジョニングされたスナップショットボリュームのメリットとデメリットの詳細は、「シンプロビジョニングされたスナップショットボリューム」 を参照してください。
注記
このセクションでは、シンプロビジョニングのスナップショットボリュームを作成し、拡張するために使用する基本的なコマンドの概要を説明します。LVM シンプロビジョニングの詳細と、シンプロビジョニングされた論理ボリュームと共に LVM コマンドおよびユーティリティーを使用する方法は、lvmthin(7) man ページを参照してください。
重要
シンプロビジョニングのスナップショットボリュームを作成する場合、ボリュームのサイズは指定しません。サイズパラメーターを指定すると、作成されるスナップショットはシンプロビジョニングのスナップショットボリュームにはならず、データを保管するためにシンプールを使用することもありません。たとえば、
lvcreate -s vg/thinvolume -L10M コマンドは、作成元ボリュームがシンボリュームであっても、シンプロビジョニングのスナップショットを作成しません。
シンプロビジョニングのスナップショットは、シンプロビジョニングされた作成元ボリューム用に作成するか、シンプロビジョニングされていない作成元ボリューム用にも作成できます。
lvcreate コマンドの
--name オプションを使用して、スナップショットボリュームの名前を指定できます。以下のコマンドは、シンプロビジョニングされた論理ボリューム vg001/thinvolume で、シンプロビジョニングされたスナップショットボリューム ( mysnapshot1 )を作成します。
注記
シンプロビジョニングを使用する場合は、ストレージ管理者がストレージプールを監視し、容量が満杯になり始めたら容量を追加することが重要です。シンボリュームのサイズを拡張する方法は、「シンプロビジョニングされた論理ボリュームの作成」 を参照してください。
シンプロビジョニングのスナップショットボリュームには、他のシンボリュームと同じ特性があります。ボリュームのアクティブ化、拡張、名前変更、削除、さらにはスナップショット作成も個別に行うことができます。
デフォルトで、スナップショットボリュームは、通常のアクティブ化コマンドの実行時に省略されます。スナップショットボリュームのアクティブ化を制御する方法は、「論理ボリュームのアクティブ化の制御」 を参照してください。
シンプロビジョニングされていない論理ボリュームの、シンプロビジョニングされたスナップショットを作成することもできます。シンプロビジョニングされていない論理ボリュームはシンプール内に含まれていないため、外部の複製元 と呼ばれます。外部の作成元ボリュームは、複数の異なるシンプールからであっても、多くのシンプロビジョニングのスナップショットボリュームで使用でき、共有できます。外部の作成元は、シンプロビジョニングのスナップショットが作成される際に非アクティブであり、かつ読み取り専用である必要があります。
外部の作成元のシンプロビジョニングされたスナップショットを作成する場合は、
--thinpool オプションを指定する必要があります。以下のコマンドは、読み取り専用の非アクティブなボリューム origin_volume のシンプロビジョニングのスナップショットボリュームを作成します。このシンプロビジョニングのスナップショットボリュームの名前は mythinsnap です。論理ボリューム origin_volume は、既存のシンプール vg001 /pool を使用する、ボリュームグループ vg001 内のシンプロビジョニングのスナップショットボリューム mythinsnap に対する外部の作成元になります。作成元ボリュームは、スナップショットボリュームと同じボリュームグループに存在する必要があるため、作成元の論理ボリュームを指定する場合にボリュームグループを指定する必要はありません。
lvcreate -s --thinpool vg001/pool origin_volume --name mythinsnap
# lvcreate -s --thinpool vg001/pool origin_volume --name mythinsnap
以下のコマンドにあるように、最初のスナップショットボリュームの 2 番目のシンプロビジョニングのスナップショットボリュームを作成できます。
lvcreate -s vg001/mythinsnap --name my2ndthinsnap
# lvcreate -s vg001/mythinsnap --name my2ndthinsnap
Red Hat Enterprise Linux 7.2 では、lvs コマンドのレポートフィールド
lv_ancestors および lv_descendants を指定すると、シンスナップショット論理ボリュームのすべての先先と子孫のリストを表示できます。
以下の例では、下記の点を前提としています。
stack1は、ボリュームグループvg001で元となるボリュームです。stack2は、stack1のスナップショットです。stack3は、stack2のスナップショットです。stack4はstack3のスナップショットです。
さらに
stack5もstack2のスナップショットです。stack6は、stack5のスナップショットです。
注記
lv_ancestors フィールドおよび lv_descendants フィールドには、既存の依存関係が表示されますが、チェーンの途中でエントリーが削除されると、削除されたエントリーを追跡しないため、依存関係チェーンが壊れる可能性があります。たとえば、この設定例から論理ボリューム stack3 を削除すると、以下のように表示されます。
ただし、Red Hat Enterprise Linux 7.3 では、削除した論理ボリュームを追跡および表示するようにシステムを設定できます。
lv_ancestors_full フィールドおよび lv_descendants_full フィールドを指定することで、このボリュームを含む完全依存関係チェーンを表示できます。過去の論理ボリュームを追跡、表示、および削除する方法は、「過去の論理ボリュームの追跡および表示 (Red Hat Enterprise Linux 7.3 以降)」 を参照してください。
4.4.8. LVM 論理ボリュームの作成 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Enterprise Linux 7.1 リリースでは、LVM により LVM キャッシュ論理ボリュームが完全にサポートされます。キャッシュ論理ボリュームでは、高速なブロックデバイス (SSD ドライブなど) で設定される小規模な論理ボリュームが使用されるため、頻繁に使用されるブロックを、小規模で高速な論理ボリュームに格納することにより、大規模で低速な論理ボリュームのパフォーマンスが向上します。
LVM キャッシュは、LVM 論理ボリュームタイプを使用します。関連するこれらすべての論理ボリュームは、同じボリュームグループに存在する必要があります。
- 作成元論理ボリューム - 大規模で低速な論理ボリューム
- キャッシュプール論理ボリューム - 小規模で高速な論理ボリューム。キャッシュデータ論理ボリュームとキャッシュメタデータ論理ボリュームの 2 つのデバイスから設定されます。
- キャッシュデータ論理ボリューム - キャッシュプール論理ボリューム用のデータブロックを含む論理ボリューム
- キャッシュメタデータ論理ボリューム - キャッシュプール論理ボリューム用のメタデータを含む論理ボリューム。データブロックが保存された場所を指定するアカウンティング情報を保持します (たとえば、作成元の論理ボリューム上またはキャッシュデータ論理ボリューム上)。
- キャッシュ論理ボリューム - 作成元の論理ボリュームとキャッシュプール論理ボリュームを含む論理ボリューム。これは、さまざまなキャッシュボリュームコンポーネントをカプセル化する使用可能なデバイスです。
以下の手順に従うと、LVM キャッシュ論理ボリュームを作成できます。
- 低速な物理ボリュームと高速な物理ボリュームを含むボリュームグループを作成します。この例では、
/dev/sde1は低速なデバイスで、/dev/sdf1は高速なデバイスで、両方のデバイスはボリュームグループVGに含まれます。pvcreate /dev/sde1 pvcreate /dev/sdf1 vgcreate VG /dev/sde1 /dev/sdf1
# pvcreate /dev/sde1 # pvcreate /dev/sdf1 # vgcreate VG /dev/sde1 /dev/sdf1Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 作成元のボリュームを作成します。この例では、サイズが 10 ギガバイトで、
/dev/sde1(低速な物理ボリューム)で設定される、名前がlvという名前のボリュームが作成されます。lvcreate -L 10G -n lv VG /dev/sde1
# lvcreate -L 10G -n lv VG /dev/sde1Copy to Clipboard Copied! Toggle word wrap Toggle overflow - キャッシュプール論理ボリュームを作成します。この例では、ボリュームグループ
VGの一部である高速デバイス/dev/sdf1に、キャッシュプール論理ボリュームcpoolを作成します。このコマンドが作成するキャッシュプール論理ボリュームは、非表示のキャッシュデータ論理ボリュームcpool_cdataと、非表示のキャッシュメタデータ論理ボリュームcpool_cmetaで設定されます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow さらに複雑な設定の場合は、キャッシュデータとキャッシュメタデータ論理ボリュームを個別に作成し、それらのボリュームをキャッシュプール論理ボリュームに結合しないといけない場合があります。この手順は、lvmcache(7) man ページを参照してください。 - キャッシュプール論理ボリュームを作成元論理ボリュームにリンクして、キャッシュ論理ボリュームを作成します。作成された、アクセス可能なキャッシュ論理ボリュームには、作成元の論理ボリュームの名前が付けられます。作成元の論理ボリュームは、
_corigが元の名前に追加された非表示の論理ボリュームになります。これはライブ変換することが可能ですが、必ず最初にバックアップを実行してください。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - オプションとして、Red Hat Enterprise Linux リリース 7.2 では、キャッシュされた論理ボリュームをシンプール論理ボリュームに変換できます。プールから作成されたすべてのシン論理ボリュームがキャッシュを共有することに注意してください。以下のコマンドでは、高速デバイス
/dev/sdf1を使用してシンプールメタデータ(lv_tmeta)を割り当てます。これは、キャッシュプールボリュームで使用されるのと同じデバイスです。つまり、シンプールメタデータボリュームは、キャッシュデータ論理ボリュームcpool_cdataとキャッシュメタデータ論理ボリュームcpool_cmetaの両方と、そのデバイスを共有します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
その他の管理例を含む LVM キャッシュボリュームの詳細は、lvmcache(7) man ページを参照してください。
シンプロビジョニングされた論理ボリュームの作成については、「シンプロビジョニングされた論理ボリュームの作成」 を参照してください。
4.4.9. スナップショットボリュームのマージ リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
lvconvert コマンドの
--merge オプションを使用して、スナップショットを作成元のボリュームにマージできます。作成元とスナップショットボリュームの両方が閉じている状態になると、マージはただちに開始します。そうでない場合は、作成元またはスナップショットのいずれかがアクティブになり、かつ両方が閉じられている状態に初めてなったときにマージが開始します。root ファイルシステムのように、閉じることができない作成元へのスナップショットのマージは、次に作成元ボリュームがアクティブになるまで行われません。マージが開始すると、マージ後の論理ボリュームには、作成元の名前、マイナー番号、UUID が入ります。マージの進行中、作成元に対する読み取りまたは書き込みは、マージ中のスナップショットに対して実行されているかのように見えます。マージが完了すると、マージされたスナップショットは削除されます。
以下のコマンドは、スナップショットボリューム
vg00/lvol1_snap をその作成元にマージします。
lvconvert --merge vg00/lvol1_snap
# lvconvert --merge vg00/lvol1_snap
コマンドライン上で複数のスナップショットを指定したり、LVM オブジェクトタグを使用して複数のスナップショットをそれぞれの作成元にマージしたりすることが可能です。以下の例では、論理ボリューム
vg00/lvol1、vg00/lvol2、および vg00/lvol3 はすべて @some_tag タグでタグ付けされています。以下のコマンドは、vg00/lvol1、vg00/lvol2、vg00/lvol3 の 3 つのボリュームすべてを順次マージします。--background オプションを使用している場合は、すべてのスナップショット論理ボリュームのマージが並行して開始します。
lvconvert --merge @some_tag
# lvconvert --merge @some_tag
LVM オブジェクトのタグ付けに関する情報は、付録D LVM オブジェクトタグ を参照してください。lvconvert --merge コマンドの詳細は、lvconvert(8)の man ページを参照してください。
4.4.10. 永続的なデバイス番号 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
メジャーデバイス番号とマイナーデバイス番号は、モジュールのロード時に動的に割り当てられます。一部のアプリケーションは、ブロックデバイスが常に同じデバイス (メジャーとマイナー) 番号でアクティブにされている場合に、最も効果的に機能します。これらは、lvcreate と lvchange コマンドで以下の引数を使用して指定できます。
--persistent y --major major --minor minor
--persistent y --major major --minor minor
別のデバイスにすでに動的に割り当てられている番号を使用しないように、マイナー番号は大きくします。
NFS を使用してファイルシステムをエクスポートする場合は、そのエクスポートファイルで
fsid パラメーターを指定すると、LVM 内で永続的なデバイス番号を設定する必要がなくなります。
4.4.11. 論理ボリュームグループのパラメーター変更 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
論理ボリュームのパラメーターを変更するには、lvchange コマンドを使用します。変更可能なパラメーターの一覧は、lvchange(8)の man ページを参照してください。
lvchange コマンドを使用して、論理ボリュームのアクティブ化と非アクティブ化を実行できます。ボリュームグループの論理ボリュームをすべて同時にアクティブまたは非アクティブにするには、「ボリュームグループのパラメーター変更」 の説明に従って、vgchange コマンドを使用します。
以下のコマンドは、ボリュームグループ
vg00 内のボリューム lvol1 のパーミッションを読み取り専用に変更します。
lvchange -pr vg00/lvol1
# lvchange -pr vg00/lvol1
4.4.12. 論理ボリュームの名前変更 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
既存の論理ボリュームの名前を変更するには、lvrename コマンドを使用します。
以下のコマンドのいずれかを実行すると、ボリュームグループ
vg02 の論理ボリューム lvold の名前が lvnew に変更されます。
lvrename /dev/vg02/lvold /dev/vg02/lvnew
# lvrename /dev/vg02/lvold /dev/vg02/lvnew
lvrename vg02 lvold lvnew
# lvrename vg02 lvold lvnew
root 論理ボリュームの名前を変更するには、追加の再設定が必要です。root ボリュームの名前変更の詳細は、How to rename root ボリュームグループまたは論理ボリューム in Red Hat Enterprise Linuxを参照してください。
クラスター内の個別ノード上で論理ボリュームをアクティブ化する方法は 「クラスター内の個別ノードでの論理ボリュームのアクティブ化」 を参照してください。
4.4.13. 論理ボリュームの削除 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
非アクティブな論理ボリュームを削除するには、lvremove コマンドを使用します。論理ボリュームが現在マウントされている場合は、削除する前にボリュームをアンマウントしてください。また、クラスター環境では削除前に論理ボリュームを非アクティブ化しておく必要があります。
以下のコマンドは、論理ボリューム
/dev/testvg/testlv をボリュームグループ testvg から削除します。このケースでは、論理ボリュームは非アクティブ化されていないことに注意してください。
lvremove /dev/testvg/testlv
# lvremove /dev/testvg/testlv
Do you really want to remove active logical volume "testlv"? [y/n]: y
Logical volume "testlv" successfully removed
lvchange -an コマンドを使用して論理ボリュームを削除する前に、明示的に非アクティブ化できます。その場合は、アクティブな論理ボリュームを削除するかどうかを確認するプロンプトは表示されません。
4.4.14. 論理ボリュームの表示 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
LVM 論理ボリュームのプロパティーを表示するのに使用できるコマンドは、lvs、lvdisplay、および lvscan の 3 つです。
lvs コマンド:論理ボリューム情報を設定可能な形式で提供して、1 論理ボリュームにつき 1 行ずつ表示します。lvs コマンドでは、形式をかなり自由に制御できるため、スクリプト作成時に便利です。lvs コマンドで出力をカスタマイズする詳細な方法は 「LVM 用のカスタム報告」 を参照してください。
lvdisplay コマンド:決められた形式で、論理ボリュームのプロパティー(サイズ、レイアウト、マッピングなど)を表示します。
以下のコマンドは、
vg00 内 の lvol2 の属性を示しています。スナップショット論理ボリュームがこの元の論理ボリューム用に作成されている場合、このコマンドはすべてのスナップショット論理ボリュームとそのステータス (アクティブまたは非アクティブ) のリストを表示します。
lvdisplay -v /dev/vg00/lvol2
# lvdisplay -v /dev/vg00/lvol2
lvscan コマンドは、システム内のすべての論理ボリュームをスキャンし、以下の例のように一覧表示します。
lvscan
# lvscan
ACTIVE '/dev/vg0/gfslv' [1.46 GB] inherit
4.4.15. 論理ボリュームの拡張 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
論理ボリュームのサイズを拡張するには、lvextend コマンドを使用します。
論理ボリュームを拡張する場合は、追加するボリュームの容量、または拡張後のボリュームのサイズを指定できます。
以下のコマンドは、論理ボリューム
/dev/myvg/homevol を 12 ギガバイトに拡張します。
lvextend -L12G /dev/myvg/homevol
# lvextend -L12G /dev/myvg/homevol
lvextend -- extending logical volume "/dev/myvg/homevol" to 12 GB
lvextend -- doing automatic backup of volume group "myvg"
lvextend -- logical volume "/dev/myvg/homevol" successfully extended
以下のコマンドは、論理ボリューム
/dev/myvg/homevol に 1 ギガバイトを追加します。
lvextend -L+1G /dev/myvg/homevol
# lvextend -L+1G /dev/myvg/homevol
lvextend -- extending logical volume "/dev/myvg/homevol" to 13 GB
lvextend -- doing automatic backup of volume group "myvg"
lvextend -- logical volume "/dev/myvg/homevol" successfully extended
lvcreate コマンドと同様に、lvextend コマンドの
-l 引数を使用して、論理ボリュームのサイズを増やすエクステントの数を指定できます。また、この引数を使用してボリュームグループのパーセンテージ、またはボリュームグループに残ってる空き領域をパーセンテージで指定することもできます。以下のコマンドは、testlv という論理ボリュームを拡張して、ボリュームグループ myvg の未割り当て領域をすべて埋めます。
lvextend -l +100%FREE /dev/myvg/testlv
# lvextend -l +100%FREE /dev/myvg/testlv
Extending logical volume testlv to 68.59 GB
Logical volume testlv successfully resized
論理ボリュームを拡張したら、それに合わせてファイルシステムのサイズも拡張する必要があります。
多くのファイルシステムサイズ変更ツールは、デフォルトで、ファイルシステムのサイズを、その下の論理ボリュームのサイズまで拡大するため、2 つのコマンドに同じサイズを指定する必要はありません。
4.4.16. 論理ボリュームの縮小 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
論理ボリュームのサイズを縮小するには、lvreduce コマンドを使用します。
注記
GFS2 および XFS のファイルシステムでは縮小に対応していないため、GFS2 または XFS のファイルシステムが含まれる論理ボリュームのサイズは縮小できません。
縮小する論理ボリュームにファイルシステムが含まれている場合は、データの損失を防ぐため、ファイルシステムが、縮小する論理ボリュームにある領域を使用しないようにしてください。そのため、論理ボリュームにファイルシステムが含まれている場合は、lvreduce コマンドの
--resizefs オプションを使用することが推奨されます。このオプションを使用すると、lvreduce コマンドは論理ボリュームを縮小する前にファイルシステムの縮小を試みます。ファイルシステムの縮小に失敗した場合(ファイルシステムが満杯であったり、ファイルシステムが縮小に対応していないと発生すると、lvreduce コマンドは失敗し、論理ボリュームを縮小しません)。
警告
ほとんどの場合、lvreduce コマンドはデータ損失の可能性を警告し、確認を要求します。しかし、論理ボリュームが非アクティブな状態であったり、
--resizefs オプションが使用されなかった場合など、警告が表示されない場合があるため、データの損失を防ぐのに確認プロンプトのみを信頼しないようにしてください。
lvreduce コマンドの
--test オプションは、ファイルシステムのチェックやファイルシステムのサイズ変更のテストを行わないため、操作が安全な場所を示しないことに注意してください。
以下のコマンドは、ボリュームグループ
vg00 の論理ボリューム lvol1 を 64 メガバイトに縮小します。この例では、lvol1 にはファイルシステムが含まれ、このコマンドにより、論理ボリュームとともにサイズが変更されます。次の例は、コマンドの出力を示しています。
サイズ変更値の前に-記号を指定すると、その値が論理ボリュームの実際のサイズから減算されます。以下の例は、論理ボリュームの絶対サイズを 64 メガバイトに縮小する代わりに、64 メガバイト分のボリュームを縮小する場合に使用するコマンドを示しています。
lvreduce --resizefs -L -64M vg00/lvol1
# lvreduce --resizefs -L -64M vg00/lvol1
4.4.17. ストライプ化ボリュームの拡張 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
ストライプ化論理ボリュームのサイズを拡大するには、ボリュームグループを設定している物理ボリュームに、ストライプをサポートする十分な空き領域が必要です。たとえば、ボリュームグループ全域を使用する 2 way ストライプがある場合は、ボリュームグループに物理ボリュームを 1 つ追加しただけでは、ストライプを拡張することはできません。ボリュームグループには物理ボリュームを 2 つ以上追加する必要があります。
たとえば、以下の vgs コマンドで表示された、2 つの物理ボリュームで設定されるボリュームグループ
vg について考えてみましょう。
vgs
# vgs
VG #PV #LV #SN Attr VSize VFree
vg 2 0 0 wz--n- 271.31G 271.31G
ボリュームグループの全領域を使用して、ストライプを作成できます。
ボリュームグループの空き領域がなくなっていることに注意してください。
vgs
# vgs
VG #PV #LV #SN Attr VSize VFree
vg 2 1 0 wz--n- 271.31G 0
以下のコマンドで、ボリュームグループに物理ボリュームをもう 1 つ追加します。 これで、135 ギガバイトの領域が追加されます。
この時点では、ストライプ化論理ボリュームを、ボリュームグループの最大サイズまで拡大することはできません。データをストライプ化するには、基になる物理デバイスが 2 つ必要です。
ストライプ化論理ボリュームを拡張するには、もう 1 つの物理ボリュームを追加してから、論理ボリュームを拡張します。この例では、ボリュームグループに物理ボリュームを 2 つ追加することにより、ボリュームグループの最大サイズまで、論理ボリュームを拡張できるようになっています。
ストライプ化論理ボリュームを拡張するのに十分な物理デバイスがない場合でも、その拡張部分がストライプ化されなくても問題がないならば、ボリュームの拡張は可能です。ただし、これによりパフォーマンスが一定ではなくなる可能性があります。論理ボリュームに領域を追加する場合、デフォルトの動作では、既存の論理ボリュームの最後のセグメントと同じストライピングパラメーターを使用するようになっていますが、このパラメーターはオーバーライドできます。以下の例では、最初の lvextend コマンドが失敗した後に、既存のストライプ化論理ボリュームを拡張して残りの空き領域を使用します。
4.4.18. RAID ボリュームの拡張 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
新しい RAID リージョンの同期を行わずに、lvextend コマンドを使用して RAID 論理ボリュームを拡張できます。
lvcreate コマンドで RAID 論理ボリュームを作成するときに
--nosync オプションを指定すると、論理ボリュームの作成時に RAID リージョンは同期されません。--nosync オプション を使用して作成した RAID 論理ボリュームを後で拡張すると、RAID 拡張は同時に同期されません。
lvs コマンドを使用してボリュームの属性を表示することで、
--nosync オプションを使用して既存の論理ボリュームが作成されているかどうかを判断できます。初期同期なしで作成された論理ボリュームでは、属性フィールドの最初の文字として R を示します。初期同期が行われて論理ボリュームが作成された場合は、r と表示されます。
以下のコマンドは、初期同期なしで作成された RAID 論理ボリューム
lv の属性を表示し、属性フィールドの最初の文字として R を表示します。属性フィールドの 7 番目の文字は、RAID のターゲットタイプを示す r です。属性フィールドの意味は、表4.5「lvs 表示フィールド」 を参照してください。
lvs vg
# lvs vg
LV VG Attr LSize Pool Origin Snap% Move Log Cpy%Sync Convert
lv vg Rwi-a-r- 5.00g 100.00
この論理ボリュームを lvextend コマンドで拡張すると、RAID 拡張は再同期されません。
lvcreate コマンドの
--nosync オプションを指定せずに RAID 論理ボリュームを作成した場合は、lvextend コマンドの --nosync オプション を指定して、ミラーを再同期せずに、論理ボリュームを大きくできます。
以下の例は、
--nosync オプションを使用せずに作成した RAID 論理ボリュームを拡張し、RAID ボリュームが作成時に同期されたことを示しています。ただし、この例では、ボリュームの拡張時にボリュームが同期されていないことを示しています。ボリュームには r の属性がありますが、--nosync オプションを指定して lvextend コマンドを実行すると、ボリュームに R の属性があることに注意してください。
RAID ボリュームが非アクティブの場合は、
--nosync オプションを指定してボリュームを作成する場合でも、ボリュームを拡張すると自動的に同期が省略されません。その代わりに、論理ボリュームの拡張部分を完全に再同期するかどうかのプロンプトが出されます。
注記
RAID ボリュームが復旧を実行している場合は、
--nosync オプションを指定してボリュームを作成または拡張した場合は、論理ボリュームを拡張することはできません。--nosync オプションを指定しないと、復旧中に RAID ボリュームを拡張することができます。
4.4.19. 割り当てポリシーを閉じた論理 ボリューム の拡張 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
LVM ボリュームを拡張する際には、lvextend コマンドの
--alloc cling オプションを使用して、cling 割り当てポリシーを指定できます。このポリシーにより、既存の論理ボリュームの最終セグメントと同じ物理ボリュームの領域が選択されます。物理ボリューム上に十分な領域がなく、タグのリストが lvm.conf ファイルで定義されている場合には、LVM は、物理ボリュームにタグのいずれかが割り当てられているかどうかを確認し、既存のエクステントと新しいエクステントの間で、物理ボリュームのタグを一致させようとします。
たとえば、1 つのボリュームグループ内の 2 つのサイト間でミラーリングされる論理ボリュームがある場合は、
@site1 タグと @site2 タグで物理ボリュームをタグ付けすることで、物理ボリュームをどこでタグ付けすることができます。次に、lvm.conf ファイルで次の行を指定できます。
cling_tag_list = [ "@site1", "@site2" ]
cling_tag_list = [ "@site1", "@site2" ]
物理ボリュームのタグ付けに関する情報は、付録D LVM オブジェクトタグ を参照してください。
以下の例では、
lvm.conf ファイルが変更され、次の行が含まれるようになりました。
cling_tag_list = [ "@A", "@B" ]
cling_tag_list = [ "@A", "@B" ]
また、この例では、
/dev/sdb1、/dev/sdc1、/dev/sdd1、/dev/sde1、/dev/sde1、/dev/sdg1、および /dev/sdh1 の物理ボリュームで設定されるボリュームグループ taft が作成されています。これらの物理ボリュームには、A、B、および C のタグが付けられます。この例では C タグを使用しませんが、LVM がタグを使用してミラーレッグに使用する物理ボリュームを選択することを示しています。
以下のコマンドは、ボリュームグループ
taft から 10 ギガバイトのミラー化ボリュームを作成します。
lvcreate --type raid1 -m 1 -n mirror --nosync -L 10G taft
# lvcreate --type raid1 -m 1 -n mirror --nosync -L 10G taft
WARNING: New raid1 won't be synchronised. Don't read what you didn't write!
Logical volume "mirror" created
以下のコマンドは、ミラーレッグおよび RAID メタデータのサブボリュームに使用されるデバイスを表示します。
以下のコマンドは、ミラー化ボリュームのサイズを拡張し、
cling 割り当てポリシーを使用して、同じタグが付いた物理ボリュームを使用して、ミラーレッグを拡張する必要があることを示します。
lvextend --alloc cling -L +10G taft/mirror
# lvextend --alloc cling -L +10G taft/mirror
Extending 2 mirror images.
Extending logical volume mirror to 20.00 GiB
Logical volume mirror successfully resized
以下に表示したコマンドは、レッグとして同一のタグが付いた物理ボリュームを使用してミラーレッグが拡張されているのを示しています。
C のタグが付いた物理ボリュームは無視されることに注意してください。
4.4.20. 論理ボリュームのアクティブ化の制御 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
lvcreate コマンドまたは lvchange コマンドの
-k オプションまたは --setactivationskip {y|n} オプションを使用して、通常のアクティベーションコマンドの実行時に、論理ボリュームを省略するようにフラグを設定できます。このフラグは非アクティブ化の実行中には適用されません。
lvs コマンドを使用して、このフラグが論理ボリュームに設定されているかどうかを判別できます。以下の例にあるように
k 属性が表示されます。
lvs vg/thin1s1
# lvs vg/thin1s1
LV VG Attr LSize Pool Origin
thin1s1 vg Vwi---tz-k 1.00t pool0 thin1
デフォルトでは、シンスナップショットボリュームには、アクティブ化のスキップのためにフラグが設定されます。標準の
-ay オプションまたは --activate y オプションの他に、-K オプションまたは --ignoreactivationskip オプションを使用して、k 属性セットで論理ボリュームをアクティブにできます。
以下のコマンドはシンスナップショットの論理ボリュームをアクティブ化します。
lvchange -ay -K VG/SnapLV
# lvchange -ay -K VG/SnapLV
lvcreate コマンドの
-kn オプションまたは --setactivationskip n オプションを指定すると、論理ボリュームが作成されると、永続的なアクティブ化スキップフラグをオフにできます。lvchange コマンドの -kn オプションまたは --setactivationskip n オプションを指定すると、既存の論理ボリュームに対してフラグをオフにできます。-ky オプションまたは --setactivationskip y オプションを使用して、フラグを再度オンにできます。
以下のコマンドは、アクティブ化スキップフラグがない、スナップショット論理ボリュームを作成します。
lvcreate --type thin -n SnapLV -kn -s ThinLV --thinpool VG/ThinPoolLV
# lvcreate --type thin -n SnapLV -kn -s ThinLV --thinpool VG/ThinPoolLV
以下のコマンドは、スナップショット論理ボリュームから、アクティブ化スキップフラグを削除します。
lvchange -kn VG/SnapLV
# lvchange -kn VG/SnapLV
/etc/lvm/lvm.conf ファイルの auto_set_activation_skip 設定を使用して、デフォルトのアクティブ化スキップ設定を制御できます。
4.4.21. 過去の論理ボリュームの追跡および表示 (Red Hat Enterprise Linux 7.3 以降) リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Enterprise Linux 7.3 では、
lvm.conf 設定ファイルで record_lvs_history メタデータオプションを有効にして、削除したシンプロビジョニングのスナップショットとシン論理ボリュームを追跡するようにシステムを設定できます。これにより、元の依存関係チェーンから削除され、過去の論理ボリュームになった論理ボリュームを含む、完全なシンスナップショット依存関係チェーンを表示できます。
lvm.conf 設定ファイルで lvs_history_retention_time メタデータオプションを使用し、保持時間(秒)を指定して、決められた期間、システムに過去のボリュームを保持するように設定できます。
過去の論理ボリュームでは、削除された論理ボリュームを単純化したものが保持され、以下の、ボリュームのレポートフィールドが含まれます。
lv_time_removed- 論理ボリュームの削除時間lv_time- 論理ボリュームの作成時間lv_name- 論理ボリュームの名前lv_uuid- 論理ボリュームの UUIDvg_name- 論理ボリュームを含むボリュームグループ
ボリュームを削除すると、過去の論理ボリューム名には頭にハイフンが付きます。たとえば、論理ボリューム
lvol1 を削除すると、過去のボリュームの名前は -lvol1 になります。過去の論理ボリュームは再アクティベートすることができません。
record_lvs_history メタデータオプションが有効になっている場合でも、lvremove コマンドの --nohistory オプションを指定して論理ボリュームを削除すると、過去の論理ボリュームを個別に保持しないようにできます。
ボリューム表示に過去の論理ボリュームを含むには、LVM 表示コマンドに
-H|--history オプションを指定します。-H オプションとともに、レポートフィールド lv_full_ancestors および lv_full_descendants を指定すると、過去のボリュームを含む、完全にシンプロビジョニングされたスナップショットの依存関係チェーンを表示できます。
以下のコマンド群は、過去の論理ボリュームを表示および管理する例を示します。
lvm.confファイルにrecord_lvs_history=1を設定して、過去の論理ボリュームを保持します。このメタデータオプションは、デフォルトでは有効ではありません。- 以下のコマンドを入力して、シンプロビジョニングのスナップショットチェーンを表示します。この例では、以下のように設定されています。
lvol1は元のボリュームで、チェーン内で最初のボリュームになります。lvol2は、lvol1のスナップショットです。lvol3は、lvol2のスナップショットです。lvol4は、lvol3のスナップショットです。lvol5も、lvol3のスナップショットです。
例の lvs 表示コマンドに-Hオプションが含まれている場合でも、シンスナップショットボリュームは削除されておらず、過去の論理ボリュームは表示されないことに注意してください。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - スナップショットチェーンから論理ボリューム
lvol3を削除してから再度 lvs コマンドを実行し、過去の論理ボリュームがどのようにその先先および子孫と表示されるかを確認します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 過去のボリュームが削除された時間を表示するには、
lv_time_removedレポートフィールドを使用します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - vgname/lvname フォーマットを以下の例のように指定すると、表示コマンドで過去の論理ボリュームを個別に参照できます。
lv_attrフィールドの 5 番目のビットをhに設定して、ボリュームが過去のボリュームであることを示していることに注意してください。lvs -H vg/-lvol3
# lvs -H vg/-lvol3 LV VG Attr LSize -lvol3 vg ----h----- 0Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ボリュームにライブの子孫がないと、LVM は過去の論理ボリュームを保持しません。これは、スナップショットチェーンの最後に論理ボリュームを削除すると、論理ボリュームが過去の論理ボリュームとして保持されないことを示しています。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 以下のコマンドを実行して、ボリューム
lvol1およびlvol2を削除し、lvs コマンドでボリュームが削除されるとどのように表示されるかを確認します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 過去の論理ボリュームを完全に削除するには、lvremove コマンドを再度実行します。以下の例のように、ハイフンが含まれる過去のボリューム名を指定します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 子孫にライブボリュームが含まれるチェーンがある場合に限り、過去の論理ボリュームは保持されます。これは、以下の例のように、そのボリュームにリンクされている子孫がない場合に、過去の論理ボリュームを削除すると、チェーンの論理ボリュームがすべて削除されることを意味します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.5. フィルターを使用した LVM デバイススキャンの制御 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
起動時に、vgscan コマンドを実行して、システム上のブロックデバイスをスキャンし、LVM ラベルを探して物理ボリュームを特定し、メタデータを読み取ってボリュームグループのリストを構築します。物理ボリュームの名前は、システム内の各ノードの LVM キャッシュファイル
/etc/lvm/cache/.cache に保存されます。それ以後のコマンドはそのファイルを読み込み、再スキャンを防止することになります。
lvm.conf 設定ファイル内にフィルターを設定することにより、LVM がスキャンするデバイスを制御できます。lvm.conf ファイル内のフィルターは、/dev ディレクトリーのデバイス名に適用される一連の単純な正規表現で設定され、見つかった各ブロックデバイスを受け入れるか拒否するかを決定します。
以下の例は、LVM がスキャンするデバイスを制御するフィルターの使用を示しています。正規表現は完全なパス名に対して自由に照合されるため、この例の一部は必ずしも推奨される方法ではないことに注意してください。たとえば、
a/loop/ は a/.*loop.*/ と同等で、/dev/solooperation/lvol1 と一致します。
以下のフィルターは、検出されたすべてのデバイスを追加します。これは、設定ファイル内で設定されているフィルターはないため、デフォルトの動作になります。
filter = [ "a/.*/" ]
filter = [ "a/.*/" ]
以下のフィルターは、ドライブにメディアが入っていない場合の遅延を回避するために cdrom デバイスを削除します。
filter = [ "r|/dev/cdrom|" ]
filter = [ "r|/dev/cdrom|" ]
以下のフィルターはすべてのループを追加して、その他のすべてのブロックデバイスを削除します。
filter = [ "a/loop.*/", "r/.*/" ]
filter = [ "a/loop.*/", "r/.*/" ]
以下のフィルターはすべてのループと IDE を追加して、その他のすべてのブロックデバイスを削除します。
filter =[ "a|loop.*|", "a|/dev/hd.*|", "r|.*|" ]
filter =[ "a|loop.*|", "a|/dev/hd.*|", "r|.*|" ]
以下のフィルターは 1 番目の IDE ドライブにパーティション 8 のみを追加して、他のすべてのブロックデバイスを削除します。
filter = [ "a|^/dev/hda8$|", "r/.*/" ]
filter = [ "a|^/dev/hda8$|", "r/.*/" ]
注記
lvmetad デーモンが実行しているときに、pvscan --cache device コマンドを実行すると、
/etc/lvm/lvm.conf ファイルの filter = 設定が適用されません。デバイスをフィルタリングするには、global_filter = 設定を使用する必要があります。グローバルフィルターに失敗したデバイスは LVM では開かれず、スキャンもされません。VM で LVM を使用しているときに、VM 内のデバイスのコンテンツを物理ホストでスキャンする必要がない場合などは、グローバルフィルターの使用が必要になる場合があります。
4.6. オンラインデータ移動 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
pvmove コマンドを使用すると、システムの使用中にデータを移動できます。
pvmove コマンドは、データを分割してセクションに移動し、各セクションを移動する一時的なミラーを作成します。pvmove コマンドの操作の詳細は、pvmove(8)の man ページを参照してください。
注記
クラスター内で pvmove 操作を実行するには、
cmirror パッケージがインストールされ、cmirrord サービスが実行されていることを確認する必要があります。
以下のコマンドは、物理ボリューム
/dev/sdc1 から、ボリュームグループ内の他の空き物理ボリュームに、すべての割り当て領域を移動します。
pvmove /dev/sdc1
# pvmove /dev/sdc1
以下のコマンドは、論理ボリューム
MyLV のエクステントだけを移動します。
pvmove -n MyLV /dev/sdc1
# pvmove -n MyLV /dev/sdc1
pvmove コマンドの実行には時間がかかる可能性があるため、バックグラウンドでコマンドを実行して、フォアグラウンドでの進捗状況の表示を回避できます。以下のコマンドは、物理ボリューム
/dev/sdc1 に割り当てられているすべてのエクステントを、バックグラウンドで /dev/sdf1 に移動します。
pvmove -b /dev/sdc1 /dev/sdf1
# pvmove -b /dev/sdc1 /dev/sdf1
以下のコマンドは、5 秒間隔で pvmove コマンドの進行状況をパーセンテージで報告します。
pvmove -i5 /dev/sdd1
# pvmove -i5 /dev/sdd1
4.7. クラスター内の個別ノードでの論理ボリュームのアクティブ化 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
クラスター環境に LVM をインストールしている場合は、単一のノード上で論理ボリュームを排他的にアクティブ化しなければならない場合があります。
論理ボリュームを 1 つのノード上で排他的にアクティブ化するには、lvchange -aey コマンドを使用します。または、lvchange -aly コマンドを使用して、排他的ではなくローカルノード上でのみ論理ボリュームをアクティベートできます。これらの論理ボリュームは、後で追加のノード上で同時にアクティブ化することができます。
また、付録D LVM オブジェクトタグ に説明されているように、LVM タグを使用した個別ノード上での論理ボリュームのアクティブ化も可能です。さらに、設定ファイル内でノードのアクティブ化を指定することもできます。これについては、付録B LVM 設定ファイル で説明されています。
4.8. LVM 用のカスタム報告 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
LVM では、カスタマイズされたレポートを生成したり、レポートの出力をフィルタリングしたりするためのさまざまな設定およびコマンドラインオプションが提供されます。LVM レポート機能の完全な説明は、lvmreport(7) man ページを参照してください。
pvs、lvs コマンド、および vgs コマンドを使用して、LVM オブジェクトについて簡潔でカスタマイズ可能なレポートを作成できます。このコマンドが生成するレポートには、オブジェクトごとに 1 行の出力が含まれます。各行には、オブジェクトに関連するプロパティーのフィールドについて、順序付けられたリストが含まれます。レポートするオブジェクトを選択する方法には、物理ボリューム別、ボリュームグループ別、論理ボリューム別、物理ボリュームセグメント別、および論理ボリュームセグメント別の 5 つの方法があります。
Red Hat Enterprise Linux 7.3 リリースでは、lvm fullreport コマンドを使用して、物理ボリューム、ボリュームグループ、論理ボリューム、物理ボリュームセグメント、および論理ボリュームセグメントに関する情報を一度に報告できます。このコマンドとその機能の詳細は、lvm-fullreport(8)の man ページを参照してください。
Red Hat Enterprise Linux 7.3 リリースでは、LVM は、LVM コマンドの実行中に収集された操作、メッセージ、およびオブジェクトごとのステータス (完全なオブジェクト ID 付き) が含まれるメッセージログレポートをサポートします。LVM ログレポートの例は、「コマンドログレポート (Red Hat Enterprise Linux 7.3 以降)」 を参照してください。LVM ログレポートの詳細は、lvmreport(7) man ページを参照してください。
以下のセクションでは、pvs コマンド、lvs コマンド、および vgs コマンドを使用して、レポートをカスタマイズする概要を説明します。
- 「形式の制御」。レポートの書式を制御するために使用できるコマンド引数の概要を提供します。
- 「オブジェクト表示フィールド」。各 LVM オブジェクトに対して表示できるフィールドの一覧を提供します。
- 「LVM 報告のソート」。生成されたレポートをソートするために使用できるコマンド引数の概要を提供します。
- 「ユニットの指定」。レポート出力の単位を指定する手順を提供します。
- 「JSON 形式の出力 (Red Hat Enterprise Linux 7.3 以降)」。JSON 形式の出力を指定する例を提供します (Red Hat Enterprise Linux 7.3 以降)。
- 「コマンドログレポート (Red Hat Enterprise Linux 7.3 以降)」。コマンドログの例を提供します。
4.8.1. 形式の制御 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
pvs、lvs コマンド、または vgs コマンドのどちらを使用するかによって、表示されるデフォルトのフィールドセットとソート順序が決まります。このコマンドの出力は、以下の引数を使用して制御できます。
-o引数を使用すると、表示するフィールドをデフォルト以外に変更できます。たとえば、以下の出力は pvs コマンドのデフォルト表示です(物理ボリュームの情報を表示します)。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドは、物理ボリュームの名前とサイズだけを表示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - -o 引数との組み合わせで使用するプラス記号 (+) を使用して、出力にフィールドを追加できます。以下の例は、デフォルトフィールドに加えて、物理ボリュームの UUID を表示しています。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - コマンドに
-v引数を追加すると、追加のフィールドが含まれます。たとえば、pvs -v コマンドは、デフォルトフィールドに加えて、DevSizeフィールドとPV UUIDフィールドを表示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow --noheadings引数は、見出し行を表示しません。これはスクリプトを作成する際に便利です。以下の例は、pv_name引数と共に--noheadings引数を使用して、すべての物理ボリュームのリストを生成しています。pvs --noheadings -o pv_name
# pvs --noheadings -o pv_name /dev/sdb1 /dev/sdc1 /dev/sdd1Copy to Clipboard Copied! Toggle word wrap Toggle overflow --separator separator引数は、区切り文字 を使用して、各フィールドを区切ります。以下の例は、pvs コマンドのデフォルト出力フィールドを等号(=)で区切ります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow separator引数の使用時にフィールドを配置するには、--aligned引数とともにseparator引数を使用します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
表示引数の完全なリストは、pvs(8)、vgs(8)、および lvs(8)の man ページを参照してください。
ボリュームグループフィールドは、物理ボリューム (および物理ボリュームセグメント) フィールド、または論理ボリューム (および論理ボリュームセグメント) フィールドと混在させることができますが、物理ボリュームフィールドと論理ボリュームフィールドは混在させることができません。たとえば、以下のコマンドは、1 つの物理ボリュームつき 1 行の出力を表示します。
4.8.2. オブジェクト表示フィールド リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、pvs コマンド、vgs コマンド、および lvs コマンドを使用して、LVM オブジェクトについて表示できる情報を一覧表示する一連の表を提供します。
便宜上、フィールド名の接頭辞は、コマンドのデフォルトと一致する場合は省略できます。たとえば、pvs コマンドでは、
name は pv_name を意味しますが、vgs コマンドでは、name は vg_name として解釈されます。
以下のコマンドを実行すると、pvs -o pv_free の実行と同じです。
注記
pvs、vgs、および lvs 出力の属性フィールドにある文字数は、後続のリリースで増加する可能性があります。既存の文字フィールドの位置は変更しませんが、新しいフィールドが末尾に追加される可能性があります。相対的な位置を使用して特定の属性文字を検索するスクリプトを作成する場合は、このことを考慮して、フィールドの終点ではなく、フィールドの始点を基点として文字検索を行います。たとえば、
lv_attr フィールドの 9 番目のビットの文字 p を検索するには、文字列 "^/........p/" を検索できますが、文字列 "/*p$/" を検索することはできません。
pvs コマンド リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
表4.3「pvs コマンド表示フィールド」 は、pvs コマンドの表示引数、ヘッダーに表示されるフィールド名、およびフィールドの説明をリストにまとめています。
| 引数 | ヘッダー | 説明 |
|---|---|---|
dev_size | DevSize | 物理ボリュームを作成する基となるデバイスのサイズ |
pe_start | 1st PE | 基となるデバイス内の最初の物理エクステントの開始点までのオフセット |
pv_attr | Attr | 物理ボリュームのステータス - (a)llocatable または e(x)ported |
pv_fmt | Fmt | 物理ボリュームのメタデータ形式(lvm2 または lvm1) |
pv_free | PFree | 物理ボリュームにある残りの空き領域 |
pv_name | PV | 物理ボリュームの名前 |
pv_pe_alloc_count | Alloc | 使用される物理エクステントの数 |
pv_pe_count | PE | 物理エクステントの数 |
pvseg_size | SSize | 物理ボリュームのセグメントサイズ |
pvseg_start | Start | 物理ボリュームセグメントの最初の物理エクステント |
pv_size | PSize | 物理ボリュームのサイズ |
pv_tags | PV Tags | 物理ボリュームに割り当てられた LVM タグ |
pv_used | Used | 物理ボリュームで現在使用中の領域の量 |
pv_uuid | PV UUID | 物理ボリュームの UUID |
pvs コマンドは、デフォルトで
pv_name、vg_name、pv_fmt、pv_attr、、pv_size、pv_free フィールドを表示します。この表示は、pv_name でソートされています。
pvs コマンドに
-v 引数を使用すると、デフォルトの表示に dev_size フィールドおよびpv_uuid フィールドが追加されます。
pvs コマンドの
--segments 引数を使用して、各物理ボリュームセグメントの情報を表示します。セグメントはエクステントの集合です。セグメントの表示は、論理ボリュームがフラグメント化 (断片化) しているかどうかを確認するのに役立ちます。
pvs --segments コマンドは、デフォルト
で pv_name、vg_name、pv_fmt、pv_fmt、pv_attr、pv_size、pvseg_ start、pvseg_size のフィールドを表示します。この表示は、物理ボリューム内では pv_name および pvseg_size でソートされています。
pvs -a コマンドを使用して、LVM が検出した、LVM 物理ボリュームとして初期化していないデバイスを確認できます。
vgs コマンド リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
表4.4「vgs 表示フィールド」 は、vgs コマンドの表示引数、ヘッダーに表示されるフィールド名、およびフィールドの説明をリストにまとめています。
| 引数 | ヘッダー | 説明 |
|---|---|---|
lv_count | #LV | ボリュームグループに含まれる論理ボリュームの数 |
max_lv | MaxLV | ボリュームグループで許容される論理ボリュームの最大数 (無制限の場合は 0) |
max_pv | MaxPV | ボリュームグループで許容される物理ボリュームの最大数 (無制限の場合は 0) |
pv_count | #PV | ボリュームグループを定義する物理ボリューム数 |
snap_count | #SN | ボリュームグループに含まれるスナップショット数 |
vg_attr | Attr | ボリュームグループのステータス - (w)riteable (書き込み可能)、(r)eadonly (読み取りのみ)、resi(z)eable (サイズ変更可能)、e(x)ported (エクスポート済)、(p)artial (部分的)、および (c)lustered (クラスター化) |
vg_extent_count | #Ext | ボリュームグループの物理エクステントの数 |
vg_extent_size | Ext | ボリュームグループの物理エクステントのサイズ |
vg_fmt | Fmt | ボリュームグループのメタデータ形式(lvm2 または lvm1) |
vg_free | VFree | ボリュームグループの残りの空き領域のサイズ |
vg_free_count | Free | ボリュームグループの空き物理エクステントの数 |
vg_name | VG | ボリュームグループ名 |
vg_seqno | Seq | ボリュームグループの改訂を示す番号 |
vg_size | VSize | ボリュームグループのサイズ |
vg_sysid | SYS ID | LVM1 システム ID |
vg_tags | VG Tags | ボリュームグループに割り当てられた LVM タグ |
vg_uuid | VG UUID | ボリュームグループの UUID |
vgs コマンドは、デフォルトで
vg_name、pv_count、lv_count、snap_count、vg_attr、vg_size、vg_free フィールドを表示します。この表示は、vg_name でソートされています。
vgs
# vgs
VG #PV #LV #SN Attr VSize VFree
new_vg 3 1 1 wz--n- 51.42G 51.36G
vgs コマンドに
-v 引数を使用すると、デフォルトの表示に vg_extent_size フィールド、vg_uuid フィールドが追加されます。
lvs コマンド リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
表4.5「lvs 表示フィールド」 は、lvs コマンドの表示引数、ヘッダーに表示されるフィールド名、およびフィールドの説明をリストにまとめています。
注記
Red Hat Enterprise Linux の今後のリリースでは、lvs コマンドの出力と、出力にフィールドが追加される場合があります。ただし、フィールドの順序は同じで、追加のフィールドは出力の最後に表示されます。
| 引数 | ヘッダー | 説明 | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chunk | スナップショットボリュームのユニットサイズ | ||||||||||
copy_percent | Copy% | ミラー化論理ボリュームの同期率。pv_move コマンドで物理エクステントを移動する際にも使用されます。 | ||||||||||
devices | Devices | 論理ボリュームを設定するデバイス - 物理ボリューム、論理ボリューム、および物理エクステントと論理エクステントの開始点 | ||||||||||
lv_ancestors | Ancestors | (Red Hat Enterprise Linux 7.2 以降) シンプールスナップショットにおける、論理ボリュームの先祖 (ancestor) | ||||||||||
lv_descendants | Descendants | (Red Hat Enterprise Linux 7.2 以降) シンプールスナップショットにおける、論理ボリュームの子孫 (descendant) | ||||||||||
lv_attr | Attr | 論理ボリュームのステータス。論理ボリュームの属性ビットは以下のようになります。
| ||||||||||
lv_kernel_major | KMaj | 論理ボリュームの実際のメジャーデバイス番号 (非アクティブの場合は -1) | ||||||||||
lv_kernel_minor | KMIN | 論理ボリュームの実際のマイナーデバイス番号 (非アクティブの場合は -1) | ||||||||||
lv_major | Maj | 論理ボリュームの永続的なメジャーデバイス番号 (未指定の場合は -1) | ||||||||||
lv_minor | Min | 論理ボリュームの永続的なマイナーデバイス番号 (未指定の場合は -1) | ||||||||||
lv_name | LV | 論理ボリュームの名前 | ||||||||||
lv_size | LSize | 論理ボリュームのサイズ | ||||||||||
lv_tags | LV Tags | 論理ボリュームに割り当てられた LVM タグ | ||||||||||
lv_uuid | LV UUID | 論理ボリュームの UUID | ||||||||||
mirror_log | Log | ミラーログが存在するデバイス | ||||||||||
modules | Modules | この論理ボリュームを使用するのに必要な、対応するカーネルデバイスマッパーターゲット | ||||||||||
move_pv | Move | pvmove コマンドで作成された一時的な論理ボリュームの、ソース物理ボリューム | ||||||||||
origin | Origin | スナップショットボリュームの作成元のデバイス | ||||||||||
| Region | ミラー化論理ボリュームのユニットサイズ | ||||||||||
seg_count | #Seg | 論理ボリュームのセグメント数 | ||||||||||
seg_size | SSize | 論理ボリュームのセグメントサイズ | ||||||||||
seg_start | Start | 論理ボリュームのセグメントのオフセット | ||||||||||
seg_tags | Seg Tags | 論理ボリュームのセグメントに割り当てられた LVM タグ | ||||||||||
segtype | タイプ | 論理ボリュームのセグメントタイプ (例: ミラー、ストライプ、リニア) | ||||||||||
snap_percent | Snap% | 使用中スナップショットボリュームの現在のパーセンテージ | ||||||||||
stripes | #Str | 論理ボリュームのストライプ、またはミラーの数 | ||||||||||
| Stripe | ストライプ化論理ボリュームのストライプのユニットサイズ |
lvs コマンドはデフォルトで、
lv_name、vg_name、lv_attr、lv_size、origin、snap_percent、move_pv、mirror_log、copy_lv、convert_ lv フィールドを表示します。デフォルトの表示は、ボリュームグループ内では vg_name および lv_name でソートされます。
lvs
# lvs
LV VG Attr LSize Origin Snap% Move Log Copy% Convert
lvol0 new_vg owi-a- 52.00M
newvgsnap1 new_vg swi-a- 8.00M lvol0 0.20
lvs コマンドで
-v 引数を使用すると、デフォルトの表示に、seg_count、lv_major、lv_minor、lv_kernel_major、lv_kernel_minor、lv_uuid のフィールドが追加されます。
lvs コマンドの
--segments 引数を使用して、セグメント情報を強調するデフォルトの列で情報を表示できます。segments 引数を使用する場合、seg 接頭辞は任意となります。lvs --segments コマンドはデフォルトで、lv_name、vg_name、lv_attr、stripe、segtype、seg_size の各フィールドを表示します。デフォルトの表示は、ボリュームグループ内では vg_name、lv_name でソートされ、論理ボリュームでは seg_start でソートされます。論理ボリュームが断片化されると、このコマンドの出力が表示されます。
lvs --segments コマンドで
-v 引数を使用すると、デフォルトの表示に seg_start、stripesize、chunksize のフィールドが追加されます。
以下の例は、論理ボリュームが 1 つあるシステムで lvs コマンドのデフォルト出力を示しています。次に、
segments 引数を指定して lvs コマンドのデフォルト出力を示しています。
4.8.3. LVM 報告のソート リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
通常、lvs コマンド、vgs コマンド、または pvs コマンドの出力全体をソートし、列を正しく配置する前に、その出力を生成して内部に保存する必要があります。
--unbuffered 引数を指定すると、生成直後にソートされていないままの出力で表示できます。
別の順列のコラムリストのソートを指定するには、報告コマンドのいずれかと一緒に
-O 引数を使用します。出力自体に、このフィールドを含める必要はありません。
以下の例は、物理ボリュームの名前、サイズ、および空き領域を表示する pvs コマンドの出力を示しています。
以下の例では、空き領域のフィールドでソートされた同じ出力を示しています。
以下の例では、ソートするフィールドを表示する必要がないことを示しています。
逆順でソートするには、
-O 引数の後で指定するフィールドの先頭に - 印を付けます。
4.8.4. ユニットの指定 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
LVM 報告表示用の単位を指定するには、報告コマンドに
--units 引数を使用します。バイト (b)、キロバイト (k)、メガバイト (m)、ギガバイト (g)、テラバイト (t)、エクサバイト (e)、ペタバイト (p)、および人間が判読できる表示 (h) を指定できます。デフォルトは人間が判読できる表示です。このデフォルト設定を上書きするには、lvm.conf ファイルの global セクションに units パラメーターを設定します。
以下の例は、pvs コマンドの出力をデフォルトのギガバイトでなく、メガバイトで指定しています。
デフォルトでは、単位は 2 の累乗 (1024 の倍数) で表示されます。単位を 1000 の倍数で表示するには、大文字 (B、K、M、G、T、H) で単位を指定できます。
以下のコマンドは、1024 の倍数 (デフォルト) で出力を表示します。
以下のコマンドは、1000 の倍数で出力を表示します。
セクター (512 バイトとして定義) またはカスタム単位も指定できます。
以下の例は、pvs コマンドの出力をセクター数として表示しています。
以下の例は、pvs コマンドの出力を 4 MB 単位で表示しています。
4.8.5. JSON 形式の出力 (Red Hat Enterprise Linux 7.3 以降) リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Enterprise Linux 7.3 では、LVM 表示コマンドで、
--reportformat オプションを使用して JSON 形式で出力を表示できます。
以下の例は、標準的なデフォルト形式の lvs の出力を示しています。
以下のコマンドは、JSON 形式を指定する場合と同じ LVM 設定の出力を表示します。
また、
/etc/lvm/lvm.conf ファイルで output_format 設定を使用して、レポート形式を設定オプションとして設定することもできます。ただし、コマンドラインの --reportformat 設定は、この設定よりも優先されます。
4.8.6. コマンドログレポート (Red Hat Enterprise Linux 7.3 以降) リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Enterprise Linux 7.3 では、レポート指向および処理指向の LVM コマンドの両方が、
log/report_command_log 設定でこれが有効になっていると、コマンドログを報告できるようになりました。このレポートで表示およびソートするフィールドセットを決定できます。
以下の例では、LVM コマンド向けの完全なログレポートを生成するように LVM を設定します。この例では、論理ボリューム
lvol0 と lvol1 の両方が、ボリュームを含むボリュームグループ VG と同様に正常に処理されたことを確認できます。
LVM レポートおよびコマンドログの設定の詳細は、lvmreport の man ページを参照してください。
第5章 LVM 設定の例 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
この章では、基本的な LVM 設定の例をいくつか紹介します。
5.1. 3 つのディスク上での LVM 論理ボリューム作成 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
この手順例では、
/dev/sda1、/dev/sdb1、および /dev/sdc1 のディスクで設定される new_logical_volume という名前の LVM 論理ボリュームを作成します。
- ボリュームグループのディスクを使用するには、pvcreate コマンドを使用して、そのディスクに LVM 物理ボリュームにラベルを付けます。警告このコマンドは、
/dev/sda1、/dev/sdb1、および/dev/sdc1のデータを破棄します。pvcreate /dev/sda1 /dev/sdb1 /dev/sdc1
# pvcreate /dev/sda1 /dev/sdb1 /dev/sdc1 Physical volume "/dev/sda1" successfully created Physical volume "/dev/sdb1" successfully created Physical volume "/dev/sdc1" successfully createdCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 作成した LVM 物理ボリュームで設定されるボリュームグループを作成します。以下のコマンドを使用すると、ボリュームグループ
new_vol_groupが作成されます。vgcreate new_vol_group /dev/sda1 /dev/sdb1 /dev/sdc1
# vgcreate new_vol_group /dev/sda1 /dev/sdb1 /dev/sdc1 Volume group "new_vol_group" successfully createdCopy to Clipboard Copied! Toggle word wrap Toggle overflow vgs コマンドを使用すると、新しいボリュームグループの属性を表示できます。vgs
# vgs VG #PV #LV #SN Attr VSize VFree new_vol_group 3 0 0 wz--n- 51.45G 51.45GCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 作成したボリュームグループから論理ボリュームを作成します。以下のコマンドは、ボリュームグループ
new_vol_groupから、論理ボリュームnew_logical_volumeを作成します。この例では、ボリュームグループの 2 ギガバイトを使用する論理ボリュームが作成されます。lvcreate -L 2G -n new_logical_volume new_vol_group
# lvcreate -L 2G -n new_logical_volume new_vol_group Logical volume "new_logical_volume" createdCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 論理ボリュームにファイルシステムを作成します。以下のコマンドを使用すると、論理ボリュームに GFS2 ファイルシステムが作成されます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドは、論理ボリュームをマウントして、ファイルシステムのディスクの領域使用率を報告します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.2. ストライプ化論理ボリュームの作成 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
この手順例では、
/dev/sda1、/dev/sdb1、および /dev/sdc1 のディスクにデータをストライプ化する、striped_logical_volume という名前の LVM ストライピング論理ボリュームを作成します。
- pvcreate コマンドを使用して、ボリュームグループで LVM 物理ボリュームとして使用するディスクにラベルを付けます。警告このコマンドは、
/dev/sda1、/dev/sdb1、および/dev/sdc1のデータを破棄します。pvcreate /dev/sda1 /dev/sdb1 /dev/sdc1
# pvcreate /dev/sda1 /dev/sdb1 /dev/sdc1 Physical volume "/dev/sda1" successfully created Physical volume "/dev/sdb1" successfully created Physical volume "/dev/sdc1" successfully createdCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ボリュームグループ
volgroup01を作成します。以下のコマンドを使用すると、ボリュームグループvolgroup01が作成されます。vgcreate volgroup01 /dev/sda1 /dev/sdb1 /dev/sdc1
# vgcreate volgroup01 /dev/sda1 /dev/sdb1 /dev/sdc1 Volume group "volgroup01" successfully createdCopy to Clipboard Copied! Toggle word wrap Toggle overflow vgs コマンドを使用すると、新しいボリュームグループの属性を表示できます。vgs
# vgs VG #PV #LV #SN Attr VSize VFree volgroup01 3 0 0 wz--n- 51.45G 51.45GCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 作成したボリュームグループから、ストライプ化論理ボリュームを作成します。以下のコマンドを使用すると、ボリュームグループ
volgroup01から、ストライプ化論理ボリュームstriped_logical_volumeが作成されます。この例では、ストライプサイズが 4 キロバイトの 3 つのストライプがある、サイズが 2 ギガバイトの論理ボリュームが作成されます。lvcreate -i 3 -I 4 -L 2G -n striped_logical_volume volgroup01
# lvcreate -i 3 -I 4 -L 2G -n striped_logical_volume volgroup01 Rounding size (512 extents) up to stripe boundary size (513 extents) Logical volume "striped_logical_volume" createdCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ストライプ化論理ボリュームでファイルシステムを作成します。以下のコマンドを使用すると、論理ボリュームに GFS2 ファイルシステムが作成されます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドは、論理ボリュームをマウントして、ファイルシステムのディスクの領域使用率を報告します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.3. ボリュームグループの分割 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
この手順例では、3 つの物理ボリュームから設定される既存のボリュームグループを使用します。この物理ボリュームに未使用領域が十分にあれば、新たにディスクを追加しなくてもボリュームグループを作成できます。
はじめに、ボリュームグループ
myvol から、論理ボリューム mylv が作成されます。これは、/dev/sda1、/dev/sdb1、および /dev/sdc1 の 3 つの物理ボリュームで設定されます。
この手順を完了すると、ボリュームグループ
myvg は、/dev/sda1 および /dev/sdb1 で設定されます。2 つ目のボリュームグループ yourvg は、/dev/sdc1 で設定されます。
- pvscan コマンドを使用すると、現在ボリュームグループで利用可能な空き領域の容量を確認できます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - pvmove コマンドを使用して、
/dev/sdc1で使用している物理エクステントをすべて/dev/sdb1に移動します。pvmove コマンドの実行には時間がかかる場合があります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow データを移動した後、/dev/sdc1上のすべての領域が解放されていることがわかります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 新規ボリュームグループ
yourvgを作成するには、vgsplit コマンドを使用して、ボリュームグループmyvgを分割します。ボリュームグループを分割するには、論理ボリュームが非アクティブな状態である必要があります。ファイルシステムがマウントされている場合は、論理ボリュームを非アクティブ化する前に、そのファイルシステムをアンマウントする必要があります。論理ボリュームを非アクティブにするには、lvchange コマンドまたは vgchange コマンドを使用します。以下のコマンドは、論理ボリュームmylvを非アクティブ化し、ボリュームグループmyvgからボリュームグループyourvgを分割して、物理ボリューム/dev/sdc1を新しいボリュームグループyourvgに移動します。lvchange -a n /dev/myvg/mylv vgsplit myvg yourvg /dev/sdc1
# lvchange -a n /dev/myvg/mylv # vgsplit myvg yourvg /dev/sdc1 Volume group "yourvg" successfully split from "myvg"Copy to Clipboard Copied! Toggle word wrap Toggle overflow vgs コマンドを使用すると、2 つのボリュームグループの属性を確認できます。vgs
# vgs VG #PV #LV #SN Attr VSize VFree myvg 2 1 0 wz--n- 34.30G 10.80G yourvg 1 0 0 wz--n- 17.15G 17.15GCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 新しいボリュームグループを作成したら、新しい論理ボリューム
yourlvを作成します。lvcreate -L 5G -n yourlv yourvg
# lvcreate -L 5G -n yourlv yourvg Logical volume "yourlv" createdCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 論理ボリュームにファイルシステムを新規作成し、そのファイルシステムをマウントします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 論理ボリューム
mylvを非アクティブ化する必要があるため、マウントする前に再度アクティブ化する必要があります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.4. 論理ボリュームからディスクを削除する リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
この手順例では、ディスクを交換するか、別のボリュームで使用するために、既存の論理ボリュームからディスクを削除する方法を示しています。ディスクを削除する前に、LVM 物理ボリュームのエクステントを、別のディスクまたはディスクセットに移動する必要があります。
5.4.1. 既存の物理ボリュームへのエクステントの移動 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
この例では、論理ボリュームが、ボリュームグループ
myvg の 4 つの物理ボリュームに分散されています。
この例では、エクステントを
/dev/sdb1 から移動し、ボリュームグループから削除できるようにします。
- ボリュームグループ内の他の物理ボリュームに空きエクステントが十分にある場合は、他のオプションを指定せずに、削除するデバイスで pvmove コマンドを実行すると、エクステントが他のデバイスに分配されます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow pvmove コマンドの実行が終了すると、エクステントの分散は以下のようになります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - vgreduce コマンドを使用して、ボリュームグループから物理ボリューム
/dev/sdb1を削除します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
これでディスクは物理的に削除できるようになり、他のユーザーに割り当てることも可能になります。
5.4.2. 新規ディスクへのエクステントの移動 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
この例では、以下のように、ボリュームグループ
myvg の 3 つの物理ボリュームに、論理ボリュームが分散されています。
以下の手順では、
/dev/sdb1 のエクステントを、新しいデバイス /dev/sdd1 に移動します。
/dev/sdd1から、物理ボリュームを新規作成します。pvcreate /dev/sdd1
# pvcreate /dev/sdd1 Physical volume "/dev/sdd1" successfully createdCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 新しい物理ボリューム
/dev/sdd1を既存のボリュームグループmyvgに追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - pvmove コマンドを使用して、データを
/dev/sdb1から/dev/sdd1に移動します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - データを
/dev/sdb1から移動したら、ボリュームグループから削除できます。vgreduce myvg /dev/sdb1
# vgreduce myvg /dev/sdb1 Removed "/dev/sdb1" from volume group "myvg"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
これで、このディスクを別のボリュームグループに再度割り当てたり、システムから削除できるようになりました。
5.5. クラスター内でのミラー化 LVM 論理ボリュームの作成 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
ミラー化された LVM 論理ボリュームをクラスター内に作成するには、セグメントタイプが
mirror の単一ノードにミラー化 LVM 論理ボリュームを作成するのと同じコマンドと手順が必要です。ただし、クラスターに、ミラー化 LVM ボリュームを作成するには、以下の条件を満たす必要があります。
- クラスターおよびクラスターミラーインフラストラクチャーが稼働している
- クラスターが定足数を満たす
lvm.confファイルのロッキングタイプは、クラスターのロックを有効にするために正しく設定する必要があります。また、use_lvmetad設定は 0 である必要があります。ただし、Red Hat Enterprise Linux 7 では開始手順の一環として、ocf:heartbeat:clvmPacemaker リソースエージェント自体がこれらのタスクを実行することに注意してください。
Red Hat Enterprise Linux 7 では、クラスターは Pacemaker で管理されます。クラスター化された LVM 論理ボリュームは Pacemaker クラスターと併用される場合のみサポートされ、クラスターリソースとして設定する必要があります。
以下の手順は、クラスターに、ミラー化された LVM ボリュームを作成します。
- クラスターソフトウェアおよび LVM パッケージをインストールし、クラスターソフトウェアを起動してクラスターを作成します。クラスターにはフェンスを設定する必要があります。『 High Availability Add-On の管理 』 ドキュメントには、クラスターを作成し、クラスターにノードのフェンスを設定する手順例が記載されています。『 High Availability Add-On Reference 』 ドキュメントには、クラスター設定のコンポーネントについての詳細情報が記載されています。
- クラスター内のすべてのノードで共有されるミラー化論理ボリュームを作成するには、クラスターの各ノードの
lvm.confファイルにロックタイプを正しく設定する必要があります。デフォルトでは、ロッキングタイプはローカルに設定されます。これを変更するには、クラスターの各ノードで以下のコマンドを実行し、クラスターロッキングを有効にします。/sbin/lvmconf --enable-cluster
# /sbin/lvmconf --enable-clusterCopy to Clipboard Copied! Toggle word wrap Toggle overflow - クラスターの
dlmリソースをセットアップします。リソースをクローンリソースとして作成し、そのリソースがクラスター内のすべてのノードで実行されるようにします。pcs resource create dlm ocf:pacemaker:controld op monitor interval=30s on-fail=fence clone interleave=true ordered=true
# pcs resource create dlm ocf:pacemaker:controld op monitor interval=30s on-fail=fence clone interleave=true ordered=trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow clvmdをクラスターリソースとして設定します。dlmリソースの場合と同様に、リソースをクローンされたリソースとして作成し、それがクラスター内のすべてのノードで実行されるようにします。with_cmirrord=trueパラメーターを設定して、clvmdが実行されるすべてのノードで cmirrord デーモンを有効にする必要があることに注意してください。pcs resource create clvmd ocf:heartbeat:clvm with_cmirrord=true op monitor interval=30s on-fail=fence clone interleave=true ordered=true
# pcs resource create clvmd ocf:heartbeat:clvm with_cmirrord=true op monitor interval=30s on-fail=fence clone interleave=true ordered=trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow clvmdリソースを設定していても、with_cmirrord=trueパラメーターを指定しなかった場合は、以下のコマンドでリソースを更新して、パラメーターを含めることができます。pcs resource update clvmd with_cmirrord=true
# pcs resource update clvmd with_cmirrord=trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow clvmdとdlmの依存関係を設定し、順番を開始します。clvmdはdlmの後に起動し、dlmと同じノードで実行する必要があります。pcs constraint order start dlm-clone then clvmd-clone pcs constraint colocation add clvmd-clone with dlm-clone
# pcs constraint order start dlm-clone then clvmd-clone # pcs constraint colocation add clvmd-clone with dlm-cloneCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ミラーを作成します。最初のステップは、物理ボリュームの作成です。次のコマンドは、3 つの物理ボリュームを作成します。これらの内の 2 つの物理ボリュームはミラーレッグとして使用され、3 つ目の物理ボリュームにミラーログが格納されます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ボリュームグループを作成します。この例では、前の手順で作成した 3 つの物理ボリュームで設定されるボリュームグループ
vg001を作成します。vgcreate vg001 /dev/sdb1 /dev/sdc1 /dev/sdd1
# vgcreate vg001 /dev/sdb1 /dev/sdc1 /dev/sdd1 Clustered volume group "vg001" successfully createdCopy to Clipboard Copied! Toggle word wrap Toggle overflow vgcreateコマンドの出力は、ボリュームグループがクラスター化されていることを示していることに注意してください。ボリュームグループの属性を表示する vgs コマンドを使用すると、ボリュームグループがクラスター化されていることを確認できます。ボリュームグループがクラスター化されている場合は、c 属性が表示されます。vgs vg001
# vgs vg001 VG #PV #LV #SN Attr VSize VFree vg001 3 0 0 wz--nc 68.97G 68.97GCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ミラー化論理ボリュームを作成します。この例では、ボリュームグループ
vg001から、論理ボリュームmirrorlvを作成します。このボリュームのミラーレッグは 1 つです。この例では、物理ボリュームのどのエクステントが論理ボリュームに使用されるかを指定します。lvcreate --type mirror -l 1000 -m 1 vg001 -n mirrorlv /dev/sdb1:1-1000 /dev/sdc1:1-1000 /dev/sdd1:0
# lvcreate --type mirror -l 1000 -m 1 vg001 -n mirrorlv /dev/sdb1:1-1000 /dev/sdc1:1-1000 /dev/sdd1:0 Logical volume "mirrorlv" createdCopy to Clipboard Copied! Toggle word wrap Toggle overflow lvs コマンドを使用すると、ミラー作成の進捗を表示できます。以下の例では、ミラーの同期が、47%、91% と進み、ミラー完了時には 100% 同期になったことを示しています。Copy to Clipboard Copied! Toggle word wrap Toggle overflow ミラーの完了は、システムログに記録されます。May 10 14:52:52 doc-07 [19402]: Monitoring mirror device vg001-mirrorlv for events May 10 14:55:00 doc-07 lvm[19402]: vg001-mirrorlv is now in-sync
May 10 14:52:52 doc-07 [19402]: Monitoring mirror device vg001-mirrorlv for events May 10 14:55:00 doc-07 lvm[19402]: vg001-mirrorlv is now in-syncCopy to Clipboard Copied! Toggle word wrap Toggle overflow - lvs コマンドに -o +devices オプションを使用すると、ミラーの設定を表示できます。これには、ミラーレッグを設定するデバイスが含まれます。この例では、論理ボリュームが 2 つのリニアイメージと 1 つのログで設定されていることがわかります。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow lvs のseg_pe_rangesオプションを使用すると、データレイアウトを表示できます。このオプションを使用すれば、レイアウトに適切な冗長性があることを検証することができます。このコマンドの出力には、lvcreate コマンドと lvresize コマンドが入力として受け取る形式と同じ形式で PE 範囲が表示されます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
注記
LVM ミラー化ボリュームのいずれかのレッグに障害が発生した際の回復方法は、「LVM ミラー障害からの回復」 を参照してください。
第6章 LVM トラブルシューティング リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
本章では、さまざまな LVM の問題のトラブルシューティング手順について説明します。
6.1. トラブルシューティング診断 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
コマンドが期待通りに機能しない場合は、以下の方法で診断情報を収集できます。
-v、-vv、-vvv、または-vvvvのいずれかの引数を使用して、出力の詳細レベルを徐々に高くしていくことができます- 問題が論理ボリュームのアクティブ化に関連している場合は、設定ファイルの
logセクションにactivation = 1と設定して、-vvvv引数を指定してコマンドを実行します。この出力を検証したら、このパラメーターを 0 に戻し、低メモリー状況で起こり得るマシンのロッキング問題を回避します。 - lvmdump コマンドを実行すると、診断目的の情報ダンプが提供されます。詳細は、lvmdump(8) man ページを参照してください。
- 追加のシステム情報を得るには、lvs -v、pvs -a、または dmsetup info -c コマンドを実行します。
/etc/lvm/backupファイルの最後のメタデータのバックアップと、/etc/lvm/archive ファイル内のアーカイブバージョンを確認します。- lvmconfig コマンドを実行して、現在の設定情報を確認します。
/etc/lvmディレクトリーの.cacheファイルで、物理ボリュームを持つデバイスを記録します。
6.2. LVM ミラー障害からの回復 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、物理ボリュームの基礎となるデバイスがダウンし、
mirror_log_fault_policy パラメーターが remove に設定されているため、LVM ミラー化ボリュームのレッグの 1 つで障害が発生した状況から復旧する例を示します。この場合は、ミラーを手動で再構築する必要があります。mirror_log_fault_policy パラメーターの設定については、「ミラー化論理ボリュームの障害ポリシー」 を参照してください。
ミラーレッグに障害が発生すると、LVM はミラー化ボリュームをリニアボリュームに変換します。このボリュームは以前と同様に動作を継続しますが、ミラー化による冗長性はありません。この時点で、代替物理デバイスとして使用し、ミラーを再構築するために新たなディスクデバイスをシステムに追加することができます。
以下のコマンドは、ミラー用に使用される物理ボリューム群を作成します。
以下のコマンドを使用すると、ボリュームグループ
vg およびミラー化ボリューム グループ が作成されます。
lvs コマンドを使用すると、ミラー化ボリュームのレイアウトとミラーレッグの配下のデバイスとミラーログを確認できます。最初の例では、ミラーは完全には同期されていないことに注意してください。
Copy% フィールドが 100.00 を表示するまで待ってから続行する必要があります。
この例では、ミラーのプライマリーレッグ
/dev/sda1 が失敗します。ミラー化ボリュームへの書き込み作業はいずれも LVM がミラーの障害を検知する結果となります。これが発生すると、LVM はミラーを単一のリニアボリュームに変換します。この場合、変換をトリガーするために dd コマンドを実行します。
dd if=/dev/zero of=/dev/vg/groupfs count=10
# dd if=/dev/zero of=/dev/vg/groupfs count=10
10+0 records in
10+0 records out
lvs コマンドを使用すると、デバイスがリニアデバイスになっていることを確認できます。障害が発生したディスクが原因で I/O エラーが発生します。
lvs -a -o +devices
# lvs -a -o +devices
/dev/sda1: read failed after 0 of 2048 at 0: Input/output error
LV VG Attr LSize Origin Snap% Move Log Copy% Devices
groupfs vg -wi-a- 752.00M /dev/sdb1(0)
この時点では、論理ボリュームは使用することができるはずですが、ミラーの冗長性がなくなります。
ミラー化ボリュームを再構築するには、破損したボリュームを交換して、物理ボリュームを再作成します。新しいディスクに置き換えるのではなく、同じディスクを使用すると、pvcreate コマンドを実行すると、"inconsistent" 警告が表示されます。この警告が表示されないようにするには、vgreduce --removemissing コマンドを実行します。
次に、新規物理ボリュームで元のボリュームグループを拡張します。
リニアボリュームを変換して、元のミラー化された状態に戻します。
lvconvert -m 1 /dev/vg/groupfs /dev/sdi1 /dev/sdb1 /dev/sdc1
# lvconvert -m 1 /dev/vg/groupfs /dev/sdi1 /dev/sdb1 /dev/sdc1
Logical volume mirror converted.
lvs コマンドを使用すると、ミラーが復元したことを確認できます。
6.3. 物理ボリュームメタデータの復元 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
物理ボリュームのボリュームグループのメタデータ領域が誤って上書きされたり、破棄されたりする場合は、メタデータ領域が正しくないことを示すエラーメッセージか、システムで特定 UUID の物理ボリュームが見つからなかったことを示すエラーメッセージが表示されます。物理ボリュームからのデータの復元は、失われたメタデータと同じ UUID を指定して、物理ボリューム上に新規のメタデータ領域を書き込むことによって実行できる場合があります。
警告
作業用の LVM 論理ボリュームを使用してこの手順を試行しないでください。誤った UUID を指定すると、データが失われることになります。
以下の例は、メタデータ領域が見つからなかったり、破損している場合に表示される出力の種類を示しています。
/etc/lvm/archive ディレクトリーを検索すると、上書きされた物理ボリュームの UUID を見つけることができます。そのボリュームグループに対する最後に既知の有効なアーカイブ LVM メタデータについては、ファイル VolumeGroupName_xxxx.vg を探します。
または、ボリュームを非アクティブ化し、
partial (-P) 引数を設定すると、見つからない破損した物理ボリュームの UUID を見つけられる可能性があります。
pvcreate コマンドの
--uuid および --restorefile 引数を使用して、物理ボリュームを復元します。以下の例では、/dev/sdh1 デバイスを上記の UUID ( FmGRh3-zhok-iVI8-7qTD-S5BI-MAEN-NYM5Sk )を持つ物理ボリュームとしてラベル付けします。このコマンドは、ボリュームグループ用の最新のアーカイブメタデータである VG_00050.vg に含まれるメタデータ情報を使用して、物理ボリュームラベルを復元します。restorefile 引数は、ボリュームグループ上の古い物理ボリュームと互換性のある新しい物理ボリュームを pvcreate コマンドに指示します。これにより、古い物理ボリュームにデータが含まれていた場合(たとえば、元の pvcreate コマンドがメタデータの配置を制御するコマンドライン引数を使用した場合や、物理ボリュームが異なるデフォルトを使用する別のバージョンのソフトウェアを使用して作成された場合など)が新しいメタデータに配置されないようにします。pvcreate コマンドは、LVM メタデータ領域のみを上書きし、既存のデータ領域には影響を与えません。
pvcreate --uuid "FmGRh3-zhok-iVI8-7qTD-S5BI-MAEN-NYM5Sk" --restorefile /etc/lvm/archive/VG_00050.vg /dev/sdh1
# pvcreate --uuid "FmGRh3-zhok-iVI8-7qTD-S5BI-MAEN-NYM5Sk" --restorefile /etc/lvm/archive/VG_00050.vg /dev/sdh1
Physical volume "/dev/sdh1" successfully created
その後、vgcfgrestore コマンドを使用して、ボリュームグループのメタデータを復元します。
vgcfgrestore VG
# vgcfgrestore VG
Restored volume group VG
これで論理ボリュームが表示できるようになります。
lvs -a -o +devices
# lvs -a -o +devices
LV VG Attr LSize Origin Snap% Move Log Copy% Devices
stripe VG -wi--- 300.00G /dev/sdh1 (0),/dev/sda1(0)
stripe VG -wi--- 300.00G /dev/sdh1 (34728),/dev/sdb1(0)
以下のコマンドはボリュームをアクティブにし、アクティブになったボリュームを表示します。
オンディスク LVM メタデータが、それを書き換えるデータと同じ容量である場合は、このコマンドで物理ボリュームを復元できます。メタデータを上書きしたものがメタデータ領域を超えると、ボリューム上のデータが影響を受ける可能性があります。そのデータを復元するには、fsck コマンドを使用することができます。
6.4. 紛失した物理ボリュームの入れ替え リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
物理ボリュームに障害が発生した場合、または交換の必要がある場合、「物理ボリュームメタデータの復元」 で説明されている物理ボリュームのメタデータを復旧するのと同じ手順に従って、既存ボリュームグループ内の紛失した物理ボリュームに置き換わる新しい物理ボリュームにラベル付けすることができます。vgdisplay コマンドの
--partial 引数および --verbose 引数を使用すると、存在しない物理ボリュームの UUID およびサイズを表示できます。同じサイズの別の物理ボリュームを置き換える場合は、pvcreate コマンドを --restorefile および --uuid 引数と共に使用して、見つからない物理ボリュームと同じ UUID で新しいデバイスを初期化できます。その後、vgcfgrestore コマンドを使用して、ボリュームグループのメタデータを復元します。
6.5. 紛失した物理ボリュームのボリュームグループからの削除 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
物理ボリュームが失われた場合は、vgchange コマンドの
--partial 引数を指定して、ボリュームグループ内の残りの物理ボリュームをアクティベートできます。vgreduce コマンドの --removemissing 引数を使用すると、その物理ボリュームを使用して、ボリュームグループから論理ボリュームをすべて削除できます。
vgreduce コマンドに
--test 引数を指定して実行して、破棄する内容を確認する必要があります。
ほとんどの LVM 操作と同様に、vgcfgrestore コマンドをすぐに使用してボリュームグループのメタデータを以前の状態に戻すと、vgreduce コマンドは元に戻すことができます。たとえば、
--test 引数なしで vgreduce コマンドの --removemissing 引数を使用して、保持する論理ボリュームを削除した論理ボリュームを見つけた場合、物理ボリュームを置き換え、別の vgcfgrestore コマンドを使用してボリュームグループを以前の状態に戻すことができます。
6.6. 論理ボリュームでの不十分な空きエクステント リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
論理ボリュームを作成すると、vgdisplay または vgs コマンドの出力に基づいて十分なエクステントがあると思われる場合に、Insufficient free extents というエラーメッセージが表示されることがあります。その理由は、これらのコマンドが数字を第 2 小数点まで丸め、人間に認識可能な出力を提供するためです。実際のサイズを指定するには、物理ボリュームのサイズの判別にバイトの倍数を使用せずに、空き物理エクステント数を使用します。
vgdisplay コマンド(デフォルトでは、空き物理エクステントを示すこの行)が含まれます。
vgdisplay
# vgdisplay
--- Volume group ---
...
Free PE / Size 8780 / 34.30 GB
または、vgs コマンドの
vg_free_count 引数および vg_extent_count 引数を使用して、空きエクステントとエクステントの合計数を表示できます。
vgs -o +vg_free_count,vg_extent_count
# vgs -o +vg_free_count,vg_extent_count
VG #PV #LV #SN Attr VSize VFree Free #Ext
testvg 2 0 0 wz--n- 34.30G 34.30G 8780 8780
8780 の空き物理エクステントがあるため、小文字 l の引数を使用してバイトの代わりにエクステントを使用し、次のコマンドを実行できます。
lvcreate -l 8780 -n testlv testvg
# lvcreate -l 8780 -n testlv testvg
これで、ボリュームグループ内のすべてのエクステントが使用されます。
vgs -o +vg_free_count,vg_extent_count
# vgs -o +vg_free_count,vg_extent_count
VG #PV #LV #SN Attr VSize VFree Free #Ext
testvg 2 1 0 wz--n- 34.30G 0 0 8780
または、lvcreate コマンドの
-l 引数を使用すると、ボリュームグループ内の残りの空き領域の割合を使用するように、論理ボリュームを拡張することもできます。詳細は、「リニア論理ボリュームの作成」 を参照してください。
6.7. マルチパスデバイスに対する重複した PV 警告 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
マルチパスストレージで LVM を使用する場合は、一部の LVM コマンド( vgs や lvchangeなど)で、ボリュームグループまたは論理ボリュームを一覧表示するときに、以下のようなメッセージが表示される場合があります。
Found duplicate PV GDjTZf7Y03GJHjteqOwrye2dcSCjdaUi: using /dev/dm-5 not /dev/sdd Found duplicate PV GDjTZf7Y03GJHjteqOwrye2dcSCjdaUi: using /dev/emcpowerb not /dev/sde Found duplicate PV GDjTZf7Y03GJHjteqOwrye2dcSCjdaUi: using /dev/sddlmab not /dev/sdf
Found duplicate PV GDjTZf7Y03GJHjteqOwrye2dcSCjdaUi: using /dev/dm-5 not /dev/sdd
Found duplicate PV GDjTZf7Y03GJHjteqOwrye2dcSCjdaUi: using /dev/emcpowerb not /dev/sde
Found duplicate PV GDjTZf7Y03GJHjteqOwrye2dcSCjdaUi: using /dev/sddlmab not /dev/sdf
このセクションでは、これらの警告の原因について説明したあとに、以下の 2 つのケースでこの問題を解決する方法について説明します。
- 出力に表示された 2 つのデバイスが、両方とも同じデバイスへの単一パスである
- 出力に表示された 2 つのデバイスが、両方ともマルチパスマップである
6.7.1. 重複した PV 警告の原因 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
デフォルト設定では、LVM コマンドは
/dev のデバイスをスキャンし、生成されるすべてのデバイスで LVM メタデータをチェックします。これは、以下のような /etc/lvm/lvm.conf のデフォルトフィルターにより発生します。
filter = [ "a/.*/" ]
filter = [ "a/.*/" ]
Device Mapper Multipath、または EMC PowerPath や Hitachi Dynamic Link Manager (HDLM)などの他のマルチパスソフトウェアを使用している場合、特定の論理ユニット番号(LUN)への各パスは、
/dev/sdb や /dev/sdc などの異なる SCSI デバイスとして登録されます。マルチパスソフトウェアは、デバイスマッパーマルチパスの場合は /dev/mapper/mpath1 または /dev/mapper/mpatha、EMC PowerPath の場合は /dev/emcpowera、Hitachi HDLM の場合は /dev/sddlmab など、個々のパスにマップする新しいデバイスを作成します。各 LUN には、基盤となる同じデータを指す /dev 内に複数のデバイスノードがあるため、すべてに同じ LVM メタデータが含まれているため、LVM コマンドは同じメタデータを複数回検出し、複製として報告します。
これらの重複メッセージはただの警告であり、LVM 操作が失敗したことは意味しません。これらのメッセージは、1 つのデバイスだけが物理ボリュームとして使用され、他のデバイスは無視されることをユーザーに通知します。メッセージが、正しくないデバイスが選択されていることを示す場合、または警告がユーザーにとって重大である場合は、物理ボリュームに必要なデバイスのみを検索し、マルチパスデバイスへの基礎となるパスを省略するために、フィルターを適用できます。
6.7.2. 単一パスに対する重複した警告 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
以下の例は、表示された重複デバイスが、両方とも同じデバイスへの単一パスであることを示す、重複した PV 警告を示しています。この場合、
/dev/sdd と /dev/sdf は、multipath -ll コマンドの出力の同じマルチパスマップの下にあります。
Found duplicate PV GDjTZf7Y03GJHjteqOwrye2dcSCjdaUi: using **/dev/sdd** not **/dev/sdf**
Found duplicate PV GDjTZf7Y03GJHjteqOwrye2dcSCjdaUi: using **/dev/sdd** not **/dev/sdf**
この警告が表示されないようにするには、LVM がメタデータを検索するデバイスを制限するように、
/etc/lvm/lvm.conf ファイルでフィルターを設定します。フィルターは、/dev (または /etc/lvm/lvm.conf ファイルの dir キーワードで指定されたディレクトリー)のスキャンによって検出された各デバイスに適用されるパターンのリストです。パターンは、任意の文字で区切られた正規表現で、a (許可の場合)または r (拒否の場合)が先頭に付けられます。リストは順番に評価され、デバイスに一致する最初の正規表現によって、デバイスが許可または拒否 (無視) されるかどうかが決定されます。どのパターンにも一致しないデバイスは許可されます。LVM フィルターに関する一般的な情報は、「フィルターを使用した LVM デバイススキャンの制御」 を参照してください。
設定するフィルターには、LVM メタデータをチェックする必要があるすべてのデバイス (root ボリュームグループがあるローカルハードドライブやマルチパスデバイスなど) を含める必要があります。マルチパスデバイスへの基礎となるパス(
/dev/sdb、/dev/sdd など)を拒否すると、重複した PV 警告を回避できます。一意の各メタデータ領域はマルチパスデバイス自体で 1 回しか検出されないためです。
以下の例は、複数のストレージパスが利用可能であることが原因で発生する重複 PV 警告を回避するフィルターを示しています。
- このフィルターは、最初のハードドライブ(
/dev/sda)の 2 番目のパーティションと、すべての device-mapper-multipath デバイスを許可し、その他のパーティションはすべて拒否します。filter = [ "a|/dev/sda2$|", "a|/dev/mapper/mpath.*|", "r|.*|" ]
filter = [ "a|/dev/sda2$|", "a|/dev/mapper/mpath.*|", "r|.*|" ]Copy to Clipboard Copied! Toggle word wrap Toggle overflow - このフィルターは、すべての HP SmartArray コントローラーと、EMC PowerPath デバイスを許可します。
filter = [ "a|/dev/cciss/.*|", "a|/dev/emcpower.*|", "r|.*|" ]
filter = [ "a|/dev/cciss/.*|", "a|/dev/emcpower.*|", "r|.*|" ]Copy to Clipboard Copied! Toggle word wrap Toggle overflow - このフィルターは、最初の IDE ドライブのすべてのパーティションと、すべてのマルチパスデバイスを許可します。
filter = [ "a|/dev/hda.*|", "a|/dev/mapper/mpath.*|", "r|.*|" ]
filter = [ "a|/dev/hda.*|", "a|/dev/mapper/mpath.*|", "r|.*|" ]Copy to Clipboard Copied! Toggle word wrap Toggle overflow
注記
新しいフィルターを
/etc/lvm/lvm.conf ファイルに追加する場合は、元のフィルターが # でコメントアウトされているか、削除されていることを確認してください。
フィルターが設定され、
/etc/lvm/lvm.conf ファイルが保存されたら、これらのコマンドの出力を確認して、物理ボリュームまたはボリュームグループが欠落していないことを確認してください。
pvscan vgscan
# pvscan
# vgscan
また、以下の例のように、LVM コマンドに
--config 引数を追加して、/etc/lvm/lvm.conf ファイルを変更せずに、すぐにフィルターをテストすることもできます。
lvs --config 'devices{ filter = [ "a|/dev/emcpower.*|", "r|.*|" ] }'
# lvs --config 'devices{ filter = [ "a|/dev/emcpower.*|", "r|.*|" ] }'
注記
--config 引数を使用してフィルターをテストしても、サーバーの設定に対して永続的な変更は加えられません。テスト後に、作業フィルターを /etc/lvm/lvm.conf ファイルに設定してください。
LVM フィルターの設定後、再起動時に必要なデバイスのみがスキャンされるように、dracut コマンドで
initrd デバイスを再構築することが推奨されます。
6.7.3. マルチパスマップの重複する警告 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
以下の例は、両方のマルチパスマップである 2 つのデバイスに対する重複した物理ボリューム警告を示しています。これらの例では、2 つの異なるパス (ただし、デバイスは異なる) について説明します。
Found duplicate PV GDjTZf7Y03GJHjteqOwrye2dcSCjdaUi: using **/dev/mapper/mpatha** not **/dev/mapper/mpathc**
Found duplicate PV GDjTZf7Y03GJHjteqOwrye2dcSCjdaUi: using **/dev/mapper/mpatha** not **/dev/mapper/mpathc**
Found duplicate PV GDjTZf7Y03GJHjteqOwrye2dcSCjdaUi: using **/dev/emcpowera** not **/dev/emcpowerh**
Found duplicate PV GDjTZf7Y03GJHjteqOwrye2dcSCjdaUi: using **/dev/emcpowera** not **/dev/emcpowerh**
この状況は、同じデバイスへの 1 つのパスであるデバイスに対する重複の警告よりも深刻です。多くの場合、これらの警告は、マシンが確認すべきでないデバイス (たとえば、LUN クローンまたはミラー) がマシンに提供されたことを意味します。この場合は、マシンから取り外すデバイスが明確にわかっていない限り、状況は改善しません。この問題を解決するには、Red Hat テクニカルサポートにお問い合わせいただくことが推奨されます。
付録A デバイスマッパー リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
デバイスマッパーとは、ボリューム管理用のフレームワークを提供するカーネルドライバーです。これは論理ボリュームとして使用可能な、マップされたデバイスを作成する一般的な方法を提供します。デバイスマッパーは、ボリュームグループやメタデータ形式をとくに認識する訳ではありません。
デバイスマッパーは多くの高度な技術のための土台を提供します。LVM に加えて、Device-Mapper マルチパスおよび dmraid コマンドはデバイスマッパーを使用します。デバイスマッパーへのアプリケーションインターフェイスは ioctl システムコールです。ユーザーインターフェイスは dmsetup コマンドです。
LVM 論理ボリュームは、デバイスマッパーを使用してアクティブにされます。それぞれの論理ボリュームは、マッピングされたデバイスに変換されます。それぞれのセグメントが、そのデバイスを記述するマッピングテーブルの行に変換されます。デバイスマッパーは、リニアマッピング、ストライプ化マッピング、エラーマッピングを含む各種のマッピングターゲットをサポートします。たとえば、2 つのディスクを 1 つの論理ボリュームとして連結することができます。LVM がボリュームを作成すると、dmsetup コマンドでクエリーできる基礎となるデバイスマッパーデバイスが作成されます。マッピングテーブルのデバイスの形式に関する情報は、「デバイステーブルのマッピング」 を参照してください。デバイスをクエリーする dmsetup コマンドの使用方法については、「dmsetup コマンド」 を参照してください。
A.1. デバイステーブルのマッピング リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
マップされたデバイスは、サポートされているデバイステーブルのマッピングを使用してデバイスの論理セクターの各範囲をマップする方法を指定するテーブルによって定義されます。マップされたデバイスのテーブルは以下の形式の行のリストから作成されます。
start length mapping [mapping_parameters...]
start length mapping [mapping_parameters...]
デバイスマッパーテーブルの最初の行では、
start パラメーターは 0 でなければなりません。1 つの行の start + length パラメーターは、次の行の start と等しくなければなりません。マッピングテーブルの行に指定されるマッピングパラメーターの種類は、その行に指定される マッピング タイプによって異なります。
デバイスマッパー内のサイズは常にセクターで指定されます (512 バイト)。
デバイスがデバイスマッパーでマッピングパラメーターとして指定される場合、そのデバイスはファイルシステム内のデバイス名で参照されるか(例:
/dev/hda)、または major:minor の形式でメジャー番号とマイナー番号で参照されます。major:minor の形式は、パス名ルックアップを回避するので推奨されます。
デバイスのマッピングテーブルの例を以下に示します。このテーブルには 4 つのリニアターゲットがあります。
0 35258368 linear 8:48 65920 35258368 35258368 linear 8:32 65920 70516736 17694720 linear 8:16 17694976 88211456 17694720 linear 8:16 256
0 35258368 linear 8:48 65920
35258368 35258368 linear 8:32 65920
70516736 17694720 linear 8:16 17694976
88211456 17694720 linear 8:16 256
各行の最初の 2 つのパラメーターはセグメントの始点ブロックとセグメントの長さです。次のキーワードはマッピングターゲットであり、この例ではすべて
linear になっています。この行の残りの部分は、リニア ターゲットのパラメーターで設定されます。
以下のセクションでは以下のマッピングの形式について説明しています。
- linear
- striped
- mirror
- snapshot and snapshot-origin
- error
- zero
- multipath
- crypt
A.1.1. リニアマッピングターゲット リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
リニアマッピングターゲットは連続範囲のブロックを別のブロックデバイスにマップします。リニアターゲットの形式は以下のようになります。
start length linear device offset
start length linear device offset
start- 仮想デバイス内の始点ブロック
長さ- このセグメントの長さ
device- ブロックデバイス。ファイルシステム内のデバイス名で参照、または
major:minor形式のメジャー番号とマイナー番号で参照されます。 offset- デバイス上のマッピングの始点オフセット
以下の例は、仮想デバイスの始点ブロックが 0 、セグメントの長さが 1638400、メジャー/ マイナー番号ペアが 8:2、デバイスの始点オフセットが 41146992 であるリニアターゲットを示しています。
0 16384000 linear 8:2 41156992
0 16384000 linear 8:2 41156992
次の例は、デバイスパラメーターがデバイス
/dev/hda として指定されたリニアターゲットを示しています。
0 20971520 linear /dev/hda 384
0 20971520 linear /dev/hda 384
A.1.2. ストライプ化マッピングターゲット リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
ストライプ化マッピングターゲットは物理デバイス全体でのストライピングをサポートします。これは、ストライプの数、ストライプのチャンクサイズ、およびデバイス名とセクターのペアのリストを引数として受け取ります。ストライプ化ターゲットの形式は以下のようになります。
start length striped #stripes chunk_size device1 offset1 ... deviceN offsetN
start length striped #stripes chunk_size device1 offset1 ... deviceN offsetN
ストライプごとに、
device パラメーターと offset パラメーターの 1 つのセットがあります。
start- 仮想デバイス内の始点ブロック
長さ- このセグメントの長さ
#stripes- 仮想デバイスのストライプの数
chunk_size- 次にスイッチするまでに各ストライプに書き込まれるセクターの数。2 の累乗であり、最低でもカーネルページサイズの大きさでなければなりません。
device- ブロックデバイス。ファイルシステム内のデバイス名で参照、または
major:minor形式のメジャー番号とマイナー番号で参照されます。 offset- デバイス上のマッピングの始点オフセット
以下の例は、3 つのストライプと、チャンクサイズ 128 を持つストライプ化ターゲットを示しています。
0 73728 striped 3 128 8:9 384 8:8 384 8:7 9789824
0 73728 striped 3 128 8:9 384 8:8 384 8:7 9789824
- 0
- 仮想デバイス内の始点ブロック
- 73728
- このセグメントの長さ
- striped 3 128
- チャンクサイズが 128 ブロックの 3 つのデバイスにわたるストライプ
- 8:9
- 最初のデバイスのメジャー番号: マイナー番号
- 384
- 最初のデバイス上のマッピングの始点オフセット
- 8:8
- 2 つ目のデバイスのメジャー番号: マイナー番号
- 384
- 2 つ目のデバイスのマッピングの始点オフセット
- 8:7
- 3 つ目のデバイスのメジャー番号: マイナー番号
- 9789824
- 3 つ目のデバイス上のマッピングの始点オフセット
以下の例は、2 つのストライプ、256 KiB のチャンク、およびメジャー番号とマイナー番号の代わりにファイルシステム内のデバイス名で指定されたデバイスパラメーターを持つストライプ化ターゲットを示しています。
0 65536 striped 2 512 /dev/hda 0 /dev/hdb 0
0 65536 striped 2 512 /dev/hda 0 /dev/hdb 0
A.1.3. ミラーマッピングターゲット リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
ミラーマッピングターゲットはミラー化した論理デバイスのマッピングをサポートします。ミラー化ターゲットの形式は次のようになります。
start length mirror log_type #logargs logarg1 ... logargN #devs device1 offset1 ... deviceN offsetN
start length mirror log_type #logargs logarg1 ... logargN #devs device1 offset1 ... deviceN offsetN
start- 仮想デバイス内の始点ブロック
長さ- このセグメントの長さ
log_type- 使用可能なログタイプとそれらの引数は以下のようになります。
core- ミラーはローカルであり、ミラーログはコアメモリーに保持されます。このログタイプは 1 - 3 の引数を取ります。regionsize [[
no]sync] [block_on_error] disk- ミラーはローカルであり、ミラーログはディスクに保持されます。ログタイプは 2 - 4 の引数を取ります。logdevice regionsize [[
no]sync] [block_on_error] clustered_core- ミラーはクラスター化されており、ミラーログはコアメモリーに保持されます。ログタイプは 2 - 4 の引数を取ります。regionsize UUID [[
no]sync] [block_on_error] clustered_disk- ミラーはクラスター化されており、ミラーログはディスクに保持されます。このログタイプは 3 - 5 の引数を取ります。logdevice regionsize UUID [[
no]sync] [block_on_error]
LVM は、単一または複数のミラーと同期するリージョンを追跡するのに使用する小さなログを維持します。regionsize 引数は、それらのリージョンのサイズを指定します。クラスター環境では、UUID 引数はミラーログデバイスに関連付けられた一意の識別子であるため、ログの状態はクラスター全体で維持することができます。オプションの[no]sync引数を使用して、ミラーを "in-sync" または "out-of-sync" として指定することができます。block_on_error引数は、エラーを無視するのではなく、エラーに応答するようにミラーに指示するために使用されます。 #log_args- マッピング内で指定されるログ引数の数
logargs- ミラーのログ引数。提供されるログ引数の数は
#log-argsパラメーターで指定され、有効なログ引数はlog_typeパラメーターによって決定されます。 #devs- ミラー内のレッグ数。デバイスとオフセットが各レッグに指定されます。
device- 各ミラーレッグのブロックデバイス。ファイルシステム内のデバイス名で参照、または
major:minor形式のメジャー番号とマイナー番号で参照されます。ブロックデバイスとオフセットは、#devsパラメーターで指定されているように、各ミラーレッグに指定されます。 offset- デバイス上のマッピングの始点オフセット。ブロックデバイスとオフセットは、
#devsパラメーターで指定されているように、各ミラーレッグに指定されます。
以下の例は、ミラーログがディスク上に保持されたクラスター化されたミラー用のミラーマッピングターゲットを示しています。
0 52428800 mirror clustered_disk 4 253:2 1024 UUID block_on_error 3 253:3 0 253:4 0 253:5 0
0 52428800 mirror clustered_disk 4 253:2 1024 UUID block_on_error 3 253:3 0 253:4 0 253:5 0
- 0
- 仮想デバイス内の始点ブロック
- 52428800
- このセグメントの長さ
- mirror clustered_disk
- ミラーがクラスター化されており、ディスク上でミラーログを維持することを指定するログタイプが指定されたミラーターゲット
- 4
- 4 つのミラーログ引数が続きます。
- 253:2
- ログデバイスのメジャー番号: マイナー番号
- 1024
- 何が同期しているかを追跡記録するためにミラーログが使用するリージョンのサイズ
UUID- クラスター全域でログ情報を維持するためのミラーログデバイスの UUID
block_on_error- ミラーはエラーに対応する必要があります。
- 3
- ミラー内のレッグ数
- 253:3 0 253:4 0 253:5 0
- ミラーの各レッグを設定しているデバイス用のメジャー番号: マイナー番号およびオフセット
A.1.4. スナップショットとスナップショット複製元のマッピングターゲット リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
ボリュームの最初の LVM スナップショットを作成する場合に、4 つのデバイスマッパーデバイスが使用されます。
- ソースボリュームの元のマッピングテーブルを含む
リニアマッピングを持つデバイス。 - ソースボリュームのコピーオンライト(COW)デバイスとして使用される
リニアマッピングを持つデバイス。書き込みごとに、元のデータは各スナップショットの COW デバイスに保存され、表示可能なコンテンツは変更されません(COW デバイスがいっぱいになることはありません)。 - 表示される
スナップショットボリュームである #1 と #2 を組み合わせたスナップショットマッピングを持つデバイス。 - 元のボリューム (これは、元のソースボリュームで使用されるデバイス番号を使用します)。このテーブルはデバイス #1 からの snapshot-origin マッピングに置き換えられます。
これらのデバイスの作成には固定された命名スキームが使用されます。たとえば、以下のコマンドを使用して
base という名前の LVM ボリュームを作成し、snap という名前のスナップショットボリュームをそのボリューム上に作成することができます。
lvcreate -L 1G -n base volumeGroup lvcreate -L 100M --snapshot -n snap volumeGroup/base
# lvcreate -L 1G -n base volumeGroup
# lvcreate -L 100M --snapshot -n snap volumeGroup/base
これによって 4 つのデバイスが作成され、以下のコマンドで表示できます。
snapshot-origin ターゲットの形式は以下のようになります。
start length snapshot-origin origin
start length snapshot-origin origin
start- 仮想デバイス内の始点ブロック
長さ- このセグメントの長さ
origin- スナップショットのベースボリューム
snapshot-origin は通常、それをベースにした 1 つ以上のスナップショットを持ちます。読み取りは直接バッキングデバイスにマップされます。それぞれの書き込みには、元のデータが各スナップショットの COW デバイス内に保存されて、COW デバイスが満杯になるまでその可視コンテンツをそのまま維持します。
snapshot ターゲットの形式は以下のようになります。
start length snapshot origin COW-device P|N chunksize
start length snapshot origin COW-device P|N chunksize
start- 仮想デバイス内の始点ブロック
長さ- このセグメントの長さ
origin- スナップショットのベースボリューム
COW-device- 変更したデータチャンクが保存されるデバイス
- P|N
- P (Persistent) または N (Not persistent) は、スナップショットが再起動後に維持されるかどうかを示します。一時的なスナップショット (N) では、ディスクに保存できるメタデータが少なくなり、代わりに、カーネルがメモリーに保持します。
chunksize- COW デバイスに保存されるデータにおける、変更したチャンクのセクターサイズ
以下の例は、作成元デバイスが 254:11 の
snapshot-origin ターゲットを示しています。
0 2097152 snapshot-origin 254:11
0 2097152 snapshot-origin 254:11
次の例は、オリジンデバイスが 254:11 で COW デバイスが 254:12 の
スナップショット ターゲットを示しています。このスナップショットデバイスは再起動後にも永続し、COW デバイス上に保存されるデータのチャンクサイズは 16 セクターです。
0 2097152 snapshot 254:11 254:12 P 16
0 2097152 snapshot 254:11 254:12 P 16
A.1.5. エラーマッピングターゲット リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
エラーマッピングターゲットを使用すると、マッピングされたセクターへの I/O オペレーションはいずれも失敗します。
エラーマッピングターゲットはテスト用に使用できます。障害時にデバイスがどのように動作するかをテストするには、1 つのデバイスの中に不良セクターがあるデバイスマッピングを 1 つ作成するか、ミラーレッグをスワップアウトして、そのレッグをエラーターゲットに置き換えます。
エラーターゲットは、実際のデバイス上でのタイムアウトおよび再試行を回避する方法として、障害のあるデバイスの代わりに使用することができます。エラーターゲットは、障害時に LVM メタデータを再配置している間に中間ターゲットとして機能します。
エラー マッピングターゲットは、start パラメーターと length パラメーター以外の追加パラメーターを取りません。
以下の例は、
error ターゲットを示しています。
0 65536 error
0 65536 error
A.1.6. ゼロマッピングターゲット リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
zero マッピングターゲットは、/dev/zero と同等のブロックデバイスです。このマッピングの読み取り操作はゼロのブロックを返します。このマッピングに書き込まれたデータは破棄されますが、書き込みは正常に実行されます。zero マッピングターゲットは、start パラメーターおよび length パラメーター以外のパラメーターを追加しません。
以下の例は、16Tb デバイス用の
zero ターゲットを示しています。
0 65536 zero
0 65536 zero
A.1.7. マルチパスマッピングターゲット リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
マルチパスマッピングターゲットはマルチパス化したデバイスのマッピングをサポートします。
multipath ターゲットの形式は以下のようになります。
start length multipath #features [feature1 ... featureN] #handlerargs [handlerarg1 ... handlerargN] #pathgroups pathgroup pathgroupargs1 ... pathgroupargsN
start length multipath #features [feature1 ... featureN] #handlerargs [handlerarg1 ... handlerargN] #pathgroups pathgroup pathgroupargs1 ... pathgroupargsN
pathgroupargs パラメーターにはパスグループごとに 1 つのセットがあります。
start- 仮想デバイス内の始点ブロック
長さ- このセグメントの長さ
#features- マルチパス機能の数。このパラメーターがゼロの場合、
featureパラメーターはありません。次のデバイスマッピングパラメーターは#handlerargsになります。現在、multipath.confファイルのfeatures属性で設定できる機能は 1 つあります(queue_if_no_path)。これは、利用可能なパスがない場合には、マルチパス化したデバイスが I/O 操作をキューに登録するよう現在設定されていることを示します。以下の例では、multipath.confファイルのno_path_retry属性が設定されています。これは、パスを使用する試行回数が設定された後にすべてのパスが失敗とマークされるまで、I/O 操作をキューに入れます。この場合、すべてのパスチェッカーによるチェックが所定回数失敗するまでマッピングは以下のように表示されます。0 71014400 multipath 1 queue_if_no_path 0 2 1 round-robin 0 2 1 66:128 \ 1000 65:64 1000 round-robin 0 2 1 8:0 1000 67:192 1000
0 71014400 multipath 1 queue_if_no_path 0 2 1 round-robin 0 2 1 66:128 \ 1000 65:64 1000 round-robin 0 2 1 8:0 1000 67:192 1000Copy to Clipboard Copied! Toggle word wrap Toggle overflow すべてのパスチェッカーがチェックに所定回数失敗した後には、マッピングは以下のように表示されます。0 71014400 multipath 0 0 2 1 round-robin 0 2 1 66:128 1000 65:64 1000 \ round-robin 0 2 1 8:0 1000 67:192 1000
0 71014400 multipath 0 0 2 1 round-robin 0 2 1 66:128 1000 65:64 1000 \ round-robin 0 2 1 8:0 1000 67:192 1000Copy to Clipboard Copied! Toggle word wrap Toggle overflow #handlerargs- ハードウェアハンドラー引数の数です。それらの引数がその後に続きます。ハードウェアハンドラーは、パスグループの切り替えや I/O エラーの処理時に、ハードウェア固有の動作を行うのに使用するモジュールを指定します。これが 0 に設定されている場合、次のパラメーターは
#pathgroupsになります。 #pathgroups- パスグループの数です。バスグループとは、マルチパス化したデバイスがロードバランシングを行うパスのセットのことです。
pathgroupargsパラメーターにはパスグループごとに 1 つのセットがあります。 pathgroup- 試行する次のパスグループ
pathgroupsargs- 各パスグループは以下の引数で設定されます。
pathselector #selectorargs #paths #pathargs device1 ioreqs1 ... deviceN ioreqsN
pathselector #selectorargs #paths #pathargs device1 ioreqs1 ... deviceN ioreqsNCopy to Clipboard Copied! Toggle word wrap Toggle overflow パスグループ内の各パス用にパス引数の 1 つのセットがあります。pathselector- 次の I/O 操作で使用するための、このパスグループ内のパスを決定するために使用するアルゴリズムを指定します。
#selectorargs- マルチパスマッピングでこの引数に続くパスセレクター引数の数。現在、この引数の値は常に 0 (ゼロ) です。
#paths- このパスグループ内のパスの数。
#pathargs- このグループ内の各パスに指定されたパス引数の数。現在、この数値は常に 1 で、
ioreqs引数になります。 device- パスのブロックデバイス数。
major:minorの形式で、メジャー番号とマイナー番号によって参照されます。 ioreqs- 現在のグループ内の次のパスへ切り替えるまでこのパスにルーティングする I/O 要求数。
図A.1「マルチパスマッピングターゲット」 は、2 つのパスグループを持つマルチパスターゲットの形式を示しています。
図A.1 マルチパスマッピングターゲット
以下の例は、同じマルチパスデバイスのための純粋なフェイルオーバーターゲットの定義を示しています。このターゲットには、4 つのパスグループがあります。マルチパス化したデバイスが 1 度に 1 つのパスのみを使用するように、パスグループごとに 1 つのパスのみが開いています。
0 71014400 multipath 0 0 4 1 round-robin 0 1 1 66:112 1000 \ round-robin 0 1 1 67:176 1000 round-robin 0 1 1 68:240 1000 \ round-robin 0 1 1 65:48 1000
0 71014400 multipath 0 0 4 1 round-robin 0 1 1 66:112 1000 \
round-robin 0 1 1 67:176 1000 round-robin 0 1 1 68:240 1000 \
round-robin 0 1 1 65:48 1000
次の例は、同じマルチパス化したデバイスを対象とする、完全に分散した (multibus) ターゲットの定義を示しています。このターゲットでは、パスグループが 1 つだけ存在し、そこにすべてのパスが含まれます。このセットアップでは、マルチパスが、負荷をすべてのパスに均等に分散します。
0 71014400 multipath 0 0 1 1 round-robin 0 4 1 66:112 1000 \ 67:176 1000 68:240 1000 65:48 1000
0 71014400 multipath 0 0 1 1 round-robin 0 4 1 66:112 1000 \
67:176 1000 68:240 1000 65:48 1000
マルチパス化の詳細は、『DM マルチパス』 を参照してください。
A.1.8. 暗号マッピングターゲット リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
crypt ターゲットは、指定されたデバイスを通過するデータを暗号化します。これは、kernel Crypto API を使用します。
crypt ターゲットの形式は以下のようになります。
start length crypt cipher key IV-offset device offset
start length crypt cipher key IV-offset device offset
start- 仮想デバイス内の始点ブロック
長さ- このセグメントの長さ
暗号化 (cipher)- 暗号は、
暗号 [-chainmode]-ivmode[:iv options]で設定されます。暗号化 (cipher)- 利用可能な暗号は
/proc/crypto(例:aes)に一覧表示されます。 chainmode- 常に
cbcを使用します。最初のベクター(IV)を使用せず、ebcを使用しないでください。 ivmode[:iv options]- IV は暗号化を変更するために使用する初期ベクトルです。IV モードは
plainまたはessiv:hashです。-plainのivmodeはセクター番号(プラス IV オフセット)を IV として使用します。-essパッティーは、ウォーターマークの脆弱性を回避する拡張機能です。ivの
鍵 (key)- 暗号化キー (16 進数で指定)
IV-offset- 初期ベクトル (IV) オフセット
device- ブロックデバイス。ファイルシステム内のデバイス名で参照、または
major:minor形式のメジャー番号とマイナー番号で参照されます。 offset- デバイス上のマッピングの始点オフセット
以下は
crypt ターゲットの例です。
0 2097152 crypt aes-plain 0123456789abcdef0123456789abcdef 0 /dev/hda 0
0 2097152 crypt aes-plain 0123456789abcdef0123456789abcdef 0 /dev/hda 0
A.2. dmsetup コマンド リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
dmsetup コマンドは、デバイスマッパーと通信するためのコマンドラインラッパーです。LVM デバイスに関する全般的なシステム情報については、以下のセクションで説明されているように、dmsetup コマンドの
info オプション、ls オプション、status オプション、および deps オプションが役に立ちます。
dmsetup コマンドの追加オプションおよび機能の詳細は、dmsetup(8)の man ページを参照してください。
A.2.1. dmsetup info コマンド リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
dmsetup info device コマンドは、デバイスマッパーデバイスに関する概要情報を提供します。デバイス名を指定しないと、その出力は現在設定されているすべてのデバイスマッパーデバイスに関する情報となります。デバイスを 1 つ指定すると、このコマンドはそのデバイスのみについて情報を出力します。
dmsetup info コマンドは以下のカテゴリーで情報を提供します。
Name- デバイスの名前です。LVM デバイスは、ハイフンで区切られたボリュームグループ名と論理ボリューム名で表現されます。元の名前のハイフンは 2 つのハイフンに変換されます。標準的な LVM 操作時は、LVM デバイスを直接指定するために、この形式で LVM デバイスの名前を使用することはできず、代わりに代替名の vg/lv を使用する必要があります。
状態- 考えられるデバイスの状態は、
SUSPENDED、ACTIVE、READ-ONLYです。dmsetup suspend コマンドは、デバイスの状態をSUSPENDEDに設定します。デバイスが一時停止 (SUSPENDED) になっている場合、そのデバイスへのすべての I/O 操作は停止します。dmsetup resume コマンドは、デバイスの状態をACTIVEに復元します。 Read Ahead- 読み取り操作が実行されている間に開かれているファイルを対象にシステムが先読みをするデータブロックの数です。デフォルトでカーネルは適切な値を自動選択します。この値は、dmsetup コマンドの
--readaheadオプションを使用して変更できます。 Tables present- このカテゴリーの状態は
LIVEおよびINACTIVEです。INACTIVE状態は、テーブルが読み込まれていることを示します。これは、dmsetup resume コマンドがデバイスの状態をACTIVEに復元したときにスワップされ、その時点で、テーブルの状態がLIVEになります。詳細は、dmsetup の man ページを参照してください。 Open count- open reference count はデバイスが開かれた回数を示します。mount コマンドはデバイスを開きます。
Event number- 現在のイベントの受信数。dmsetup wait n コマンドを実行すると、n 番目のイベントを待機することができ、受信されるまで呼び出しがブロックされます。
Major, minor- メジャーとマイナーのデバイス番号
Number of targets- デバイスを設定するフラグメントの数です。たとえば、リニアデバイスが 3 つのディスクにまたがる場合は、ターゲットは 3 つになります。リニアデバイスがディスクの先頭と終点で設定され、中間を持たない場合は、ターゲットは 2 つになります。
UUID- デバイスの UUID
以下の例は、dmsetup info コマンドの出力の一部を示しています。
A.2.2. dmsetup ls コマンド リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
マップされたデバイスのデバイス名は、dmsetup ls コマンドで一覧表示できます。dmsetup ls --target target_typeコマンドを使用すると、指定したタイプのターゲット が 1 つ以上あるデバイスを一覧表示できます。その他の dmsetup ls コマンドのオプションは、dmsetup man ページを参照してください。
以下の例は、現在設定されているマップ済みデバイスのデバイス名をリスト表示するコマンドを示します。
以下の例は、現在設定されているミラーマッピングのデバイス名をリスト表示するコマンドを示します。
マルチパスまたはその他のデバイスマッパーデバイス上にスタックされる LVM 設定は複雑でわかりにくい場合があります。dmsetup ls コマンドは、以下の例のように、デバイス間の依存関係をツリーとして表示する
--tree オプションを提供します。
A.2.3. dmsetup status コマンド リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
dmsetup status device コマンドは、指定されたデバイス内の各ターゲットのステータス情報を提供します。デバイス名を指定しないと、その出力は現在設定されているすべてのデバイスマッパーデバイスに関する情報となります。dmsetup status --target target_typeコマンドを使用すると、指定したタイプのターゲットが少なくとも 1 つあるデバイスの状態 のみを一覧表示できます。
以下の例は、現在設定されているすべてのマップ済みデバイス内のターゲットの状態をリスト表示するコマンドを示しています。
A.2.4. dmsetup deps コマンド リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
dmsetup deps device コマンドは、指定されたデバイスのマッピングテーブルによって参照されるデバイスの(メジャー、マイナー)ペアのリストを提供します。デバイス名を指定しないと、その出力は現在設定されているすべてのデバイスマッパーデバイスに関する情報となります。
以下の例は、現在設定されているマップ済みデバイスのすべての依存関係をリスト表示するコマンドを示しています。
以下の例は、デバイス
lock_stress-grant--02.1722 の依存関係のみを一覧表示するコマンドを示しています。
dmsetup deps lock_stress-grant--02.1722
# dmsetup deps lock_stress-grant--02.1722
3 dependencies : (253, 33) (253, 32) (253, 31)
A.3. デバイスマッパーの udev デバイスマネージャーサポート リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
udev デバイスマネージャーの主なロールは、/dev ディレクトリー内でノードを設定する動的な方法を提供することです。これらのノードの作成は、ユーザー空間で udev ルールを適用することによって指示されます。これらのルールは、特定のデバイスの追加、削除、または変更の結果として、カーネルから直接送信される udev イベント上で処理されます。これはホットプラグサポートの便利な中央メカニズムを提供します。
udev デバイスマネージャーは、実際のノードを作成するだけでなく、名前を付けることができるシンボリックリンクを作成できます。これにより、必要に応じて、独自のカスタマイズされた命名とディレクトリー構造を/dev ディレクトリーで選択できるようになります。
各
udev イベントには、処理されるデバイスに関する基本情報が含まれます。これには、処理されるデバイスの名前、デバイスが属するサブシステム、デバイスのタイプ、使用されるメジャーおよびマイナー番号、イベントのタイプなどが含まれます。udev ルール内でもアクセスできる /sys ディレクトリーにあるすべての情報にアクセスできることを考慮すると、この情報に基づく単純なフィルターを利用し、この情報に基づいて条件付きでルールを実行することができます。
udev デバイスマネージャーは、ノードのパーミッションを設定する一元化された方法も提供します。ユーザーはカスタマイズされたルールセットを簡単に追加し、イベント処理中に入手可能な情報のいずれかのビットで指定する、任意のデバイスのパーミッションを定義することができます。
udev ルールにプログラムのフックを直接追加することもできます。udev デバイスマネージャーは、これらのプログラムを呼び出して、イベントを処理するために必要な追加処理を提供できます。さらにプログラムは、この処理の結果として、環境変数をエクスポートすることもできます。追加の情報源として、任意の結果をルール内で追加で使用することが可能です。
udev ライブラリーを使用するソフトウェアは、使用可能なすべての情報とともに udev イベントを受信し、処理することができます。そのため、処理は udev デーモンのみにバインドされません。
A.3.1. udev のデバイスマッパーとの統合 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
デバイスマッパーは、
udev の統合を直接サポートします。これにより、LVM デバイスを含むデバイスマッパーデバイスに関連するすべての udev 処理とデバイスマッパーが同期されます。udev デーモンのルールアプリケーションは、デバイスの変更ソースであるプログラム( dmsetup や LVM など)を使用した並列処理であるため、同期が必要です。このサポートがないと、以前の変更イベントの結果として、引き続き開いていて udev ルールで処理されたデバイスの削除を試みる際に一般的な問題がありました。これは、そのデバイスへの変更の間に短い時間がかかった場合に特に一般的でした。
Red Hat Enterprise Linux は、一般的なデバイスマッパーデバイスおよび LVM 用の
udev ルールを正式にサポートしています。表A.1「デバイスマッパーデバイス向けの udev ルール」 では、これらのルールは /lib/udev/rules.d にインストールされます。
| ファイル名 | 説明 | ||
|---|---|---|---|
10-dm.rules |
| ||
11-dm-lvm.rules |
| ||
13-dm-disk.rules | すべてのデバイスマッパーデバイスに適用されるルールが含まれ、/dev/disk/by-id ディレクトリーおよび /dev/disk/by-uuid ディレクトリーにシンボリックリンクを作成します。 | ||
95-dm-notify.rules | libdevmapper を使用して待機プロセスに通知するルールが含まれます(LVM および dmsetupと同様に)。udev 処理が完了しているように、以前のすべてのルールが適用された後に通知が実行されます。通知されたプロセスは、その後で再開します。 | ||
69-dm-lvm-metad.rules | システムに新たに表示されるブロックデバイスで LVM スキャンをトリガーするためのフックが含まれ、可能な場合は LVM の自動アクティブ化を実行します。これは、lvm.conf ファイルの use_ lvmetad =1 で設定される lvmetad デーモンに対応します。クラスター環境では、lvmetad デーモンと自動アクティブ化はサポートされません。 |
12-dm-permissions.rules ファイルを使用して、カスタマイズされたパーミッションルール をさらに追加できます。このファイルは、/lib/udev/rules ディレクトリーにインストールされ ません。/usr/share/doc/device-mapper-バージョン ディレクトリーにあります。12 -dm-permissions.rules ファイルは、パーミッションの設定方法のヒントが含まれたテンプレートで、一例として示されるマッチングルールの一部に基づいています。このファイルには、一般的な状況の例が含まれています。このファイルを編集して、/etc/udev/rules.d ディレクトリーに手動で配置すると、更新後も存続するため、設定がそのまま残ります。
これらのルールは、イベントの処理中に、他のルールによっても使用可能なすべての基本的な変数を設定します。
以下の変数は、10 -
dm.rules で設定されています。
DM_NAME: デバイスマッパーデバイス名DM_UUID: デバイスマッパーデバイスの UUIDDM_SUSPENDED: デバイスマッパーデバイスの一時停止状態DM_UDEV_RULES_VSN:udevルールバージョン(主に、前述の変数が公式のデバイスマッパールールによって直接設定されていることを確認するための他のすべてのルールを対象としています)
以下の変数は、
11-dm-lvm.rules で設定されています。
DM_LV_NAME: 論理ボリューム名DM_VG_NAME: ボリュームグループ名DM_LV_LAYER: LVM レイヤー名
12-dm-permissions.rules ファイルに記載されているように、これらのすべての変数を 12-dm-permissions.rules ファイルで使用すると、特定のデバイスマッパーデバイスの パーミッション を定義することができます。
A.3.2. udev をサポートするコマンドとインターフェイス リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
| Command | 説明 |
|---|---|
| dmsetup udevcomplete | udev がルールの処理を完了し、( 95-dm-notify.rulesの udev ルール内から)待機プロセスのロックを解除していることを udev が通知するために使用されます。 |
| dmsetup udevcomplete_all | デバッグの目的で使用され、待機中の全プロセスのロックを手動で解除します。 |
| dmsetup udevcookies | デバッグの目的で使用され、既存のすべての Cookie (システム全体のセマフォ) を表示します。 |
| dmsetup udevcreatecookie | Cookie (セマフォ) を手動で作成するのに使用されます。これは、単一の同期リソース下で、より多くのプロセスを実行するのに役立ちます。 |
| dmsetup udevreleasecookie | 1 つの同期クッキーの下にあるすべてのプロセスに関連するすべての udev 処理を待機するために使用されます。 |
udev の統合に対応する dmsetup オプションは次のとおりです。
--udevcookieudevトランザクションに追加するすべてのdmsetupプロセスに対して定義する必要があります。これは udevcreatecookie および udevreleasecookie と組み合わせて使用されます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow --udevcookieオプションを使用する以外には、プロセスの環境に変数を単にエクスポートできます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow --noudevrulesudevルールを無効にします。ノード/シンボリックリンクはlibdevmapper自体によって作成されます(古い方法)。このオプションは、udevが正常に機能しない場合にデバッグを目的としています。--noudevsyncudevの同期を無効にします。これもデバッグを目的としています。
dmsetup コマンドとそのオプションの詳細は、dmsetup(8)の man ページを参照してください。
LVM コマンドは、
udev の統合をサポートする以下のオプションをサポートします。
--noudevrules: dmsetup コマンドのように、udevルールを無効にします。--noudevsync: dmsetup コマンドのように、udevの同期を無効にします。
lvm.conf ファイルには、udev の統合をサポートする以下のオプションが含まれます。
udev_rules: すべての LVM2 コマンドのudev_rulesをグローバルに有効または無効にします。udev_sync: すべての LVM コマンドのudevの同期をグローバルに有効または無効にします。
lvm.conf ファイルオプションの詳細は、lvm.conf ファイルのインラインコメントを参照してください。
付録B LVM 設定ファイル リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
LVM は複数の設定ファイルに対応しています。システム起動時に
lvm.conf 設定ファイルは、環境変数 LVM_SYSTEM_DIR で指定されたディレクトリーから読み込まれます。このディレクトリーは、デフォルトでは /etc/lvm に設定されます。
lvm.conf ファイルは、ロードする追加の設定ファイルを指定できます。最新のファイルの設定は、以前のファイルの設定を上書きします。すべての設定ファイルをロードした後に、使用中の設定を表示するには、lvmconfig コマンドを実行します。
追加の設定ファイルのロードに関する情報は、「ホストタグ」 を参照してください。
B.1. LVM 設定ファイル リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
LVM 設定に使用されるファイルは以下のとおりです。
- /etc/lvm/lvm.conf
- ツールで読み込まれる中央設定ファイル
- etc/lvm/lvm_hosttag.conf
- 各ホストタグについて、存在する場合は追加の設定ファイル(
lvm_hosttag.conf)が読み込まれます。そのファイルで新しいタグが定義されている場合は、読み込むファイルのリストに設定ファイルが追加されます。ホストタグの詳細は、「ホストタグ」 を参照してください。
LVM 設定ファイルのほかにも、LVM を実行しているシステムには LVM システムセットアップに影響する以下のようなファイルが含まれます。
- /etc/lvm/cache/.cache
- デバイス名フィルターキャッシュファイル (設定可能)
- /etc/lvm/backup/
- ボリュームグループメタデータの自動バックアップ用ディレクトリー (設定可能)
- /etc/lvm/archive/
- ボリュームグループメタデータの自動アーカイブ用ディレクトリー (ディレクトリーパスとアーカイブ履歴の範囲に関する設定が可能)
- /var/lock/lvm/
- 単一ホストの設定では、並行ツールの実行によってメタデータの破損を防止するロックファイルが使用され、クラスターでは、クラスター全域の DLM が使用されます。
B.2. lvmconfig コマンド リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
現在の LVM 設定を表示するか、
lvmconfig コマンドを使用して、設定をファイルに保存できます。lvmconfig コマンドは、次のようなさまざまな機能を提供します。
- 任意のタグ設定ファイルとマージした現在の lvm 設定をダンプできます。
- 値がデフォルトと異なる現在の設定すべてをダンプできます。
- 現在の LVM バージョンに導入されたすべての新規設定を特定の LVM バージョンにダンプできます。
- コマンドおよびメタデータプロファイルに対して、すべての設定を全体としてまたは個別にダンプできます。LVM プロファイルの詳細は、「LVM プロファイル」 を参照してください。
- 特定バージョンの LVM の設定のみをダンプできます。
- 現在の設定を検証することができます。
サポートされている機能の完全なリストと lvmconfig オプションの指定に関する情報は、lvmconfig の man ページを参照してください。
B.3. LVM プロファイル リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
LVM プロファイルは、各種の環境または使用において一部の特性を実現するために使用できる選択されたカスタマイズ可能な設定のセットです。通常、プロファイルには該当する環境または使用を反映する名前が付けられます。LVM プロファイルは既存の設定を上書きします。
LVM が認識する LVM プロファイルには、コマンド プロファイルと メタデータ プロファイルの 2 つのグループがあります。
- コマンドプロファイルは、グローバルな LVM コマンドレベルで選択された設定を上書きするために使用されます。このプロファイルは LVM コマンドの実行開始時に適用され、LVM コマンドの実行中に使用されます。LVM コマンドの実行時に
--commandprofile ProfileNameオプションを指定することで、コマンドプロファイルを適用します。 - メタデータプロファイルは、ボリュームグループ/論理ボリュームレベルで選択された設定を上書きするために使用されます。このプロファイルは、処理される各ボリュームグループ/論理グループについて個別に適用されます。そのため、各ボリュームグループ/論理ボリュームは、そのメタデータで使用されるプロファイル名を保存でき、ボリュームグループ/論理ボリュームが次に処理される際には、該当プロファイルが自動的に適用されます。ボリュームグループとその論理ボリュームのいずれかに異なるプロファイルが定義されている場合は、論理ボリュームに定義されるプロファイルが優先されます。
- vgcreate または lvcreate コマンドを使用してボリュームグループまたは論理ボリュームを作成する際に、
--metadataprofile ProfileNameオプションを指定することで、メタデータプロファイルをボリュームグループまたは論理ボリュームに割り当てることができます。 - 既存のボリュームグループまたは論理ボリュームにメタデータプロファイルを接続またはデタッチするには、lvchange または vgchange コマンドの
--metadataprofile ProfileNameまたは--detachprofileオプションを指定します。 - vgs コマンドおよび lvs コマンドの
-o vg_profileおよび-o lv_profile出力オプションを指定すると、現在ボリュームグループまたは論理ボリュームに接続されているメタデータプロファイルを表示できます。
コマンドプロファイルに許可される一連のオプションとメタデータプロファイルに許可される一連のオプションは相互に排他的です。これらの 2 つのセットのいずれかに属する設定を他方の設定に混在させることができず、LVM ツールはこのように混在したプロファイルを拒否します。
LVM はいくつかの事前に定義された設定プロファイルを提供します。LVM プロファイルはデフォルトで
/etc/lvm/profile ディレクトリーに保存されます。この場所を変更するには、/etc/lvm/lvm.conf ファイルの profile_dir 設定を使用します。各プロファイル設定は、profile ディレクトリーの ProfileName.profile ファイルに保存されます。LVM コマンドでプロファイルを参照する場合、.profile の接尾辞は省略されます。
複数の異なる値で追加のプロファイルを作成することができます。このため、LVM は
command_profile_template.profile ファイル(コマンドプロファイル用)および metadata_profile_template.profile ファイル(メタデータプロファイル用)を提供します。これには、各タイプのプロファイルでカスタマイズできるすべての設定が含まれます。これらのテンプレートプロファイルは、随時コピーし、編集することができます。
または、lvmconfig コマンドを使用して、いずれかのプロファイルタイプのプロファイルファイルの特定のセクションに対して新規プロファイルを生成できます。以下のコマンドは、section の設定で設定される ProfileName.profile という名前の新規コマンドプロファイルを作成します。
lvmconfig --file ProfileName.profile --type profilable-command section
lvmconfig --file ProfileName.profile --type profilable-command section
以下のコマンドは、section の設定で設定される ProfileName.profile という名前の新規メタデータプロファイルを作成します。
lvmconfig --file ProfileName.profile --type profilable-metadata section
lvmconfig --file ProfileName.profile --type profilable-metadata section
セクションが指定されない場合は、プロファイルでカスタマイズできるすべての設定がレポートされます。
B.4. サンプル lvm.conf ファイル リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
lvm.conf 設定ファイルのサンプルを以下に示します。ご使用のデフォルト設定とは若干異なる可能性があります。
注記
次のコマンドを実行すると、すべてのデフォルト値が設定され、コメントを含む
lvm.conf ファイルを生成できます。
lvmconfig --type default --withcomments
lvmconfig --type default --withcomments
付録C LVM 選択基準 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Enterprise Linux リリース 7.1 より、多くの LVM レポートコマンドは、
-S または --select オプションを使用して、これらのコマンドの選択基準を定義します。Red Hat Enterprise Linux リリース 7.2 では、多くの処理コマンドでも選択基準がサポートされます。選択基準を定義できるこれら 2 つのカテゴリーのコマンドは以下のように定義されます。
- レポートコマンド — 選択基準を満たす行のみを表示します。選択基準を定義できるレポートコマンドの例には、pvs、vgs、lvs、pvdisplay、vgdisplay、lvdisplay、lvm devtypes、dmsetup info -c などがあります。
-Sオプション以外に-o selectedオプションを指定すると、すべての行が表示され、行が選択基準に一致する場合は 1、一致しない場合は 0 を示す "selected" 列が追加されます。 - 処理コマンド — 選択基準を満たすアイテムのみを処理します。選択基準を定義できる処理コマンドの例には、pvchange、vgchange、lvchange、vgimport、vgexport、vgremove、および lvremove などがあります。
選択基準は、表示または処理する特定のフィールドの有効な値を定義するために比較演算子を使用する一連のステートメントです。選択されたフィールドは論理演算子とグループ演算子によって順番に結合されます。
選択基準を使用して表示するフィールドを指定する場合は、表示する選択基準に含まれるフィールドは必要ありません。出力にはさまざまなフィールドセットを含めることができますが、選択基準には 1 つのフィールドセットしか含めることができません。
- さまざまな LVM コンポーネントの利用可能なフィールドの一覧については、「選択基準フィールド」 を参照してください。
- 許可された操作の一覧については、「選択基準演算子」 を参照してください。演算子は lvm(8) man ページにも記載されています。
- レポートコマンドの
-S/-selectオプションにhelp(または?)キーワードを指定すると、フィールドの完全なセットと使用可能な演算子を表示することもできます。たとえば、以下のコマンドは lvs コマンド向けのフィールドと使用可能な演算子を表示します。lvs -S help
# lvs -S helpCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Red Hat Enterprise Linux 7.2 リリースでは、time フィールドが time のフィールドの選択基準として
時間 値を指定できます。時間値の指定については、「時間値の指定」 を参照してください。
C.1. 選択基準フィールドタイプ リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
選択基準に指定するフィールドは特定のタイプです。各フィールドのヘルプ出力では、フィールドタイプがかっこで囲まれて表示されます。以下のヘルプ出力例は、フィールドタイプ
string、string_list、number、パーセント、size、および time を示す出力を示しています。
表C.1「選択基準フィールドタイプ」 では、選択基準フィールドタイプについて説明しています。
| フィールドタイプ | 説明 |
|---|---|
| number | 正の整数値。 |
| サイズ | 単位付きの浮動小数点値。指定しない場合はデフォルトで 'm' 単位が使用されます。 |
| パーセント | % 接尾辞あり、または無しの正の整数。 |
| 文字列 | 引用符 ' または " で囲まれた文字または引用符で囲まれていない文字。 |
| 文字列リスト | [ ] または { } で囲まれた文字列と "all items must match" または "at least one item must match" 演算子で区切られた要素。 |
フィールドには以下の値を指定できます。
- フィールドタイプの具体的な値。
stringフィールドタイプのフィールドを含む正規表現("+~" 演算子など)。- 予約済みの値。たとえば、-1、unknown、undefined、undef はすべて未定義の数値を示すキーワードです。
- フィールドの値に定義された同意義。元の値のように、値の一連の条件に使用できます。フィールド値の定義済み同意語の一覧については、表C.14「選択基準同意義」 を参照してください。
C.2. 選択基準演算子 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
表C.2「選択基準グループ演算子」 では、選択基準グループ演算子について説明しています。
| グループ演算子 | 説明 |
|---|---|
| ( ) | グループステートメントに使用 |
| [ ] | 文字列を文字列リストにグループ化するために使用 (完全一致) |
| { } | 文字列を文字列リストにグループ化するために使用 (サブセット一致) |
表C.3「選択基準比較演算子」 では、選択基準比較演算子それらの演算子を使用できるフィールドタイプについて説明しています。
| 比較演算子 | 説明 | フィールドタイプ |
|---|---|---|
| =~ | 一致する正規表現 | regex |
| !~ | 一致しない正規表現 | regex |
| = | 等しい | 数字、サイズ、パーセント、文字列、文字列リスト、時間 |
| != | 等しくない | 数字、サイズ、パーセント、文字列、文字列リスト、時間 |
| >= | より大か等しい | 数字、サイズ、パーセント、時間 |
| > | より大きい | 数字、サイズ、パーセント、時間 |
| <= | より小か等しい | 数字、サイズ、パーセント、時間 |
| < | より小さい | 数字、サイズ、パーセント、時間 |
| since | 指定された時間以降 (>= と同じ) | time |
| after | 指定された時間よりも後 (> と同じ) | time |
| until | 指定された時間まで (<= と同じ) | time |
| before | 指定された時間よりも前 (< と同じ) | time |
表C.4「選択基準論理演算子およびグループ演算子」 では、選択基準の論理およびグループ化の演算子を説明します。
| 論理およびグループ演算子 | 説明 |
|---|---|
| && | すべてのフィールドが一致する必要がある |
| , | すべてのフィールドが一致する必要がある (&& と同じ) |
| || | 少なくとも 1 つのフィールドが一致する必要がある |
| # | 少なくとも 1 つのフィールドが一致する必要がある (|| と同じ) |
| ! | 論理否定 |
| ( | 左かっこ (グループ演算子) |
| ) | 右かっこ (グループ演算子) |
| [ | リストの始まり (グループ演算子) |
| ] | リストの終わり (グループ演算子) |
| { | リストサブセットの始まり (グループ演算子) |
| } | リストサブセットの終わり (グループ演算子) |
C.3. 選択基準フィールド リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、指定できる論理および物理ボリューム選択基準について説明します。
表C.5「論理ボリュームフィールド」 では、論理ボリュームフィールドとそのフィールドタイプについて説明しています。
| 論理ボリュームフィールド | 説明 | フィールドタイプ |
|---|---|---|
lv_uuid | 一意の ID | 文字列 |
lv_name | 名前 (内部使用のために作成された論理ボリュームはかっこで囲まれます) | 文字列 |
lv_full_name | ボリュームグループを含む論理ボリュームの完全な名前 (VG/LV など) | string |
lv_path | 論理ボリュームの完全なパス名 (内部論理ボリュームの場合は空白) | string |
lv_dm_path | 論理ボリューム用の内部デバイスマッパーパス名( /dev/mapper ディレクトリー内) | string |
lv_parent | 別の論理ボリュームのコンポーネントである論理ボリュームの場合は、親論理ボリューム | string |
lv_layout | 論理ボリュームレイアウト | string list |
lv_role | 論理ボリュームロール | string list |
lv_initial_image_sync | ミラー/RAID イメージで最初の再同期が行われた場合に設定される | number |
lv_image_synced | ミラー/RAID イメージが同期された場合に設定される | number |
lv_merging | スナップショット論理ボリュームが元の論理ボリュームにマージされる場合に設定される | number |
lv_converting | 論理ボリュームが変換される場合に設定される | number |
lv_allocation_policy | 論理ボリューム割り当てポリシー | 文字列 |
lv_allocation_locked | 論理ボリュームが割り当ての変更に対してロックされている場合に設定される | 数値 |
lv_fixed_minor | 論理ボリュームで固定マイナー番号が割り当てられた場合に設定される | number |
lv_merge_failed | スナップショットマージが失敗した場合に設定される | number |
lv_snapshot_invalid | スナップショット論理ボリュームが無効な場合に設定される | number |
lv_skip_activation | アクティブ化のときに論理ボリュームが省略された場合に設定される | number |
lv_when_full | シンプールの場合は、いっぱいになったときの動作 | 文字列 |
lv_active | 論理ボリュームのアクティブな状態 | 文字列 |
lv_active_locally | 論理ボリュームがローカルでアクティブな場合に設定される | 数値 |
lv_active_remotely | 論理ボリュームがリモートでアクティブな場合に設定される | 数値 |
lv_active_exclusively | 論理ボリュームが排他的にアクティブな場合に設定される | 数値 |
lv_major | 永続的なメジャー番号または -1 (永続的でない場合) | 数値 |
lv_minor | 永続的なマイナー番号または -1 (永続的でない場合) | 数値 |
lv_read_ahead | 現在の単位の先読み設定 | size |
lv_size | 現在の単位の論理ボリュームのサイズ | size |
lv_metadata_size | シンプールおよびキャッシュプールの場合は、メタデータを保持する論理ボリュームのサイズ | size |
seg_count | 論理ボリューム内のセグメント数 | number |
origin | スナップショットの場合は、この論理ボリュームの元のデバイス | 文字列 |
origin_size | スナップショットの場合は、この論理ボリュームの元のデバイスのサイズ | size |
data_percent | スナップショットおよびシンプールとボリュームの場合は、使用領域の割合 (論理ボリュームがアクティブなとき) | percent |
snap_percent | スナップショットの場合は、使用領域の割合 (論理ボリュームがアクティブなとき) | パーセント |
metadata_percent | シンプールの場合は、メタデータの使用領域の割合 (論理ボリュームがアクティブなとき) | パーセント |
copy_percent | RAID、ミラー、および pvmove の場合は、現在同期されている領域の割合 | パーセント |
sync_percent | RAID、ミラー、および pvmove の場合は、現在同期されている領域の割合 | パーセント |
raid_mismatch_count | RAID の場合は、検出または修復された不一致の数 | number |
raid_sync_action | RAID の場合は、実行中の現在の同期アクション | string |
raid_write_behind | RAID1 の場合は、writemostly デバイスに許可された未処理の書き込みの数 | number |
raid_min_recovery_rate | RAID1 の場合は、最小リカバリー I/O ロード (kiB/sec/disk 単位) | 数値 |
raid_max_recovery_rate | RAID1 の場合は、最大リカバリー I/O ロード (kiB/sec/disk 単位) | 数値 |
move_pv | pvmove の場合は、pvmove で作成された一時的な論理ボリュームの元となる物理ボリューム | 文字列 |
convert_lv | lvconvert の場合は、lvconvert で作成された一時的な論理ボリュームの名前 | 文字列 |
mirror_log | ミラーの場合は、同期ログを保持する論理ボリューム | string |
data_lv | シンプールおよびキャッシュプールの場合は、関連データを保持する論理ボリューム | string |
metadata_lv | シンプールおよびキャッシュプールの場合は、関連メタデータを保持する論理ボリューム | string |
pool_lv | シンボリュームの場合は、このボリュームのシンプール論理ボリューム | string |
lv_tags | タグ (存在する場合) | string list |
lv_profile | この論理ボリュームに割り当てられた設定プロファイル | 文字列 |
lv_time | 論理ボリュームの作成時刻 (既知の場合) | 時間 |
lv_host | 論理ボリュームの作成ホスト (既知の場合) | 文字列 |
lv_modules | この論理ボリュームに必要なカーネル device-mapper モジュール | string list |
表C.6「論理ボリュームデバイスの情報とステータスを組み合わせたフィールド」 では、論理デバイス情報と論理デバイスステータスの両方を組み合わせる論理ボリュームデバイスフィールドについて説明しています。
| 論理ボリュームフィールド | 説明 | フィールドタイプ |
|---|---|---|
lv_attr | 論理ボリュームデバイス情報と論理ボリュームステータスの両方に基づいて選択します。 | string |
表C.7「論理ボリュームデバイス情報フィールド」 では、論理ボリュームデバイス情報フィールドとそのフィールドタイプについて説明しています。
| 論理ボリュームフィールド | 説明 | フィールドタイプ |
|---|---|---|
lv_kernel_major | 現在割り当てられているメジャー番号または -1 (論理ボリュームがアクティブでない場合) | 数値 |
lv_kernel_minor | 現在割り当てられているマイナー番号または -1 (論理ボリュームがアクティブでない場合) | 数値 |
lv_kernel_read_ahead | 現在の単位の現在使用されている先読み設定 | サイズ |
lv_permissions | 論理ボリュームパーミッション | 文字列 |
lv_suspended | 論理ボリュームが一時停止している場合に設定される | 数値 |
lv_live_table | 論理ボリュームにライブテーブルが存在する場合に設定される | 数値 |
lv_inactive_table | 論理ボリュームに非アクティブなテーブルが存在する場合に設定される | number |
lv_device_open | 論理ボリュームデバイスがオープンな場合に設定される | number |
表C.8「論理ボリュームデバイスステータスフィールド」 では、論理ボリュームデバイスステータスフィールドとそのフィールドタイプについて説明しています。
| 論理ボリュームフィールド | 説明 | フィールドタイプ |
|---|---|---|
cache_total_blocks | キャッシュブロック合計数 | number |
cache_used_blocks | 使用済みキャッシュブロック数 | number |
cache_dirty_blocks | ダーティーキャッシュブロック数 | number |
cache_read_hits | キャッシュ読み取りヒット数 | number |
cache_read_misses | キャッシュ読み取りミス数 | number |
cache_write_hits | キャッシュ書き込みヒット数 | 数値 |
cache_write_misses | キャッシュ書き込みミス数 | 数値 |
lv_health_status | 論理ボリューム正常性状態 | string |
表C.9「物理ボリュームラベルフィールド」 では、物理ボリュームラベルフィールドとそのフィールドタイプについて説明しています。
| 物理ボリュームフィールド | 説明 | フィールドタイプ |
|---|---|---|
pv_fmt | メタデータのタイプ | string |
pv_uuid | 一意の ID | string |
dev_size | 基礎となるデバイスのサイズ (現在の単位) | size |
pv_name | 名前 | 文字列 |
pv_mda_free | このデバイスの空きメタデータ領域 (現在の単位) | size |
pv_mda_size | このデバイスの最小メタデータ領域のサイズ (現在の単位) | size |
表C.5「論理ボリュームフィールド」 では、物理ボリュームフィールドとそのフィールドタイプについて説明しています。
| 物理ボリュームフィールド | 説明 | フィールドタイプ |
|---|---|---|
pe_start | 基礎となるデバイスのデータの始まりに対するオフセット | number |
pv_size | 物理ボリュームのサイズ (現在の単位) | size |
pv_free | 未割り当て領域の合計サイズ (現在の単位) | size |
pv_used | 割り当て済み領域の合計サイズ (現在の単位) | size |
pv_attr | さまざまな属性 | 文字列 |
pv_allocatable | このデバイスを割り当てに使用できる場合に設定される | 数値 |
pv_exported | このデバイスがエクスポートされる場合に設定される | number |
pv_missing | このデバイスがシステムで不明な場合に設定される | number |
pv_pe_count | 物理エクステントの合計数 | number |
pv_pe_alloc_count | 割り当て済み物理エクステントの合計数 | number |
pv_tags | タグ (存在する場合) | string list |
pv_mda_count | このデバイスのメタデータ領域の数 | 数値 |
pv_mda_used_count | このデバイスの使用中メタデータ領域の数 | 数値 |
pv_ba_start | 基礎となるデバイスの PV ブートローダー領域の始まりに対するオフセット (現在の単位) | size |
pv_ba_size | PV ブートローダー領域のサイズ (現在の単位) | size |
表C.11「ボリュームグループフィールド」 では、ボリュームグループフィールドとそのフィールドタイプについて説明しています。
| ボリュームグループフィールド | 説明 | フィールドタイプ |
|---|---|---|
vg_fmt | メタデータのタイプ | string |
vg_uuid | 一意の ID | string |
vg_name | 名前 | 文字列 |
vg_attr | さまざまな属性 | 文字列 |
vg_permissions | ボリュームグループパーミッション | 文字列 |
vg_extendable | ボリュームグループが拡張可能である場合に設定される | 数値 |
vg_exported | ボリュームグループがエクスポートされる場合に設定される | 数値 |
vg_partial | ボリュームグループが部分的である場合に設定される | 数値 |
vg_allocation_policy | ボリュームグループ割り当てポリシー | 文字列 |
vg_clustered | ボリュームグループがクラスター化されている場合に設定される | 数値 |
vg_size | ボリュームグループの合計サイズ (現在の単位) | サイズ |
vg_free | 空き領域の合計サイズ (現在の単位) | サイズ |
vg_sysid | ボリュームグループのシステム ID (所有しているホストを示す) | string |
vg_systemid | ボリュームグループのシステム ID (所有しているホストを示す) | string |
vg_extent_size | 物理エクステントのサイズ (現在の単位) | size |
vg_extent_count | 物理エクステントの合計数 | 数値 |
vg_free_count | 未割り当て物理エクステントの合計数 | 数値 |
max_lv | ボリュームグループ内で許可される論理ボリュームの最大数 (無制限の場合は 0) | 数値 |
max_pv | ボリュームグループ内で許可される物理ボリュームの最大数 (無制限の場合は 0) | 数値 |
pv_count | 物理ボリュームの数 | 数値 |
lv_count | 論理ボリュームの数 | 数値 |
snap_count | スナップショットの数 | 数値 |
vg_seqno | 内部メタデータの改訂番号 — 変更されるたびに増分される | 数値 |
vg_tags | タグ (存在する場合) | string list |
vg_profile | このボリュームグループに割り当てられた設定プロファイル | string |
vg_mda_count | このボリュームグループのメタデータ領域の数 | number |
vg_mda_used_count | このボリュームグループの使用中メタデータ領域の数 | number |
vg_mda_free | このボリュームグループの空きメタデータ領域 (現在の単位) | サイズ |
vg_mda_size | このボリュームグループの最小メタデータ領域のサイズ (現在の単位) | サイズ |
vg_mda_copies | ボリュームグループの使用中メタデータ領域のターゲット数 | number |
表C.12「論理ボリュームセグメントフィールド」 では、論理ボリュームセグメントフィールドとそのフィールドタイプについて説明しています。
| 論理ボリュームセグメントフィールド | 説明 | フィールドタイプ |
|---|---|---|
segtype | 論理ボリュームセグメントのタイプ | string |
stripes | ストライプまたはミラーレッグの数 | 数値 |
stripesize | ストライプの場合は、次のデバイスに切り替わる前の該当するデバイスに配置されたデータのサイズ | サイズ |
stripe_size | ストライプの場合は、次のデバイスに切り替わる前の該当するデバイスに配置されたデータのサイズ | サイズ |
regionsize | ミラーの場合は、デバイスを同期するときにコピーされたデータの単位 | サイズ |
region_size | ミラーの場合は、デバイスを同期するときにコピーされたデータの単位 | サイズ |
chunksize | スナップショットの場合は、変更を追跡するときに使用されたデータの単位 | size |
chunk_size | スナップショットの場合は、変更を追跡するときに使用されたデータの単位 | size |
thin_count | シンプールの場合は、このプール内のシンボリュームの数 | number |
discards | シンプールの場合は、破棄が処理される方法 | string |
cachemode | キャッシュプールの場合は、書き込みがキャッシュされる方法 | string |
zero | シンプールの場合は、ゼロ化が有効なとき | number |
transaction_id | シンプールの場合は、トランザクション ID | 数値 |
thin_id | シンボリュームの場合は、シンデバイス ID | 数値 |
seg_start | セグメントの始まりに対する論理ボリューム内のオフセット (現在の単位) | サイズ |
seg_start_pe | セグメントの始まりに対する論理ボリューム内のオフセット (物理エクステント数) | 数値 |
seg_size | セグメントのサイズ (現在の単位) | サイズ |
seg_size_pe | セグメントのサイズ (物理エクステント数) | サイズ |
seg_tags | タグ (存在する場合) | 文字列リスト |
seg_pe_ranges | 基礎となるデバイスの物理エクステントの範囲 (コマンドライン形式) | string |
devices | 開始エクステント番号で使用されている基礎となるデバイス | 文字列 |
seg_monitor | セグメントの dmeventd 監視ステータス | string |
cache_policy | キャッシュポリシー (キャッシュされたセグメントのみ) | string |
cache_settings | キャッシュ設定/パラメーター (キャッシュされたセグメントのみ) | string list |
表C.13「物理ボリュームセグメントフィールド」 では、物理ボリュームセグメントフィールドとそのフィールドタイプについて説明しています。
| 物理ボリュームセグメントフィールド | 説明 | フィールドタイプ |
|---|---|---|
pvseg_start | セグメントの始まりの物理エクステント番号 | number |
pvseg_size | セグメントのエクステントの数 | number |
表C.14「選択基準同意義」 には、フィールド値に使用できる同意語が一覧表示されています。これらの同意語は選択基準と元の値と同様な値で使用できます。この表では、"" のフィールド値は、空の文字列を示し、
-S 'field_name=""' と指定することにより一致させることができます。
この表では、0 または 1 で示されたフィールドはバイナリー値を示します。レポートツールに
--binary オプションを指定できます。これにより、バイナリーフィールドは、この表で "some text" または "" と示されているものではなく、0 または 1 を表示できます。
| フィールド | フィールド値 | 同意義 |
|---|---|---|
pv_allocatable | allocatable | 1 |
pv_allocatable | "" | 0 |
pv_exported | exported | 1 |
pv_exported | "" | 0 |
pv_missing | なし | 1 |
pv_missing | "" | 0 |
vg_extendable | extendable | 1 |
vg_extendable | "" | 0 |
vg_exported | exported | 1 |
vg_exported | "" | 0 |
vg_partial | partial | 1 |
vg_partial | "" | 0 |
vg_clustered | clustered | 1 |
vg_clustered | "" | 0 |
vg_permissions | writable | rw、read-write |
vg_permissions | read-only | r、ro |
vg_mda_copies | unmanaged | unknown、undefined、undef、-1 |
lv_initial_image_sync | initial image sync | sync、1 |
lv_initial_image_sync | "" | 0 |
lv_image_synced | image synced | synced、1 |
lv_image_synce | "" | 0 |
lv_merging | merging | 1 |
lv_merging | "" | 0 |
lv_converting | converting | 1 |
lv_converting | "" | 0 |
lv_allocation_locked | allocation locked | locked、1 |
lv_allocation_locked | "" | 0 |
lv_fixed_minor | fixed minor | fixed、1 |
lv_fixed_minor | "" | 0 |
lv_active_locally | active locally | active、locally、1 |
lv_active_locally | "" | 0 |
lv_active_remotely | active remotely | active、remotely、1 |
lv_active_remotely | "" | 0 |
lv_active_exclusively | active exclusively | active、exclusively、1 |
lv_active_exclusively | "" | 0 |
lv_merge_failed | merge failed | failed、1 |
lv_merge_failed | "" | 0 |
lv_snapshot_invalid | snapshot invalid | invalid、1 |
lv_snapshot_invalid | "" | 0 |
lv_suspended | suspended | 1 |
lv_suspended | "" | 0 |
lv_live_table | live table present | live table、live、1 |
lv_live_table | "" | 0 |
lv_inactive_table | inactive table present | inactive table、inactive、1 |
lv_inactive_table | "" | 0 |
lv_device_open | open | 1 |
lv_device_open | "" | 0 |
lv_skip_activation | skip activation | skip、1 |
lv_skip_activation | "" | 0 |
zero | zero | 1 |
zero | "" | 0 |
lv_permissions | writable | rw、read-write |
lv_permissions | read-only | r、ro |
lv_permissions | read-only-override | ro-override、r-override、R |
lv_when_full | error | error when full、error if no space |
lv_when_full | queue | queue when full、queue if no space |
lv_when_full | "" | undefined |
cache_policy | "" | undefined |
seg_monitor | "" | undefined |
lv_health_status | "" | undefined |
C.4. 時間値の指定 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
LVM 選択に時間値を指定する場合は、「標準的な時間選択形式」 と 「自由な形式の時間選択形式」 で説明されたように、標準化された時間仕様形式またはより自由な形式のいずれかを使用できます。
/etc/lvm/lvm.conf 設定ファイルの report/time format 設定オプションを使用して、時間値の表示方法を指定できます。このオプションの指定に関する情報は、lvm.conf ファイルで提供されています。
C.4.1. 標準的な時間選択形式 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
LVM 選択の時間値は、以下の形式で指定できます。
date time timezone
date time timezone
表C.15「時間仕様形式」 では、これらの時間値を指定するときに使用できる形式について簡単に説明しています。
| フィールド | フィールド値 | |||
|---|---|---|---|---|
| date |
| |||
| 時間 |
| |||
| timezone (常に + または - 記号が使用される) |
|
完全な日付/時間仕様は YYYY-MM-DD hh:mm:ss です。ユーザーは日付/時間部分を右から左の順序で省略できます。これらの部分が省略されると、秒単位で範囲が自動的に計算されます。以下に例を示します。
- "2015-07-07 9:51" は、"2015-07-07 9:51:00"〜"2015-07-07 9:51:59" の範囲を意味します。
- "2015-07" は "2015-07-01 0:00:00"〜"2015-07-31 23:59:59" の範囲を意味します。
- "2015" は "2015-01-01 0:00:00"〜"2015-12-31 23:59:59" の範囲を意味します。
以下の例は、選択基準で使用される日付/時間仕様を示しています。
lvs -S 'time since "2015-07-07 9:51"' lvs -S 'time = "2015-07"" lvs -S 'time = "2015"'
lvs -S 'time since "2015-07-07 9:51"'
lvs -S 'time = "2015-07""
lvs -S 'time = "2015"'
C.4.2. 自由な形式の時間選択形式 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
LVM 選択基準の日付/時間仕様は、以下の項目を使用して指定できます。
- 平日の名前 ("Sunday"〜"Saturday" または省略した "Sun"〜"Sat")
- 特定の時間のラベル ("noon"、"midnight")
- 現在の日に相対する日のラベル ("today"、"yesterday")
- 今日からの相対的なオフセット値を使用した特定の時間 (N は数字)
- ( "N" "seconds"/"minutes"/"hours"/"days"/"weeks"/"years" "ago")
- ( "N" "secs"/"mins"/"hrs" ... "ago")
- ( "N" "s"/"m"/"h" ... "ago")
- hh:mm:ss 形式または AM/PM 接尾辞を使用した時間形式
- 月の名前 ("January"〜"December" または省略した "Jan"〜"Dec")
以下の例は、選択基準で使用される
freeform 日付/時間指定を示しています。
C.5. 選択基準表示の例 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、LVM 表示コマンドの選択基準を使用する方法を示す一連の例を提供します。このセクションの例では、選択基準が使用されていない場合に以下の出力を提供する LVM ボリュームが設定されたシステムを使用します。
以下のコマンドは、名前が "lvol[13]" のすべての論理ボリュームを正規表現を使用して表示します。
lvs -a -o+layout,role -S 'lv_name=~lvol[13]'
# lvs -a -o+layout,role -S 'lv_name=~lvol[13]'
LV VG Attr LSize Pool Origin Data% Layout Role
lvol1 vg Vwi-a-tz-- 1.00g pool 0.00 thin,sparse public
lvol3 vg Vwi---tz-k 1.00g pool lvol2 thin,sparse public,snapshot,thinsnapshot
以下のコマンドは、サイズが 500 メガバイトを超えるすべての論理ボリュームを表示します。
以下のコマンドは、論理ボリュームロールとして
thin を含むすべての論理ボリュームを表示します。これは、シンプールの構築で論理ボリュームが使用されていることを示しています。この例では、表示でのサブセットを示すためにかっこ ({}) を使用します。
lvs -a -o+layout,role -S 'lv_role={thin}'
# lvs -a -o+layout,role -S 'lv_role={thin}'
LV VG Attr LSize Layout Role
[pool_tdata] vg Twi-ao---- 100.00m linear private,thin,pool,data
[pool_tmeta] vg ewi-ao---- 4.00m linear private,thin,pool,metadata
以下のコマンドは、使用可能なすべての最上位論理ボリューム (ロールが "public" の論理ボリューム) を表示します。サブセットを示すために文字列リストでかっこ({})を指定しない場合は、デフォルトで想定されるものと見なされます。
lv_role=public を指定することは lv_role={public} を指定することと同じです。
以下のコマンドは、シンレイアウトとともにすべての論理ボリュームを表示します。
以下のコマンドは、"sparse,thin" に完全一致するレイアウトフィールドとともにすべての論理ボリュームを表示します。一致候補を検出するには文字列リストメンバーを指定する必要がないことに注意してください。
以下のコマンドはシンおよびスパース論理ボリュームである論理ボリュームの論理ボリューム名を表示します。選択基準に使用されるフィールドのリストは表示するフィールドのリストと同じである必要がないことに注意してください。
C.6. 選択基準処理の例 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、LVM 論理ボリュームを処理するコマンドで選択基準を使用する方法を示す一連の例を提供します。
この例は、シンスナップショットを含む論理ボリュームのグループの初期設定を示しています。シンスナップショットには "skip activation" フラグがデフォルトで設定されています。また、この例には、"skip activation" フラグが設定された論理ボリューム
lvol4 も含まれます。
以下のコマンドは、シンスナップショットであるすべての論理ボリュームから skip activation フラグを削除します。
lvchange --setactivationskip n -S 'role=thinsnapshot'
# lvchange --setactivationskip n -S 'role=thinsnapshot'
Logical volume "lvol3" changed.
以下のコマンドは、lvchange コマンドの実行後に論理ボリュームの設定を表示します。"skip activation" フラグはシンスナップショットではない論理ボリュームから設定解除されていないことに注意してください。
以下のコマンドは、追加のシン作成元/スナップショットボリュームが作成されたあとに論理ボリュームの設定を表示します。
以下のコマンドは、シンスナップショットボリュームであり、作成元のボリュームが
lvol2 の論理ボリュームをアクティブ化します。
アイテム全体から 1 つのアイテムに一致する選択基準を指定するときにアイテム全体に対してコマンドを実行する場合は、アイテム全体が処理されます。たとえば、ボリュームグループから 1 つまたは複数のアイテムを選択するときにボリュームグループを変更する場合、ボリュームグループ全体が選択されます。この例では、ボリュームグループ
vg の一部である論理ボリューム lvol1 を選択します。ボリュームグループ vg 内のすべての論理ボリュームが処理されます。
以下の例は、より複雑な選択基準ステートメントを示しています。この例では、すべての論理ボリュームに元のロールがあり、名前が lvol[456] である場合、または論理ボリュームのサイズが 5 ギガバイトを超える場合、すべての論理ボリュームに
mytag のタグが付けられます。
lvchange --addtag mytag -S '(role=origin && lv_name=~lvol[456]) || lv_size > 5g'
# lvchange --addtag mytag -S '(role=origin && lv_name=~lvol[456]) || lv_size > 5g'
Logical volume "root" changed.
Logical volume "lvol5" changed.
付録D LVM オブジェクトタグ リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
LVM タグは、同じタイプの LVM2 オブジェクトを 1 つのグループにまとめるのに使用される用語です。タグは、物理ボリューム、ボリュームグループ、論理ボリュームなどのオブジェクトに割り当てることができます。クラスター設定ではタグをホストに割り当てることができます。
タグは、コマンドラインで引数 PV、VG、または LV の代わりに表示することができます。あいまいさを避けるために、タグの先頭には @ を付ける必要があります。各タグは、コマンドラインでの位置により期待されるタイプのタグを所有するすべてのオブジェクトに置き換えることでデプロイメントされます。
LVM タグは、最大 1024 文字の文字列です。LVM タグはハイフンで開始できません。
有効なタグには、限定された範囲の文字のみで設定されます。使用可能な文字は [A-Za-z0-9_+.-] です。Red Hat Enterprise Linux 6.1 リリースでは、使用可能な文字のリストが拡大され、タグには "/"、"="、"!"、":"、"#"、および "&" の文字が使用できるようになりました。
タグを付けることができるのは、ボリュームグループ内のオブジェクトのみです。物理ボリュームは、ボリュームグループから削除されるとタグを失います。これは、タグがボリュームグループメタデータの一部として保存され、物理ボリュームが削除されると削除されるためです。
以下のコマンドは、
database タグを持つすべての論理ボリュームを一覧表示します。
lvs @database
# lvs @database
以下のコマンドは、現在アクティブなホストタグをリスト表示します。
lvm tags
# lvm tags
D.1. オブジェクトタグの追加と削除 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
物理ボリュームからタグを追加または削除するには、pvchange コマンドの
--addtag または --deltag オプションを使用します。
ボリュームグループからタグを追加または削除するには、vgchange コマンドまたは vgcreate コマンドの
--addtag オプションまたは --deltag オプションを使用します。
論理ボリュームからタグを追加または削除するには、lvchange コマンドまたは lvcreate コマンドの
--addtag オプションまたは --deltag オプションを使用します。
1 つの pvchange コマンド、vgchange コマンド、または lvchange コマンドでは、複数の
--addtag 引数および --deltag 引数を指定できます。たとえば、以下のコマンドは、T9 と T10 のタグを削除し、T13 および T14 タグをボリュームグループ 付与 に追加します。
vgchange --deltag T9 --deltag T10 --addtag T13 --addtag T14 grant
# vgchange --deltag T9 --deltag T10 --addtag T13 --addtag T14 grant
D.2. ホストタグ リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
クラスター設定では、設定ファイルにホストタグを定義できます。
tags セクションに hosttags = 1 を設定すると、マシンのホスト名を使用してホストタグが自動的に定義されます。これにより、すべてのマシンに複製できる共通の設定ファイルを使用して、ファイルのコピーを同じにすることができますが、ホスト名によって動作がマシン間で異なる場合があります。
設定ファイルに関する情報は、付録B LVM 設定ファイル を参照してください。
各ホストタグには、存在する場合は余分の設定ファイルが読み込まれます (lvm_hosttag.conf)。そのファイルで新しいタグが定義されている場合は、読み込むファイルのリストに設定ファイルが追加されます。
たとえば、設定ファイルの以下のエントリーは常に
tag1 を定義し、ホスト名が host1 の場合は tag2 を定義します。
tags { tag1 { } tag2 { host_list = ["host1"] } }
tags { tag1 { } tag2 { host_list = ["host1"] } }
D.3. タグを使用したアクティブ化の制御 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
特定の論理ボリュームのみがホスト上でアクティブ化されるように設定ファイルで指定することができます。たとえば、次のエントリーはアクティベーション要求のフィルターとして機能し( vgchange -ayなど)、
vg1/lvol0 と、そのホストのメタデータにある database タグを持つ論理ボリュームまたはボリュームグループのみをアクティベートします。
activation { volume_list = ["vg1/lvol0", "@database" ] }
activation { volume_list = ["vg1/lvol0", "@database" ] }
いずれかのメタデータタグがマシンのホストタグのいずれかに一致する場合のみに一致する要因となる特別一致記号 "@*" が存在します。
別の例として、クラスター内のすべてのマシンに、以下のエントリーがる状況を考慮してください。
tags { hosttags = 1 }
tags { hosttags = 1 }
ホスト
db2 でのみ vg1/lvol2 をアクティベートする場合は、以下を行います。
- クラスター内の任意のホストから lvchange --addtag @db2 vg1/lvol2 を実行します。
- lvchange -ay vg1/lvol2 を実行します。
このソリューションでは、ボリュームグループのメタデータ内にホスト名を保存します。
付録E LVM ボリュームグループメタデータ リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
ボリュームグループの設定の詳細は、メタデータと呼ばれます。デフォルトでは、メタデータの複製コピーが、ボリュームグループ内で、すべての物理ボリュームの、すべてのメタデータ領域に保存されています。LVM ボリュームグループメタデータは ASCII として保存されます。
ボリュームグループに物理ボリュームが多数含まれる場合は、メタデータのコピーが過剰になるため、効率的ではありません。pvcreate コマンドの
--metadatacopies 0 オプションを使用すると、メタデータのコピーなしで物理ボリュームを作成できます。物理ボリュームに含まれるメタデータコピーの数は、一度選択すると後で変更することはできません。コピー数を 0 と選択すると、設定変更時の更新が迅速になります。しかし、すべてのボリュームグループには常に 1 つのメタデータ領域を持つ物理ボリュームが最低 1 つ含まれる必要があることに注意してください (高度な設定を使用して、ボリュームグループメタデータをファイルシステムに保存できる場合を除く)。後でボリュームグループを分割する予定がある場合は、それぞれのボリュームグループにメタデータのコピーが 1 つ以上必要になります。
核となるメタデータは ASCII 形式で保存されます。メタデータ領域は循環バッファーです。新規のメタデータは古いメタデータに追記され、その開始点へのポインターが更新されます。
メタデータ領域のサイズは、pvcreate コマンドの
--metadatasize オプションを使用して指定できます。ボリュームグループに物理ボリュームや論理ボリュームが数百もある場合は、デフォルトのサイズでは小さすぎる場合があります。
E.1. 物理ボリュームラベル リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
pvcreate コマンドは、デフォルトで物理ボリュームラベルを 2 番目の 512 バイトセクターに配置します。このラベルは、最初の 4 つのセクターのいずれかに配置できます。これは、物理ボリュームラベルをスキャンする LVM ツールが、この 4 つのセクターをチェックするためです。物理ボリュームラベルは文字列
LABELONE で始まります。
物理ボリュームラベルに含まれる内容:
- 物理ボリューム UUID
- ブロックデバイスの容量 (バイト)
- NULL で終了するデータ領域ロケーションのリスト
- NULL で終了するメタデータ領域ロケーションのリスト
メタデータロケーションは、オフセットおよびサイズ (バイト単位) で保存されます。ラベルには 15 ロケーション用のスペースがありますが、現在、LVM ツールでは、そのうち 3 つしか使いません。データ領域が 1 つと、最大 2 つのメタデータ領域です。
E.2. メタデータの内容 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
ボリュームグループメタデータに含まれる内容:
- それが作成された手段と日時の情報
- ボリュームグループに関する情報
ボリュームグループ情報に含まれる内容:
- 名前と一意識別子
- バージョン番号 (メタデータが更新される度に増加します)
- プロパティー (read、write、resizable など)
- そこに含まれる物理ボリュームと論理ボリュームの数に対する管理制限
- エクステントのサイズ (512 バイトで定義されるセクターの単位)
- ボリュームグループを設定する物理ボリュームのリスト (順序が付けられていません)。リストには以下が含まれます。
- UUID (物理ボリュームを格納するブロックデバイスの確認に使用)
- プロパティー (物理ボリュームの割り当て可能性など)
- 物理ボリューム内の 1 番目のエクステントの開始点までのオフセット (セクターで表示)
- エクステントの数
- 論理ボリュームのリスト (順序は付けられていません)。以下の要素で設定されています。
- 論理ボリュームセグメントのリスト (順序は付けられています)。各セグメントについて、メタデータに、物理ボリュームセグメントまたは論理ボリュームセグメントリスト (順序は付けられています) に適用されるマッピングが含まれます。
E.3. サンプルのメタデータ リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
以下は、
myvg という名前のボリュームグループの LVM ボリュームグループメタデータの例です。
付録F 改訂履歴 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
| 改訂履歴 | |||
|---|---|---|---|
| 改訂 4.0-2 | Wed Aug 7 2019 | ||
| |||
| 改訂 3.0-2 | Thu Oct 4 2018 | ||
| |||
| 改訂 2.0-2 | Thu Mar 15 2018 | ||
| |||
| 改訂 2.0-1 | Thu Dec 14 2017 | ||
| |||
| 改訂 1.0-11 | Wed Jul 19 2017 | ||
| |||
| 改訂 1.0-9 | Mon May 15 2017 | ||
| |||
| 改訂 1.0-7 | Mon Mar 27 2017 | ||
| |||
| 改訂 1.0-5 | Mon Oct 17 2016 | ||
| |||
| 改訂 1.0-4 | Wed Aug 17 2016 | ||
| |||
| 改訂 0.3-4 | Mon Nov 9 2015 | ||
| |||
| 改訂 0.3-2 | Wed Aug 19 2015 | ||
| |||
| 改訂 0.2-7 | Mon Feb 16 2015 | ||
| |||
| 改訂 0.2-6 | Thu Dec 11 2014 | ||
| |||
| 改訂 0.1-22 | Mon Jun 2 2014 | ||
| |||
| 改訂 0.1-1 | Wed Jan 16 2013 | ||
| |||
索引
シンボル
- /lib/udev/rules.d ディレクトリー, udev のデバイスマッパーとの統合
- アーカイブ ファイル, ボリュームグループメタデータのバックアップ
- アーカイブファイル, 論理ボリュームのバックアップ
- エクステント
- 割り当て, ボリュームグループの作成, LVM の割り当て
- 定義, ボリュームグループ, ボリュームグループの作成
- オンラインデータ移動, オンラインデータ移動
- キャッシュファイル
- キャッシュボリューム, キャッシュボリューム
- キャッシュ論理ボリューム
- 作成, LVM 論理ボリュームの作成
- クラスター環境, Red Hat High Availability クラスターの LVM 論理ボリューム
- コマンドラインユニット, CLI コマンドの使用
- サイズ変更
- 物理ボリューム, 物理ボリュームのサイズ変更
- シンプロビジョニングされたスナップショットボリューム, シンプロビジョニングされたスナップショットボリューム
- シンプロビジョニングされた論理ボリューム, シンプロビジョニングされた論理ボリューム (シンボリューム)
- シンプロビジョニングのスナップショット論理ボリューム
- シンボリューム
- スキャン
- ブロックデバイス, ブロックデバイスのスキャン
- ストライプ化論理ボリューム
- 作成, ストライプ化ボリュームの作成
- 作成例, ストライプ化論理ボリュームの作成
- 定義, ストライプ化論理ボリューム
- 拡大, ストライプ化ボリュームの拡張
- 拡張, ストライプ化ボリュームの拡張
- スナップショットボリューム
- 定義, スナップショットボリューム
- スナップショット論理ボリューム
- 作成, スナップショットボリュームの作成
- デバイスのスキャン、フィルター, フィルターを使用した LVM デバイススキャンの制御
- デバイスサイズ、最大, ボリュームグループの作成
- デバイススキャンフィルター, フィルターを使用した LVM デバイススキャンの制御
- デバイスパス名, CLI コマンドの使用
- デバイス特有のファイルがあるディレクトリー, ボリュームグループの作成
- デバイス番号
- major, 永続的なデバイス番号
- minor, 永続的なデバイス番号
- 永続, 永続的なデバイス番号
- データ移動、オンライン, オンラインデータ移動
- トラブルシューティング, LVM トラブルシューティング
- バックアップ
- file, 論理ボリュームのバックアップ
- metadata, 論理ボリュームのバックアップ, ボリュームグループメタデータのバックアップ
- バックアップ ファイル, ボリュームグループメタデータのバックアップ
- パス名, CLI コマンドの使用
- パーティション
- multiple, ディスク上の複数パーティション
- パーティションタイプ、設定, パーティションタイプの設定
- ファイルシステム
- 論理ボリュームの拡張, 論理ボリュームのファイルシステムの拡張
- ファイルシステムの拡張
- 論理ボリューム, 論理ボリュームのファイルシステムの拡張
- フィルター, フィルターを使用した LVM デバイススキャンの制御
- ブロックデバイス
- スキャン, ブロックデバイスのスキャン
- ヘルプの表示, CLI コマンドの使用
- ボリュームグループ
- merging, ボリュームグループの統合
- vgs 表示引数, vgs コマンド
- アクティベート中, ボリュームグループのアクティブ化と非アクティブ化
- クラスターでの作成, クラスター内でのボリュームグループ作成
- システム間の移動, ボリュームグループの別のシステムへの移動
- パラメーターの変更, ボリュームグループのパラメーター変更
- 作成, ボリュームグループの作成
- 分割, ボリュームグループの分割
- 手順の例, ボリュームグループの分割
- 削除中, ボリュームグループの削除
- 名前変更, ボリュームグループの名前変更
- 定義, ボリュームグループ
- 拡大, ボリュームグループへの物理ボリュームの追加
- 拡張, ボリュームグループへの物理ボリュームの追加
- 管理、一般, ボリュームグループの管理
- 組み合わせ, ボリュームグループの統合
- 縮小, ボリュームグループからの物理ボリュームの削除
- 表示, ボリュームグループの表示, LVM 用のカスタム報告, vgs コマンド
- 非アクティブ化, ボリュームグループのアクティブ化と非アクティブ化
- ボリュームグループのアクティブ化, ボリュームグループのアクティブ化と非アクティブ化
- ボリュームグループの非アクティブ化, ボリュームグループのアクティブ化と非アクティブ化
- ミラー化論理ボリューム
- clustered, クラスター内でのミラー化 LVM 論理ボリュームの作成
- リニアへの変換, ミラー化ボリューム設定の変更
- 作成, ミラー化ボリュームの作成
- 再設定, ミラー化ボリューム設定の変更
- 障害ポリシー, ミラー化論理ボリュームの障害ポリシー
- 障害回復, LVM ミラー障害からの回復
- メタデータデーモン, メタデータデーモン (lvmetad)
- ユニット、コマンドライン, CLI コマンドの使用
- リニア論理ボリューム
- ミラーへの変換, ミラー化ボリューム設定の変更
- 作成, リニア論理ボリュームの作成
- 定義, リニアボリューム
- レポートのフォーマット、LVM デバイス, LVM 用のカスタム報告
- 不十分な空きエクステントメッセージ, 論理ボリュームでの不十分な空きエクステント
- 作成
- ストライプ化論理ボリューム、例, ストライプ化論理ボリュームの作成
- ボリュームグループ, ボリュームグループの作成
- ボリュームグループ、クラスター化, クラスター内でのボリュームグループ作成
- 物理ボリューム, 物理ボリュームの作成
- 論理ボリューム, リニア論理ボリュームの作成
- 論理ボリューム、例, 3 つのディスク上での LVM 論理ボリューム作成
- 初期化中
- パーティション, 物理ボリュームの初期化
- 物理ボリューム, 物理ボリュームの初期化
- 削除中
- 物理ボリューム, 物理ボリュームの削除
- 論理ボリューム, 論理ボリュームの削除
- 論理ボリュームのディスク, 論理ボリュームからディスクを削除する
- 割り当て, LVM の割り当て
- ポリシー, ボリュームグループの作成
- 防止, 物理ボリューム上での割り当て防止
- 名前変更
- ボリュームグループ, ボリュームグループの名前変更
- 論理ボリューム, 論理ボリュームの名前変更
- 新機能と変更点, 新機能と変更点
- 概要
- 新機能と変更点, 新機能と変更点
- 永続的なデバイス番号, 永続的なデバイス番号
- 物理エクステント
- 割り当ての防止, 物理ボリューム上での割り当て防止
- 物理ボリューム
- display, pvs コマンド
- PV で引数の 表示, pvs コマンド
- recovery, 紛失した物理ボリュームの入れ替え
- サイズ変更, 物理ボリュームのサイズ変更
- ボリュームグループからの削除, ボリュームグループからの物理ボリュームの削除
- ボリュームグループの追加, ボリュームグループへの物理ボリュームの追加
- レイアウト, LVM 物理ボリュームのレイアウト
- 作成, 物理ボリュームの作成
- 初期化中, 物理ボリュームの初期化
- 削除中, 物理ボリュームの削除
- 失われたボリュームの削除, 紛失した物理ボリュームのボリュームグループからの削除
- 定義, 物理ボリューム
- 管理、一般, 物理ボリュームの管理
- 表示, 物理ボリュームの表示, LVM 用のカスタム報告
- 説明, LVM 物理ボリュームのレイアウト
- 管理の手順, LVM 管理の概要
- 縮小
- 論理ボリューム, 論理ボリュームの縮小
- 表示
- ボリュームグループ, ボリュームグループの表示, vgs コマンド
- 物理ボリューム, 物理ボリュームの表示, pvs コマンド
- 論理ボリューム, 論理ボリュームの表示, lvs コマンド
- 設定の例, LVM 設定の例
- 詳細出力, CLI コマンドの使用
- 論理ボリューム
- linear, リニア論理ボリュームの作成
- lvs 表示引数, lvs コマンド
- snapshot, スナップショットボリュームの作成
- striped, ストライプ化ボリュームの作成
- アクティベーション, 論理ボリュームのアクティブ化の制御
- キャッシュ, LVM 論理ボリュームの作成
- シンプロビジョニング, シンプロビジョニングされた論理ボリュームの作成
- シンプロビジョニングのスナップショット, シンプロビジョニングされたスナップショットボリュームの作成
- パラメーターの変更, 論理ボリュームグループのパラメーター変更
- ミラー化, ミラー化ボリュームの作成
- ローカルアクセス, クラスター内の個別ノードでの論理ボリュームのアクティブ化
- 作成, リニア論理ボリュームの作成
- 作成例, 3 つのディスク上での LVM 論理ボリューム作成
- 削除中, 論理ボリュームの削除
- 名前変更, 論理ボリュームの名前変更
- 定義, 論理ボリューム, LVM 論理ボリューム
- 履歴, 過去の論理ボリュームの追跡および表示 (Red Hat Enterprise Linux 7.3 以降)
- 拡大, 論理ボリュームの拡張
- 拡張, 論理ボリュームの拡張
- 排他的アクセス, クラスター内の個別ノードでの論理ボリュームのアクティブ化
- 管理、一般, 論理ボリュームの管理
- 縮小, 論理ボリュームの縮小
- 表示, 論理ボリュームの表示, LVM 用のカスタム報告, lvs コマンド
- 論理ボリュームのアクティブ化
- 個別のノード, クラスター内の個別ノードでの論理ボリュームのアクティブ化
D
- display
- 出力のソート, LVM 報告のソート
L
- logging, ロギング
- lvchange コマンド, 論理ボリュームグループのパラメーター変更
- lvconvert コマンド, ミラー化ボリューム設定の変更
- lvcreate コマンド, リニア論理ボリュームの作成
- lvdisplay コマンド, 論理ボリュームの表示
- lvextend コマンド, 論理ボリュームの拡張
- LVM
- clustered, Red Hat High Availability クラスターの LVM 論理ボリューム
- help, CLI コマンドの使用
- logging, ロギング
- アーキテクチャーの概要, LVM アーキテクチャーの概要
- カスタムレポート形式, LVM 用のカスタム報告
- コンポーネント, LVM アーキテクチャーの概要, LVM コンポーネント
- ディレクトリー構造, ボリュームグループの作成
- ボリュームグループ、定義, ボリュームグループ
- ラベル, 物理ボリューム
- 物理ボリューム、定義, 物理ボリューム
- 物理ボリュームの管理, 物理ボリュームの管理
- 論理ボリューム管理, 論理ボリュームの管理
- LVM ボリュームの作成
- 概要, 論理ボリューム作成の概要
- lvmdiskscan コマンド, ブロックデバイスのスキャン
- lvmetad デーモン, メタデータデーモン (lvmetad)
- lvreduce コマンド, 論理ボリュームの縮小
- lvremove コマンド, 論理ボリュームの削除
- lvrename コマンド, 論理ボリュームの名前変更
- lvs コマンド, LVM 用のカスタム報告, lvs コマンド
- 表示引数, lvs コマンド
- lvscan コマンド, 論理ボリュームの表示
M
- man ページの表示, CLI コマンドの使用
- metadata
- recovery, 物理ボリュームメタデータの復元
- バックアップ, 論理ボリュームのバックアップ, ボリュームグループメタデータのバックアップ
- mirror_image_fault_policy 設定パラメーター, ミラー化論理ボリュームの障害ポリシー
- mirror_log_fault_policy 設定パラメーター, ミラー化論理ボリュームの障害ポリシー
P
- PV コマンド, LVM 用のカスタム報告
- 表示引数, pvs コマンド
- pvdisplay コマンド, 物理ボリュームの表示
- pvmove コマンド, オンラインデータ移動
- pvremove コマンド, 物理ボリュームの削除
- pvresize コマンド, 物理ボリュームのサイズ変更
- pvscan コマンド, 物理ボリュームの表示
R
- RAID 論理ボリューム, RAID 論理ボリューム
- 拡大, RAID ボリュームの拡張
- 拡張, RAID ボリュームの拡張
- rules.d ディレクトリー, udev のデバイスマッパーとの統合
U
- udev デバイスマネージャー, デバイスマッパーの udev デバイスマネージャーサポート
- udev ルール, udev のデバイスマッパーとの統合
V
- vgcfgbackup コマンド, ボリュームグループメタデータのバックアップ
- vgcfgrestore コマンド, ボリュームグループメタデータのバックアップ
- vgchange コマンド, ボリュームグループのパラメーター変更
- vgcreate コマンド, ボリュームグループの作成, クラスター内でのボリュームグループ作成
- vgdisplay コマンド, ボリュームグループの表示
- vgexport コマンド, ボリュームグループの別のシステムへの移動
- vgextend コマンド, ボリュームグループへの物理ボリュームの追加
- vgimport コマンド, ボリュームグループの別のシステムへの移動
- vgmerge コマンド, ボリュームグループの統合
- vgmknodes コマンド, ボリュームグループディレクトリーの再作成
- vgreduce コマンド, ボリュームグループからの物理ボリュームの削除
- vgrename コマンド, ボリュームグループの名前変更
- vgs コマンド, LVM 用のカスタム報告
- 表示引数, vgs コマンド
- vgscan コマンド, キャッシュファイル構築のためのボリュームグループのディスクスキャン
- vgsplit コマンド, ボリュームグループの分割
法律上の通知 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Copyright © 2018 Red Hat, Inc.
This document is licensed by Red Hat under the Creative Commons Attribution-ShareAlike 3.0 Unported License.If you distribute this document, or a modified version of it, you must provide attribution to Red Hat, Inc. and provide a link to the original.If the document is modified, all Red Hat trademarks must be removed.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent.Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission.We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.