কম্পিউটার

কিভাবে KVM-এ ভার্চুয়াল মেশিন ক্লোন করবেন - টিউটোরিয়াল

দ্রষ্টব্য:এই টিউটোরিয়ালটি ধরে নিচ্ছে আপনার virt-sysprep নেই; নিচে দেখ!

না, এটি virt-clone ব্যবহার করার জন্য অন্য সাধারণ উপায় নয়। যদিও virt-clone আপনার ভার্চুয়াল মেশিনের ডুপ্লিকেট তৈরি করার জন্য একটি বরং দরকারী টুল, এটির বর্তমান কনফিগারেশনে, এটি শুধুমাত্র আপনার ক্লোন করা সিস্টেমে অনন্য ID এবং MAC ঠিকানা বরাদ্দ করবে, ক্লোন বুট হওয়ার পরে আপনাকে অতিরিক্ত টুইক এবং কাস্টমাইজেশন করতে বাধ্য করবে। এর মানে হল আপনাকে হয়তো কিছুটা হস্তক্ষেপ করতে হবে, যা আপনি চান না।

ঠিক আছে, আমি আপনাকে KVM প্রযুক্তিতে আপনার ভার্চুয়াল মেশিনের অনুরূপ অনুলিপি তৈরি করার একটি ভিন্ন উপায় দেখাব, অনন্য প্রতি-হোস্ট তথ্যের সাথে যাতে যেকোন সংখ্যক সদৃশ আপনার নেটওয়ার্কে পৃথক হোস্টে পরিণত হয়। অন্য কথায়, একবার ইন্সটল করুন এবং তারপরে আপনার প্রয়োজন মতো গেস্টের অনেকগুলি দৃষ্টান্ত তৈরি করুন, প্রতিটির নিজস্ব হোস্টনাম, MAC ঠিকানা, IP ঠিকানা এবং এই জাতীয়। সম্পূর্ণরূপে স্ক্রিপ্টযোগ্য এবং যে সব. তাই আমাকে অনুসরণ করুন.

দ্রষ্টব্য:এই ছবিটি উইকিমিডিয়া থেকে নেওয়া, CC BY 2.0 এর অধীনে লাইসেন্সকৃত।

কম কার্যকর উপায়

আসুন সংক্ষিপ্তভাবে একটি মুহূর্ত জন্য virt-clone আলোচনা করা যাক. এটি একটি খারাপ ইউটিলিটি নয়, তবে বিতরণ জুড়ে এর ব্যবহার মানসম্মত নয়। কেউ কেউ ভার্চুয়াল মেশিন ম্যানেজারের অংশ হিসাবে উভয় জিইউআই উপাদান প্রেরণ করে, অন্যরা কমান্ড লাইন টুলও অফার করে। উভয় ক্ষেত্রেই, ক্লোনগুলিকে শুধুমাত্র নতুন অনন্য আইডি এবং MAC ঠিকানা বরাদ্দ করা হবে, তবে অন্য কোনো তথ্য থাকবে না। কনফিগারেশন ফাইলগুলি /etc/libvirt/qemu এর অধীনে সংরক্ষণ করা হবে।

এখানে একটি উদাহরণ:

এখন, আমরা এটা চাই না. সঠিক না.

ট্রেডের ক্লোনিং + টুলস

এখন, সঠিক উপায়. পছন্দসই ফলাফল অর্জনের জন্য আপনার খুব কম সরঞ্জামের প্রয়োজন হবে; আসলে, শুধুমাত্র একটি টুল, এবং এটিকে kpartx বলা হয়, একটি ইউটিলিটি যা পার্টিশন টেবিল থেকে ডিভাইস ম্যাপ তৈরি করতে পারে। বিশেষত এখানে, আপনি ভার্চুয়াল ডিস্কগুলি অনুসন্ধান করে আপনার গেস্ট মেশিনগুলির জন্য পার্টিশন ম্যাপিং তৈরি করতে এটি ব্যবহার করতে পারেন। আমরা লিনাক্স ব্যবহার করে প্রদর্শন করব, তবে বেশিরভাগ ইউনিক্স-ভিত্তিক সিস্টেম কাজ করবে।

তাই আমাদের যা করতে হবে তা হল ভার্চুয়াল ডিস্ক থেকে পার্টিশন টেবিলটি পড়তে হবে। প্রথমত, আমাদের অবশ্যই ভার্চুয়াল ডিস্কের একটি অনুলিপি তৈরি করতে হবে, কারণ প্রতিটি মেশিনের নিজস্ব থাকবে। এটি ক্লোন পদ্ধতির একটি ধীর পদক্ষেপ, এবং এটি আপনার ফাইলগুলি কত বড় এবং ডিস্কগুলি কতটা ধীর তার উপর নির্ভর করবে। সাধারণভাবে, একটি সাধারণ 20GB ডিস্ক ফাইল কপি করতে আপনার কয়েক মিনিটের প্রয়োজন হবে।

cp <পুরানো ডিস্ক ফাইল> <নতুন ডিস্ক ফাইল>

এখন, পার্টিশন টেবিল:

kpartx -a <ভার্চুয়াল ডিস্ক ফাইল>

এটি কিছু আউটপুট তৈরি করবে। আসলে, আপনি ভার্চুয়াল মেশিনের ভিতরে থাকা প্রতিটি পৃথক পার্টিশনের জন্য একটি পৃথক ম্যাপার দেখতে পাবেন। উদাহরণস্বরূপ, আপনার যদি / এবং /হোম থাকে তবে আপনার দুটি ম্যাপার থাকবে।

kpartx -av /kvm/disk.raw
মানচিত্র loop0p1 যোগ করুন (253:0):0 4206592 লিনিয়ার /dev/loop0 2048
মানচিত্র যোগ করুন loop0p2 (253:1):0 79677440 লিনিয়ার /dev/loop0 4208640

এখন, এটি প্রাসঙ্গিক ডিভাইস মাউন্ট করা এবং প্রতি হোস্ট পরিবর্তন করার বিষয়:

mount /dev/mapper/<প্রাসঙ্গিক পার্টিশন লুপব্যাক> /মাউন্টপয়েন্ট

যেমনঃ

mount /dev/mapper/loop0p1 /mnt

অনন্য হোস্ট পরিবর্তন

এখন আপনার ভার্চুয়াল মেশিনের জন্য সম্ভবত নিম্নলিখিত পরিবর্তনগুলি প্রয়োজন:

/etc/hosts
/etc/HOSTNAME

এবং আপনি ডেবিয়ান বা RedHat/SUSE, নেটওয়ার্ক কনফিগারেশন ব্যবহার করছেন কিনা তার উপর নির্ভর করে, যদিও আপনি যদি DHCP ব্যবহার করছেন তবে এগুলি প্রয়োজনীয় নাও হতে পারে। যাইহোক, আপনি যদি স্ট্যাটিক আইপি অ্যাড্রেস ব্যবহার করেন, তাহলে এটি অবশ্যই আবশ্যক:

/etc/sysconfig/network/ifcfg-<ডিভাইস>

বা

/etc/network/interfaces

অন্যান্য পরিবর্তন প্রয়োজন হতে পারে, কিন্তু মৌলিক বেশী আছে. একবার আপনি পরিবর্তনগুলি সংরক্ষণ করলে, umount. আপনার পরবর্তী ধাপ হল নতুন ক্লোনের জন্য KVM কনফিগারেশন ফাইল সম্পাদনা করা। XML ফাইলগুলি সাধারণত /etc/kvm/vm বা /etc/libvirt/qemu ডিরেক্টরিতে রাখা হয়, যদি মেশিনগুলি ভার্চুয়াল মেশিন ম্যানেজার ব্যবহার করে স্বয়ংক্রিয়ভাবে তৈরি করা হয়।

XML ফাইল পরিবর্তন

প্রথমে, টেমপ্লেট কনফিগারেশনের একটি অনুলিপি তৈরি করুন।

আপনাকে এখন আপনার ডোমেনের অনন্য আইডি, নাম এবং MAC ঠিকানা সম্পাদনা করতে হবে। আগের মতই, আপনাকে একধরনের স্বতন্ত্রতা যুক্তি প্রয়োগ করতে হবে, সম্ভবত grep, awk এবং ইনলাইন অনুসন্ধান এবং sed দিয়ে প্রতিস্থাপন করতে হবে, এবং প্রয়োজনে নিয়মিত এক্সপ্রেশনের একটি স্বাস্থ্যকর ডোজ ব্যবহার করতে হবে, যাতে আপনি সম্পূর্ণরূপে আপনার পদ্ধতিটি স্ক্রিপ্ট করতে পারেন। স্বাভাবিকভাবেই, আপনাকে সঠিক ফাইলে হার্ড ডিস্ক নির্দেশিকা নির্দেশ করতে হবে।

একটি উদাহরণ হিসাবে, এখানে আপনার প্রয়োজন হতে পারে কমান্ডের সেট:

sed -i -e 's/\.*/\<\/uuid\>/uuid\>dedoimedo\<\/uuid/'
file.xml

এবং grep এর সাথে এটি কাজ করে তা নিশ্চিত করুন:

sed -i -e 's/\.*/\<\/uuid\>/uuid\>dedoimedo\<\/uuid/'
file.xml. | grep dedoimedo

dedoimedo

সব একসাথে রাখা

অতএব, একটি সম্পূর্ণ ক্লোন স্ক্রিপ্ট হবে - আমি একটি সাধারণ হবে RedHat উদাহরণ দিচ্ছি, আপনি নিজের সমন্বয় করতে পারেন। একইভাবে, স্ক্রিপ্টের কিছু অংশের জন্য আপনার নিজস্ব যুক্তির প্রয়োজন হবে, যেমন পার্টিশনের আউটপুট পার্স করার সিদ্ধান্ত নেওয়া। তাছাড়া, XML ফাইলের আউটপুট পার্স করার জন্য এবং খোলা ও বন্ধনী, উদ্ধৃতি চিহ্ন এবং অন্যান্য অক্ষর স্ট্রাইপ করার জন্য আপনার কিছু অতিরিক্ত কাজের প্রয়োজন হতে পারে।

#!/bin/bash

# ক্লোনিং করার সময় টেমপ্লেট ওএস সাসপেন্ড করুন

virsh suspend
cp <পুরানো ডিস্ক> <নতুন ডিস্ক>
virsh resume

kpartx -a <নতুন ডিস্ক>

# প্রাসঙ্গিক পার্টিশন পড়ার জন্য কিছু যুক্তি

মাউন্ট <কাঙ্খিত পার্টিশন> <মাউন্ট পয়েন্ট>

# হোস্ট-অনন্য ফাইলের বিষয়বস্তু পার্স করার জন্য কিছু যুক্তি

sed -i -e 's/পুরাতন হোস্টনাম লাইন/নতুন হোস্টনাম লাইন/' /etc/HOSTNAME
sed -i -e 's/পুরাতন হোস্টনাম লাইন/নতুন হোস্টনাম লাইন/' /etc/hosts
sed -i -e 's/পুরনো IP কনফিগারেশন/নতুন IP কনফিগারেশন/' /etc/sysconfig/network/ifcfg-eth0

umount <মাউন্ট পয়েন্ট>

cp /etc/kvm/vm/old.xml /etc/kvm/vm/new.xml

# কিছু যুক্তি নতুন uuid, নাম, ম্যাক, ইত্যাদি তৈরি করতে
# XML ফাইল সঠিকভাবে পার্স করার জন্য কিছু যুক্তি

sed -i -e 's/old uuid/new uuid/' /etc/kvm/vm/new.xml
sed -i -e 's/old name/new name/' /etc/kvm/vm/new.xml
sed -i -e 's/old mac/new mac/' /etc/kvm/vm/new.xml
sed -i -e 's/old disk/new disk/' /etc/kvm/vm/new.xml

virsh তৈরি করুন /etc/kvm/vm/new.xml

প্রস্থান করুন 0

এবং আমরা সম্পন্ন. বুট এবং উপভোগ করুন!

ভবিষ্যৎ সম্ভবত:virt-sysprep

আপনার বক্সে virt-sysprep উপলব্ধ থাকলে এই সম্পূর্ণ টিউটোরিয়ালটি অকেজো হয়ে যাবে, যার অর্থ সম্ভবত আপনি আপনার প্রিয় অপারেটিং সিস্টেমের পরবর্তী সংস্করণগুলির একটি ব্যবহার করছেন। যাইহোক, একটি ব্যবসায়িক পরিবেশে, এটি সম্ভবত হয় না, তাই টুলটি বেশিরভাগ সিস্টেম প্রশাসকদের কাছে উপলব্ধ হবে না। আপনি যদি এটি ব্যবহার করার সুযোগ পান তবে এটি মৌলিক ক্লোন টুলে কিছু সত্যিই সহজ উন্নতি অফার করে। মূল ডকুমেন্টেশনের উদ্ধৃতি:

Virt-sysprep একটি ভার্চুয়াল মেশিন রিসেট বা আনকনফিগার করে যাতে এটি থেকে ক্লোন তৈরি করা যায়। এই প্রক্রিয়ার ধাপগুলির মধ্যে SSH হোস্ট কীগুলি অপসারণ করা, স্থায়ী নেটওয়ার্ক MAC কনফিগারেশন অপসারণ করা এবং ব্যবহারকারীর অ্যাকাউন্টগুলি সরানো অন্তর্ভুক্ত। প্রয়োজন অনুযায়ী প্রতিটি ধাপ সক্রিয় বা নিষ্ক্রিয় করা যেতে পারে। Virt-sysprep জায়গায় গেস্ট বা ডিস্ক ইমেজ পরিবর্তন করে। অতিথিকে অবশ্যই বন্ধ করতে হবে। আপনি যদি অতিথির বিদ্যমান বিষয়বস্তু সংরক্ষণ করতে চান তবে আপনাকে অবশ্যই প্রথমে ডিস্কটি অনুলিপি বা ক্লোন করতে হবে।

আমরা অন্য একটি টিউটোরিয়ালে এই সহজ টুলটি নিয়ে আলাদাভাবে আলোচনা করব।

আরো পড়া

KVM মজার বিষয়ে আরও জানতে:

KVM + ভার্চুয়ালবক্স সম্প্রীতির মধ্যে বসবাস করছে

KVM ব্রিজড নেটওয়ার্ক টিউটোরিয়াল

KVM স্টোরেজ এবং নেটওয়ার্ক প্রশাসন

এবং এখানে কিভাবে ESXi মেশিন ক্লোন করা যায় - ধারণার অনুরূপ

ভার্চুয়াল মেশিন ডিস্ক ইমেজ টুলের আরেকটি অসাধারন সম্পদ  - libguestfs

উপসংহার

এটি একটি খুব সহজ এবং মার্জিত টিউটোরিয়াল। আমি মনে করি আপনি এটিকে অত্যন্ত দরকারী বলে মনে করবেন কারণ এটি অন্যান্য সরঞ্জামগুলির সাথে বেশিরভাগ ম্যানুয়াল ক্লোনিং পদ্ধতির পরিপূরক। আপনি কমান্ডের একটি সেট পাবেন যা আপনি সহজেই একটি একক BASH স্ক্রিপ্টে রাখতে পারেন এবং তারপরে, বব আপনার চাচা।

আরও গুরুতর নোটে, আপনি KVM কনফিগারেশন এবং ফাইলের অবস্থান সম্পর্কে আরও কিছুটা শিখেছেন, virt-clone-এর একটি খুব প্রাথমিক ব্যবহার, কীভাবে ভার্চুয়াল মেশিন ডিস্ক মাউন্ট করা যায় এবং partx ব্যবহার করে প্রাসঙ্গিক পার্টিশনে ডেটা সম্পাদনা করা যায়, নেটওয়ার্ক এবং হোস্ট কনফিগারেশন সহ, এবং আপনার ভার্চুয়াল ডোমেনে অনন্য ক্ষেত্রগুলি কীভাবে বরাদ্দ করবেন। এবং libguestfs আছে, খুব. প্লাস কিছু অন্যান্য অত্যন্ত দরকারী গাইড. সব মিলিয়ে পাঁচ মিনিটের কাজের জন্য খারাপ নয়।

অবশেষে, virt-sysprep ক্লোনিংকে অনেক সহজ করে তোলে, যাইহোক, ম্যানুয়াল পদ্ধতি, যদিও একটু বেশি জটিল, নির্বোধ। আপনি এটি ব্যবহার করে আপনি যা চান তা করতে পারেন এবং আপনি কমান্ড-লাইন সুইচ এবং বিকল্পগুলির একটি বিদ্যমান উপসেটে সীমাবদ্ধ নন। এটি সর্বদা কাজ করবে এবং এটি সর্বদা সম্পূর্ণরূপে স্ক্রিপ্ট করা যেতে পারে। জাঁকজমকপূর্ণ।

ওয়েল, আমি অনুমান যে সব হবে.

চিয়ার্স।


  1. VMware কনভার্টার দিয়ে ভার্চুয়াল মেশিনে রূপান্তর করুন

  2. ভিএমওয়্যার সার্ভারে ভার্চুয়াল মেশিনগুলি কীভাবে ক্লোন করবেন

  3. ভার্চুয়াল মেশিনে 3D ত্বরণ - পার্ট 2:ভার্চুয়ালবক্স এবং ওপেনজিএল - টিউটোরিয়াল

  4. ভার্চুয়াল মেশিনে 3D ত্বরণ - পার্ট 1:VMware এবং DirectX - টিউটোরিয়াল