web-dev-qa-db-ja.com

論理ボリュームマネージャーの利点は何ですか

Logical Volume Manager の機能と潜在的なメリットは何ですか?

11
LanceBaynes

私のブログエントリから直接取得: http://www.standalone-sysadmin.com/blog/2008/09/introduction-to-lvm-in-linux/

まず、LVMのない生活について説明しましょう。昔は昔、ハードドライブがありました。このハードドライブにはパーティションがある可能性があります。これらのパーティションにファイルシステムをインストールし、それらのファイルシステムを使用できます。両方の上り坂。それはこのように見えました:

実際のドライブ、この場合はsdaがあります。そのドライブには、sda1とsda2の2つのパーティションがあります。未使用の空き容量もいくつかあります。各パーティションにはファイルシステムがあり、マウントされています。実際のファイルシステムのタイプは任意です。あなたはそれをext3、reiserfs、またはあなたが何を持っていると呼ぶことができます。注意すべき重要なことは、ディスクパーティションと考えられるファイルシステムとの間には直接的な1対1の相関関係があるということです。

まったく同じ構造を再作成するいくつかの論理ボリューム管理を追加できます:

これで、同じパーティションが表示されましたが、「ボリュームグループ」と呼ばれるパーティションの上に、文字通りボリュームのグループ、この場合はディスクパーティションがあります。これは、パーティション化できる一種の仮想ディスクと考えるのが妥当かもしれません。以前の構成と正確に一致しているため、まだシステムの強みを理解することはできません。ボリュームグループの上に、仮想パーティションと見なされる論理ボリュームが作成されていることに気付くでしょう。その上でファイルシステムを構築します。

複数の物理ボリュームを追加するとどうなるかを見てみましょう:

ここには、sda、sdb、sdcの3つの物理ディスクがあります。最初の2つのディスクにはそれぞれ、スペース全体を占める1つのパーティションがあります。最後のsdcには、ディスクの半分を占める1つのパーティションがあり、残りの半分はパーティション化されていない空き領域です。

現在使用可能なすべてのボリュームを含む、その上のボリュームグループを確認できます。ここに最大のセールスポイントの1つがあります。ディスクの合計と同じ大きさの論理パーティションを構築できます。多くの点で、これはストライピングがまったくないことを除いて、RAIDレベル0の動作と似ています。データは大部分が線形に書き込まれます。 RAIDが提供する冗長性またはパフォーマンスの向上が必要な場合は、必ず論理ボリュームをRAIDアレイの上に配置してください。 RAIDスライスは、ここでは物理ディスクとまったく同じように機能します。

これで、2と1/2のディスクを占めるこのボリュームグループができました。これは2つの論理ボリュームに分割されており、最初のボリュームはどのディスクよりも大きくなっています。論理ボリュームは、実際の物理ディスクがどれほど大きいかを気にしません。なぜなら、それらが表示するのは、それらがmyVolumeGroup01から切り分けられているということだけだからです。この抽象層は、後で説明するように重要です。

ユーザーを追加したため、未使用のスペースが必要だと判断した場合はどうなりますか?

通常、1対1のマッピングを使用すると、いくつかの悲しみに陥りますが、論理ボリュームを使用すると、次のことができます。

ここでは、以前に/ dev/sdcの空きスペースを利用して/ dev/sdc2を作成しました。次に、それをmyVolumeGroup01を構成するボリュームのリストに追加しました。それが完了すると、必要に応じてどちらの論理ボリュームも自由に拡張できました。ユーザーを追加して以来、myLogicalVolume2を成長させました。その時点で、ファイルシステム/ homeがそれをサポートしている限り、余分なスペースを満たすために自由に拡張できます。ストレージが存在する物理ディスクからストレージを抽象化したからです。

それでは、論理ボリューム管理の基本的な理由について説明します。独自のシステムを準備して構築する方法の詳細を知りたくなったら、きっとあなたが始めるための優れたリソースがいくつかあります。

http://www.pma.caltech.edu/~laurence/Linux/lvm.html
http://www.freeos.com/articles/3921/
http://www.linuxdevcenter.com/pub/a/linux/2006/04/27/managing-disk-space-with-lvm.html

33
Matt Simmons

LVMを使用すると、ディスクでさまざまなことができます。主な利点は、ファイルシステムをオンザフライで拡張できることです。ログサーバーを設定していて、将来的には大量のデータが存在することがわかっているとします。 Ext3は最大16TBをサポートします(カーネルとELのバージョンによって異なります)。しかし、2年後に1PBのストレージが必要になるとしたらどうでしょう。まあ、これはいくつかの問題を作成します。まず、そのストレージハードウェアの価格を上司に伝えると、ヘッドライトの目で鹿が上司に見られます。これは別の問題につながります-あなたはあなたが上方にスケールできる小さな解決策から始める必要があります。 LVMはそのオプションを提供します。いくつかのディスクから始めます。次に、さらに追加し、それらを論理グループにして、最初の論理ボリュームに追加し、ボリュームのサイズを増やし、最後にファイルシステムを拡張します。ほら、あなたは素晴らしいスケーリングファイルシステムを手に入れました。

これにより、データをデバイスから移動してLUNを再フォーマットし、すべてを元に戻してアップグレードを実行する必要がなくなります。簡潔に申し訳ありませんが、それが理にかなっていると思います。

編集:1PBを扱っている場合は、Ext3 ...おそらくXFSを使用するつもりがないことにも注意してください。

5
Matthew

LVMには多くの間接的な利点があります。 LVMが行う主なことは、オペレーティングシステムから物理ディスクを抽象化することです。これの主な利点は、単に柔軟性です。 LVMの利点のほとんどは、オンザフライでサイズ変更をサポートするファイルシステムがある場合にのみ実現されます。 LVMが行う基本的なことを以下に説明します。

システムパーティションはディスクの1層上に存在します

LVMがない場合、Linuxは物理的にディスク上にあるパーティションを使用します。パーティションは直接のデバイス名です。パーティションテーブルはMBRにあり、通常(論理拡張パーティションの場合)拡張ブートレコードにあります(これにより、より多くのパーティションを作成できます)。パーティションは、sizeおよびtypeを他の属性(より具体的には、本質的にサイズを定義する開始シリンダーと終了シリンダーを定義します)。それらはディスクに非常に密接に関連しているため、インストール時に「正しい」パーティション化スキームを設定することが重要です。突然、マシンの機能が変化した場合や、初心者であり、パーティション分割の影響を理解していない場合、またはディスクの使用量がどこか、または特定のアプリケーションのログを過小評価している場合、そのパーティション分割を変更するのは面倒な場合があります。それを行うためのツールはありますが、通常は、パーティションからデータを移動して変更する必要があります。明らかに、4つのパーティションがある場合、2番目のパーティションの終了シリンダーを変更すると、3番目と4番目のパーティションの開始シリンダーに影響を与えるため、厄介な状況になります。

ナイーブは単一の大きなパーティションの使用を推奨するかもしれませんが、クォータを導入したり、システムの一部を埋める不正なプロセスを分離する必要がある場合は取り消される可能性があります(例:/ var/log、/ tmpなど)

これの利点は次のとおりです。

ストレージの追加/削除

ストレージの追加は、通常は簡単です。ハードウェアまたはソフトウェアRAIDを使用していて、さらにディスクを追加する場合、Linuxが新しいストレージを必要な場所で利用できるようにするために、シンボリックリンクをいじってRAIDアレイを再構築する必要がある場合があります。

いっぱいになっている大きな/ homeディレクトリの例を見てみましょう。これは、既存の2ディスクRAID 1ボリュームに存在します。さらに2つのディスクを追加します。それらをハードウェアRAID 1構成でセットアップします。 LVMがない場合、いくつかのオプションがあります。

  1. 完全なRAIDアレイを1 + 0構成で再構築します。これには、マシンからデータを移動し、再構築して元に戻す必要があります。
  2. 別個の新しいRAID 1ボリュームグループを作成します。 Linuxでは、最初のRAIDボリュームが/ homeにすでにマウントされているため、2番目のRAIDボリュームを/ home1などにマウントする必要があります。最初のものと一致するユーザーの適切なパスを取得するために、同じ効果を得るためにシンボリックリンクを使用する必要がある場合があります。さらに、このソリューションでは、元のRAIDボリュームを定期的に保守し、元のパーティションからデータを移行する可能性があります。

LVMを使用すると、新しいRAID 1ボリュームグループを追加のストレージプールに追加し、ファイルシステムのサイズを変更して(それがサポートされている場合)、できれば、/ homeが突然大きくなります。/homeから/ home1またはその逆にデータを移動する可能性がある場合は、シンボリックリンクを作成したり、メンテナンスを行ったりする必要はありません。将来のディスクアップグレードのために、すすぎ、洗浄、繰り返します。

オンライン保守

ハードウェアがサポートしているほとんどのLVMタスクは、マシンを再起動せずにオンラインで実行できます。システムでディスクをホットスワップできる場合は、新しいディスクを追加し、その後古い(おそらく小さい)ディスクを削除して、システムのストレージ要件を増やすことができます。

LVMボリュームの主な問題の1つは、容量に近づくにつれて、断片化が私の経験の問題になる可能性があることです。ボリューム> 90%、実際には> 95%は、ディスクの使用状況とファイルの種類によっては、ディスクの断片化が不良になる可能性があることを意味します。あまり気にする必要はほとんどありません。これは、あらゆる種類のボリューム/パーティション管理の場合に当てはまりますが、ここで問題になるのは、パーティションではなくボリュームレイヤーでの断片化です。

4
Philip Reynolds

すでにベストアンサーが選ばれていますが、このトピックに対する私の意見を述べたいと思います。私の経験から、1つの物理ドライブがある場合、または複数のドライブがある場合でも、LVMの有用性に疑問を投げかけます(個人的にシステムドライブでLVMを使用することはありません)。ただし、LVMが本当に不可欠なのはハードウェアRAIDの上です。これにより、RAIDとLVMの機能を明確に分離できます。RAIDを使用してストレージの信頼性とパフォーマンス特性を管理し、LVMを使用して実際のボリュームをシステムに割り当てます。場合によっては、この機能が重複することもあります。つまり、LVMはRAID-0とRAID-1の機能を提供できますが、深刻なビルドでこの2つを使用することはお勧めしません。

基本的にRAIDとLVMは一緒に属し、一方を使用せずに他方を使用することは、通常は最適ではありません。

1
dtoubelis

これを適用しようとしている状況について、より多くの情報を提供する必要がありました。そうすることで、関係のない可能性のある幅広い回答ではなく、的を絞った回答を提供できます(コメントできないので、コメントで述べたでしょう)。

質問自体については、ボリューム(別名パーティション)の作成、サイズ変更、削除が簡単にできます。また、状況に応じて、ボリュームのスナップショットを作成する機能も備わっています。

1
Not Available