مجازیسازی یا Virtualization در سرور از اهمیت بالایی برخوردار است. این فرآیند باعث صرفهجویی در هزینهها و افزایش بهرهوری و کارآیی میشود. زمانیکه قصد انجام مجازیسازی را دارید، با اصطلاحات گوناگونی روبهرو خواهید شد که آشنایی با مفاهیم آن باعث میشود تا یک خروجی عالی داشته باشید. یکی از این اصطلاحات “SR-IOV” است که برای مدیریت و عملکرد بهتر مجازیسازی ارتباط بین دستگاههای مختلف را فراهم میسازد. برای اینکه بهطور دقیق بدانید SR-IOV چیست و چه کاربردی در سرور و مجازیسازی دارد؟ با ما تا آخر این مطلب همراه باشید.
⏲ مدت زمان تخمینی مطالعه: 9 دقیقه
فهرست موضوعات
SR-IOV چیست؟
SR-IOV که مخفف Single root input/output Virtualization است در سادهترین تعریف از طریق یک منبع I/O اشتراک و ارتباط بین چندین دستگاه مجازی را فراهم میسازد.
SR-IOV یک استاندارد سختافزاری است که به یک دستگاه PCI Express ( بهطورمعمول یک کارت رابط شبکه (NIC)) اجازه میدهد تا خود را به عنوان چندین NIC مجازی به یک هایپروایزر نشان دهد. این استاندارد در سال 2007 توسط PCI-SIG (Peripheral Component Interconnect – Special Interest Group) با مشارکتهای کلیدی اینتل، IBM، Hewlett-Packard و مایکروسافت ایجاد شد.
این استاندارد شامل مجموعهای از روشهای استاندارد برای ایجاد، حذف، فهرستبندی و جستوجوی سوئیچ SR-IOV NIC و همچنین مجموعهای از پارامترهای استاندارد است که قابلیت تنظیم را دارد.
در واقع ریشه تک SR-IOV (single-root of SR-IOV) تنها به یک قطعهی اصلی از NIC (Network Interface Connection) اشاره دارد که همهی عملیات را کنترل میکند. همچنین یک NIC دارای SR-IOV و پورت استاندارد اترنت است که همان عملکرد فیزیکی بیت به بیت در هر کارت شبکه را ارائه میدهد.
در واقع این فناوری باعث میشود تا یک دستگاه روت بهصورت چند دستگاه ظاهر شود. همچنین از این طریق میتوانید ارتباط بین یک دستگاه مجازیسازی مبتنی بر لینوکس و یک ماژول مجازیسازی از توابع شبکه NFV را با استفاده از سختافزار مناسب فعال کنید.
در واقع SR-IOV مفهوم توابع مجازی شده را تا معنای اتصال رابط فیزیکی شبکه گسترش میدهد. در نتیجه اتصال رابط شبکه فیزیکی در هر پورت NIC به پارتیشینهای مختلفی تقسیم میشود که باعث میشود آنها با توابع مجازی در حال اجرا، در لایههای بالاتر با همدیگر مطابقت داشته باشند.
در حقیقت ارتباط بین این توابع مجازی به همان روشی انجام میشود که ارتباط بین دستگاهها با کارتهای شبکه جداگانه از طریق به اصطلاح پل (bridge) صورت میگیرد.
خرید سوئیچ سیسکو 3750 , خرید سوئیچ سیسکو 3850 , خرید سوئیچ سیسکو 2960
NIC SR-IOV چیست؟
هنگامیکه یک دستگاه فیزیکی مجازیسازی میشود، دارای دو رابط NIC و سوئیچهای فیزیکی خارجی و رابطهای NIC و سوئیچ های مجازی داخلی است. بنابراین وقتی ماشینهای مجازی یا کانتینرهای جدا شده در دستگاه که هر کدام دارای حافظه، فضای دیسک و چرخههای CPU میخواهند با همدیگر ارتباط برقرار کنند، بهدلیل وجود چندین پورت، آدرسهای MAC و IP ارتباط دچار چالش میشود. برای حل این مشکل از SR-IOV استفاده میشود.
توابع مجازی سازی SR-IOV میتواند چندین عملکرد مجازی را پشتیبانی کند که با استفاده از چندین صف (queue) ساده برای انجام وظایف ورودی و خروجی تعیین شده است. همچنین هر VNF (Virtual Network Feature) زمانی که در حال اجرا روی دستگاه است، پارتیشنهای NIC را مورد بررسی قرار میدهد تا VNFها بتوانند بهصورت مستقیم به منابع سختافزاری NIC دسترسی داشته باشند.
در این فرآیند NIC دارای عملکرد جور و مرتب کننده برای دو لایه ساده است که فریمها را در صفهای ترافیکی طبقهبندی میکند. سپس بستهها بهطور مستقیم از عملکرد مجازی شبکه به حافظه ماشین مجازی منتقل میشوند. این انتقال با استفاده از دسترسی مستقیم به حافظه (DMA) و دور زدن هایپروایزر (hypervisor) انجام میگیرد. برای درک بیشتر مطلب، نقش NIC در عملیات SR-IOV در شکل 1 نشان داده شده است.
بیشتر بخوانید: Storage Controller در سرور چیست؟
شکل 1: ارتباط VNF با SR-IOV
هایپروایزر در اختصاص دادن VNFها و مدیریت کارت فیزیکی نقش دارد، اما در انتقال دادهها در داخل بستهها (کارکترها) نقش ندارد. در واقع ارتباط VNF به VNF توسط Virtual NIC 1، Virtual NIC 2 و Virtual NIC N انجام میشود. همچنین NIC تمام عملکردهای مجازی و جورسازی را برای جابهجایی ترافیک بین VNFها و پورتهای دستگاه خارجی پیگیری میکند.
با اینحال پشتیبانی از SR-IOV به پلتفرم سختافزاری، به ویژه سختافزار NIC، و نرمافزار VNFها برای استفاده از DMA برای انتقال داده بستگی دارد.
بیشتر بخوانید: معنی هیولِت پاکارد (به انگلیسی: Hewlett-Packard)
کاربرد SR-IOV
کاربرد و پیادهسازی SR-IOV براساس نسخهی استاندارد 1.1 و توسط PCI-SIG تعریف شده است. بر اساس این استاندارد، SR-IOV اشتراک کارآمد در دستگاههای PCIe را در بین ماشینهای مجازی امکانپذیر میسازد و در سختافزار برای دستیابی به عملکرد ورودی/خروجی قابل مقایسه با عملکرد بومی، پیادهسازی میشود. در واقع SR-IOV باعث میشود تا دستگاههای جدیدی که ایجاد میشوند، ماشین مجازی را قادر سازد تا بهطورمستقیم به دستگاه I/O متصل شود. همچنین این استاندارد باعث میشود تا دستگاهها بتوانند از منابع مشترک استفاده کنند. به این ترتیب هر ماشین مجازی به منابع منحصربه فردی دسترسی دارد.
بنابراین، یک دستگاه PCIe، مانند یک پورت اترنت، که دارای SR-IOV با پشتیبانی از سختافزار و سیستمعامل مناسب است، میتواند به عنوان چندین دستگاه فیزیکی جداگانه ظاهر شود که هر کدام فضای پیکربندی PCIe خاص خود را دارند. شکل 2 رابطه بین توابع مجازی و یک تابع فیزیکی در یک دامنه I/O را نشان میدهد.
شکل 2: استفاده از توابع مجازی و یک عملکرد فیزیکی در یک دامنه I/O
از دیگر کاربردهای SR-IOV میتوان به موارد زیر اشاره کرد:
- یک تابع PCI که از قابلیتهای SR-IOV پشتیبانی میکند شامل ساختار و قابلیت SR-IOV است، در نتیجه میتواند مانند هر دستگاه PCIe عملکردهای فیزیکی، پیکربندی، مدیریت و کنترل یک دستگاه را انجام دهد.
- SR-IOV به دستگاهی مانند آداپتور شبکه اجازه میدهد تا دسترسی به منابع خود را از میان عملکردهای سختافزاری مختلف PCIe جدا کند. این دسترسی به دو بخش تقسیم میشود:
- عملکرد فیزیکی PCIe (PF) که عملکرد اصلی دستگاه است و باعث میشود تا قابلیتهای SR-IOV به دستگاه اعلام شود. PF با پارتیشن والد Hyper-V در یک محیط مجازی مرتبط است.
- عملکرد مجازی یک یا چند PCIe (VF). هر دستگاه با VF و PF مرتبط است. VF یک یا چند منبع دستگاه فیزیکی حافظه و پورت شبکه را با PF و سایر VFهای موجود در دستگاه به اشتراک میگذارد. هر VF با یک پارتیشن Hyper-V در یک محیط مجازی همراه است.
همچنین SR-IOV ترافیک شبکه را قادر میسازد تا لایهی سوئیچ نرمافزار پشته مجازیسازی Hyper-V را دور بزند. در نتیجه ترافیک شبکه بهطور مستقیم بین VF و پارتشینها جریان دارد. در نتیجه، SR-IOV سربار ورودی/خروجی در لایه شبیهسازی نرمافزار را کاهش میدهد و عملکرد شبکه بهطور تقریبی مشابه عملکرد محیطهای غیر مجازی است.
بیشتر بخوانید: هدف از NIC Teaming در ویندوز سرور چیست؟
اهمیت SR-IOV
مجازیسازی در مراکز داده ابری وسیلهای برای بهبود استفاده از سرور است. این کار باعث میشود تا بارهای کاری بیشتری روی یک سرور فیزیکی با استفاده از ظرفیت اضافی انجام شود. با استفاده از SR-IOV مصرف انرژی و هزینههای مرکز داده در مجازیسازی کاهش مییابد و برای پردازندههای چند هستهای (MCP) که اغلب یک ماشین مجازی (VM) را در هر هسته اجرا میکنند، بسیار مناسب است.
در واقع SR-IOV مزایای زیادی را برای دستگاههایی که از آن استفاده میکنند به همراه دارد که برخی از آنها عبارتند از:
- افزایش عملکرد و کاهش تاخیر
- دسترسی مستقیم به سختافزار از محیط ماشینهای مجازی
- کاهش هزینه و صرفهجویی در هزینههای سرمایهای و عملیاتی مانند برق، کاهش تعداد آداپتور، کابلکشی کمتر و …
بیشتر بخوانید: آیا برای سرور خود به ups نیاز دارم؟
سخت افزار و نرم افزار مورد نیاز SR-IOV
از سرور Oracle VM با انتشار SPARC 2.2، استفاده از SR-IOV شروع میشود و ویژگی PCIe SR-IOV در پلتفرمهای SPARC T3 و SPARC T4 پشتیبانی میشود.
الزامات سختافزاری برای استفاده از ویژگی SR-IOV:
- از دستگاههای داخلی PCIe SR-IOV و همچنین کارتهای پلاگین PCIe SR-IOV میتوانید استفاده کنید.
- با دستگاه on-board اینتل شبکه اترنت 1 گیگابیت بر ثانیه سازگاری دارد.
در جدول زیر با توجه به نوع کارتهای شبکه PCIe میتوانید از ویژگی PCIe SR-IOV استفاده کنید.
مدل کارت PCIe | Part Number | سرورهای سازگار Oracle |
Sun Dual 10-Gigabit Ethernet SFP+ LP | (X)1109A-Z | SPARC T3-1, SPARC T3-2, SPARC T4-1, SPARC T4-2, Netra SPARC T3-1, Netra SPARC T4-1, Netra SPARC T4-2 |
Sun Dual 10-Gigabit SFP+ Ethernet Module | (X)1110A-Z | Sun Blade 6000, Sun Blade 6048, SPARC T3-4, SPARC T4-4, SPARC Super Cluster T4-4, Netra SPARC T3-1B, 6000 Modular System |
Dual 10-Gigabit Ethernet Fabric Expansion Module | (X)4871A-Z | SPARC T3-1B, SPARC T4-1B, Netra SPARC T3-1B, Netra SPARC T4-1B |
الزامات فریمور: برای استفاده از ویژگی SR-IOV، در سیستمهای SPARC T3 و SPARC T4 باید نسخهی فریمور حداقل 8.2.0 باشد. همچنین برای استفاده از ویژگی SR-IOV، دستگاههای PCIe SR-IOV باید حداقل نسخهی firmware 3.01. را داشته باشد.
الزامات نرمافزاری: برای استفاده از ویژگی SR-IOV، باید سیستمعامل Oracle Solaris را استفاده کنید. بهتر است برای دامنهی اصلی ورژن سیستمعامل 11 باشد. دامنههای I/O میتوانند سیستمعامل Oracle Solaris 10 9/10 OS، Oracle Solaris 10 8/11 OS یا Oracle Solaris 11 OS با حداقل SRU 7 اجرا کنند. برای Oracle Solaris 10 9/10 و Oracle Solaris 10 8/11 منتشر شده، وصلههای درایور تابع مجازی igbvf و ixgbevf را نصب کنید که بهترتیب 148225 و 148227 هستند.
خوبه که منابع مقاله رو هم ذکر کنید.