LVMにはパーティションテーブルが必要ですか?


18

パーティションテーブルを作成するステップを踏むことなく、rawブロックデバイス上でpvcreateを正常に実行できるようです。その後、ボリュームグループ、論理ボリューム、最後にファイルシステムを作成し、マウントして、ddを介してテストすることができます。

動作しているように見えますが、健全性チェックが必要です。これは悪い考えですか?

rawブロックデバイスの上にGPTまたはMBRパーティションテーブルを作成するにはどうすればよいですか?

どのようなパーティションテーブルが使用されているかを示すために、partedを使用するにはどうすればよいですか?私はやってみました:

別れ、/ dev / sdbを選択して印刷すると、次のメッセージが表示されます。

エラー:/ dev / sdb:認識されないディスクラベル

それでも、ドライブは現在使用中で、私はそれを読み書きできます。これは、パーティションテーブルを使用せずにrawブロックデバイス上でLVMを実行したときに期待される出力ですか?何かご意見は?

ありがとう!

回答:


29

LVM自体が実際のパーティションの存在を気にしなくても、それを作成する理由の1つは、パーティションプログラムに「そこに何か」があることを通知することです。悪夢のシナリオは、サーバー上のブート問題を診断し、パーティション分割プログラムを起動し、パーティション分割されていないディスクを確認し、ドライブが破損していると結論付ける新しいシステム管理者です。

LVMパーティションを作成することにはマイナス面はありません。あなたは?


1
シナリオの場合は+1。実生活ではありそうです。
ヘネス

1
洞察力があるため+1。
アレクサンダーヤンセン

返信いただきありがとうございます!パーティションテーブルを持つことのマイナス面は確かにありません。健全性チェックで確認したかっただけです。レイヤーの正しい順序は次のとおりです。ブロックデバイス、パーティションテーブル、ボリュームグループ、論理ボリューム、ファイルシステム、それは正しいですか?
猫のズボン

8
欠点:ブロックデバイスを展開し、パーティションテーブルを使用しなかった場合、pvresizeで物理ボリュームをすぐに展開できます。パーティションテーブルを使用した場合は、まずパーティションを削除し、より大きなサイズでパーティションを再作成する必要があります。
sciurus 14

1
注意を払うことは良いことですが、質問を投げ返すことは素晴らしい答えにはなりません。このパーティションは必要ありません。また、パーティションを持つことにはマイナス面もあります。
-bryn

16

生のブロックデバイスからpvを作成することはできますが、ブロックデバイスの使用目的について混乱を招く可能性があるため、通常は回避しようとしています。また、構成ファイルが欠落している場合にLVMが使用できる自動検出ルーチンの一部が破損する可能性があります。

次に、partedを使用して、ドライブ全体である1つのパーティションでGPTを作成し、パーティションフラグをlvmに設定する例を示します。mkpartでは、ファイルシステムを指定する必要がありますが、ファイルシステムは作成されません。partedの長年のバグのようです。また、1Mの開始オフセットは、適切なアライメントを確保することです。

parted /dev/sdb
mklabel GPT
mkpart primary ext2 1M 100%
set 1 lvm on

3
「mkpartでは、ファイルシステムを指定する必要がありますが、ファイルシステムは作成されません。」これについて言及してくれてありがとう、それは正気を確立するのに巨大です!:)
猫のズボン

1
もはや真実ではありません。mkpart primary 1M 100%動作し、ファイルシステムフィールドを空白のままにします。
スターク

1
@ 3dinfluence lvmが自動的にアライメントを行うようになりました。長年後、lvm専用のデータディスクのパーティションを使用する実際のユースケースが表示されません
c4f4t0r

5

KVMゲスト内の仮想ストレージデバイスでPVを直接作成すると、ゲストからの論理ボリュームがハイパーバイザーに表示されることがわかります。これは、複数のゲストで同じ論理ボリュームとボリュームグループ名を使用する場合、非常に混乱する可能性があります。また、ハイパーバイザーでデバイスが見つからないという警告が表示される場合があります。

たとえば、テストハイパーバイザーでこの問題を再現しました。

[root@testhost ~]# vgs
  Couldn't find device with uuid dCaylp-1kvL-syiF-A2bW-NTPP-Ehlb-gtfxZz.
  VG          #PV #LV #SN Attr   VSize   VFree  
  vg_main       2   2   0 wz-pn-  19.25g 768.00m
  vg_main       2   2   0 wz-pn-  19.25g 768.00m
  vg_testhost   1   8   0 wz--n- 237.98g 120.15g

ここでは、同じ名前の2つのボリュームグループを見ることができます。どちらも、実際にはハイパーバイザーに表示されるべきではないゲストからのものです。

このため、PVを作成してボリュームグループに追加する前に、partedまたはfdiskを使用してKVMパーティションを最初に作成することをお勧めします(前の3dinfluenceの回答を参照)。これにより、ゲスト論理ボリュームはハイパーバイザーから隠されたままになります。


1
filter/etc/lvm/lvm.confで使用して、VMで直接使用されるすべてのブロックデバイスを除外する場合、これを回避できます。
ミルチャヴトコヴィチ

とにかく、ディスクは常にホスト上に存在します-パーティションはマップされていません。kpartx -aあなたのためにそうするでしょう。ハイパーバイザーはすべてのゲストディスクにアクセスできますが、ボリュームグループはアクティブ化しないでください。
-bryn

4

1つの欠点は、パーティションテーブル内のPVにスペースをホットアドできないことです。PVにブロックデバイス全体を使用する場合、これは問題ではありません。


2018年以降、パーティションテーブル内のPVにスペースを追加できます。そのために必要なコマンドを生成できるこのスクリプトを作成しました:github.com/mircea-vutcovici/scripts/blob/master/vol_resize.sh
Mircea Vutcovici

3

RedHatのセクション4.2.1のLVMガイドによると https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/logical_volume_manager_administration/physvol_admin

彼らは、パーティションテーブルを用意する必要はないと言いました。VG(ボリュームグループ)のディスク全体を使用する場合、その一部(パーティション)のみを含める場合を除き、それを破棄することさえ提案します。


3

過去にPVにMS-DOSディスクラベルまたはGPTディスクラベルを使用していたとしても、メインブロックデバイスでLVMを直接使用することを好みます。非常に具体的な使用例(ブートセクターとブートパーティションのあるディスクなど)がない限り、2つのディスクラベルを使用する理由はありません。

LVMを直接持つことの利点は次のとおりです。

  • シンプルさ-2セットのツールを使用する必要はありません
  • 柔軟性-pvmoveを使用して、ダウンタイムなしでディスクボリューム間でデータを移動できます。スナップショットとシンプロビジョニングを使用できます。
  • ボリュームを作成/サイズ変更/削除したことをカーネルに伝えるために、partprobeやkpartxを実行する必要はありません。また、パーティションが使用中の場合、partprobe / kpartxが失敗し、再起動が必要になる場合があります
  • MS-DOSまたはGPTディスクラベル上でLVMを使用する場合と比較して、パフォーマンスが向上する可能性があります

2
誰もがそのパーティションを必要としている理由はわかりませんが、ここで答えて「なぜそうではない」の方向に進んでください。この答えのほうが優れています。ディスク全体を使用する場合、パーティションは必要ありません。パーティションがあると、ディスクのサイズ変更/拡張が非常に苦痛になります。
ブリン

多くのLinuxにこのロジックを持っUNIXシステム管理者、私は、Linuxにおける公共と民間と連携し、このdoesnのは、」どんな意味を持っていることをボリュームマネージャVERITAS覚えて
c4f4t0r
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.