এই নিবন্ধে আমরা কিভাবে KVM হাইপারভাইজার ইনস্টল এবং কনফিগার করব তা দেখব। Linux RHEL বা CentOS চলমান একটি সার্ভারে। আমরা দেখাব কিভাবে KVM এ একটি ভার্চুয়াল মেশিন তৈরি করা যায়, সেটিংস পরিবর্তন করা যায় এবং একটি গেস্ট অপারেশন সিস্টেম ইনস্টল করা যায়। আমরা একটি VM পরিচালনা করার জন্য কিছু সাধারণ কমান্ড বর্ণনা করব।
KVM (কার্ণেল-ভিত্তিক ভার্চুয়াল মেশিন) একটি Linux হাইপারভাইজার যা Intel VT- বা AMD SVM হার্ডওয়্যার ভার্চুয়ালাইজেশন প্রযুক্তি ব্যবহার করে। KVM ব্যবহার করে, আপনি তাদের নিজস্ব ভার্চুয়াল হার্ডওয়্যার দিয়ে বিচ্ছিন্ন ভার্চুয়াল মেশিন তৈরি করতে পারেন:নেটওয়ার্ক অ্যাডাপ্টার, ডিস্ক, গ্রাফিক কার্ড বা অন্যান্য ডিভাইস। আপনি ভার্চুয়াল মেশিনে (শুধু লিনাক্স নয়) যেকোন গেস্ট ওএস ইনস্টল করতে পারেন।
CentOS/RHEL-এ KVM কিভাবে ইনস্টল করবেন?
যখন আপনি আপনার সার্ভারে KVM কনফিগার করেন, তখন আপনার একটি CPU চেক দিয়ে শুরু করা উচিত। আপনার হোস্টে ইনস্টল করা CPU হার্ডওয়্যার ভার্চুয়ালাইজেশন সমর্থন করে কিনা তা নিশ্চিত করতে হবে। আপনার সার্ভার কনসোলে নিম্নলিখিত কমান্ডটি চালান:
# cat /proc/cpuinfo | egrep "(vmx|svm)"
যদি আপনার প্রসেসর VT-x সমর্থন করে , আপনি এই মত একটি আউটপুট দেখতে পাবেন:
যদি কমান্ডটি কিছুই ফেরত না দেয় তবে আপনি জানেন যে আপনার CPU ভার্চুয়ালাইজেশন সমর্থন করে, নিশ্চিত করুন যে এই বিকল্পটি সার্ভারে অক্ষম করা নেই BIOS . ইন্টেল ভার্চুয়ালাইজেশন প্রযুক্তি খুঁজুন অথবা SVM মোড বিকল্প।
আমার সার্ভার VT-x সমর্থন করে এবং এটি সক্ষম, তাই আমরা yum/dnf ব্যবহার করে CentOS/RHEL-এ প্রয়োজনীয় প্যাকেজগুলি ইনস্টল করতে পারি:
# yum install libvirt libvirt-python libguestfs-tools qemu-kvm virt-install –y
- qemu-kvm – KVM হাইপারভাইজার
- libvirt – ভার্চুয়ালাইজেশন ম্যানেজমেন্ট লাইব্রেরি
- virt-install – KVM ভার্চুয়াল মেশিন পরিচালনা করার জন্য CLI টুলস
আপনার লিনাক্স সার্ভারে অনেক প্যাকেজ ইনস্টল করা হবে। নিশ্চিত করুন যে ইনস্টলেশনের সময় কোনো ত্রুটি না ঘটে।
তারপর libvirtd যোগ করুন স্টার্টআপ এবং এটি চালানোর জন্য পরিষেবা:
# systemctl enable libvirtd
# systemctl start libvirtd
নিশ্চিত করুন যে kvm_intel এবং kvm কার্নেল মডিউল লোড করা হয়েছে:
# lsmod | grep kvm
kvm_intel 188688 0kvm 636931 1 kvm_intelirqbypass 13503 1 kvm
যদি কমান্ড কিছুই না দেয়, আপনার হোস্ট পুনরায় চালু করুন এবং আবার চেক করুন।
KVM এর জন্য ব্রিজ নেটওয়ার্কিং তৈরি এবং কনফিগার করুন
তারপরে ভার্চুয়াল মেশিন ডিস্ক এবং ISO ইমেজ সংরক্ষণ করার জন্য ডিরেক্টরি তৈরি করুন:
# mkdir -p /vz/{disk,iso}
যাতে আপনার ভার্চুয়াল মেশিনে ইন্টারনেট অ্যাক্সেস থাকে, আপনাকে অবশ্যই ব্রিজ ব্যবহার করে নেটওয়ার্ক কনফিগার করতে হবে . এটি করতে, আপনার প্রয়োজন হবে ব্রিজ-ইউটিলস . এই কমান্ডটি ব্যবহার করে আপনার লিনাক্স হোস্টে এটি ইনস্টল করা আছে কিনা তা নিশ্চিত করুন:
# rpm -qa | grep bridge-utils
প্রয়োজনে এটি ইনস্টল করুন:
# yum install bridge-utils -y
প্যাকেজটি ইনস্টল করার পরে, virbr0 নেটওয়ার্ক ইন্টারফেস অপারেটিং সিস্টেমে উপস্থিত হয়েছে:
# ip a
একটি সেতু তৈরি করতে , আপনাকে অবশ্যই আপনার সার্ভার নেটওয়ার্ক ইন্টারফেসের কনফিগারেশন ফাইল সেট আপ করতে হবে:
# cp /etc/sysconfig/network-scripts/ifcfg-enp1s0f0 /etc/sysconfig/network-scripts/ifcfg-enp1s0f0_bak
– ফাইলের ব্যাক আপ নিন# nano /etc/sysconfig/network-scripts/ifcfg-enp1s0f0
— সম্পাদনা করতে এটি খুলুন
ফাইলের বিষয়বস্তু মুছুন এবং এটিকে নিম্নলিখিত দিয়ে প্রতিস্থাপন করুন:
DEVICE="enp1s0f0"ONBOOT="yes"BRIDGE=br0
আপনার ক্ষেত্রে, ইন্টারফেসের নাম ভিন্ন হতে পারে (এটি ip a ব্যবহার করে পান কমান্ড)।
তারপর একটি ফাইল তৈরি করুন:
# nano /etc/sysconfig/network-scripts/ifcfg-br0
নিম্নলিখিত কনফিগারেশন রয়েছে:
DEVICE="br0"TYPE=BRIDGEONBOOT=yesBOOTPROTO=staticIPADDR="IP_address_of_the_server"NETMASK="255.255.255.0"GATEWAY="Default_gateway"DNS1="8.8.8.8"DNS2.="4.8.আপনাকে অবশ্যই আপনার সার্ভারের আইপি ঠিকানা এবং ডিফল্ট গেটওয়ে উল্লেখ করতে হবে। আপনি নেটওয়ার্ক ইন্টারফেস কনফিগারেশন ফাইল সম্পাদনা করার পরে, নেটওয়ার্ক পুনরায় চালু করুন:
যদি নেটওয়ার্ক রিস্টার্ট করার পরে আপনি আপনার সার্ভার অ্যাক্সেস করতে না পারেন তবে হোস্টটিও পুনরায় চালু করার চেষ্টা করুন। কখনও কখনও সেতুটি সঠিকভাবে কনফিগার করা প্রয়োজন।
# service network restart
সেতুর অবস্থা দেখতে, এই কমান্ডটি ব্যবহার করুন:
# brctl show
ব্রিজের নাম ব্রিজ আইডি STP সক্ষম ইন্টারফেসbr0 8000.ac1f6b654321 no enp1s0f0virbr0 8000.525400abcdef1 হ্যাঁ virbr0-nicশেষ ধাপে, নেটওয়ার্ক ট্রাফিক ফরওয়ার্ডিং কনফিগার করুন:
# echo -e "net.ipv4.ip_forward=1" >> /etc/sysctl.conf && sysctl -p
তারপর libvirtd পুনরায় চালু করুন :
# service libvirtd restart
মৌলিক KVM নেটওয়ার্ক কনফিগারেশন শেষ, এবং আপনি একটি ভার্চুয়াল মেশিন তৈরি করতে পারেন।
KVM-এ ভার্চুয়াল মেশিন তৈরি করা হচ্ছে
একটি ভার্চুয়াল মেশিন তৈরি করার আগে, আমি একটি অফিসিয়াল মিরর থেকে /vz/iso এ একটি CentOS 8 চিত্র ডাউনলোড করেছি :
# cd /vz/iso && wget https://mirror.imt-systems.com/centos/8.3.2011/isos/x86_64/CentOS-8.3.2011-x86_64-dvd1.iso
একটি নতুন KVM ভার্চুয়াল মেশিন তৈরি করতে, নিম্নলিখিতটি চালান:
virt-install -n test-centosvm \
--noautoconsole \
--network=bridge:br0 \
--ram 2048 --arch=x86_64 \
--vcpus=4 --cpu host --check-cpu \
--disk path=/vz/disk/test-centosvm.img,size=32 \
--cdrom /vz/iso/CentOS-8.3.2011-x86_64-dvd1.iso \
--graphics vnc,listen=IP,password=p@sswdr0w1 \
--os-type linux --os-variant=rhel7 --boot cdrom,hd,menu=on
test-centosvm
— একটি VM নামnoautoconsole
– একটি VM তৈরি করার পরে, আপনি স্বয়ংক্রিয়ভাবে VM কনসোলের সাথে সংযুক্ত হবেন নাnetwork
– একটি নেটওয়ার্ক প্রকার (সেতু, আমার ক্ষেত্রে);ram
— VM-এ RAM এর পরিমাণ;vcpus
– CPU কোরের সংখ্যা (VM-এর জন্য vCPU কনফিগারেশন)disk
– একটি ভার্চুয়াল ডিস্ক, পথ – ডিস্কের একটি পথ, আকার – ডিস্কের আকার (আপনি এটিকে পরে প্রসারিত/সঙ্কুচিত করতে পারেন)cdrom
– একটি ভার্চুয়াল সিডিরম, একটি গুস্ট ওএস ইনস্টল করার জন্য একটি ISO ইমেজ মাউন্ট করা হয়েছে;graphics
— গ্রাফিক কনসোল ব্যবহার করে ভার্চুয়াল মেশিনের সাথে সংযোগ করার পরামিতি। আমরা এটির সাথে সংযোগ করতে VNC ব্যবহার করব, তাই শোনার জন্য KVM সার্ভারের IP ঠিকানা উল্লেখ করুন, যার উপর আপনি VM তৈরি করেছেন, এবং ভার্চুয়াল মেশিন কনসোলে সংযোগ করার জন্য পাসওয়ার্ড
স্বয়ংক্রিয়ভাবে VM বুট করতে, চালান:
# virsh autostart test-centosvm
ভিএনসি ব্যবহার করে একটি KVM VM-এর সাথে কীভাবে সংযোগ করবেন এবং একটি OS ইনস্টল করবেন?
VNC ব্যবহার করে একটি KVM ভার্চুয়াল মেশিনের সাথে সংযোগ করতে, আপনাকে এটি যে পোর্টে চলছে তা খুঁজে বের করতে হবে:# virsh vncdisplay test-centovms
IP:0
0 এর মানে হল VNC ব্যবহার করে সংযোগ করার জন্য পোর্ট নম্বর হল 5900৷ যদি আপনি একটি ভিন্ন মান পান, তাহলে কমান্ডটি 5900-এ ফিরে আসা নম্বরটি যোগ করুন৷
VNC ব্যবহার করে সার্ভারের সাথে সংযোগ করতে, আমি TightVNC ব্যবহার করছি . এটি চালান এবং আপনার সার্ভারের IP ঠিকানা এবং VNC পোর্ট উল্লেখ করুন যা আমরা আগে পেয়েছি (একটি বিভাজক হিসাবে একটি ডাবল কোলন সহ)।
সংযুক্ত করুন ক্লিক করুন৷ এবং আপনার KVM VM তৈরি করার সময় আপনার সেট করা পাসওয়ার্ড লিখুন। আপনি যদি এটি সঠিকভাবে করে থাকেন, সার্ভার কনসোল প্রদর্শিত হবে, যেখানে CentOS ইনস্টলেশন (অথবা অন্য গেস্ট ওএস, কোন ছবিটি আপনি মাউন্ট করেছেন) চলছে৷
যদি আপনার সার্ভারে একটি ফায়ারওয়াল সক্ষম করা থাকে, তাহলে ফায়ারওয়ালল্ড/আইপিটেবলে VNC-এর জন্য পোর্ট 5900-5910 খুলুন (দশটি পোর্ট যথেষ্ট হবে)। একটি ভার্চুয়াল মেশিনে একটি গেস্ট OS ইনস্টল করার পরে, সার্ভার কনসোল থেকে VM শুরু করুন:
একটি KVM ভার্চুয়াল মেশিন বন্ধ করতে, এই কমান্ডটি ব্যবহার করুন:
# virsh shutdown test-centosvm
সমস্ত নিবন্ধিত KVM ভার্চুয়াল মেশিনের একটি তালিকা প্রদর্শন করতে:
# virsh list --all
বেসিক KVM হোস্ট কনফিগারেশন শেষ, এবং একটি ভার্চুয়াল মেশিন তৈরি করা হয়েছে। আপনি KVM-এ যেকোন সংখ্যক ভার্চুয়াল মেশিন তৈরি করতে পারেন, এটি শুধুমাত্র আপনার সার্ভারের সংস্থান এবং আপনার প্রয়োজনের উপর নির্ভর করে৷