سیستم های توزیع شده

مجازی سازی در سیستم های توزیع شده

در سال‌های اخیر، تغییرات زیادی در سیستم‌های محاسباتی توزیع شده در حوزه شبکه، Cloud و Cluster مشاهده شده است. با پیدایش فناوری و پیشرفت روزافزون آن، تقاضا برای راه‌اندازی یک شبکه توزیع شده قوی برای به حداکثر رساندن عملکرد سیستم‌ها و به حداقل رساندن هزینه‌های زیرساختی سازمان، افزایش یافته است. قصد داریم در این مقاله به این موضوع بپردازیم که با راه‌اندازی مجازی سازی در سیستم های توزیع شده می‌توان به افزایش کارایی و عملکرد سیستم‌ها کمک کرد.

منظور از سیستم های توزیع شده چیست؟

سیستم توزیع شده که از آن به عنوان محاسبات توزیع شده (Distributed Computing) و پایگاه‌ داده‌های توزیع شده (Distributed Databases) نیز یاد می‌شود، سیستمی است که اجزای آن بر روی کامپیوترها با شبکه‌های مختلف قرار دارند که با ارسال پیام از هر سیستم به دیگری، با یکدیگر ارتباط داشته و اطلاعات خود را با یکدیگر هماهنگ می‌کنند و همین امر سبب می‌شود که سیستم توزیع شده این گونه به نظر برسد که گویی یک رابط برای کاربران است.

هدف از راه‌اندازی یک سیستم توزیع شده این است که بتواند منابع و اطلاعات را به حداکثر رسانده و از خرابی و فاجعه به نوعی جلوگیری کند. از قابلیت‌های سیستم‌های توزیع شده می‌توان به اشتراک گذاری منابع، مقیاس پذیری، قابلیت تحمل خطا (Fault Tolerance) و قابلیت Concurrency به منظور پردازش همزمان چند سیستم اشاره کرد. هم‌چنین قابل ذکر است سیستم‌های توزیع شده مدرن به نوعی تکامل‌یافته بوده و فرآیندها را جداگانه انجام می‌دهند به این صورت که ممکن است بر روی یک سیستم فیزیکی اجرا شوند اما با تبادل پیام با یکدیگر ارتباط دارند.

نمونه‌هایی از سیستم‌های توزیع شده

  • شبکه‌ها

اولین نمونه‌ای که یک سیستم توزیع شده به وجود آمد زمانی بود که Ethernet اختراع شد و شبکه LAN ایجاد شد. برای اولین بار کامپیوترها می‌توانستند پیام‌هایی را با یک IP Address به سیستم دیگری ارسال کنند که در ابتدا شبکه‌های Peer-to-Peer و ایمیل و سپس اینترنت به وجود آمد. و ما هم‌چنان شاهد پیشرفت روز افزون سیستم‌های توزیع شده در حوزه شبکه هستیم، چرا که با تغییر اینترنت از IPv4 به IPv6، سیستم‌های توزیع شده از LAN به Internet تبدیل شده‌اند.

  • شبکه‌های مخابراتی

تلفن‌های ثابت و تلفن‌های همراه نیز نمونه‌هایی از شبکه‌های توزیع شده به حساب می‌آیند. تلفن‌های ثابت، به عنوان اولین نمونه شبکه‌های Peer-to-Peer شروع به کار کردند و تلفن‌های همراه به صورت فیزیکی در مناطق مختلف توزیع می‌شوند. امروزه نیز تلفن‌های VOIP (تلفن‌هایی که IP دارند) به عنوان پیشرفت سیستم‌های توزیع شده در حوزه شبکه‌های مخابراتی به حساب می‌آید.

  • پایگاه داده

پایگاه داده توزیع شده، پایگاه داده‌ای است که بر روی چندین سرور و یا در چند مکان فیزیکی قرار دارد که داده‌ها می‌توانند در این سیستم‌ها تکرار شده و کپی شوند.

ساختار سیستم توزیع شده

سیستم‌های توزیع شده باید شبکه‌ای داشته باشند که بتوانند تمامی اجزا از قبیل سخت‌افزارها و نرم‌افزارها را به یکدیگر متصل کنند تا اطلاعات و پیام‌ها را به یکدیگر انتقال دهند. این شبکه می‌تواند از طریق IP Address، کابل شبکه و یا بر روی یک Circuit board ارتباط را برقرار کند. پیام‌هایی که میان اجزا ارسال می‌شوند، در قالب داده هستند مانند پایگاه داده‌ها و فایل‌ها که سیستم‌ها می‌خواهند به اشتراک بگذارند. از ویژگی‌های مهم یک سیستم توزیع شده این است که پیام‌ها به طور ایمن و مطمئن ارسال، دریافت و تائید می‌شوند و در صورت شکست هنگام ارسال، دریافت یا تائید بار دیگر تلاش می‌کند.

سیستم های توزیع شده به منظور نیاز سازمان‌ها به سرویس‌ها و برنامه‌های کاربردی برای مقیاس‌بندی و نیاز به اضافه کردن و مدیریت دستگاه‌ها و سرورهای جدید، ایجاد شده‌اند. در طراحی سیستم‌های توزیع شده، مهم‌ترین مبادله‌ای که بایستی در نظر گرفته شود، مبادله پیچیدگی در مقابل عملکرد است. با اینکه سیستم‌های توزیع شده پیچیدگی زیادی دارند اما در نهایت عملکرد مناسبی را ارائه می‌دهند.

مزایا و معایب سیستم‌های توزیع شده

مزایا سیستم های توزیع شده
  • اگرچه سیستم‌های توزیع شده هنگام راه‌اندازی هزینه زیادی را شامل می‌شوند، اما در دراز مدت مقرون به صرفه هستند. در مقایسه با یک کامپیوتر مرکزی که در آن یک سیستم واحد از چندین پردازنده تشکیل شده است، سیستم توزیع شده از چندین کامپیوتر تشکیل شده است. این نوع زیرساخت بسیار مقرون به صرفه‌تر از یک سیستم بزرگ می‌باشد.
  • سیستم‌های توزیع شده به گونه‌ای ساخته شده‌اند که در هر جنبه‌ای بهره‌وری داشته باشند؛ زیرا از چندین کامپیوتر تشکیل شده‌اند. هر یک از این کامپیوترها می‌توانند به طور مستقل مشکلات بسیاری را حل کنند. این نه تنها بهره‌وری به حساب می‌آید، بلکه به طور قابل توجهی در زمان عیب‌یابی و رفع مشکل صرفه‌جویی می‌کند.
  • سیستم‌های توزیع شده به گونه‌ای طراحی شده‌اند که مقیاس‌پذیر باشند. زمانی که حجم کاری افزایش یابد، کاربران می‌توانند سیستم‌های بیشتری را اضافه کنند و نیازی به ارتقاء یک سیستم نباشد. علاوه بر این، برای افزایش تعداد سرورها یا ارتقاء آن‌ها هیچ محدودیتی وجود ندارد، این بدان معناست که سرورها می‌توانند به هنگام تقاضای بالا، بارهای کاری را مدیریت نمایند.
  • سیستم‌های توزیع شده از نظر خرابی نیز بسیار قابل اعتمادتر نسبت به سیستم‌های واحد هستند. در صورت نقص در عملکرد یکی از سرورها، باقی سرورها بدون هیچ مشکلی به عملکرد خود ادامه می‌دهند.
معایب سیستم های توزیع شده
  • در مقایسه با یک سیستم واحد، هزینه راه‌اندازی و اجرا یک سیستم توزیع شده به طور قابل توجهی بیشتر خواهد بود که این هزینه بالا به دلیل زیرساختی است که در سیستم توزیع شده استفاده می‌شود.
  • پیچیدگی پیاده‌سازی، نگهداری و عیب‌یابی سیستم توزیع شده، آن را به یک استراتژی پیچیده تبدیل کرده است. علاوه بر پیچیدگی سخت‌افزاری، سیستم‌های توزیع شده در نرم‌افزار نیز مشکل دارند.
  • Overhead مشکل رایجی است که سیستم توزیع شده با آن مواجه است، این زمانی اتفاق می‌افتد که تمامی سیستم‌های کاربران در حال ارسال یا دریافت اطلاعات باشند. حتی اگر این مورد مشکل اساسی به وجود نیاورد، در نهایت زمان computing را افزایش خواهد داد که در نهایت بر زمان پاسخگویی سیستم نیز تأثیر می‌گذارد.
  • سیستم‌های توزیع شده این استعداد را دارند که با خطاهای شبکه منجر به خرابی ارتباطات شوند. ممکن است اطلاعات به ترتیب صحیح ارسال یا دریافت نشوند و هم‌چنین عیب‌یابی خطاها کار دشواری است؛ چرا که داده‌ها در قسمت‌های مختلفی توزیع می‌شود.

و اما مجازی سازی در سیستم های توزیع شده !!

همانطور که می‌دانید، مجازی‌سازی به ایجاد یک منبع مجازی مانند سرور، دسکتاپ، برنامه، فضای ذخیره‌ساز و شبکه اشاره دارد. هدف اصلی مجازی‌سازی مدیریت حجم کاری با تغییر در ساختار سنتی به منظور افزایش مقیاس‌پذیری آن است. مجازی سازی را می‌توان در طیف وسیعی از لایه‌های سیستم از جمله مجازی‌سازی در سطح سرور، سخت‌افزار و سیستم‌ عامل اعمال کرد.

می‌توان گفت، مجازی سازی موثرترین راه برای کاهش هزینه‌های IT و افزایش کارایی و عملکرد در سازمان‌ها و حتی کسب و کارهای کوچک است. مجازی‌سازی به شما این امکان را می‌دهد تا چندین سیستم عامل و برنامه را روی یک سرور واحد اجرا کنید. هم‌چنین سخت‌افزار را برای دست‌یابی به بهره‌وری بالا با سرورهای کم‌تر و ساده کردن مدیریت، نگهداری و نصب نرم‌افزارهای کاربردی، یکپارچه می‌کند.

انواع مجازی سازی

اکنون مجازی سازی با تعدادی از فناوری‌ها مرتبط است که عبارتند از:

  • مجازی سازی سرور: تقسیم‌بندی یک سرور فیزیکی به سرورهای مجازی کوچک‌تر.
  • مجازی سازی شبکه: استفاده از منابع شبکه از طریق تقسیم‌بندی منطقی یک شبکه فیزیکی.
  • مجازی سازی فضای ذخیره‌سازی: ادغام چندین دستگاه ذخیره‌سازی شبکه در یک فضای ذخیره‌سازی واحد.
  • مجازی سازی دسکتاپ: چندین نمونه از یک سیستم عامل در یک سیستم واحد قرار دارند.
  • مجازی سازی برنامه: برنامه بر روی سرور نصب می‌شود و می‌توان از آن استفاده نمود که گویی روی سیستم local کاربر نصب شده است.
مجازی سازی در سیستم های توزیع شده

قبل از بررسی مجازی سازی سیستم توزیع شده، به مزایای مجازی‌سازی اشاره کوتاهی داشته باشیم:

  • سیستم مجازی‌سازی از طریق Sandbox، محیط سیستم را از دیگر محیط‌ها جدا می‌کند.
  • مجازی‌سازی به هنگام خرابی به وجود آمده در یکی از ماشین‌های مجازی، از نفوذ آن به دیگر ماشین‌های مجازی جلوگیری می‌کند.
  • در مجازی‌سازی، یک پلتفرم سخت‌افزاری می‌تواند به طور همزمان چندین سیستم عامل را پشتیبانی کند.
  • یک سیستم مجازی شده می‌تواند به صورت dynamic یا static برای اعمال نیازهای جدید سازمان مجدداً پیکربندی شود.

سطوح مجازی سازی

مجازی سازی توزیع شده به معنای به اشتراک‌گذاری منابع میان کاربران یک سازمان است. کاربران نه از منابع کاربران دیگر و نه از منابع به اشتراک‌گذاری شده توسط سیستم توزیع شده اطلاعی دارند. با استفاده از سطوح مختلف می‌توان مجازی‌سازی را برای افزایش عملکرد یک شبکه توزیع شده پیاده‌سازی کرد که هر سطح برای ایجاد یک سیستم توزیع شده قابل اعتماد، مقرون به صرفه و کارآمد قابلیت‌های منحصر به فردی را ارائه می‌دهد. سطوح مورد نظر عبارتند از:

1) Application Virtualization

سازمان‌های مختلف دسترسی به برنامه‌ها را به عنوان خدمات از راه دور به اشتراک می‌گذارند که این امر منجر به کاهش هزینه نرم‌افزاری و زیرساخت می‌شود. نگرانی اصلی برای این سطح حفظ امنیت در مواقعی است که چندین کاربر از برنامه استفاده کنند.

2) Utility Computing

منابع از مراکز داده مختلف که به هم متصل هستند، در صورت نیاز در دسترس قرار می‌گیرند. نگرانی اصلی در این سطح اجرای صحیح مدیریت منابع می‌باشد.

3) شبکه‌ها
  • computational grids (شبکه‌های محاسباتی)

شبکه‌های محاسباتی را می‌توان به عنوان شبکه‌ای از سیستم‌ها در نظر گرفت که با یکدیگر در تعامل هستند تا عملی را انجام دهند که انجام آن برای یک سیستم دشوار است. تمام سیستم‌های موجود در آن شبکه تحت یک پروتکل کار می‌کنند تا به عنوان یک ابر کامپیوتر مجازی عمل کنند. وظیفه‌ای که آن‌ها بر روی آن کار می‌کنند ممکن است شامل تجزیه و تحلیل داده‌ها یا شبیه‌سازی موقعیت‌هایی باشد که به قدرت محاسباتی بالایی نیاز دارد.

  • Transactional Grids (شبکه‌های تراکنش)

برای پشتیبانی از برنامه‌های تراکنشی که کارایی بالایی دارند، می‌توان منابع سخت‌افزاری و نرم‌افزاری توزیع شده را به اشتراک گذاشت.

  • Data Grids (شبکه‌های داده)

سرورهای داده را می‌توان میان گروه‌های مختلف برای دسترسی آسان به داده‌های توزیع شده به اشتراک گذاشت. در این مورد مسئله اصلی حفظ و سازگاری داده‌های بسیار بزرگ است.

  • Virtual Servers (سرورهای مجازی)

سرورهای مجازی می‌توانند از چندین سیستم عامل و برنامه استفاده کنند که در واقع به آن‌ها عملکرد چندین سرور در یک سرور را ارائه می‌دهد.

  • Virtual Machines (ماشین‌های مجازی)

ماشین‌هایی هستند که CPU و OS خود را در یک محیط مستقل برای اجرای برنامه‌های مختلف بر روی پلتفرم‌های قابل حمل اجرا می‌کنند.

  • Storage grids and utilities (شبکه‌ها و ابزارهای ذخیره‌سازی)

مجازی‌سازی فضای ذخیره‌سازی یک محیط مجازی از چندین دستگاه ذخیره‌سازی ایجاد می‌کند که پشتیبان‌گیری، انتقال داده و گسترش فضای ذخیره‌سازی را بسیار کارآمد می‌کند.

در نتیجه

مجازی‌سازی در سیستم‌های توزیع شده انعطاف‌پذیری، مقیاس‌پذیری و مزیت هزینه را برای سازمان‌ها به ارمغان می‌آورد. برخی از مسائل، چالش‌ها و نگرانی‌هایی وجود دارد که بایستی در نظر گرفته شوند و راه حل‌هایی وجود دارند که باید برای غلبه بر مسائل حساسی چون امنیت، حریم خصوصی کاربران، مدیریت شبکه، ثبات داده‌ها، مدیریت کاربران و گروه‌ها، نگهداری و عملکرد داده‌ها در صورت اشتراک‌گذاری آن‌ها در گروه‌ها و سازمان‌های مختلف، بررسی شوند.

خدمات نسام در زمینه مجازی سازی در سیستم های توزیع شده

شرکت هوشمند افزار نوین راهبرد با تکیه بر توانایی‌های متخصصان فنی خود، آماده ارائه خدمات درخصوص راه اندازی، مشاوره و پشتیبانی در زمینه تجهیزات سخت افزاری و سرویس‌های نرم افزاری شما از جمله مجازی سازی که امروزه به عنوان تکنولوژی روز دنیا در بسیاری از سازمان‌ها راه‌اندازی شده، می‌باشد.