যা সত্যই এই মেশিনটির ব্যাকআপ নেওয়ার আমার পরিকল্পনার সাথে গোলমেলে ...
আমার একটি সার্ভার রয়েছে যা বেশ কয়েকটি ভার্চুয়াল মেশিনের কেভিএম হাইপারভাইজার। এর মধ্যে একটি ডকর চালাচ্ছে। এটির / ডিভ / ভিডিবিতে এটির ডকার ভলিউম রয়েছে, যা একটি এলভিএম পিভি হিসাবে সেট আপ করা হয়, যার উপরে ডকার তার সরাসরি- lvm ড্রাইভারকে ডকারের ধারক ডেটা সংরক্ষণ করার জন্য ব্যবহার করে । এই ভার্চুয়াল ডিস্কটি হোস্টের স্থানীয় ডিস্কের একটি এলভিএম এলভি।
হোস্ট এবং অতিথি উভয়ই ফেডোরা 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
হোস্টের অন্যান্য সমস্ত এলভিএম ভলিউমের সাথে আমি একটি স্ন্যাপশট নিতে পারি, স্ন্যাপশটটি 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.
শেষ পর্যন্ত আমি হোস্টের ডিভাইস-ম্যাপারটিকে একরকম বুঝতে পেরেছিলাম যে এই লজিক্যাল ভলিউম স্ন্যাপশটে একটি এলভিএম পিভি রয়েছে এবং তারপরে হোস্টের কাছে স্ন্যাপশটের মধ্যে লজিক্যাল ভলিউমগুলি ম্যাপ করার জন্য এগিয়ে গেছে (কেবলমাত্র প্রাসঙ্গিক খণ্ডগুলি দেখানো হয়েছে):
[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)
এগুলি ভিএম এর অভ্যন্তরে যৌক্তিক আয়তনের সাথে হুবহু মিল:
[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 স্ন্যাপশটের বিষয়বস্তু পরিদর্শন করে ডিভাইস-ম্যাপারটি সত্যই চাই না যে সেগুলির মধ্যে এমন কিছু আছে যাতে এটি আমার জন্য অনিচ্ছাকৃতভাবে ম্যাপ করতে পারে to আমি কি এই আচরণটি দমন করতে পারি? বা অন্য কোনও পদ্ধতির মাধ্যমে আমাকে স্ন্যাপশট তৈরি করতে হবে?
pvscan --cache
নতুন ফিল্টার সম্পর্কে lvmetad বলতে দৌড়ে এসেছি এবংpvscan
এখন জানিয়েছি পিভি ফিল্টার দ্বারা প্রত্যাখ্যান করা হচ্ছে, তবে সমস্যাটি এখনও থেকেই যায়।