- شنبه ۲۷ آبان ۱۴۰۲
آشنایی کلی با مفهوم مجازیسازی شبکه
تغییرات ساختاری در مفاهیم بنیادین شبکه
ملزومات و الزامات مراکز داده امروزی نسبت به چند دهه گذشته تغییرات زیادی داشتهاند. همانگونه که مدلهای رایانش ابری توانستند در مدت زمان کوتاهی به صنایع مختلف وارد شوند و به بهترین شکل با فناوریهای مختلف عجین شوند، به همان نسبت تقاضا برای دسترسی به منابع ذخیرهسازی، محاسباتی و تحت شبکه رشد چشمگیری پیدا کردند. یکی از عوامل موثر در رشد و شکوفایی مدلهای ابرمحور، مجازیسازی سرور است. معماری منحصر به فردی که مجازیسازی سرور بر پایه آن کار میکند باعث شد، میزان مصرف منابع محاسباتی رشد سریعی داشته باشند و به همان نسبت سرویسها و خدمات کاربردی بیشتری در دسترس کسبوکارها قرار بگیرد. مجازیسازی سرور به لطف کپیهای مجازی (Clones)، الگوها (Templates) و اسنپشاتهایی (یک نمونه کلی یا یک کپی از یک معماری مرجع) که سادهتر از گذشته در دسترس قرار دارند و قابل استفاده هستند محبوبیت مجازیسازی سرور را دوچندان کردند. اگر سابقه کار در مرکز دادهای را دارید با من هم عقیده هستید که شبکهسازی و کار با شبکهها بزرگترین چالش افراد شاغل در مراکز داده است. هنگامی که طراحی شبکه به ویژه در مراکز داده به اتمام میرسد، هرگونه تغییری مشکلات مختلفی را پدید میآورد، زیرا به دلیل عدم انعطافپذیری هرگونه تغییری باعث افزایش پیچیدگیها میشود و گاهی اوقات تغییرات مغایر با خطمشیهای تعریف شده در شبکه هستند. در حالی که پیشرفت در حوزههای رایانشی (توان پردازشی) و فضای ذخیرهسازی بهطور مستمر ادامه دارد و حتا فرآیند استقرار تجهیزات ذخیرهسازی و محاسباتی سادهتر از گذشته شدهاند، اما شبکهها هنوز هم چالش اصلی محیطهای عملیاتی و تجاری امروزی هستند. بهطوری که وظایف سادهای نظیر ساخت یک شبکه محلی مجازی (VLAN) پیچیدهتر و وقتگیرتر از گذشته شدهاند.
آشنایی با چند اصطلاح پر کاربرد دنیای مجازی
افرادی که تصمیم میگیرند به دنیای مجازیسازی وارد شوند با اصطلاحات کمتر نامآشنایی روبرو میشوند که شاید برخی از آنها چندان ملموس نباشد، اما کاربرد مهمی در مباحث مجازیسازی دارند. یکی از این اصطلاحات مهم Abstraction است. این مفهوم در دنیای فناوریاطلاعات به اندازهای مهم است که میتوان یک مقاله کامل برای تشریح آن نوشت. تقریبا تمامی مدرسانی که مبحث مجازیسازی را آموزش میدهند، واژه فوق را به انتزاعی یا گاهی اوقات تجرید ترجمه میکنند. با اینحال، دانشپژوهان به درستی نمیدانند که انتزاع، لایه انتزاعی نرمافزاری و لایه انتزاعی سختافزاری به چه معنا است و چرا از معادل سادهتری در این زمینه استفاده نمیشود. بنابراین بهتر است در ابتدای این آموزش، یکبار برای همیشه با این مفهوم پر کاربرد آشنا شوید تا در آینده به راحتی مفهوم آنرا درک کنید. این مفهوم در دنیای برنامهنویسی نیز پر کاربرد است و باید شناخت دقیقی در مورد ماهیت آن بهدست آورید.
Abstraction: ترجمه لغوی این اصلاح انتزاع یا تجرید است. با اینحال، واژه فوق به فشردهسازی یا پنهانسازی جزییات با هدف ارائه یک ماهیت قابل مشاهده اشاره دارد که بی ارتباط با مفاهیم دنیای مجازیسازی نیست. به بیان سادهتر، انتزاع فرآیند نشان دادن ویژگیهای اساسی است، در حالی که جزییات پسزمینه را از دید کاربران و توسعهدهندگان پنهان میکند. اینکار با هدف کاهش پیچیدگیها و هزینهها انجام میشود و به نوبه خود باعث سادهسازی عملیات میشود. برای آنکه دید دقیقتری نسبت به واژه انتزاع در دنیای مجازیسازی بهدست آورید، این مفهوم را نسخهای مجازی از منابع یک کامپیوتر (معماری سختافزار، سیستمعامل، فضای ذخیرهسازی، شبکه و نمونههای مشابه) در نظر بگیرید. یک نسخه مجازی (یک انتزاع) از یک ماشین منفرد میتواند شبیه به ماشینهای مستقل مختلف کار کند. هدف از انجام مجازیسازی، متمرکز کردن کارهای مدیریتی و در عین حال بهبود گسترشپذیری و بارهای کاری است. البته مفهوم مجازیسازی جدید نیست و قدمت آن به دهه 60 میلادی باز میگردد که آیبیام برای اولین بار دسترسی همزمان و تعاملی به مینفریمهای خود را فراهم کرد. مجازیسازی شبیه به انتزاع است، اما همیشه جزییات لایههای پاییندستی را پنهان نمیکند. واژه انتزاع در صنعت محاسبات در سطوح مختلفی استفاده میشود، اما در حالت کلی، انتزاع به معنای پنهانسازی جزییات پسزمینه از کاربران و توسعهدهندگان و ساخت رابطهایی برای سادهسازی دسترسی به منابع اصلی است. زمانی که انتزاعی انجام میشود برنامهها روی سامانههای فیزیکی غیر مشخص اجرا میشوند، دادهها در مکانهای ناشناخته ذخیرهسازی میشوند و مدیریت سامانهها به افراد خارج از سازمان داده میشود. در نهایت کاربران میتوانند از هر مکانی به منابع دسترسی داشته باشند. بهطور مثال، اگر از سرویس آژور مایکروسافت استفاده کنید، هیچگاه نمیدانید ماشین مجازی شما روی چه سامانه فیزیکی اجرا میشود، دادهها در چه مرکز دادهای ذخیرهسازی میشوند یا چه کسی مسئولیت مدیریت زیرساخت ارتباطی را بر عهده دارد، اما به عنوان یک مصرفکننده میتوانید ماشین مجازی خود را شبیه به یک کامپیوتر واقعی در اختیار داشته باشید، آنرا مدیریت کنید و هر زمان نیاز بود با پرداخت هزینهای منابع سختافزاری را به شیوه مجازی ارتقا دهید. برای درک بهتر این مفهوم به شکل یک دقت کنید.
انتزاع یکی از ویژگیهای کلیدی رایانش ابری است که جزییات فنی پیادهسازی فیزیکی را از دید مصرفکنندگان پنهان میکند. این ویژگی کاربردی توسط فناوری مجازیسازی پشتیبانی میشود. یک مثال واقعی در ارتباط با مفهوم انتزاع، دستگاههای ATM است. مردم عملیات مختلفی روی دستگاه خودپرداز انجام میدهند که از آن جمله میتوان به برداشت وجه نقد، انتقال پول، دریافت صورتحساب و کارهای این چنینی اشاره کرد. با اینحال، ما درباره جزییات داخلی دستگاه و نحوه عملکرد آن اطلاعی نداریم.
تفاوت Logical Network و Network Logic
از مفاهیم پر کاربرد دیگر دنیای مجازی، شبکه منطقی و منطق شبکه است ( دوره جامع آموزش شبکه ) که تعاریف خاص خود را دارند. یک شبکه منطقی، ماهیتی است که در نظر کاربران به عنوان یک نهاد منفرد و جداگانه شناخته میشود، هرچند ممکن است نهادی متشکل از چند شبکه یا بخشی از یک شبکه بزرگتر باشد. یک شبکه منطقی با الگوی آدرسدهی آیپی تعریف میشود. منطق شبکه توالی فعالیتهای یک پروژه در طول زمان را نشان میدهد. این مفهوم نشان میدهد چه فعالیت منطقی بر فعالیت دیگری اولویت دارد یا از آن پیروی میکند.
مجازیسازی شبکه چیست؟
مجازیسازی شبکه (Network Virtualization) به نحوه بهکارگیری منابع شبکه از طریق تقسیمبندی منطقی یک شبکه فیزیکی منفرد یا پیادهسازی چند شبکه که به عنوان یک مرکز داده مجازی شناخته میشوند اشاره دارد. در تعریف جامعتر، این مفهوم به مجازیسازی منابع شبکه با استفاده از نرمافزار و سختافزار شبکه اشاره دارد، بهگونهای که فرآیند طراحی و استقرار منابع تحت شبکه در زمان کوتاهی انجام شود. مجازیسازی شبکه رکن اساسی شبکههای نرمافزار محور است که فرآیند استقرار خدمات را تسریع بخشیده و در بیشتر موارد به مصرفکنندگان اجازه میدهند به شکل آنی به خدمات موردنیاز دسترسی داشته باشند. در مبحث مجازیسازی شبکه این امکان فراهم است تا خدماتی نظیر دروازه لبه (Edge gateway)، شبکه خصوصی مجازی (VPN)، پروتکل پیکربندی پویای میزبان (DCHP)، سامانه نام دامنه (DNS) و متعادلکنندگان بار (Load Balancers) را در قالب نرمافزاری در کوتاهترین زمان ممکن طراحی و مستقر کرد. در معماری فوق سختافزار شبکه امکان اتصال فیزیکی را فراهم میکند، در حالی که نرمافزار پذیرای کلیت منطق شبکه است و امکان ارائه خدمات و ویژگیهای غنی شبکه را فراهم میکند. مجازیسازی شبکه با هدایت پیچیدگیهای مرسوم شبکههای فیزیکی به یک لایه انتزاعی (نسخه مجازی) به کاربران اجازه میدهد به شکل سادهای به دستگاهها و سرویسهای شبکه منطقی دسترسی داشته باشند. در نهایت به این نکته مهم دقت کنید که مجازیسازی شبکه یکی از مولفههای کلیدی مراکز داده نرمافزار محور است.
انقلاب مجازیسازی سرور
سرور را میتوان شبیه به سامانه کامپیوتری تشبیه کرد که یک برنامه کاربردی دارد که درخواستها را از چند کلاینت (گره تحت شبکه) دریافت و پردازش میکند، با سرورهای دیگر در تعامل است و پاسخهای مناسبی برای کلاینتها ارسال میکند. اگر کمی به گذشته و اوایل دهه 2000 باز گردیم، مشاهده میکنیم که بخش عمدهای از مراکز داده بر پایه معماری کامپیوترهای بزرگ و ریزکامپیوترهای مبتنی بر پردازندههای مرکزی اینتل طراحی شده بودند. با اینحال، به تدریج برخی از برنامههای حیاتی مهم خود را به زیرساختهای پردازشی باز، منعطف و مقرون به صرفه انتقال دادند. زمانی که سرورهای مبتنی بر معماری x86 به شکل گستردهای با دنیای تجارت عجین شدند، فروشندگان کامپیوترها روند تجاریسازی سختافزارهای اختصاصی که عملکرد بهتری داشتند آغاز کردند. سختافزارهایی که میتوانستند به شکل کارآمدتری برخی وظایف کلیدی را اجرا کنند.
در آن بازه زمانی، اگر کاربرد جدیدی موردنیاز بود، کسبوکارها با استقرار کامپیوترهای سرور اختصاصی بدون مشکل قادر به اجرای نرمافزارهای خاص منظوره بودند. راهحل فوق با هدف پیشگیری از بروز مشکلات عملکردی به کار گرفته میشد. ویژگیهای سختافزاری سرورها به شکلی آماده میشدند تا بتوانند به حجم گستردهای از پردازشها که ممکن بود به شکل روزانه، هفتگی، ماهانه یا حتا سالانه ادامه پیدا کنند پاسخ دهند. با اینحال، گذر زمان به تیمهای عملیاتی و پشتیبانی مستقر در مراکز داده نشان داد که این دستگاهها در بیشتر موارد به درخواستهای عادی پاسخ میدهند و به ندرت زمانی پیش میآید که سرور در حالت تمام پردازشی مشغول به ارائه خدمات باشد. بهطور مثال، سروری که با 10 درصد ظرفیت خود کار میکرد، 100 درصد از فضای موردنیاز تجهیزات ذخیرهسازی، کابلکشی و سایر ملزومات شبکه را مصرف کرده بود. در این برهه زمانی VMware که پیش از این با مفهوم ماشین مجازی مینفریم مبتنی بر کامپیوترهای x86 به موفقیت رسیده بود به میدان وارد شد. در حالی که محصولات این شرکت از سوی کاربران خانگی با استقبال زیادی روبرو شده بودند، زمانی که VMware ESX را در سال 2003 به بازار عرضه کرد، یکبار دیگر نگاهها را معطوف به خود کرد. بهطور خلاصه، این محصول نرمافزاری اجازه میدهد تا برنامههای سرور روی ماشینهای مجازی اجرا شوند و عملکردی قابل مقایسه با برنامههای مشابه موجود در سرورهای فیزیکی ارائه میکند. شکل دو فرآیندی به نام تلفیق سختافزار را نشان میدهد که به بسیاری از مراکز داده کمک میکند مشکل یک کاربرد به ازای هر سرور (one application-per-server) را حل کنند. با انتقال برنامهها از سرورهای فیزیکی به ماشینهای مجازی، مراکز داده توانستند به شکل کارآمدتری از سرورهای x86 استفاده کنند. VMware ESX هایپروایزری (hypervisor) است که بهطور رسمی به عنوان برنامهای تعریف میشود که میتواند سختافزار مجازی ایجاد کند. از جمله این سختافزارها میتوان به موارد زیر اشاره کرد:
• پردازندههای مجازی
• حافظه مجازی
• درایوهای دیسک سخت مجازی
• کنترلکنندههای رابط شبکه مجازی
• وسایل جانبی مجازی (به عنوان مثال ، CD-ROM)
این شبیهسازیهای مجازی که بر پایه معماری خاصی با یکدیگر در تعامل هستند برای نصب یک سیستمعامل میزبان و برنامههای سرور استفاده میشوند. بنابراین، در زمینه راهحلهای مدرن مجازیسازی سرور، یک ماشین مجازی به عنوان مجموعهای متشکل از سختافزار مجازی، سیستمعامل مهمان و برنامههای مرتبط تعریف میشود.
نکته: همه هایپروایزرها یکسان نیستند. با استناد به سیستم طبقهبندی که جرالد جی پوپک و رابرت پی گلدبرگ در مقاله خود تحت عنوان "الزامات رسمی برای معماریهای نسل سوم قابل مجازی" در سال 1974 ارائه کردند، دو نوع هایپروایزر وجود دارد. هایپروایزر نوع اول (Type-1) به عنوان یک مولفه نرمافزاری جایگزین سیستمعامل میشود و به شکل مستقیم سختافزار را کنترل میکنند. با توجه به چنین نقشی که دارد، این نوع بهنام هایپروایزر نوع بومی یا فلز/ماده آشکار (bare-metal) شناخته میشود. هایپروایزر نوع دوم (Type-2) روی سیستمعامل موجود مستقر میشود. این نوع بهنام هایپروایزر میزبانی شده نامیده میشود و در سطحی پایینتر از هایپروایزر نوع 1 کار میکند. VMware ESX اولین هایپروایزر نوع یک مبتنی بر کامپیوترهای x86 است.
مفاهیم مجازیسازی
اکنون که تعریف کوتاهی در مورد مجازیسازی شبکه ارائه کردیم، وقت آن رسیده تا برخی مفاهیم کلیدی پر کاربرد دنیای مجازیسازی شبکه و شبکههای نرمافزار محور را بررسی کنیم.
Decoupling: قابلیت جداسازی سرویسها یکی از مفاهیم مهم دنیای مجازیسازی است که بیانگر جداسازی سختافزار شبکه از نرمافزار است. در این حالت نرمافزار مستقل از سختافزارهای شبکه که بهطور فیزیکی زیرساختها را به یکدیگر متصل میکنند کار میکند. در این معماری، سختافزارهای تحت شبکه که قادر به برقراری ارتباط با نرمافزار باشند، عملکرد بهتری را ارائه میکند. البته به این اصل مهم دقت کنید که توان عملیاتی (throughput) شما روی رسانه انتقال (کابل) همواره محدود به کارایی تجهیزات سختافزاری شبکه است..
Control Plane: تفکیک نرمافزار و سختافزار شبکه اجازه میدهد به شکل بهتری شبکه را کنترل کنید، زیرا منطق بهطور کامل در نرمافزار قرار میگیرد. این ویژگی کنترلی شبکه سطح کنترل (Control Plane) نام دارد. سطح کنترل راهکاری برای پیکربندی، نظارت، عیبیابی و خودکارسازی ارائه میکند.
Data Plane: سختافزار شبکه با قالببندی یا به بیان سادهتر شکلدهی به سطح داده تضمین میکند که تمامی دادهها از مبدا به مقصد میرسند. مدیریت دادهها در این سطح انجام میشود، با اینحال، سطح داده شامل تمامی سختافزارهای شبکه است که عملکرد اصلی آن هدایت ترافیک روی رسانه انتقال از مبدا به مقصد است. سطح داده تمامی جداول انتقال که بهطور مداوم توسط خود این سطح بهروزرسانی میشوند را نگهداری میکند. در این حالت اگر سطح کنترل با مشکل روبرو شود، رویکرد فوق مانع بروز وقفههای ترافیکی میشود و سرویسدهی شبکه بدون وقف ادامه خواهد داشت.
Application Programming Interface: رابط برنامهنویسی کاربردی از ویژگیهای مهم یک شبکه مجازی است و اجازه میدهد تا هرگونه تغییری در رفتار شبکه نرمافزارمحور را به سرعت پیادهسازی کرد. از طریق واسط برنامهنویسی کاربردی میتوانید به سرعت سرویسهای شبکه را در شبکه فعلی مستقر کنید. سرویسهای شبکه نظیر Edge gateway، VPN، Firewall و متعادلکنندگان بار میتوانند از طریق یک رابط برنامهنویسی کاربردی در شبکه مستقر شوند.
مقدمهای بر زیرساخت مجازیسازی شبکه NSX-V
VMware NSX-V یک زیرساخت مجازیسازی شبکه است که امکان پیادهسازی شبکههای نرمافزار محور را فراهم میکند و علاوه بر این یکی از مولفههای کلیدی معماری مراکز داده نرمافزار محور است. نرمافزار NSX-V شرکت VMware با انتزاعی کردن شبکه فیزیکی و بهکارگیری یک لایه نرمافزاری و پیادهسازی شبکههای فیزیکی چندگانه دسترسی به منابع شبکه را به سادهترین شکل امکانپذیر میکند. علاوه بر این NSX-V این قابلیت را ارائه میکند تا خدمات مختلف شبکه منطقی را روی لایه انتزاعی قرار داد.
نکته: VMware NSX در سال 2012 میلادی فناوری NSX را از شرکت Nicira خریداری کرد. لازم به توضیح است که محصول ساخت شرکت Nicira عمدتا برای مجازیسازی شبکه در هایپروایزرهای مبتنی بر Xen استفاده میشود. VMware در حال حاضر دو محصول قدرتمند در زمینه مجازیسازی شبکه بهنامهای NSX-V و NSX-MH را دارد. NSX-V مبتنی بر هایپروایزر VMware است، در حالی که NSX-Multi Hypervisor یا به اختصار NSX-MH ویژه محیطهای OpenStack طراحی شده است. هر دو نسخه شباهتهای زیادی دارند، با اینحال در برخی جنبهها عملکرد متفاوتی دارند. تمرکز ما در این آموزش روی NSX-VMware است که بهنام NSX-V شناخته میشود. شکل سه انتزاع نرمافزاری یک شبکه فیزیکی و سختافزار شبکه که توسط NSX پیادهسازی شده را نشان میدهد. شکل فوق نشان میدهد که چگونه هایپروایزر VMWare Sphere انتزاع نرمافزاری را برای پردازنده مرکزی، حافظه و فضای ذخیرهسازی ارائه میکند و این امکان را فراهم میکند تا چند نسخه مجازی از ماشینهای مجازی را ایجاد کرد.
مجتمع فنی تهران : همانگونه که هایپروایزر vSphere به شما امکان ساخت، حذف، اسنپشات و نظارت بر ماشین مجازی را میدهد، NSX به شکل برنامهریزی شده، اجازه ایجاد، حذف، اسنپشات و نظارت بر یک شبکه مجازی را میدهد. NSX میتواند در زیرساخت شبکه فیزیکی فعلی مستقر شود و شما را ملزم نمیکند تا زیرساخت فعلی را ارتقا دهید. سرانجام استقرار NSX اختلالی در شبکه یا ترافیک فعلی به وجود نمیآورد. این مکانیزم پکپارچه میتواند در ورای زیرساخت فعلی مستقر شود، به گونهای که دسترسی به خدمات (سرویسها) این شبکه همراه با شبکه سنتی امکانپذیر باشد.