منبع اصلی نوشتار زیر در این لینک قرار دارد

انواع فایل سیستمها در لینوکس و تفاوت آنها

تعریف فایل سیستم :

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

انواع فایل سیستم ها:

۱- Disk File System یا (DFS):  که شامل موارد زیر میباشد:

  • ext2 یا second extended file system : در لینوکس استفاده شده است.
  • extt3 یا third extended file system : در لینوکس استفاده شده است.
  • FAT: توسط مایکروسافت توسعه یافته و توسط DOS تا Win 98 استفاده شده است. و سپس Fat32  و NTFS نیز ظهور کردند.
  • Reise file system  یا Reise FS

 

2- Network File System یا NFS : فایل سیستم هایی هستن که روی دیسکهای تحت شبکه کار میکنند. و شامل موارد زیر میباشند:

  • NFS : توسط شرکت Sun Micro System توسعه یافته.
  • Coda
  • SMB یا Server Message Block: توسط Microsoft SAMBA Services توسعه یافته است.

دیسکها از لحاظ دسرسی به شبکه به ۳ دسته تقسیم میشوند:

۱- DAS یا  Direct Access Storage : دیسکهایی هستند که سیستم بصورت مستقیم با آنها در ارتباط است. مثل هارد و فلش.

۲- NAS یا  Network Access/Attachment Storage : یعنی به این نوع از دیسکها از طریق شبکه دسترسی خواهید داشت. مثلا دوست شما از طریق شبکه یک درایو را به اشتراک گذارد و شما از آن استفاده کنید.در اینصورت دیسک دوست شما ماهیت NAS خواهد داشت.

در خیلی جاها فایل سرورها ساختار NAS دارند. NASها از تعدادی DAS تشکیل شده اند.

۳- SAN یا Storage Area Network: یک قسمتی را در شبکه در نظر میگیریم که تعداد سرور مثل NAS در آنها قرار دارد و دیسکها با قابلیتهای خبلی بالا و امکانات زیاد وحود دارند.

 

کار کردن با فایل سیستم ها:

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

cat  /proc/filesystems

در مباجث فایل سیستم فارغ از نوع سیستم عامل چه در لینوکس چه در ویندوز بحثی بنام journaling و non journaling وجود دارد که در ادامه به بررسی دو ساختار مذکور میپردازیم.

تفاوت فایل سیستمهای journaling و non journaling: برای بررسی تفاوت این دو مورد ابتدا با مفهوم sync کردن آشنا شویم.

اطلاعات روی دیسک ذخیره میشوند اگر پردازنده بخواهد این اطلاعات را پردازش کند ابتدا باید به RAM منتقل شوند تا پردازنده بتواند روی انها پردازشهایی را اعمال کند.

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

تفاوت فایل سیستم های Journal  و non journal  در بخش sync  کردن میباشد.

وقتی فایلی به رم برده شده و میخواهید در دیسک ذخیره کنید برحسب حجم فایل مدت زمان Sync شدن آنها ( یعنی برداشتن از رم و بردن به دیسک) متفاوت خواهد بود.

فایل سیستمها در بخش Sync خودشان از دو ساختار journal و non journal استفاده میکنند.

تفاوت ساختار journal و non journal:

ساختار journaling: هنگامی که میخواهیم اطلاعاتی را از حافطه اصلی به رود دیسک منتقل کنیم این نوع فایل سیستم ها یک جدول بنام journal table برای خودشان میسازند و قبل از اینکه عمل sync را انجام دهند کاری که قرار است انجام دهند را داخل این جدول مینویسند و سپس شروع به عملیات sync میکنند. عملیات sync هم برحسب سرعت دیسک و حجم فایل میتوانند بازه زمانی متفاوتی داشته باشند.

ساختار non journal: در این نوع فایل سیستمها جدول journal table وجود ندارد. و به محض اینکه بخواهند اطلاعات را از حافطه اصلی به هارد منتقل کنند شروع به عمل sync میکنند.

مزیت فایل سیستم های journal این است که زمانی که جدول journal table تشکیل میشود سیستم عامل میداند که قرار است چه کاری انجام دهد و اگر به هر دلیلی عملیات sync با خطا مواجه شود در این جدول یک سری داده و اطلاعاتی وجود دارد که بعدا به ما کمک میکند آنها را بازیابی کنیم. پس فایل سیستم های journal  امکانات بازیابی بسیار قدرتمندی دارند و خطر پاک شدن اطلاعات کم است.و بهتر است که اطلاعات مهم تر توسط این نوع فایل سیستم باشند.همچنین بدلیل ایجاد جدول journal table در این نوع فایل سیستت.م ها یک مقدار تاخیر در عملیات sync خواهیم داشت.

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

برخی فایل سیستم ها به صورت journal طراحی شده اند و ما نمیتوانیم بگوییم که non journal باشند و یا برعکس مثل Ext3 که  journal هست وExt2 که non journal هست و Reisefs آپشنال هست . ولی برخی فایل سیستم ها هستند که ماهیت آنها به گونه ای هست که میتوانید بگویید که journal  باشد یا non journal  اصطلاحا به این نوع فایل سیستم ها آپشنال یا اختیاری میگویند.

خواص فایل سیستم Ext3:

  • journal هست پس خاصیت Data Recovery دارد.
  • بسیار قدرتمند است.
  • سرعت خیلی خوبی دارد.
  • قابلیت دسترسی خیلی خوبی در سیستم عامل به ما میدهد.
  • خاصیت Data Integrity دارد.
  • میتواند فایل ها را تا ۲ ترا بایت ساپورت کند.
  • خاصیت Defragmentation دارد و به صورت اتوماتیک و هوشمند دیسک را دیفراگ میکند که سرعت هارد افزایش میابد.

مقایسه فایل سیستم Ext3 و Ext4:

فایل سیستم Ext3 فایلهایی با ۲ ترا بایت و ماکسیمم فضایی که ساپورت میکند ۱۶ ترا بایت است. ولی Ext4 بدلیل سیستم آدرس ۴۸ بیتی این امکان را فراهم میکند که فایل هایی با حجم ۱۶ ترا بایت و ماکسیمم فضای ۱EB را ساپورت کند.

Ext3 به تعداد ۳۲ هزار subdirectory روی یک پارتیشن را برای شما آدرس دهی کند. ولی Ext4  به تعداد نامحدود subdirectory در یک پارتیشن برای شما آدرس دهی کند.

Ext4 در حالت پیش فرض journal هست ولی خاصیت اختیاری یا آپشنال هم دارد. ولی Ext3 خاصیت آپشنال ندارد.

یکی از برنامه های بسیار قدرتمندی که توسط آن میتوانید فایل سیستم های خودتان را به یکدیگر تبدیل کنید برنامه E2fsprogs میباشد.

برای تبدیل یک device به Ext4 میتوانید از دستورات زیر استفاده کنید:

 mke2fs   -t    ext4 /dev/DEV

یا :

mkfs.ext4 /dev/DEV

بیش از ۹۵ درصد توزیع های لینوکس به صورت پیش فرض از فایل سیستم Ext4 استفاده میکنند.

 

 

 

 

 

 

 

 

 

 



برچسب ها : , , , , , , , , ,