ซึ่งยุ่งกับแผนการของฉันในการสำรองเครื่องนี้ ...
ฉันมีเซิร์ฟเวอร์ซึ่งเป็นไฮเปอร์ไวเซอร์ KVM สำหรับเครื่องเสมือนหลายเครื่อง หนึ่งในนั้นกำลังเรียกใช้นักเทียบท่า มีวอลุ่ม Docker บน / dev / vdb ซึ่งตั้งค่าเป็น LVM PV ซึ่ง 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.
ในที่สุดฉันก็พบว่าอุปกรณ์ -mapper บนโฮสต์ได้คิดออกว่าสแน็ปช็อตโลจิคัลวอลุ่มนี้มี 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 กำลังถูกปฏิเสธโดยตัวกรอง แต่ปัญหายังคงอยู่