これは本当にこのマシンをバックアップする私の計画を台無しにしています...
複数の仮想マシンに対するKVMハイパーバイザーであるサーバーがあります。これらの1つはDockerを実行しています。LVM PVとして設定された/ dev / vdbにDockerボリュームがあり、Dockerはdirect-lvmドライバーを使用して Dockerコンテナデータを保存します。この仮想ディスクは、ホストのローカルディスク上のLVM LVです。
ホストとゲストの両方がFedora 21を実行します。
このボリュームのホストのビューは次のとおりです(関連するボリュームのみが表示されます)。
[root@host ~]# lvs
LV VG Attr LSize
docker2.example.com-volumes vm-volumes -wi-ao---- 40.00g
[root@host ~]# dmsetup ls --tree
vm--volumes-docker2.example.com--volumes (253:10)
└─ (9:125)
このボリュームのゲストのビューは次のとおりです(ここでも、関連するボリュームのみが表示されます)。
[root@docker2 ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/vdb docker-volumes lvm2 a-- 40.00g 0
ホスト上の他のすべてのLVMボリュームを使用して、スナップショットを取得し、スナップショットをlvcreate --snapshot
バックアップlvremove
してから、問題なくバックアップできます。しかし、この特定のボリュームlvremove
では、使用されているため、できません。
[root@host ~]# lvremove /dev/vm-volumes/snap-docker2.example.com-volumes
Logical volume vm-volumes/snap-docker2.example.com-volumes is used by another device.
最終的に、ホストのデバイスマッパーがこの論理ボリュームのスナップショットにLVM PVが含まれていることを何らかの方法で把握し、スナップショット内の論理ボリュームをホストにマップすることを理解しました(関連するボリュームのみが表示されています):
[root@host ~]# dmsetup ls --tree
vm--volumes-docker2.example.com--volumes (253:10)
└─vm--volumes-docker2.example.com--volumes-real (253:14)
└─ (9:125)
docker--volumes-docker--data (253:18)
└─vm--volumes-snap--docker2.example.com--volumes (253:16)
├─vm--volumes-snap--docker2.example.com--volumes-cow (253:15)
│ └─ (9:125)
└─vm--volumes-docker2.example.com--volumes-real (253:14)
└─ (9:125)
docker--volumes-docker--meta (253:17)
└─vm--volumes-snap--docker2.example.com--volumes (253:16)
├─vm--volumes-snap--docker2.example.com--volumes-cow (253:15)
│ └─ (9:125)
└─vm--volumes-docker2.example.com--volumes-real (253:14)
└─ (9:125)
これらは、VM内の論理ボリュームに正確に対応しています。
[root@docker2 ~]# lvs
LV VG Attr LSize
docker-data docker-volumes -wi-ao---- 39.95g
docker-meta docker-volumes -wi-ao---- 44.00m
特に、システムの起動時にLVM LVに対してこれを実行しようとはしませんが、スナップショットを撮るときのみです。
ここで何が起こっていますか?デバイスマッパーがLVMスナップショットの内容を検査して、その中に役に立たないマッピングができるものがあるかどうかを確認したくないのです。この動作を抑制できますか?または、他の方法でスナップショットを作成する必要がありますか?
pvscan --cache
して新しいフィルターについてlvmetadに通知しpvscan
、PVがフィルターによって拒否されていることを示しているが、問題は解決しないことに注意してください。