जवाबों:
एक वॉल्यूम समूह में पूरे भौतिक वॉल्यूम होते हैं। एक भौतिक मात्रा में कई विस्तार होते हैं (एक सीमा आमतौर पर 4 एमबी होती है); प्रत्येक सीमा भिन्न तार्किक आयतन से संबंधित हो सकती है। किसी भिन्न समूह में तार्किक आयतन को स्थानांतरित करने के लिए, आप केवल extents को स्थानांतरित नहीं कर सकते, क्योंकि स्रोत VG और लक्ष्य VG के बीच भौतिक आयतन को विभाजित कर सकता है।
आप क्या कर सकते हैं एक या एक से अधिक पीवी को स्रोत वीजी से vgsplit
कमांड वीजी के साथ लक्ष्य वीजी में स्थानांतरित कर सकते हैं । आप निर्दिष्ट कर सकते हैं कि आप किस पीवी को स्थानांतरित करना चाहते हैं, या कौन से LV (लेकिन एक बार में केवल एक)। यदि आप एक LV निर्दिष्ट करते हैं, तो स्रोत VG में अन्य LVs अलग PVs पर होना चाहिए। यदि कोई VG निर्दिष्ट नाम के साथ मौजूद नहीं है, तो VG को गंतव्य बनाया जाएगा।
vgsplit -n source_group/volume_to_copy source_group target_group
vgsplit source_group target_group /dev/sdy99 /dev/sdz99
pvmove
अलग-अलग PVs पर जाने के लिए आप जिस तार्किक वॉल्यूम को ले जाना चाहते हैं, उसकी व्यवस्था करने के लिए आपको पहले उपयोग करने की आवश्यकता हो सकती है ।
यदि आप वीजी की भौतिक सीमाओं को बनाए रखने और डेटा को स्थानांतरित करने के लिए हैं, तो कोई अंतर्निहित टूल नहीं है, लेकिन आप एक दर्पण बना सकते हैं फिर मूल को हटा सकते हैं ।
डेबियन स्ट्रेच (9.0) में LVM के रूप में, (अर्थात्) 2.02.168-2, वॉल्यूम समूहों की तार्किक मात्रा की एक प्रति , और vgmerge
, के संयोजन का उपयोग करना संभव है । चूंकि एक चाल कॉपी और डिलीट का संयोजन है, यह एक चाल के लिए भी काम करेगा।lvconvert
vgsplit
वैकल्पिक रूप से, आप pvmove
केवल वॉल्यूम को स्थानांतरित करने के लिए उपयोग कर सकते हैं ।
लूप उपकरणों और lvconvert
निम्न का उपयोग करके एक पूर्ण आत्म-निहित उदाहरण सत्र
।
सारांश: हम मात्रा समूह बनाने के vg1
तार्किक मात्रा के साथ lv1
, और vg2
साथ lv2
, और की एक प्रतिलिपि बनाने lv1
में vg2
।
फाइलें बनाएं।
truncate pv1 --size 100MB
truncate pv2 --size 100MB
फ़ाइलों पर लूप डिवाइस सेट करें।
losetup /dev/loop1 pv1
losetup /dev/loop2 pv2
लूप डिवाइसेस पर भौतिक वॉल्यूम बनाएं (LVM द्वारा उपयोग के लिए लूप उपकरणों को इनिशियलाइज़ करें)।
pvcreate /dev/loop1 /dev/loop2
क्रमशः / देव / लूप 1 और / देव / लूप 2 पर वॉल्यूम समूह vg1 और vg2 बनाएं।
vgcreate vg1 /dev/loop1
vgcreate vg2 /dev/loop2
क्रमशः vg1 और vg2 पर लॉजिकल वॉल्यूम lv1 और lv2 बनाएं।
lvcreate -L 10M -n lv1 vg1
lvcreate -L 10M -n lv2 vg2
Lv1 और lv2 पर ext4 फाइल सिस्टम बनाएं।
mkfs.ext4 -j /dev/vg1/lv1
mkfs.ext4 -j /dev/vg2/lv2
वैकल्पिक रूप से, lv1 पर कुछ लिखें ताकि आप बाद में जांच सकें कि कॉपी सही तरीके से बनाई गई थी। Vg1 को निष्क्रिय करें।
vgchange -a n vg1
टेस्ट मोड में मर्ज कमांड चलाएँ। यह vg2 को vg2 में विलय कर देता है।
vgmerge -A y -l -t -v <<destination-vg>> <<source-vg>>
vgmerge -A y -l -t -v vg2 vg1
और फिर असली के लिए।
vgmerge -A y -l -v vg2 vg1
फिर lv1
उपयोग करके RAID 1 दर्पण जोड़ी बनाएं lvconvert
।
dest-pv
तर्क कहता है lvconvert
पर दर्पण प्रतिलिपि बनाने के लिए /dev/loop2
।
lvconvert --type raid1 --mirrors 1 <<source-lv>> <<dest-pv>>
lvconvert --type raid1 --mirrors 1 /dev/vg2/lv1 /dev/loop2
फिर दर्पण को विभाजित करें। नया LV अब है lv1_copy
।
lvconvert --splitmirrors 1 --name <<source-lv-copy>> <<source-lv>>
lvconvert --splitmirrors 1 --name lv1_copy /dev/vg2/lv1
बनाओ vg2/lv1
निष्क्रिय।
lvchange -a n /dev/vg2/lv1
तब (परीक्षण मोड)
vgsplit -t -v <<source-vg>> <<destination-vg>> <<moved-to-pv>>
vgsplit -t -v /dev/vg2 /dev/vg1 /dev/loop1
सच में
vgsplit -v /dev/vg2 /dev/vg1 /dev/loop1
परिणामी उत्पादन:
lvs
[...]
lv1 vg1 -wi-a----- 12.00m
lv1_copy vg2 -wi-a----- 12.00m
lv2 vg2 -wi-a----- 12.00m
टिप्पणियाँ:
1) इनमें से अधिकांश कमांड को रूट के रूप में चलाने की आवश्यकता होगी।
2) यदि दो वॉल्यूम समूहों में तार्किक वॉल्यूम के नामों का कोई दोहराव है, तो vgmerge
आगे बढ़ने से इनकार कर देगा।
3) मर्ज होने पर, तार्किक वॉल्यूम vg1
निष्क्रिय होना चाहिए। और विभाजन पर, में लॉजिकल वॉल्यूम vg2
से संबंधित vg1
निष्क्रिय किया जाना चाहिए। हमारे मामले में, यह है lv1
।
मैं अपनी पेशकश करूंगा:
umount /somedir/
lvdisplay /dev/vgsource/lv0 --units b
lvcreate -L 12345b -n lv0 vgtarget
dd if=/dev/vgsource/lv0 of=/dev/vgtarget/lv0 bs=1024K conv=noerror,sync status=progress
mount /dev/vgtarget/lv0 /somedir/
यदि सब कुछ अच्छा है, तो स्रोत को हटा दें
lvremove vgsource/lv0