পূর্ববর্তী একটি নিবন্ধে আমরা আলোচনা করেছি কিভাবে KVM হাইপারভাইজার ইনস্টল করতে হয় এবং একটি ভার্চুয়াল মেশিন তৈরি করতে হয়। একটি একক নিবন্ধে আমরা KVM ভার্চুয়াল মেশিন ব্যবস্থাপনাকে বিস্তারিতভাবে কভার করতে সক্ষম হইনি। আজ আমরা virsh
দিয়ে কমান্ড লাইন থেকে ভার্চুয়াল মেশিন পরিচালনা করার চেষ্টা করব :কীভাবে ভিএম সেটিংস পরিবর্তন করবেন, অতিরিক্ত ভার্চুয়াল ডিভাইস যোগ করবেন এবং লিনাক্সে কেভিএম ভার্চুয়াল মেশিন পরিচালনা করতে কোন কমান্ড ব্যবহার করবেন।
KVM ভার্চুয়াল মেশিন পরিচালনা করতে Virsh (ভার্চুয়াল শেল) কমান্ড ব্যবহার করা
আসুন দেখে নেওয়া যাক কীভাবে নিবন্ধিত KVM ভার্চুয়াল মেশিনগুলি দেখতে হয়, কীভাবে সেগুলি শুরু, বন্ধ বা মুছতে হয়। Virsh
(libvirt API-এর উপর ভিত্তি করে) Linux কনসোলে KVM ভার্চুয়াল মেশিন পরিচালনা করতে ব্যবহার করা যেতে পারে।
# virsh list
– চলমান VMs
# virsh list --all
– সমস্ত নিবন্ধিত ভার্চুয়াল মেশিনের তালিকা দেখায় (যেগুলি বন্ধ হয়ে গেছে)
আপনি স্ক্রিনশটে দেখতে পাচ্ছেন, প্রথম ক্ষেত্রে একটি শাটডাউন VM প্রদর্শিত হয়নি।
# virsh shutdown <vm name>
— ভার্চুয়াল মেশিন বন্ধ করুন
# virsh start <vm name>
— ভার্চুয়াল মেশিন শুরু করুন
# virsh suspend <vm name>
— VM সাসপেন্ড করুন
# virsh resume <vm name>
— একটি স্থগিত ভার্চুয়াল মেশিন শুরু করুন
# virsh reboot <vm name>
— VM পুনরায় চালু করুন
# virsh destroy <vm name>
— একটি অবিলম্বে অপ্রীতিকর শাটডাউন শুরু করে এবং VM বন্ধ করে (অতিথি ভার্চুয়াল মেশিন প্রতিক্রিয়াহীন হলে এই কমান্ডটি ব্যবহার করুন)
# virsh undefine <vm name>
— VM নিবন্ধনমুক্ত করুন এবং এর স্টোরেজ ভলিউম মুছে দিন
# virsh vcpuinfo <vm name>
— VM
ভার্চুয়াল মেশিন সম্পর্কে বিভিন্ন তথ্য পেতে এখানে কিছু অন্যান্য কমান্ড রয়েছে:
# virsh domid <vm name>
— ভার্চুয়াল মেশিন আইডি পান
# virsh domuuid <vm name>
— একটি ভার্চুয়াল মেশিনের UUID দেখান
# virsh dominfo <vm name>
— একটি ভার্চুয়াল মেশিন সম্পর্কে তথ্য প্রদর্শন করে
# virsh domstate <vm name>
— ভিএম অবস্থা দেখুন
# virsh dumpxml <vm name>
— XML ফরম্যাটে ভার্চুয়াল মেশিনের কনফিগারেশন ফাইল তালিকাভুক্ত করুন
কিভাবে একটি KVM ভার্চুয়াল মেশিনে মেমরি এবং vCPU যোগ করবেন?
KVM কনসোলে, আপনি দুটি উপায়ে একটি VM-এ বরাদ্দকৃত CPU বা মেমরি সংস্থান যোগ বা কমাতে পারেন:
- virsh ব্যবহার করে
- VM কনফিগারেশনের মাধ্যমে XML ফাইল
একটি ভার্চুয়াল মেশিন চলমান থাকলে, এটি বন্ধ করুন:
# virsh shutdown test-centos
Domain test-centos is being shutdown
তারপর ভার্চুয়াল সিপিইউ (vCPU) এর সংখ্যা 6 এ পরিবর্তন করতে virsh ব্যবহার করুন:
# virsh setvcpus <vm name> <vcpu_count> --config
যেমন:
# virsh setvcpus test-centos 6 --config
আমি কমান্ড চালানোর পরে, একটি ত্রুটি উপস্থিত হয়েছিল:
error: invalid argument: requested vcpus is greater than max allowable vcpus for the persistent domain: 6 > 4
আপনি সর্বোচ্চ সংখ্যার চেয়ে বড় কোরের সংখ্যা সেট করতে পারবেন না। VM vCPU-র সর্বাধিক অনুমোদিত সংখ্যা বাড়াতে, এই কমান্ডটি চালান:
# virsh setvcpus test-centos 6 --config --maximum
তারপর পূর্ববর্তী কমান্ডটি চালান এবং ভার্চুয়াল মেশিন চালু করুন:
আসুন VM সেটিংসে vCPU-এর সংখ্যা পরীক্ষা করি:
# virsh dumpxml test-centos
<domain type='kvm'> <name>test-centos</name> <uuid>3b223aa2-b322-1ff1-ab23-c1223abc1f01</uuid> <memory unit='KiB'>2097152</memory> <currentMemory unit='KiB'>2097152</currentMemory> <vcpu placement='static'>6</vcpu>
একইভাবে, আপনি ভার্চুয়াল মেশিনে অতিরিক্ত RAM যোগ করতে পারেন:
# virsh setmem <vm_name> <memsize> --config
যেমন:
# virsh setmem test-centos 4G --config
একই কারণে একটি ত্রুটি ঘটেছে:
error: invalid argument: cannot set memory higher than max memory.
আসুন মেমরির সর্বোচ্চ পরিমাণ বাড়াই:
# virsh setmaxmem test-centos 6G --config
তারপর আপনি VM এ মেমরি যোগ করতে পারেন।
কোনো পরিবর্তন করার আগে, ভার্চুয়াল মেশিনটি বন্ধ করে তারপর চালু করতে ভুলবেন না।
এছাড়াও, আপনি একটি KVM VM এর XML কনফিগারেশন ফাইলে সম্পদের পরিমাণ পরিবর্তন করতে পারেন। আপনি এটি অনলাইনে সম্পাদনা করতে পারেন বা VM XML ফাইলের ব্যাকআপ নিতে পারেন, এটি সংশোধন করতে পারেন এবং ভার্চুয়াল মেশিনে আবেদন করতে পারেন৷
আসুন VM XML ফাইল অনলাইনে সম্পাদনা করি:
# virsh edit <vm_name>
vi-এ যে সম্পাদকটি প্রদর্শিত হবে, সন্নিবেশ টিপে আপনার পছন্দসই পরিবর্তনগুলি করুন৷ বোতাম।
নিম্নলিখিত ব্লক পরিবর্তন করুন:
<domain type='kvm'> <name>test-centos</name> <uuid>3b223aa2-b322-1ff1-ab23-c1223abc1f01</uuid> <memory unit='KiB'>6291456</memory> <currentMemory unit='KiB'>4194304</currentMemory> <vcpu placement='static'>6</vcpu> <os>
উদাহরণস্বরূপ, আসুন VM-এ 2টি প্রসেসর কোর এবং 1 GB মেমরি বরাদ্দ করি:
মনে রাখবেন মেমরির আকার কিলোবাইটে দেখানো হয়েছে।
ফাইলের পরিবর্তনগুলি সংরক্ষণ করুন এবং আপনার VM রিবুট করুন:
# virsh reboot <vm_name>
আপনি যদি XML ফাইল ব্যাকআপ করেন তাহলে আপনি একই কাজ করতে পারেন:
# virsh dumpxml <vm_name> > /root/test.xml
# vi /root/test.xml
আপনি যে সেটিংস চান তা পরিবর্তন করুন, ফাইলটি সংরক্ষণ করুন এবং এটি ভার্চুয়াল মেশিনে প্রয়োগ করুন:
# virsh shutdown test-centos
Domain test-centos is being shutdown
# virsh define /root/test.xml
Domain test-centos defined from /root/test.xml
# virsh start test-centos
Domain test-centos startedকখনও কখনও আপনি যখন অনলাইনে একটি VM কনফিগারেশন ফাইল পরিবর্তন করেন, রিবুট করার পরে নির্ধারিত সংস্থানগুলি পুনরায় সেট করা হয়। এই ক্ষেত্রে, ভার্চুয়াল মেশিনটি বন্ধ করুন এবং তারপরে এটি চালু করুন।
একটি বিদ্যমান KVM VM এ একটি ডিস্ক যোগ করুন
আমাদের একটি নিবন্ধে আমরা বর্ণনা করেছি কিভাবে কেভিএম ভার্চুয়াল মেশিনের ডিস্কের আকার প্রসারিত বা কমানো যায়। কিন্তু কিভাবে একটি অতিরিক্ত ডিস্ক যোগ করতে হয় তা আমরা বলিনি।
প্রথমত, একটি ভার্চুয়াল মেশিনের জন্য একটি নতুন ডিস্ক ফাইল তৈরি করুন:
# qemu-img create -f qcow2 -o size=20G /vz/disk/test.img
qcow2 এর পরিবর্তে, আপনি যে ডিস্ক ফরম্যাট চান তা ব্যবহার করতে পারেন। ফাইল পাথও নির্দিষ্ট করুন। আমার ডিস্ক স্টোরেজ /vz/disk/ এ অবস্থিত।
তারপর আপনি VM এ একটি ভার্চুয়াল ডিস্ক ডিভাইস যোগ করতে পারেন:
# virsh attach-disk <vm_name> /vz/disk/test.img vdb --type disk --persistent
শাটডাউন এবং আপনার VM রিবুট করুন, তারপর দেখুন আপনি কি পেয়েছেন:
# virsh shutdown test-centos
Domain test-centos is being shutdown
# virsh start test-centos
Domain test-centos started
# virsh dumpxml test-centos
<domain type='kvm' id='14'> <name>test-centos</name> <uuid>3b223aa2-b322-1ff1-ab23-c1223abc1f01</uuid> <memory unit='KiB'>2097152</memory> <currentMemory unit='KiB'>2097152</currentMemory> <vcpu placement='static'>6</vcpu> <resource> <partition>/machine</partition> </resource> <os> <type arch='x86_64' machine='pc-i440fx-rhel7.0.0'>hvm</type> <boot dev='cdrom'/> <boot dev='hd'/> <bootmenu enable='yes'/> </os> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ <disk type='file' device='disk'> <driver name='qemu' type='qcow2'/> <source file='/vz/disk/test.img'/> <backingStore/> <target dev='vdb' bus='virtio'/> <alias name='virtio-disk1'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x09' function='0x0'/> </disk>
আপনি দেখতে পাচ্ছেন, ডিস্ক যোগ করা হয়েছে।
কেভিএম ভার্চুয়াল মেশিনে দ্বিতীয় এনআইসি কীভাবে যোগ করবেন?
আসুন একটি ভিএম-এ অন্য নেটওয়ার্ক ইন্টারফেস যুক্ত করার চেষ্টা করি। প্রথমত, লিনাক্স হোস্টে নেটওয়ার্ক ইন্টারফেসগুলি পরীক্ষা করুন:
# brctl show
আমার কেভিএম হোস্টে একটি নেটওয়ার্ক ইন্টারফেসের সাথে আমার একটি ভার্চুয়াল মেশিন রয়েছে। আমি br0 এ আরেকটি ভার্চুয়াল নেটওয়ার্ক ইন্টারফেস যোগ করতে চাই। এই কমান্ডগুলি চালান:
# virsh shutdown test-centos
# virsh attach-interface test-centos --type bridge --source br0 --persistent
# virsh start test-centos
আপনার VM-এ অন্য নেটওয়ার্ক ইন্টারফেস উপস্থিত হয়েছে তা নিশ্চিত করুন:
<interface type='bridge'> <mac address='52:54:00:7e:c1:9f'/> <source bridge='br0'/> <model type='virtio'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> </interface> <interface type='bridge'> <mac address='52:54:00:2f:23:79'/> <source bridge='br0'/> <model type='rtl8139'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x0a' function='0x0'/> </interface>
এছাড়াও আপনি XML ফাইলের মাধ্যমে সরাসরি আপনার ভার্চুয়াল মেশিনের নেটওয়ার্ক সেটিংস পরিবর্তন করতে পারেন:
# virsh edit test-centos
প্রথম নেটওয়ার্ক ইন্টারফেসের পরে, এই লাইনগুলি যোগ করুন:
<interface type='bridge'> <source bridge='br0'/> </interface>
ফাইলটি সংরক্ষণ করুন এবং VM শুরু করুন। KVM বাকি কনফিগারেশন (MAC ঠিকানা, ইত্যাদি) নিজেই যোগ করবে।
এই নিবন্ধে আমরা আপনাকে লিনাক্স সার্ভার কনসোল থেকে KVM ভার্চুয়াল মেশিনগুলি পরিচালনা করার জন্য প্রয়োজনীয় প্রধান জিনিসগুলি কভার করেছি। পরবর্তী প্রবন্ধে আমরা দেখাব কিভাবে virt-manager
এর মাধ্যমে ভার্চুয়াল মেশিন পরিচালনা করতে হয়। GUI।