কম্পিউটার

সাধারণ KVM সমস্যার সমাধান করা

কিছু সময় আগে, আমি আপনাকে দুটি Xen সমস্যা সমাধানের নিবন্ধ দিয়েছি, যা Xen প্রযুক্তি ব্যবহার করে আপনার পরিবেশের ব্যবস্থা করার চেষ্টা করার সময় আপনার সম্মুখীন হতে পারে এমন কিছু সাধারণ সমস্যা নিয়ে আলোচনা করা হয়েছে। আজ, আমরা KVM এর সাথে একই জিনিস করব।

ব্যক্তিগতভাবে, আমি মনে করি Python vomit verbosity এবং সামগ্রিক জটিলতার ক্ষেত্রে KVM অনেক বেশি মার্জিত, কিন্তু আপনি এখনও কখনও কখনও কুৎসিত ত্রুটির সম্মুখীন হতে পারেন যা আপনার জীবনকে আরও কঠিন করে তুলবে। এই টিউটোরিয়ালটি আপনাকে শেখাবে কীভাবে তাদের চারপাশে কাজ করতে হয়, কীভাবে সম্ভাব্য কনফিগারেশন এবং সেটআপ বিরোধগুলি সনাক্ত করতে হয় এবং অন্যান্য বিভিন্ন কৌশলগুলি। আমার পরে.

টিপ 1:ব্রিজ নেটওয়ার্কিং ইন্টারফেস দেখায় না

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

সাধারণ KVM সমস্যার সমাধান করা

সমাধানটি খুবই সহজ - আপনার ডোমেনের জন্য কনফিগারেশন ফাইল ম্যানুয়ালি সম্পাদনা করুন। ডিফল্টরূপে, KVM ফাইলগুলিকে দুটি স্থানে সংরক্ষণ করে, হয় /etc/kvm/vm অথবা /etc/libvirt/qemu, তাই আপনি সম্ভবত সেখানে আপনার XML ফাইলগুলি খুঁজে পাবেন। প্রাসঙ্গিকটি খুলুন এবং <সোর্স ব্রিজ> এর অধীনে ব্রিজড অ্যাডাপ্টারের বিবরণ ম্যানুয়ালি পরিবর্তন করুন। ফাইলটি বন্ধ করুন, ভার্চুয়াল মেশিন শুরু করুন এবং উপভোগ করুন।

<ইন্টারফেস প্রকার='ব্রিজ'>
<উৎস সেতু='br0'/>

টিপ 2:Biosdevname এবং কোন নেটওয়ার্ক নেই

Biosdevname একটি ইউটিলিটি যা ডিভাইসগুলিতে BIOS-প্রদত্ত নাম বরাদ্দ করার চেষ্টা করে, সাধারণতা রক্ষা করে এবং হার্ডওয়্যার প্রশাসনের যুক্তিকে সহজ করে, বিশেষ করে নেটওয়ার্ক ডিভাইসগুলির সাথে। যদি আপনার কাছে অনন্য ক্ষমতা বা ফাংশন সহ অনেকগুলি থাকে, তাহলে জেনেরিক ethX নামের দ্বারা তাদের শনাক্ত করা আপনার পক্ষে কঠিন হবে, কিন্তু যদি সেগুলিকে অনন্য স্ট্রিং দেওয়া হয়, তাহলে আপনি সহজেই 1Gbps এবং 10Gbps অ্যাডাপ্টারগুলিকে আলাদা করে বলতে পারবেন এবং এইরকম। স্বাভাবিকভাবেই, এটি বেশিরভাগ এন্টারপ্রাইজ সিস্টেমের জন্য উপযোগী, কারণ বাড়ির লোকেরা খুব কমই এই দ্বিধায় থাকে।

যাইহোক, biosdevname ব্যবহার করার পার্শ্বপ্রতিক্রিয়া হল যে এটি আপনার KVM-তৈরি ভার্চুয়াল মেশিনে গেস্ট অপারেটিং সিস্টেমের ভিতরে ব্যবহার করা হলে, আপনি নেটওয়ার্ক ছাড়াই শেষ হয়ে যেতে পারেন, কারণ ভার্চুয়ালাইজড ডিভাইসগুলি এমন ফিজিক্যাল নাম পাবে যা পুরোপুরি মেলে না।

আপনি সমস্যার চারপাশে কাজ করতে পারেন বিভিন্ন উপায় আছে. এক, ইউটিলিটির কিছু সংস্করণ শনাক্ত করতে সক্ষম যে সেগুলি ভার্চুয়াল পরিবেশের মধ্যে আহ্বান করা হচ্ছে এবং মেশিনে কোনো পরিবর্তন ছাড়াই প্রস্থান হবে। আরেকটি হল GRUB মেনুতে একটি কার্নেল আর্গুমেন্ট পাস করা; biosdevname=0 ইউটিলিটি চালানো থেকে নিষ্ক্রিয় করবে।

তৃতীয় বিকল্প হল নেটওয়ার্ক কার্ডে নাম বরাদ্দ করতে ব্যবহৃত udev নিয়মগুলি হ্যাক করা। এখানে একটি খুব প্রাথমিক উদাহরণ; এটি একটি একক নেটওয়ার্ক অ্যাডাপ্টার সহ একটি মেশিনের জন্য ডিজাইন করা হয়েছে, তাই একাধিক কার্ডের জন্য আপনার আরও গতিশীল যুক্তির প্রয়োজন হবে। অথবা, মন্তব্য করা পাঠ্য অনুসারে, আপনাকে প্রতিটি নিয়মের জন্য একটি পৃথক লাইন তৈরি করতে হবে।

সাধারণ KVM সমস্যার সমাধান করা

ক্লাসিক অ্যাসাইনমেন্ট পেতে আপনি একটি ম্যানুয়াল পরিবর্তন করতে পারেন:

vi /etc/udev/rules.d/70-persistent-net.rules

NAME স্ট্রিংকে "eth_biosname" থেকে "ethX" তে প্রতিস্থাপন করুন বা আপনার যা কিছু প্রয়োজন:

# PCI ডিভাইস...
SUBSYSTEM=="net", ACTION=="add", ATTR(type)=="1",
KERNEL=="eth*", NAME="eth_biosname"

# PCI ডিভাইস...
SUBSYSTEM=="net", ACTION=="add", ATTR(type)=="1",
KERNEL=="eth*", NAME="eth0"

আপনি আপনার ভার্চুয়াল মেশিনে যে ভার্চুয়াল হার্ডওয়্যার ব্যবহার করেন তার উপর নির্ভর করে আপনি বিভিন্ন নিয়ম পাবেন। উদাহরণ স্বরূপ, আপনি Realtek, e1000 বা virtio ভার্চুয়াল হার্ডওয়্যার বেছে নিতে পারেন, যার ফলে অন্যান্য স্ট্রিং হয়। মনোযোগ দিন এবং নিশ্চিত করুন যে আপনি আপনার নির্দিষ্ট পরিবেশের সাথে সমাধান মেলে।

টিপ 3:ডোমেন ইতিমধ্যেই বিদ্যমান

আপনি যদি একটি নতুন ডোমেন সংজ্ঞায়িত করার চেষ্টা করেন এবং এটি ইতিমধ্যেই বিদ্যমান থাকে তাহলে কি হবে, আপনি এর কনফিগারেশন ফাইল বা ঘোষণা খুঁজে পেতে সমস্যা হচ্ছে না। virsh তালিকা নেই, virt-manager এটি কোথাও দেখায় না। তো তুমি কি কর?

virsh মেশিন.xml সংজ্ঞায়িত করুন
ত্রুটি:machine.xml থেকে ডোমেন সংজ্ঞায়িত করতে ব্যর্থ
ত্রুটি:অপারেশন ব্যর্থ হয়েছে:ডোমেন 'মেশিন' ইতিমধ্যেই বিদ্যমান
uuid 883ab02f-1a67-7430-ef9a-2b59af52210e7

সহ

আপনাকে কনফিগারেশন ফাইলটি খুঁজে বের করতে হবে এবং এটি মুছে ফেলতে হবে। এবং তারপর libvirtd পরিষেবা পুনরায় চালু করুন।

আপডেট করা খ
মেশিন.xml সনাক্ত করুন
rm এর সম্পূর্ণ পথ
/etc/init.d/libvirtd পুনরায় চালু করুন

টিপ 4:অভ্যন্তরীণ ত্রুটি cgroup খুঁজে পেতে অক্ষম

এই সমস্যাটি libvirtd পুনরায় চালু করার পরে প্রকাশ পেতে পারে, যেমন উপরের উদাহরণে, বা সম্পূর্ণভাবে সম্পর্কহীন। একটি সম্পূর্ণ ত্রুটি বার্তা এই মত দেখতে পারে:

virsh create machine.xml
ত্রুটি:machine.xml থেকে ডোমেন তৈরি করতে ব্যর্থ হয়েছে৷
ত্রুটি:অভ্যন্তরীণ ত্রুটি মেশিনের জন্য cgroup খুঁজে পেতে অক্ষম

এই বাগটির কারণ systemd-এর সাথে সম্পর্কিত হতে পারে, যেমনটি Bugzilla রিপোর্টে উল্লেখ করা হয়েছে, তবে এটি systemd ব্যবহার না করা আপনার প্রাথমিক মেশিনেও ঘটতে পারে। বেশিরভাগ ক্ষেত্রে, এটি cgroups এবং libvirtd-এর মধ্যে একটি অত্যন্ত সূক্ষ্ম প্রতিযোগিতা, cgroups এর আগে libvirtd পরিষেবা আসার কারণে, cgroupsগুলির মধ্যে একটি মুছে ফেলা হয়েছে বা প্রথম স্থানে বিদ্যমান নেই।

আপনি libvirtd কনফিগারেশন, /etc/libvirt/qemu.conf সম্পাদনা করে সমস্যার সমাধান করতে পারেন। এই ফাইলের ভিতরে, আপনাকে cgroups_controllers নির্দেশিকা সম্পাদনা করতে হবে যাতে এটি কোনও cgroups তালিকাভুক্ত না করে, এই ক্ষেত্রে, libvirtd তাদের ছাড়াই চালাতে সক্ষম হবে।

cgroups_controllers =[ ]

এর পরে, আপনাকে আবার libvirtd পুনরায় চালু করতে হবে। বিকল্পভাবে, আপনাকে ম্যানুয়ালি প্রয়োজনীয় cgroups তৈরি করতে হবে এবং libvirtd প্রক্রিয়া প্রাসঙ্গিক সাবসিস্টেমে বরাদ্দ করতে হবে।

টিপ 5:হাল্ট/রিবুট করার সময় VMM থেকে ভার্চুয়াল মেশিন অদৃশ্য হয়ে যায়

এটি একটি খুব সহজ সমস্যা হতে পারে, আসলে. আপনি ভার্চুয়াল মেশিন বন্ধ বা রিবুট করার পরে, ভার্চুয়াল মেশিন কনসোল বন্ধ হয়ে যায়। আপনার কনফিগারেশন ঠিক আছে, কিন্তু এটি একটি বড় অসুবিধা, কারণ আপনাকে মেশিন পরিচালনা চক্রে হস্তক্ষেপ করতে হবে।

আপনাকে আপনার ভার্চুয়াল মেশিনের জন্য প্রাসঙ্গিক XML ফাইলে on_reboot ক্লজটি সন্ধান করতে হবে এবং নিশ্চিত করুন যে ক্রিয়াটি ধ্বংস করার পরিবর্তে পুনরায় আরম্ভ করার জন্য সেট করা আছে। সেখানে আপনি যান, যে সব আছে এটা আছে.

নষ্ট করুন
রিস্টার্ট করুন
নষ্ট করুন

টিপ 6:রিবুট অ্যাকশন নেই; ফাংশন সমর্থিত নয়

আবার, খুব আগের টিপ সম্পর্কিত. যদি আপনি রিস্টার্টের পরিবর্তে রিবুট উল্লেখ করেন, তাহলে আপনি জানতে পারবেন এটি একটি অবৈধ কমান্ড যা KVM কার্যকর করতে পারে না। যাইহোক, আপনি সম্ভবত একটি প্রবল ত্রুটি দেখতে পাবেন:

libvirtError:এই ফাংশনটি হাইপারভাইজার দ্বারা সমর্থিত নয়:virDomainReboot

রিস্টার্ট ব্যবহার করলে সব ঠিক হয়ে যাবে।

টিপ 7:ইনস্টলেশনের পরে বুটলোডার ত্রুটি

কখনও কখনও, আপনি একটি GRUB ত্রুটি দেখতে পারেন, সম্ভবত 15 নম্বর, একটি বহিরাগত মিডিয়া উত্স থেকে ইনস্টলেশনের পরে প্রথম রিবুট করার সময়। এটি ঘটতে পারে যদি আপনি ভার্চুয়াল মেশিনের সাথে সংযুক্ত CD/DVD চিত্রটি রেখে যান এবং আপনার XML ফাইলে প্রথম বুট ডিভাইস হিসাবে নির্বাচিত হন। সমস্যাটি এই ভার্চুয়ালবক্স বাগের মতোই, যা সেখানকার কিছু লিনাক্স বিতরণকে প্রভাবিত করে। যেমনঃ

রুট (hd0,1)
ফাইল সিস্টেমের ধরন হল ext2fs, পার্টিশন টাইপ 0x83
kernel/boot/vmlinuz

ত্রুটি 15:ফাইল পাওয়া যায়নি

চালিয়ে যেতে যেকোনো কী টিপুন...

আপনি ISO ইমেজ আনমাউন্ট করে এবং গেস্ট রিবুট করে সমাধান করতে পারেন। এই সময়, এটা ভাল কাজ করা উচিত. অনুগ্রহ করে মনে রাখবেন যে আপনি যদি আপনার হার্ড ডিস্ককে প্রথম বুটযোগ্য ডিভাইস হিসাবে সেট করেন তবে সমস্যাটি প্রকাশ পাবে না, কারণ KVM স্বয়ংক্রিয়ভাবে দ্বিতীয় উপলব্ধ উত্সে চলে যাবে, সম্ভবত PXE বা CD/DVD, যদি এটি ডিস্কে একটি বৈধ পার্টিশন টেবিল খুঁজে না পায়, আপনি যদি শুধুমাত্র এখন ইন্সটল করছেন তাহলে এটি হওয়া উচিত।

এবং আমি মনে করি আমরা এখানে আজকের জন্য সম্পন্ন করেছি.

আরো পড়া

আপনি আরও কয়েকটি KVM নিবন্ধে আগ্রহী হতে পারেন:

KVM স্টোরেজ এবং নেটওয়ার্ক গাইড, প্লাস ব্রিজড নেটওয়ার্কিং

KVM + ভার্চুয়ালবক্স পাশাপাশি ব্যবহার কিভাবে

KVM ক্লোনিং গাইড

উপসংহার

প্রথম সমস্যা সমাধানের গাইডের জন্য হাফ ডজন টিপস, আমি মনে করি খারাপ নয়। এই টিউটোরিয়ালটি ব্রিজড নেটওয়ার্কিং সেটআপ, biosdevname, cgroups + libvirtd সমস্যাগুলির উপর কাজ করা, virt-manager দ্বারা স্বয়ংক্রিয়ভাবে তৈরি ডুপ্লিকেট ডোমেনগুলিকে আনরেজিস্টার করা এবং গেস্ট অপারেটিং সিস্টেম রিস্টার্ট সমস্যার সমাধান করার উপর ফোকাস করে৷

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

চিয়ার্স।


  1. প্রয়ায়া V3 - পোর্টেবল ভার্চুয়াল অপারেটিং সিস্টেম

  2. VMLite - ভার্চুয়াল ব্লকে একটি নতুন বাচ্চা

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

  4. Windows 11 এ অডিও সমস্যা সমাধান করা (7 সমাধান)