কম্পিউটার টিউটোরিয়াল

লিনাক্স ভার্চুয়ালাইজেশন ওয়ার্কস্টেশন তৈরির পদ্ধতি

লিনাক্স ভার্চুয়ালাইজেশন ওয়ার্কস্টেশন তৈরির পদ্ধতি

ভার্চুয়ালাইজেশন (Virtualization) আজকাল আরও সাধারণ হচ্ছে। আপনার বিদ্যমান মেশিন নিয়ে একাধিক ভার্চুয়াল মেশিন প্রোভিশন (provision) করার ক্ষমতা শিক্ষা, টেস্টিং এবং এক্সপেরিমেন্টেশন, এবং প্রোডাক্টিভিটির (productivity) মতো জিনিসগুলোতে অত্যন্ত সাহায্য করে। লিনাক্স যেহেতু τόσο জনপ্রিয় এবং শক্তিশালী, এটি আপনার নিজস্ব পারসোনাল ব্যবহারের জন্য একটি ভার্চুয়ালাইজেশন সার্ভার বা ওয়ার্কস্টেশন তৈরি শুরু করার একটি দুর্দারুন জায়গা। এখানে কভার করা হয়েছে কীভাবে স্ক্র্যাচ থেকে একটি লিনাক্স ভার্চুয়ালাইজেশন ওয়ার্কস্টেশন তৈরি করতে হয়।

ভার্চুয়ালাইজেশন হার্ডওয়্যার কম্প্যাটিবিলিটি (Virtualization Hardware Compatibility)

আপনি কোনো প্যাকেজ ইনস্টল করা শুরু করার আগে, আপনি নিশ্চিত করতে চাবেন আপনার CPU হার্ডওয়্যার ভার্চুয়ালাইজেশন সাপোর্ট করে কিনা। আধুনিক ল্যাপটপ এবং ডেস্কটপ CPU-এর অনেকেই করে, তবে চেক করা ভালো। নিচের কমান্ডগুলো আপনার /proc/cpuinfo ফাইল চেক করবে প্রয়োজনীয় টেকনোলজির জন্য। আপনি যদি নিশ্চিত নন আপনার সিস্টেমে কী আছে, তবে দুটোই ট্রাই করুন - এতে কোনো ক্ষতি নেই।

grep vmx /proc/cpuinfo # Intel CPU-এর জন্য grep svm /proc/cpuinfo # AMD CPU-এর জন্য

আমার সিস্টেমে Intel CPU আছে, তাই আমার আউটপুট নিচের ইমেজের মতো।

লিনাক্স ভার্চুয়ালাইজেশন ওয়ার্কস্টেশন তৈরির পদ্ধতি

আপনি যদি সেকোনো কমান্ডের আউটপুটে কিছুই না পান, তবে আপনি lscpu আউটপুট দেখে "Virtualization" সেকশন খুঁজে বের করতে পারেন। আমারটি নেক্সট ইমেজের মতো দেখায়।

লিনাক্স ভার্চুয়ালাইজেশন ওয়ার্কস্টেশন তৈরির পদ্ধতি

আমরা জানি আমার সিস্টেম ভার্চুয়ালাইজেশন হ্যান্ডেল করার জন্য সেট আপ করা আছে। আমি আপনার সিস্টেমে কমপক্ষে ৮ GB RAM থাকার পরামর্শ দেব। সেরা অভিজ্ঞতার জন্য, আমি ১৬, ৩২, অথবা এমনকি ৬৪ GB RAM রিকমেন্ড করব। এটি আপনাকে প্রচুর রুম দেবে একাধিক VM সেট আপ এবং চালানোর জন্য RAM শেষ হওয়ার চিন্তা ছাড়া, এবং আপনি একটি ফুল ক্লায়েন্ট/সার্ভার নেটওয়ার্ক বা ওয়ার্কস্টেশন ফ্লিট (workstation fleets) একই সিস্টেমে তৈরি করতে পারবেন।

KVM ইনস্টল করা

KVM মানে Kernel-based Virtual Machine, এবং এটি সেরা লিনাক্স-নেটিভ হাইপারভাইজার (hypervisor) যা আউট দিয়ে আছে। পারফরম্যান্স অত্যন্ত ভালো, এবং আপনার KVM ভার্চুয়াল মেশিন ম্যানেজ করার একাধিক উপায় রয়েছে। QEMU প্রায়শই KVM-এর সাথে যায় হার্ডওয়্যার এমুলেট (emulate) করার একটি উপায় হিসেবে।

আপনার সার্ভারের জন্য যা যা দরকার সব কিছু ইনস্টল করতে নিচের কমান্ডগুলো চালান:

ফেডোরা (Fedora)-র জন্য:

sudo dnf -y groupinstall "Virtualization Host"; sudo dnf -y install virt-install

উবুন্টু/উবুন্টু-ভিত্তিক ডিস্ট্রোর জন্য:

sudo apt -y install qemu-kvm libvirt-daemon-system libvirt-daemon virtinst bridge-utils libosinfo-bin libguestfs-tools virt-top
লিনাক্স ভার্চুয়ালাইজেশন ওয়ার্কস্টেশন তৈরির পদ্ধতি

একবার KVM ইনস্টল হয়ে গেলে, নিশ্চিত করুন কার্নেল মডিউলটি লোডেড (loaded) আছে এই কমান্ড দিয়ে:

lsmod | grep kvm

এবং KVM-এর জন্য ডيمون (daemon) শুরু এবং এনেবল (enable) করুন নিচের কমান্ড দিয়ে:

sudo systemctl start libvirtd sudo systemctl enable libvirtd sudo systemctl status libvirtd

আপনার আউটপুট নিচের ইমেজের মতো হওয়া উচিত।

লিনাক্স ভার্চুয়ালাইজেশন ওয়ার্কস্টেশন তৈরির পদ্ধতি

অনেক অন্যান্য গাইড এখন আপনাকে আপনার সকল VM-র বাইরের নেটওয়ার্ক এক্সেস করার জন্য একটি ব্রিজ (bridge) সেট আপ করতে বলবে। আমি এখানে সেটি কভার করব না, কিন্তু আর্চ উইকি (Arch Wiki)-র একটি লিংক দিচ্ছি যা আপনাকে এটি করার বান্ধব উপায়গুলো শিখাবে। এটি উপকারী হবে আপনি যদি আপনার VM-র আপনার ব্রডার নেটওয়ার্কে সার্ভিস প্রদান করতে চান, কিন্তু আপনি শুধু টেস্টিং এবং স্যান্ডবক্সিং (sandboxing) জন্য ব্যবহার করলে, ডিফল্ট নেটওয়ার্ক অপশনগুলো ঠিকই আছে।

GUI দিয়ে KVM VM ইনস্টল ও ম্যানেজ করা

আপনার KVM ভার্চুয়াল মেশিন ম্যানেজ করার একাধিক উপায় রয়েছে। আপনি আপনার লিনাক্স ওয়ার্কস্টেশন বা সার্ভারের জন্য একটি গ্রাফিক্যাল ডেস্কটপ ব্যবহার করলে, আপনি Virtual Machine Manager বা GNOME Boxes* ব্যবহার করতে পারেন, অথবা আপনি যদি একটি CLI-ওনли (CLI-only) সার্ভার চালান এবং সেটির জন্য একটি GUI ইন্টারফেস খুঁজছেন, তবে আপনি Cockpit ব্যবহার করতে পারেন এবং "Applications" মেনুর "Machines" অ্যাপ্লিকেশন ইনস্টল করে আপনার VM-রা ম্যানেজ করতে পারেন। এই সকল GUI টুল আপনাকে KVM VM ইনস্টল করতেও দেবে।

*GNOME Boxes KVM ভার্চুয়াল মেশিন ডील করার সবচেয়ে সহজ উপায়, কিন্তু আপনাকে নেটওয়ার্কিং, স্টোরেজ, এবং হার্ডওয়্যার কনফিগারেশনের বিষয়ে অন্যান্য অফারিংদের মতো কন্ট্রোল নেই।

টার্মিনাল থেকে KVM VM ইনস্টল করা

আপনি উপরের কমান্ডগুলো দ্বারা ইনস্টল করা প্যাকেজের সাথে আসা CLI টুলসও ব্যবহার করতে পারেন। virt-install KVM ভার্চুয়াল মেশিন ইনস্টল করার একটি দুর্দারুন টুল XML ডেফিনিশন (XML definitions) নিয়ে ঝামেলা না করে। virt-install-এর সাথে ব্যবহার করার জন্য অনেক ডিফারেন্ট অপশন রয়েছে। যাইহোক, আমি নিচের টেমপ্লেটের সাথে সবচেয়ে বেশি সাকসেস (success) পেয়েছি:

sudo virt-install \ --connect qemu:///system \ --name  \ --memory  \ --vcpus  \ --disk size= \ --cdrom /PATH/TO/ISO/FILE
লিনাক্স ভার্চুয়ালাইজেশন ওয়ার্কস্টেশন তৈরির পদ্ধতি

এটি আপনার সিস্টেমের জন্য যা যা দরকার সেটি সব ডিফাইন করা উচিত। আপনি নেটওয়ার্কওভার ইনস্টল করতে পারেন, ইমেজ ইম্পোর্ট (import) করতে পারেন, এবং ডিস্কের লোকেশন স্পেসিফাই করতে পারেন "path=/PATH/TO/DIR/DISKNAME.qcow2" size অপশনের পর কমা (comma) দিয়ে সেপারেট করে। Red Hat-এর virt-install ডকুমেন্টেশনের লিংক এখানে।

এটি Remote Viewer (ও 말했다 जाता है virt-viewer) খুলবে এবং আপনাকে সাধারণভাবে OS ইনস্টল প্রক্রিয়া সম্পূর্ণ করতে দেবে। আপনাকে GUI অ্যাক্সেস দরকার, তাই আপনার সার্ভার হেডলেস (headless) হলে, আমি উপরে উল্লিখিত Cockpit ব্যবহার করার পরামর্শ দেব। আপনি কিকস্টার্ট (kickstart) ফাইলও ব্যবহার করতে পারেন RHEL-ভিত্তিক ডিস্ট্রো virt-install-এর সাথে ইনস্টল করতে।

টার্মিনাল থেকে KVM VM ম্যানেজ করা

প্রাইমারি কমান্ড যা আপনি KVM VM ম্যানেজ করতে ব্যবহার করবেন সেটি হলো virsh। এটি একটি কমান্ড বা একটি ইন্টারঅ্যাক্টিভ শেল (interactive shell) হিসেবে উপলব্ধ, তাই এটিতে প্রবেশ করা হলো sudo virsh টাইপ করে এন্টার চাপা।

লিনাক্স ভার্চুয়ালাইজেশন ওয়ার্কস্টেশন তৈরির পদ্ধতি

কয়েক উদাহরণস্বরূপ, আপনি এখন আপনার সকল ডোমেন (domains) লিস্ট করতে পারেন list --all দিয়ে, ডোমেন শুরু করতে পারেন start দিয়ে, এবং ডোমেন শাট ডাউন (shut down) করতে পারেন shutdown দিয়ে।

লিনাক্স ভার্চুয়ালাইজেশন ওয়ার্কস্টেশন তৈরির পদ্ধতি

virsh অপশনগুলোর একটি বিশাল সংখ্যা রয়েছে, তাই আমি আপনাকে man পেজগুলো চেক আউট করতে এবং আপনার মেশিন সম্পর্কে টার্মিনাল থেকে ম্যানেজ করা সকল দুর্দারুন জিনিস খুঁজে বের করতে অনুরোধ করছি।

আপনি আপনার VM-র IP অ্যাড্রেস ব্যবহার করে সেগুলোতে SSH ও করতে পারেন। সেগুলো virbr0 ইন্টারফেস থেকে IP পায়, এবং VM-র ইন্টারফেসগুলো ডিফল্টভাবে SSH অ্যাক্সেসের জন্য ওপেন (open) থাকে।

এখন আপনার লিনাক্স সিস্টেমে একটি ভার্চুয়ালাইজেশন ওয়ার্কস্টেশন আছে, নিশ্চিত করুন আপনি আপনার ভার্চুয়াল মেশিনগুলো সহজে স্পিড আপ (speed up) করা এবং VNC ব্যবহার করে আপনার লিনাক্স VM-র অ্যাক্সেস করা শিখেছেন।


  1. লিনাক্স থেকে উইন্ডোজ ১০ ইনস্টলার USB তৈরি করা (WoeUSB)

  2. লিনাক্স VPS-এ CS:GO সার্ভার তৈরির পদ্ধতি

  3. লিনাক্সে সিম্পল শেল স্ক্রিপ্ট মাস্টার করুন: ধাপে ধাপে গাইড

  4. লিনাক্সে বুটেবল উইন্ডোজ ১০ USB তৈরি করার ধাপে ধাপে গাইড