[〜#〜] lvm [〜#〜] が何であり、それが何を達成するのかは理解していますが、いくつか欠けているように感じます。
2つの物理ドライブ、sdaとsdbがあるとします。どちらも100メガです。それらをVolumeGroup1に入れて、200 MBのLogicalVolume1を1つ作成します。
150 MBのファイルを作成するとどうなりますか? 100メガは物理的にsdaにあり、50メガはsdbにあるでしょうか?もしそうなら、何がファイルの一部が1つのドライブにあり、別の部分が他にあることをOSに伝えますか?
ドライブの故障はどうですか? RAIDがない場合、sdbに障害が発生すると、sda上のすべてのデータが失われますか?とにかく、どのファイルがどの物理ドライブにあるかを制御する方法はありますか?
一般的にLVMをどのように管理しますか? 1つまたは2つの大きなボリュームグループを作成してから、パーティションを作成しますか?他に何かヒントはありますか?
2つの物理ドライブ、sdaとsdbがあるとします。どちらも100メガです。それらをVolumeGroup1に入れ、200 MBのLogicalVolume1を1つ作成します。
150 MBのファイルを作成するとどうなりますか? 100メガは物理的にsdaにあり、50メガはsdbにありますか?
正解(ファイルが作成される前にファイルシステムが空であったと想定)。
もしそうなら、何がファイルの一部が1つのドライブにあり、別の部分が他にあることをOSに伝えますか?
LVMはオペレーティングシステムに単一の200MBディスクがあることを通知します。カーネルのLVM部分(ユーザー空間管理ツールとカーネルドライバーの2つの部分で構成されます)は、オペレーティングシステムが認識するものをディスク上の物理的な場所/ブロックにマップします。
ドライブの故障はどうですか? RAIDがない場合、sdbに障害が発生すると、sda上のすべてのデータが失われますか?とにかく、どのファイルがどの物理ドライブにあるかを制御する方法はありますか?
はい、失われたデータを検討してください。
小さい論理ボリュームを作成する場合は、pvmove
コマンドを使用して、それらをディスクからディスクに移動できます。
一般的にLVMをどのように管理しますか? 1つまたは2つの大きなボリュームグループを作成してから、パーティションを作成しますか?他に何かヒントはありますか?
大きなボリュームグループを作成し、必要に応じて論理ボリュームを作成する傾向があります。ボリュームグループ内のすべてのスペースを完全に割り当てる必要はありません。必要なときに割り当てます。論理ボリュームのサイズを増やすのは簡単で、最近のほとんどすべてのファイルシステムも簡単に拡張できます。
LinuxでLVMとソフトウェアRAIDを機能させるための基本的なものは、カーネルのデバイスマッパー部分です。これは、物理デバイスのブロックアドレスを、使用している仮想ブロックデバイスに抽象化するものです。
LVMをデータと同じように使用する場合、データの可用性の影響に注意する必要があります。 LVMが実際に危険であると言っているわけではありません。適切な方法を使用すると、可用性への影響が最小限になります。
このシナリオでは、データの可用性はRAID0と同じで、ドライブに障害が発生するとデータが失われることを示唆しています。
実際には、何らかのRAIDで実行せずにLVMを使用することはありません。 1つのVGに約20のハードウェアRAID5ボリュームがある30TBのファイルサーバーでLVMを使用しました。ただし、十分な空きエクステントがある場合は、pvmoveを使用して、問題が発生し始めたら、1つ以上のPVからデータを移行できます。
ただし、常にテストされるバックアップ戦略を常に用意してください。
通常、LVMをどのように管理しますか?1つまたは2つの大きなボリュームグループを作成してから、意味のあるパーティションを作成しますか?
私の一般的な戦略は、別のシステムに(全体として)移行される可能性のある物理ボリュームを別のボリュームグループに入れることです。
外部ストレージがある場合は、別のボリュームグループに配置することをお勧めします。このコンピューターから物理的に切断して別のコンピューターに接続するのは物理的に簡単なので、データをそのままにして、LVMでエクスポート/インポートすることも同様に論理的に簡単である必要があります。
内部ディスクにすでにvg00があり、マシン用に別の内部ディスクを購入する場合は、次の質問を自問してください。新しいディスクのデータはvg00にバインドされているので、移動しても意味がありません。別のシステムへのデータ?この場合、それはvg00の一部である必要があります。それ以外の場合は、vg01を作成します。それ自体で簡単にエクスポート/インポートできるためです。
このようなグループの物理ボリュームとして2つのドライブがある場合、JBOD(Just a Bunch Of Disks)アレイになります。ドライブの1つに障害が発生した場合、ドライブがRAID0アレイに配置された場合よりも保護されません。
ボリュームグループに1つの論理ボリュームがある場合(これはLVMではなくボリュームのファイルシステムによって制御されるため)、2つのドライブのどこに直接行くかを直接制御することはできませんが、ボリュームグループを複数の論理ボリュームに分割すると、特定の論理ボリュームが特定のドライブ上にあるように手動で作成を注文できます。
VGの各PVにはLVレイアウトのコピーがあり、RAID0のようにデータが削除されないので、ドライブの1つが故障してもデータの損失がまったく懸念される場合、何かを回復する可能性が高くなります。この方法で(LVMまたはRAID0を介して)2つのドライブを使用することはまったく考慮しません。
150 MBのファイルを作成するとどうなりますか? 100メガは物理的にsdaにあり、50メガはsdbにあるでしょうか?もしそうなら、何がファイルの一部が1つのドライブにあり、別の部分が他にあることをOSに伝えますか?
LVM(論理ボリュームマネージャー)は、物理ボリュームをボリュームグループに収集します。すべての物理ボリューム(ドライブ自体)には、物理エクステントと呼ばれる小さな断片があります。これらのエクステントは、ディスク内で一意の識別子を持っています。実際、それらには連続番号が付けられています。論理ボリュームを作成すると、それは物理エクステントとペアになっている論理エクステントから構築されています。論理エクステントは、論理ボリューム内で一意のIDを持っています。 HP-UXでは、どの論理エクステントがどの物理エクステントとペアになっているかを確認できます。 SLES11では、それを確認する方法がわかりません。 lvdisplay --maps
は良いはずですが、(私にとっては)好ましくありません。