PV-IOMMU, একটি Xen IOMMU প্যারাভার্চুয়ালাইজেশন প্রক্রিয়া

Xen লোগো

The XCP-NG প্রকল্পের বিকাশকারীরা ঘোষণা করেছে সম্প্রতি, তারা একটি নতুন প্রকল্পে কাজ করছেন যার নাম রয়েছে "PV-IOMMU" এবং এটি গেস্ট সিস্টেমগুলিকে Xen পরিবেশে প্যারাভার্চুয়ালাইজেশনের মাধ্যমে বাস্তবায়িত IOMMU-র সীমিত ফাংশন অ্যাক্সেস করতে দেয়।

মূলত, PV-IOMMU একটি প্যারাভার্চুয়ালাইজড IOMMU ব্যবহার করার জন্য Dom0 সক্ষম করার প্রতিশ্রুতি দেয়, যা Dom0-এর জন্য DMA সুরক্ষা এবং Linux VFIO-এর জন্য সমর্থনের মতো বিভিন্ন সুবিধা প্রদান করে।

IOMMU কি?

IOMMU প্রস্তুতকারকের উপর নির্ভর করে বিভিন্ন নামে পরিচিত (Intel-এ VT-d, AMD-এ AMD-Vi, ARM-এ SMMU, অন্যদের মধ্যে), এটি বাস্তবায়িত একটি বিশেষ ডিভাইস যার প্রধান কাজ DMA অনুরোধ অনুবাদ বা ফিল্টার করুন (ডাইরেক্ট মেমরি অ্যাক্সেস) ডিভাইস থেকে মেশিনের শারীরিক মেমরি পর্যন্ত। ভার্চুয়ালাইজেশনে, এটি গেস্ট সিস্টেমগুলিকে সরাসরি পেরিফেরাল ডিভাইস যেমন ইথারনেট অ্যাডাপ্টার, গ্রাফিক্স কার্ড, এবং স্টোরেজ কন্ট্রোলার অ্যাক্সেস করার অনুমতি দিতে ব্যবহৃত হয়।

IOMMU প্যারাভাইরালাইজেশনের মাধ্যমে কী কী সুবিধা পাওয়া যায়?

পূর্বে, Xen হাইপারভাইজার অ্যাক্সেস পুনঃনির্দেশ করতে IOMMU ব্যবহার করেছে PCI ডিভাইসগুলির এবং মেমরিতে এই ডিভাইসগুলির অ্যাক্সেস নিয়ন্ত্রণ করে। যাহোক, স্থিতিশীলতা এবং নিরাপত্তার কারণে, অতিথিরা সরাসরি IOMMU ব্লকে প্রবেশ করতে পারেনি হার্ডওয়্যার দ্বারা সরবরাহ করা হয়।

আমরা একটি নতুন প্যারাভার্চুয়ালাইজড IOMMU উপস্থাপন করি যার নাম PV-IOMMU। এটি মূলত হার্ডওয়্যারের সমস্ত অভ্যন্তরীণ বিবরণকে বিমূর্ত করে, IOMMU থেকে অতিথি যে বৈশিষ্ট্যগুলি আশা করে তা প্রয়োগ করে৷ Xen-এ, আমরা এই ধরনের ক্রিয়াকলাপগুলির জন্য একটি নতুন হাইপারকল যুক্ত করেছি (যা হল HYPERVISOR_iommu_op) যা বিভিন্ন IOMMU অপারেশন সরবরাহ করে যা অতিথি ব্যবহার করতে পারে (যদি অনুমতি দেওয়া হয়)।

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

একটি IOMMU থেকে হোস্ট যে প্রধান বৈশিষ্ট্যগুলি আশা করে তা হল "IOMMU ডোমেন" তৈরি এবং সংশোধন করার ক্ষমতা যা অনুবাদের একটি সেট যা মেমরি প্রসঙ্গে তৈরি করে এবং এটি একটি ডিভাইসে (বা একাধিক ডিভাইস) প্রয়োগ করা যেতে পারে। এই ডোমেনগুলিকে Xen-এ "IOMMU প্রসঙ্গ" বলা হয় যাতে Xen ডোমেনগুলি ভার্চুয়াল মেশিনগুলির সাথে বিভ্রান্তি না হয়৷

আইওএমএমইউ প্যারাভার্চুয়ালাইজেশন থেকে আলাদা আলাদা সুবিধার মধ্যে, নিম্নলিখিতগুলি উল্লেখ করা হয়েছে:

  • Dom0 এর জন্য DMA সুরক্ষা: IOMMU প্যারাভার্চুয়ালাইজেশন ভার্চুয়ালাইজেশন পরিবেশে ম্যানেজমেন্ট ডোমেনের (Dom0) জন্য সরাসরি মেমরি অ্যাক্সেস (DMA) সুরক্ষা সক্ষম করে। এটি ডিভাইসগুলিকে সরাসরি সিস্টেম মেমরি অ্যাক্সেস করতে বাধা দিয়ে সিস্টেমের নিরাপত্তা এবং স্থিতিশীলতা উন্নত করতে সাহায্য করে, যা Dom0 এর অখণ্ডতাকে আপস করতে পারে।
  • লিনাক্স ভিএফআইও সমর্থন: IOMMU প্যারাভার্চুয়ালাইজেশন ভার্চুয়ালাইজেশন পরিবেশে ব্যবহারকারীর ডিভাইসের (VFIO) জন্য ভার্চুয়ালাইজড নমনীয় I/O পরিকাঠামোর জন্য সমর্থনের সুবিধা দেয়, ব্যবহারকারী অ্যাপ্লিকেশন এবং ভার্চুয়াল মেশিনগুলিকে সরাসরি হার্ডওয়্যার ডিভাইসগুলিতে অ্যাক্সেস করার অনুমতি দেয়।
  • Xen এর সাথে SPDK বাস্তবায়ন করা সহজ করে তোলে: IOMMU প্যারাভার্চুয়ালাইজেশন Xen-এর সাথে SPDK সমর্থন করার জন্য চলমান প্রচেষ্টার অংশ। এটি ভার্চুয়াল মেশিন স্টোরেজের জন্য একটি নতুন দ্রুত ডেটা পাথের দ্বার উন্মুক্ত করে, যা ভার্চুয়ালাইজড পরিবেশে স্টোরেজ কর্মক্ষমতা বাড়াতে পারে।

যে ছাড়াও, এছাড়াও Xen এর একটি সমস্যা IOMMU এর সাথে সমাধান করার পরিকল্পনা করা হয়েছে, বর্তমানে থেকেঅথবা একটি একক Xen ডোমেনে একাধিক IOMMU প্রসঙ্গের অস্তিত্বের অনুমতি দেয়। যাইহোক, Xen IOMMU সাবসিস্টেমের একটি পুনঃডিজাইন একাধিক IOMMU প্রসঙ্গের জন্য বিবেচনা করা হচ্ছে এবং সেগুলি ব্যবহার করার জন্য বিদ্যমান বৈশিষ্ট্যগুলিকে সংশোধন করা হচ্ছে। যদিও একটি কার্যকরী PoC প্রয়োগ করা হয়েছে যা কিছু সীমাবদ্ধতা এবং অসম্পূর্ণ সমর্থন সহ প্রথম পদ্ধতির প্রয়োগ করে, এটি উল্লেখ করা হয়েছে যে ভবিষ্যতের জন্য সাবসিস্টেমটির একটি সম্পূর্ণ পুনঃডিজাইন করা হচ্ছে।

অবশেষে, এটি উল্লেখ করা উচিত উন্নয়নের বর্তমান পর্যায়ে, PV-IOMMU শুধুমাত্র Intel VT-d সমর্থন করে, কিন্তু AMD-Vi এবং SMMUv3-এর জন্য সমর্থন শীঘ্রই যোগ করার পরিকল্পনা করা হয়েছে। আপনি যদি এটি সম্পর্কে আরও জানতে আগ্রহী হন, আপনি বিশদ বিবরণের সাথে পরামর্শ করতে পারেন নিম্নলিখিত লিঙ্ক.