Điều này thực sự gây rối với kế hoạch sao lưu máy này của tôi ...
Tôi có một máy chủ là một trình ảo hóa KVM cho một số máy ảo. Một trong số đó là chạy Docker. Nó có khối lượng Docker trên / dev / vdb, được thiết lập dưới dạng PV LVM, trên đó Docker sử dụng trình điều khiển lvm trực tiếp của nó để lưu trữ dữ liệu của Docker. Đĩa ảo này là LVM LV trên đĩa cục bộ của máy chủ.
Cả chủ nhà và khách đều điều hành Fedora 21.
Giao diện của máy chủ lưu trữ này là (chỉ âm lượng có liên quan được hiển thị):
[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)
Chế độ xem của khách hàng của tập này là (một lần nữa, chỉ có âm lượng liên quan được hiển thị):
[root@docker2 ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/vdb docker-volumes lvm2 a-- 40.00g 0
Với tất cả các khối lượng LVM khác trên máy chủ lưu trữ, tôi có thể chụp ảnh nhanh lvcreate --snapshot
, sao lưu ảnh chụp nhanh và sau đó lvremove
không có vấn đề gì. Nhưng với khối lượng cụ thể này, tôi không thể làm được lvremove
vì nó đang được sử dụng:
[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.
Cuối cùng, tôi phát hiện ra rằng trình ánh xạ thiết bị trên máy chủ bằng cách nào đó đã tìm ra rằng ảnh chụp khối lượng logic này có chứa một LVM PV, và sau đó tiến hành ánh xạ các khối lượng logic trong ảnh chụp nhanh đến máy chủ (chỉ hiển thị các khối lượng có liên quan):
[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)
Chúng tương ứng chính xác với các khối logic bên trong VM:
[root@docker2 ~]# lvs
LV VG Attr LSize
docker-data docker-volumes -wi-ao---- 39.95g
docker-meta docker-volumes -wi-ao---- 44.00m
Đáng chú ý, nó không thử làm điều này với LVM LV khi hệ thống khởi động, nhưng chỉ khi tôi chụp ảnh nhanh.
Chuyện gì đang xảy ra ở đây? Tôi thực sự không muốn người lập bản đồ thiết bị kiểm tra nội dung của ảnh chụp nhanh LVM để xem nếu có bất cứ điều gì trong đó, nó có thể lập bản đồ một cách vô ích cho tôi. Tôi có thể ngăn chặn hành vi này? Hay tôi cần tạo ảnh chụp nhanh thông qua một số phương pháp khác?
pvscan --cache
để nói với lvmetad về bộ lọc mới vàpvscan
hiện trạng thái PV đang bị bộ lọc từ chối, nhưng vấn đề vẫn tồn tại.