একটি লজিকাল ভলিউমকে একটি ভলিউম গ্রুপ থেকে অন্য ভলিউমে সরান


18

লজিক্যাল ভলিউমকে এক ভলিউম গ্রুপ থেকে পুরোপুরি অন্যটিতে স্থানান্তরিত করা কি সম্ভব?

একটি মিলিয়ে (আরও বা কম) মিলিয়ে lv তৈরি করা এবং ডেটা অনুলিপি করা সম্ভব, তবে একা LVM সরঞ্জাম দিয়ে এটি করার কোনও উপায় আছে কি?

যদি তা না হয়, তাত্ত্বিক কারণ বা প্রযুক্তিগত সীমাবদ্ধতা (ব্যাপ্তি আকার)?

উত্তর:


13

একটি ভলিউম গ্রুপ পুরো শারীরিক ভলিউম নিয়ে গঠিত। একটি দৈহিক ভলিউম অনেকগুলি এক্সটেন্টগুলি নিয়ে গঠিত (একটি পরিমাণ সাধারণত 4MB); প্রতিটি ব্যাপ্তি একটি ভিন্ন যৌক্তিক ভলিউমের সাথে সম্পর্কিত হতে পারে। একটি লজিকাল ভলিউমকে একটি ভিন্ন গোষ্ঠীতে স্থানান্তর করতে, আপনি কেবল এক্সটেন্টগুলি স্থানান্তর করতে পারবেন না কারণ এটি উত্স ভিজি এবং লক্ষ্য ভিজির মধ্যে শারীরিক ভলিউমকে বিভক্ত করতে পারে।

আপনি যা করতে পারেন তা হ'ল vgsplitকমান্ডের সাহায্যে উত্স ভিজি থেকে এক বা একাধিক পিভি লক্ষ্যবস্তু ভিজিতে স্থানান্তর করা । আপনি কোন PV গুলি স্থানান্তর করতে চান তা নির্দিষ্ট করতে পারেন বা কোন LV (তবে একসাথে কেবলমাত্র একটি)। আপনি যদি একটি এলভি নির্দিষ্ট করে থাকেন তবে এটি এবং উত্স ভিজির অন্যান্য এলভিগুলি পৃথক পিভিতে থাকতে হবে। নির্দিষ্ট নামের সাথে কোনও ভিজি উপস্থিত না থাকলে গন্তব্য ভিজি তৈরি করা হবে।

vgsplit -n source_group/volume_to_copy source_group target_group
vgsplit source_group target_group /dev/sdy99 /dev/sdz99

pvmoveলজিক্যাল ভলিউমগুলি পৃথক পিভিতে যেতে আপনি চান সেগুলি সাজানোর জন্য আপনাকে প্রথমে ব্যবহারের প্রয়োজন হতে পারে।

আপনি যদি ভিজির শারীরিক সীমানা ধরে রাখতে এবং ডেটা স্থানান্তর করতে চান তবে কোনও অন্তর্নির্মিত সরঞ্জাম নেই, তবে আপনি একটি আয়না তৈরি করতে পারেন তবে আসলটি সরিয়ে ফেলতে পারেন


মনে হচ্ছে লক্ষ্য_গোষ্ঠীটি একটি বিদ্যমান বিদ্যমান হতে পারে?
এক্সটিএল

8

দেবিয়ান প্রসারিত (9.0) এর এলভিএম হিসাবে, 2.02.168-2 , এবং vgmerge, এর সংমিশ্রণটি ব্যবহার করে ভলিউম গ্রুপগুলিতে লজিক্যাল ভলিউমের একটি অনুলিপি করা সম্ভব । যেহেতু সরানো হ'ল একটি অনুলিপি এবং মুছার সংমিশ্রণ, এটি সরানোও কাজ করবে।lvconvertvgsplit

বিকল্পভাবে, আপনি pvmoveকেবল ভলিউম স্থানান্তর করতে ব্যবহার করতে পারেন ।

লুপ ডিভাইস এবং lvconvertঅনুসরণ ব্যবহার করে একটি সম্পূর্ণ স্ব-অন্তর্ভুক্ত উদাহরণ সেশন ।

সারাংশ: আমরা ভলিউম গ্রুপ তৈরি করুন vg1লজিক্যাল ভলিউমের সাথে lv1, এবং vg2সঙ্গে lv2, এবং একটি অনুলিপি তৈরি lv1মধ্যে vg2

ফাইল তৈরি করুন।

truncate pv1 --size 100MB
truncate pv2 --size 100MB

ফাইলগুলিতে লুপ ডিভাইস সেট আপ করুন।

losetup /dev/loop1 pv1
losetup /dev/loop2 pv2

লুপ ডিভাইসে শারীরিক ভলিউম তৈরি করুন (এলভিএম ব্যবহারের জন্য লুপ ডিভাইসগুলি সূচনা করুন)।

pvcreate /dev/loop1 /dev/loop2

যথাক্রমে / dev / loop1 এবং / dev / loop2 এ ভলিউম গ্রুপ 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

Allyচ্ছিকভাবে, lv1 তে কিছু লিখুন যাতে আপনি পরে অনুলিপিটি সঠিকভাবে তৈরি করাতে পারেন। ভিজি 1 নিষ্ক্রিয় করুন।

vgchange -a n vg1

পরীক্ষা মোডে মার্জ কমান্ড চালান। এটি ভিজি 1 কে ভিজি 2 তে মিশে যায়।

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 মিরর জোড়া তৈরি করুন lvconvertdest-pvযুক্তি বলে lvconvertউপর মিরর প্রতিলিপি করে /dev/loop2

lvconvert --type raid1 --mirrors 1 <<source-lv>> <<dest-pv>>
lvconvert --type raid1 --mirrors 1 /dev/vg2/lv1 /dev/loop2

তারপরে আয়না ভাগ করুন। নতুন এলভি এখন 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


2

আমি আমার নিজস্ব প্রস্তাব করব:

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

এটি প্রশ্নের অনেকটা বিপরীত। বিন্দুটি হ'ল ভলিউমটি নতুন কোনওটিতে অনুলিপি করার পরিবর্তে সরিয়ে নেওয়া।
এক্সটিএল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.