GNU/Linux >> Linux の 問題 >  >> Linux

Linux デバイスマッパーは、スナップショットの作成時に LV 内にネストされた LVM PV をマップします

解決策 1:

関連するドキュメントが、たとえばドキュメントではなく、構成ファイルに隠されている場合があります。 LVM のようです。

デフォルトでは、LVM は、すべての PV が存在する限り、起動後にシステムに接続された物理デバイス上のボリュームを自動的にアクティブ化しようとします。および lvmetad と udev (または最近では systemd) が実行されています。 LVM スナップショットが作成されると、udev イベントが発生します。スナップショットには PV が含まれているため、lvmetad は自動的に pvscan を実行します。 など。

/etc/lvm/backup/docker-volumes を見て lvmetad が明示的に pvscan を実行していることを確認できました デバイスのメジャー番号とマイナー番号を使用して、スナップショットで、通常はこれを防ぐ LVM フィルターをバイパスします。ファイルに含まれていたもの:

description = "Created *after* executing 'pvscan --cache --activate ay 253:13'"

この動作は、auto_activation_volume_list を設定することで制御できます。 /etc/lvm/lvm.conf で .自動的にアクティブ化できるボリューム グループ、ボリューム、またはタグを設定できます。

そのため、ホストの両方のボリューム グループを含むようにフィルターを設定するだけです。それ以外のものはフィルターに一致せず、自動的にアクティブ化されません。

auto_activation_volume_list = [ "mandragora", "vm-volumes" ]

ゲストの LVM ボリュームがホストに表示されなくなり、ついにバックアップが実行されるようになりました...

解決策 2:

/etc/lvm/lvm.conf の「filter」値を編集して、KVM ホスト上の物理デバイスのみを検査します。デフォルト値は、LV 自体を含む「すべてのブロック デバイス」を受け入れます。デフォルト値の上のコメントはかなり包括的であり、使用法を説明するのに私よりも優れた仕事をすることができます.

解決策 3:

vgimportclone と組み合わせてほぼ同じ問題に遭遇しました .これは時々失敗します:

  WARNING: Activation disabled. No device-mapper interaction will be attempted.
  Physical volume "/tmp/snap.iwOkcP9B/vgimport0" changed
  1 physical volume changed / 0 physical volumes not changed
  WARNING: Activation disabled. No device-mapper interaction will be attempted.
  Volume group "insidevgname" successfully changed
  /dev/myvm-vg: already exists in filesystem
  New volume group name "myvm-vg" is invalid
Fatal: Unable to rename insidevgname to myvm-vg, error: 5

その時点で、スナップショットを破棄したい場合は、最初に udev を一時的に無効にする必要がありました https://bugs.launchpad.net/ubuntu/+source/lvm2/+bug/1088081 に記載されているバグのため

しかしそれでも、ネストされた LVM のボリューム グループの非アクティブ化に成功したように見えた後、kpartx によって作成されたネストされた PV のパーティション マッピングが 、どういうわけか使用され続けました。

このトリックは、デバイス マッパーが古いボリューム グループ名を使用して追加の親マッピングを保持していたことにあるようです。ツリー リストでは次のようになります。

insidevgname-lvroot (252:44)
 └─outsidevgname-myvm--root-p2 (252:43)
    └─outsidevgname-myvm--root (252:36)

解決策は、その特定のマッピングを dmsetup remove insidevgname-lvroot で単純に削除することでした .その後、kpartx -dlvremove 正常に動作しました。


Linux
  1. Linux / CentOS/RedhatでLVMを構成する方法

  2. Linuxでネストされたディレクトリ内にファイルをすばやく作成する方法

  3. LVMを使用してLinuxで物理ボリュームを作成する方法

  1. ボリュームグループに空き領域がない場合にLVMを拡張する方法

  2. LVMを使用したLinuxでの論理ボリュームの作成

  3. LVM スナップショット:Linux での LVM パーティションのバックアップと復元

  1. Linux でスワップをディスク パーティションから LVM ボリュームに移動する方法

  2. これが LVM スナップショットの仕組みですか?

  3. Linux LVM スナップショットをコミットまたは元に戻しますか?