LVMと災害復旧


13

LVMとは何か、またLVMが何を成し遂げているのかは理解していますが、いくつか不足しているように感じます。

sdaとsdbの2つの物理ドライブがあるとします。どちらも100メガです。それらをVolumeGroup1に入れ、200メガバイトのLogicalVolume1を1つ作成します。

150 MBのファイルを作成するとどうなりますか?100メガバイトは物理的にsdaに、50メガバイトはsdbにありますか?もしそうなら、ファイルの一部が一方のドライブにあり、別の部分がもう一方のドライブにあることをOSに伝えるものは何ですか?

ドライブの故障はどうですか?RAIDがないと仮定して、sdbが失敗した場合、sda上のすべてのデータは失われますか?とにかく、どのファイルがどの物理ドライブにあるかを制御する方法はありますか?

一般的にLVMをどのように管理しますか?1つまたは2つの大きなボリュームグループを作成してから、意味のあるパーティションを作成しますか?他のヒントはありますか?


1
あなたのためにあなたが襲撃の冗長性、大規模なメディアを避けたいと、単一のディスク障害と一緒に暮らすことができる場合は、このかもしれない作品:serverfault.com/a/543684/165065
DennisH

回答:


15

sdaとsdbの2つの物理ドライブがあるとします。どちらも100メガです。それらをVolumeGroup1に入れ、200メガのLogicalVolume1を作成します。
150 MBのファイルを作成するとどうなりますか?100メガバイトは物理的にsdaに、50メガバイトはsdbにありますか?

正しい(ファイルが作成される前にファイルシステムが空であったと仮定)。

もしそうなら、ファイルの一部が一方のドライブにあり、別の部分がもう一方のドライブにあることをOSに伝えるものは何ですか?

LVMは、オペレーティングシステムに200 MBのディスクが1つあることを伝えます。カーネルのLVM部分(ユーザー空間管理ツールとカーネルドライバーの2つの部分で提供)は、オペレーティングシステムがディスク上の物理的な場所/ブロックに表示するものをマップします。

ドライブの故障はどうですか?RAIDがないと仮定して、sdbが失敗した場合、sda上のすべてのデータは失われますか?とにかく、どのファイルがどの物理ドライブにあるかを制御する方法はありますか?

はい、データが失われたと考えてください。

より小さな論理ボリュームを作成する場合、pvmoveコマンドを使用してディスクからディスクに移動できます。

一般的にLVMをどのように管理しますか?1つまたは2つの大きなボリュームグループを作成してから、意味のあるパーティションを作成しますか?他のヒントはありますか?

大規模なボリュームグループを作成し、必要に応じて論理ボリュームを作成する傾向があります。ボリュームグループ内のすべてのスペースを完全に割り当てる必要はありません。必要なときに割り当てます。論理ボリュームのサイズを増やすのは簡単であり、ほとんどすべての最新のファイルシステムも簡単に拡張できます。


あなたはその最初のものについて確かですか?私は、LVMは通常ので、150メガのファイルの可能性が高いであろうと、各ドライブ上の75メガについて持っているために、ストライピングにデフォルト設定と思った
freiheit

2
論理ボリュームの作成時に--stripes <num>(short -i <num>)を指定しない限り、ストライプは作成されません。
-pgs

PS、ここでの返信には、各LVが使用するPVを示すスクリプトが含まれています
。serverfault.com

@ freiheit、pgsは正しい、デフォルトはボリュームをストライプするのではなく拡張することです。
エイブリーペイン

管理については、3つのHDに1つのlvmグループを作成しますが、物理ボリュームに限定された論理ボリュームのみを作成し、使用可能なスペースのみを使用してスナップショットを作成します。あなたはこれがホームユーザーにとって最も安全だと思いますか(急いで物を交換するための空襲もお金もありません)?
アクエリアスパワー

4

LinuxでLVMとSoftware Raidを機能させる根本的なことは、カーネルのデバイスマッパー部分です。これは、物理デバイスのブロックアドレスを、使用している仮想ブロックデバイスに抽象化するものです。

データに関してLVMを使用するときは、データの可用性への影響に注意する必要があります。それは、LVMが実際に適切なプラクティスが使用される場合に危険であると言っているのではなく、可用性への影響は最小限です。

質問で提案するシナリオでは、データの可用性はRAID0と同じで、ドライブに障害が発生するとデータが失われます。

実際には、何らかのRAIDで実行せずにLVMを使用することはありません。1つのVGに約20個のハードウェアRAID5ボリュームがある30TBファイルサーバーでLVMを使用しました。ただし、十分な空きエクステントがある場合は、pvmoveを使用して、問題が発生し始めた場合に1つ以上のPVからデータを移行できます。

ただし、時々テストされるバックアップ戦略を常に用意してください。


3

一般的にLVMをどのように管理しますか?1つまたは2つの大きなボリュームグループを作成してから、意味のあるパーティションを作成しますか?

私の一般的な戦略は、別のシステムに(セット全体として)移行される可能性のある物理ボリュームを別のボリュームグループに入れることです。

外部ストレージがある場合は、別のボリュームグループに配置することをお勧めします。このコンピューターから物理的に簡単に切断して別のコンピューターに接続するため、LVMでのエクスポート/インポートも同様に論理的に簡単で、データをそのまま保持する必要があります。

すでに内部ディスクにvg00があり、マシン用に別の内部ディスクを購入する場合は、次の質問を自問してください。新しいディスク上のデータはvg00にバインドされるので、移動しても意味がありませんデータを別のシステムに?この場合、それはvg00の一部である必要があります。それ以外の場合は、vg01を作成します。これは、独自に簡単にエクスポート/インポートできるためです。


0

そのようなグループの物理ボリュームとして2つのドライブがある場合、JBOD(Just a Bunch Of Disks)アレイがあります。ドライブの1つが故障した場合、ドライブがRAID0アレイに配置された場合よりも保護されなくなります。

ボリュームグループを複数の論理ボリュームに分割する場合でも、ボリュームグループに1つの論理ボリュームがある場合(LVMではなくボリューム内のファイルシステムによって制御されるため)、2つのドライブのどこに行くかを直接制御することはできません特定の論理ボリュームが特定のドライブにあるように、作成を手動で順序付けることができます。

VGの各PVにはLVレイアウトのコピーがあり、データはRAID0のようにストリップされないため、ドライブの1つに障害が発生してもデータの損失が懸念される場合は、何かを回復する可能性が高くなります2つのドライブをこの方法で(LVMまたはRAID0経由で)使用することはまったく考えません。


0

150 MBのファイルを作成するとどうなりますか?100メガバイトは物理的にsdaに、50メガバイトはsdbにありますか?もしそうなら、ファイルの一部が一方のドライブにあり、別の部分がもう一方のドライブにあることをOSに伝えるものは何ですか?

LVM(論理ボリュームマネージャー)は、物理ボリュームをボリュームグループに収集します。すべての物理ボリューム(ドライブ自体)には、物理​​エクステントと呼ばれる小さな断片があります。これらのエクステントには、ディスク内にuniq識別子があります。実際には、順番に番号が付けられています。論理ボリュームを作成するとき、物理エクステントとペアになっている論理エクステントから構築されています。論理エクステントは、論理ボリューム内でuniq IDを持っています。HP-UXでは、どの論理エクステントがどの物理エクステントとペアになっているかを確認できます。SLES11では、それを確認する方法がわかりません。lvdisplay --maps良いが、完璧ではないはずです(私にとって)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.