গত বছর আমরা এই ব্লগে বাইটড্যান্স (টিকটকের নির্মাতা) -এর পার্কার (পার্টিশনড কার্নেল) নামক একটি ইউটিলিটির প্রস্তাবনা নিয়ে আলোচনা করেছিলাম। এটি একটি পরীক্ষামূলক প্রযুক্তি যা একাধিক লিনাক্স কার্নেলকে একই সাথে চালানোর সুযোগ দেয়। আর এখন, প্রায় দেড় বছর পর, এই প্রজেক্ট থেকে "মাল্টিকার্নেল লিনাক্স (mklinux-v7.0-mk2)" নামক একটি নতুন পাবলিক ইউটিলিটি প্রকাশিত হয়েছে।
এই উদ্ভাবনটি লিনাক্স কার্নেলের একটি বিশেষায়িত সংস্করণ নিয়ে এসেছে, যা একটিমাত্র ফিজিক্যাল সার্ভারের মধ্যে একই সাথে একাধিক স্বাধীন কার্নেল ইনস্ট্যান্স চালানোর সুযোগ করে দেয় । সরাসরি হার্ডওয়্যারে (বেয়ার মেটাল) কাজ করার ফলে এই প্রযুক্তি হাইপারভাইজর বা ভার্চুয়ালাইজেশন লেয়ারের প্রয়োজনীয়তা সম্পূর্ণরূপে দূর করে এবং প্রতিটি ইনস্ট্যান্সকে বরাদ্দকৃত মেমরি, সিপিইউ ও ডিভাইসগুলোতে সরাসরি অ্যাক্সেস দেয়।
সম্প্রতি প্রকাশিত লিনাক্স ৭.০ কার্নেলের উপর ভিত্তি করে, এই প্রজেক্টটি CONFIG_MULTIKERNEL কনফিগারেশন প্যারামিটারের মাধ্যমে এই ফিচারটি সক্রিয় করার সুযোগ দেয় । যদি এই অপশনটি নিষ্ক্রিয় করা থাকে, তবে এর ফলে প্রাপ্ত কার্নেলটি হুবহু একই থাকে এবং স্ট্যান্ডার্ড লিনাক্স ৭.০-এর মতোই আচরণ করে। বর্তমানে, এই প্রথম সংস্করণটি (v7.0-mk2) শুধুমাত্র x86_64 আর্কিটেকচার সমর্থন করে এবং এটি প্রচলিত ভার্চুয়ালাইজেশন ও কন্টেইনার আইসোলেশনের মধ্যেকার পারফরম্যান্স ও নিরাপত্তার ব্যবধান পূরণের জন্য ডিজাইন করা হয়েছে।
পারফরম্যান্সের ক্ষতি ছাড়াই বিচ্ছিন্নকরণ
ভার্চুয়ালাইজেশনের সবচেয়ে বড় সমস্যা হলো হাইপারভাইজরের ধার্য করা পারফরম্যান্স "ট্যাক্স" । এর বিপরীতে, মাল্টিকার্নেল লিনাক্স ভার্চুয়াল মেশিন এক্সিট ট্রানজিশন , সেকেন্ড-লেভেল মেমরি ট্রান্সলেশন এবং ডিভাইস মডেলের কারণে সৃষ্ট ওভারহেড দূর করে।
Xeon Gold 5418Y প্রসেসর (Sapphire Rapids)-এ পরীক্ষার পর প্রকাশিত পারফরম্যান্স ডেটা অনুসারে , KVM গেস্টের তুলনায় মাল্টিকার্নেল সিস্টেমটি এক্সিকিউশন স্পিডে নাটকীয় বৃদ্ধি প্রদর্শন করে। উদাহরণস্বরূপ, প্রসেসগুলির মধ্যে কনটেক্সট সুইচিং ২.৫ গুণ দ্রুততর হয়, পাইপ ল্যাটেন্সি অর্ধেকেরও বেশি (২.১৮ গুণ) কমে যায় এবং রিড ও রাইট অপারেশনের মতো বেস সিস্টেম কলগুলির রেসপন্স টাইম ২৫%-এর বেশি উন্নত হয়।
প্রচলিত ডকার কন্টেইনারের তুলনায় মাল্টিকার্নেল উন্নততর সুরক্ষা প্রদান করে , কারণ কন্টেইনারগুলো একই হোস্ট কার্নেল ব্যবহার করার ফলে কার্নেল-স্তরের কোনো দুর্বলতা, প্যানিক বা ইন্টারনাল লক স্যাচুরেশন সমস্ত টেন্যান্টকে প্রভাবিত করে না। মাল্টিকার্নেল ইকোসিস্টেমে প্রতিটি এনভায়রনমেন্টের নিজস্ব স্বাধীন কার্নেল থাকে ; অর্থাৎ, যদি কোনো একটি ইনস্ট্যান্সে গুরুতর ব্যর্থতা ঘটে, তবে অন্যগুলো অক্ষত অবস্থায় কাজ চালিয়ে যায়, যা একটি বিচ্ছিন্ন পরিবেশ নিশ্চিত করে। একই হার্ডওয়্যারে ওয়েব সার্ভার থেকে শুরু করে নিবিড় এআই প্রশিক্ষণ ওয়ার্কলোড (মেশিন লার্নিং) পর্যন্ত সবকিছু চালানোর জন্য এই পরিবেশ আদর্শ।
কার্ফ-এর সাথে ডাইনামিক অ্যাসাইনমেন্ট এবং অর্কেস্ট্রেশন
মাল্টিকার্নেল লিনাক্স একটি হোস্ট কার্নেল ব্যবহার করে কাজ করে , যা বিপুল পরিমাণ রিসোর্স (সিপিইউ, র্যাম এবং পিসিআই ডিভাইস) পরিচালনা করে । বিদ্যমান ডিভাইস ট্রি স্ট্রাকচার (যা /sys/fs/multikernel/ এ পাওয়া যায়) ব্যবহার করে, কার্নেল এই পুল থেকে রিসোর্স ভাগ করে নেয় এবং নেটিভ kexec_file_load() সাবসিস্টেমের মাধ্যমে "চাইল্ড কার্নেল" চালু করে। লিনাক্সের হটপ্লাগ ক্ষমতার মাধ্যমে, সার্ভার রিবুট করার প্রয়োজন ছাড়াই এই রিসোর্সগুলোকে ইনস্ট্যান্সগুলোর মধ্যে গতিশীলভাবে স্থানান্তর করা যায়, যা অনুমানযোগ্য এবং রিয়েল-টাইমে নিয়ন্ত্রণযোগ্য পারফরম্যান্স নিশ্চিত করে।
এই ইকোসিস্টেমটি পরিচালনা করার জন্য, ডেভেলপাররা কার্ফ (Kerf) কমান্ড-লাইন টুল চালু করেছেন । এই ইউটিলিটিটি পরিপূরক ওপেন-সোর্স মডিউলগুলোর ওপর নির্ভর করে ইনস্ট্যান্সগুলোর সম্পূর্ণ জীবনচক্র পরিচালনা করে । এগুলোর মধ্যে একটি হলো লেজি সিএমএ (Lazy CMA), যা কোনো প্রি-বুট কনফিগারেশনের প্রয়োজন ছাড়াই রানটাইমে সংলগ্ন ফিজিক্যাল মেমরি বরাদ্দ করে।
এর অন্য স্তম্ভটি হলো DAXFS, একটি মডিউল যা ইনস্ট্যান্সগুলোকে সরাসরি মেমরিতে ফাইল সিস্টেম শেয়ার করার সুযোগ দেয় ; এর ফলে, Kerf এমুলেশন লেয়ারের প্রয়োজন ছাড়াই একটি ডকার কন্টেইনার ইমেজের ফাইল সিস্টেমের সুবিধা নিয়ে এবং ডেটা কপি করা ছাড়াই নেটওয়ার্ক সংযোগের জন্য ইন-মেমরি ডেসক্রিপ্টর ব্যবহার করে সরাসরি এর ভেতরে একটি চাইল্ড কার্নেল বুট করতে পারে।
উল্লেখ্য যে, এই প্রথম রিলিজটি ৫-লেভেল পেজিং আর্কিটেকচার এবং সক্রিয় KASLR-এর অধীনে নিবিড় স্থিতিশীলতা পরীক্ষায় উত্তীর্ণ হয়েছে, যা প্রমাণ করে যে কোনো চাইল্ড কার্নেল ক্র্যাশ করলেও রিসোর্স পুনরুদ্ধার সম্পূর্ণ নিরাপদ।
সিস্টেম লকের কারণে সংঘর্ষে লিপ্ত হওয়া ওয়ার্কলোডগুলোকে (যেমন একই ক্যাশে বিপুল সংখ্যক আনলিঙ্ক বা রিনেম প্রসেস) ফিজিক্যাল প্রসেসর সকেটের সাথে সারিবদ্ধ পৃথক কার্নেলে ভাগ করার সুযোগ দিয়ে মাল্টিকার্নেল লিনাক্স একটি একক মনোলিথিক কার্নেলের দ্বারা আরোপিত পারফরম্যান্সের সীমাবদ্ধতা অতিক্রম করার সক্ষমতা প্রদর্শন করে, যা সার্ভার একত্রীকরণ এবং উচ্চ-পারফরম্যান্স ক্লাউড কম্পিউটিং-এ এক নতুন যুগের সূচনা করেছে।
অবশেষে, আপনি যদি আরও জানতে আগ্রহী হন, তাহলে নিচের লিঙ্কে বিস্তারিত তথ্য পেয়ে যাবেন ।