مرا به خاطر بسپار

فایل‌سیستم توزیع‌شده چیست؟

بازدید: 554 آخرین به‌روزرسانی: 29 آبان 1402

مقدمه

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

پیشنهاد می‌شود قبل از خواندن این مقاله، مقاله‌ کلان‌داده را مطالعه کنید.

فایل‌سیستم توزیع‌شده چیست؟

قبل از تعریف فایل‌سیستم توزیع‌شده باید تعریف فایل‌سیستم را بدانیم. فایل‌سیستم یک روش و ساختار داده‌ای است که سیستم‌عامل برای کنترل نحوه ذخیره‌سازی و بازیابی فایل‌ها استفاده می‌کند. برای مثال فایل‌سیستم NTFS برای سیستم‌عامل‌های ویندوز، ext4 برای سیستم‌عامل‌های لینوکسی و یا فایل‌‌سیستم سلسله‌مراتبی HFS (Hierarchical File System) برای سیستم‌عامل‌های Mac شرکت اپل (Apple) استفاده می‌شود.

یک فایل‌سیستم توزیع‌شده (Distributed File System) یک سیستم فایل است که در چندین سرور فایل یا چندین مکان توزیع می‌شود. DFS به برنامه‌ها اجازه می‌دهد مانند فایل‌های محلی به فایل‌های ایزوله دسترسی پیدا کرده یا ذخیره کنند. برنامه‌نویسان هم می‌توانند از هر سیستمی در شبکه به فایل‌ها دسترسی داشته باشند. همچنین فایل‌سیستم توزیع‌شده امکان دسترسی هم‌زمان چندین ماشین به یک داده را امکان‌پذیر می‌کند. یعنی اگر در شبکه چندین رایانه نیاز داشته باشند یک فایل را بخوانند،‌ این عملیات می‌تواند به طور همزمان انجام شود.

فایل‌سیستم توزیع‌شده در کلان‌داده چیست؟

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

استفاده از DFS کجا ضروری و مهم است؟

دلیل اصلی انتخاب DFS توسط شرکت‌ها، فراهم کردن دسترسی به داده‌های یکسان از چندین مکان مختلف است. به‌عنوان مثال فرض کنید شما عضو تیمی هستید که اعضای آن در مکان‌های متفاوت هستند و برای پیشبرد پروژه خود نیاز دارید بتوانید به فایل‌های مشابه دسترسی داشته باشید. یا برای دسترسی به داده‌ها از مرکز داده، لبه و ابر در یک فضای ابری ترکیبی نیاز است تا از یک DFS استفاده کنید (برای مطالعه بیشتر به مقاله رایانش ابری مراجعه کنید). در حالت کلی در شرایط زیر وجود DFS ضروری است:
  • در شرایطی که نیاز است سرعت بالای دسترسی به حجم بالایی از داده‌های توزیع‌شده فراهم شود و آن‌ داده‌ها مانند داده‌های محلی کاربر به نظر برسند (Transparent Local Access).
  • در حالتی که کاربران باید از مکان فیزیکی داده‌ها اطلاعی نداشته باشند (Location Independence).
  • مقیاس‌پذیری بالا با افزودن ماشین‌های بیشتر: سیستم‌های DFS می‌توانند به خوشه‌های بسیار بزرگ با هزاران سرور مقیاس شوند.
  • تحمل‌پذیری خطا: در شرایطی که نیاز است سیستم در صورت بروز خطا برای مثال از کار افتادن برخی از سرورها نیز به عملکرد صحیح خود ادامه دهد. یک DFS مقاوم در برابر خطا می‌تواند با پخش کردن داده‌ها در چندین ماشین، چنین خرابی‌هایی را مدیریت کند.

بخش‌های اصلی فایل‌سیستم توزیع‌شده کدام‌اند؟

1-1     مدیر‌ حافظه پنهان (Cache Manager)
مدیر حافظه‌ پنهان برنامه‌ای است که به‌عنوان واسط بین حافظه اصلی کامپیوتر و سیستم ذخیره‌سازی دائمی عمل می‌کند. مدیر حافظه ‌پنهان دو عملکرد اصلی دارد: بهبود عملکرد با ذخیره کپی از داده‌های اخیراً استفاده شده در حافظه و نگهداری نسخه‌های پشتیبان از داده‌ها در ذخیره‌سازی دائمی.
1-2     صادرکننده فایل (File Exporter)
صادرکننده فایل یک بخش از سرور فایل‌سیستم توزیع‌شده است که فایل‌ها را از DFS به مکانی خارج از DFS ارسال می‌کند. این بخش بر روی سرور فایل اجرا می‌شود، جایی که درخواست‌ها را دریافت می‌کند و فایل‌ها را مدیریت می‌کند. همچنین وظیفه همگام‌سازی چندین کاربر که به طور هم‌زمان به یک فایل دسترسی دارند را با استفاده از مدیر توکن مدیریت می‌کند و اطلاعات موردنیاز را در اختیار کاربر قرار می‌دهد.
1-3     مدیر توکن (Token Manager)
مدیر توکن به کاربران اجازه می‌دهد تا توکن‌های خود را برای انجام عملیات مختلف، ایجاد و مدیریت کنند. همچنین به همگام‌سازی دسترسی به فایل‌ها توسط کاربران متعدد کمک می‌کند. مدیر توکن اختیارات ایجاد توکن‌های خواندن و نوشتن را به کاربران DFS می‌دهد.
1-4     سرور افزونگی (Replication Server)
این سرور کپی و همگام‌سازی پایگاه‌های داده بین سرورهای مختلف را ممکن می‌سازد. این برنامه تکرار مجموعه فایل‌ها را مدیریت می‌کند و تغییرات ایجاد شده در یک سرور را با سرور دیگر همگام می‌کند. این کار با کپی کردن داده‌ها از یک پایگاه‌داده به پایگاه‌داده دیگر انجام می‌شود. به علاوه، اگر یکی از کپی‌ها به درستی جابه‌جا نشد، همچنان می‌توانید به یک نسخه دیگر از مجموعه فایل از یک ماشین سرور فایل دیگر دسترسی داشته باشید.
1-5     سرور مکان مجموعه فایل‌ (Fileset Location Server)
سروری است که مجموعه فایل‌ها و مکان‌های آن‌ها را مدیریت می‌کند. برای دسترسی به یک مجموعه فایل، دانستن مکان مجموعه فایل اجباری نیست. همچنین، محل نگه‌داری پایگاه‌داده مجموعه فایل‌ها به طور خودکار توسط DFS به‌روز می‌شود.
1-6      سرور پشتیبان (Update Server)
سرور پشتیبان در DFS برای برنامه‌ریزی‌ پشتیبان‌گیری از داده‌ها در ماشین‌های فایل‌سرور استفاده می‌شود.

فضای نام (Namespace) چیست؟

DFS با استفاده از فضای نام (Namespace) پوشه‌های مشترک واقع در سرورهای مختلف را در یک مکان با ساختار منطقی گروه‌بندی می‌کند. ولی این فضای نام دقیقاً چیست؟

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

ساختار DFS
ساختار DFS

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

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

  • Ceph: یک بستر ذخیره‌سازی رایگان و منبع‌باز است که ذخیره‌سازی اشیا، بلوک و فایل را بر پایه یک خوشه توزیع‌شده مشترک فراهم می‌کند.
  • Gluster: نام این فایل‌سیستم منبع‌باز از ترکیب عبارات GNU و Cluster به وجود آمده ‌است.
  • HDFS: مخفف Hadoop DFS است که به‌عنوان یک سیستم فایل توزیع‌شده برای اجرا بر روی سخت‌افزار معمولی به‌منظور پردازش‌های کلان‌داده طراحی ‌شده‌ است. HDFS دسترسی با کارایی بالا به داده‌های برنامه را فراهم کرده و همچنین دسترسی به داده‌های فایل‌سیستم در Apache Hadoop را امکان‌پذیر می‌کند. به‌صورت معمول از Hadoop و HDFS در موضوعات کلان‌داده استفاده می‌شود که در آن با استفاده از الگوریتم MapReduce اقدام به پردازش توزیع‌شده داده‌های کلان می‌کنند.
  • BeeGFS: یک فایل‌سیستم توزیع‌شده است که برای محاسبات با کارایی بالا توسعه یافته و بهینه شده است (برای مطالعه بیشتر درباره HPC کلیک کنید).
  • Luster: نوعی فایل‌سیستم توزیع‌شده موازی است که اغلب برای محاسبات خوشه‌ای در مقیاس بزرگ استفاده می‌شود.

NFS در DFS چیست؟

NFS مخفف Network File System است و نمونه‌ای از فایل‌سیستم توزیع‌شده (DFS) است. یک پروتکل NFS به‌عنوان معماری سرویس‌گیرنده سرور، به کاربران رایانه اجازه می‌دهد فایل‌هایی را که در راه دور قرار دارند، مشاهده، ذخیره و به‌روزرسانی کنند. پروتکل NFS یکی از چندین استاندارد DFS برای ذخیره‌سازی متصل به شبکه (NAS) است.

NFS in DFS
NFS در DFS

جمع‌بندی

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

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

سوالات متداول

فایل‌سیستم توزیع‌شده چیست؟
فایل‌سیستم توزیع‌شده (DFS)، یک سیستم ‌فایل است که فایل‌ها را در رایانه‌های مختلفی که تحت شبکه با یکدیگر در ارتباط هستند، ذخیره و بازیابی می‌کند.
چرا از DFS استفاده کنیم؟
چند نمونه فایل‌سیستم توزیع شده کدامند؟
HDFS چیست؟
تا چه حد این مطلب برای شما مفید بود؟
بر اساس رای 0 نفر

اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.

ثبت نظر

نظر دادن