هر سیستم عامل برای ذخیره اطلاعات از سیستم فایل مختص به خود استفاده می‌کند. ویندوز از NTFS استفاده می‌کند، مک از APFS استفاده می‌کند و اکثر سیستم عامل‌های توزیع شده لینوکس از Ext4 استفاده می‌کنند. در حالی که سیستم‌های فایل به طور کلی با یکدیگر متفاوت هستند، یکی از قابلیت هایی که در همه این سیستم‌ها وجود دارد Journaling یا ژورنالینگ است. بیایید در مورد ژورنالینگ سیستم فایل و نحوخ تاثر آن بر محاسبات روزمره بیشتر صحبت کنیم.

ژورنالینگ فایل سیستم چیست؟

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

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

Journaling File System یا ژورنالینگ فایل سیستم چیست؟

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

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

Journaling File System یا ژورنالینگ فایل سیستم چیست؟

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

تعاریف

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

Tebibytes (TiB) – همه ما می‌دانیم که یک گیگ چقدر است. یک Tebibytes (TiB) برابر 1024 گیگابایت (2 به توان 10) است. TiB یکی از واحدهای پیش فرض برای بیان مقادیر بزرگی از ذخیره سازی فایل است. به عبارت بهتر 1 TiB معادل 1.09951 ترابایت (TB) است.

Pebibyte (PiB) – Pebibyte (PiB) معادل 1024 TiB یا معادل 1 میلیون گیگابایت است که در واقع مقدار بسیار بزرگی است.

Clusters یا کلاسترها – کلاسترها داده، کوچکترین واحد از فضای دیسک است که می‌تواند برای ذخیره فایل استفاده شود. کلاستر می‌تواند از 512 بایت (برای یک سکتور منفرد) تا 64 کیلوبایت (برای 128 سکتور) باشد.

سیستم فایل NTFS

New Technology File System (NTFS) سیستم ژورنالینگ پیش فرض مایکروسافت برای ویندوز و ویندوز سرور است. این سیستم فایل برای ریستور کردن مقادیر پایدار سیستم فایل بعد از ریستارت از اطلاعات چک پوینت و فایل‌های لاگ استفاده می‌کند.

NTFS  از مقدار داده‌های بزرگ پشتیبانی می‌کند، برای یک کلاستر با اندازه 4 کیلوبایت این سیستم فایل می‌تواند به اندازه 16 TiB از داده‌ها را در خود جای دهد. برای کلاسترهایی که دارای اندازه 64 کیلوبایت هستند این سیستم فایل 256 TiB از داده ذخیره می‌کند که 256 TiB حداکثر اندازه فایل است.

امروزه NTFS هر گونه خرابی موجود در فایل‌ها را از برطرف می‌کند به همین دلیل این سیستم فایل به عنوان “self-healing NTFS” شناخته می‌شود. کاربران ویندوز 10 ممکن است تجربه خرابی که به علت chkdsk ایجاد می‌شود را داشته باشند. در آخرین بروزرسانی self-healing NTFS” این مشکل حل شده و هیچ خرابی رخ نخواهد داد.

سیستم فایل Ext

Extended File System (ext) از همان ابتدا سیستم ژورنالینگ لینوکس بود. این سیستم فایل از سیستم فایل یونیکس UFS الهام گرفته شده است و از زمان معرفی تا اوایل دهه 90 میلادی، سه بار تغییر داشته اشت:

  • ext2 – در اصل در Debian و Red Hat Linux مورد استفاده قرار گرفت و هنوز هم در رسانه‌های فلش مانند کارت‌های SD و فلش مموری ها مورد استفاده قرار می‌گیرد. این سیستم فایل می‌تواند 2 تا 32 TiB از داده‌ها را با حداکثر اندازه کلاستر 8 کیلوبایتی در خود جای دهد.
  • ext3 – به عنوان سومین سیستم فایل توسعه داده شده از ext3 در Linux ، BSD و ReactOS استفاده شده است. محدودیت اندازه شبیه ext2 است.
  • ext4 – آخرین نسخه از سیستم فایل توسعه داده شده است که از آن برای ذخیره سازی فایل‌های گوگل، BSD, PowerPC و اکثر توزیع‌های فعلی لینوکس استفاده می‌شود، محدودیت اندازه برابر 1024 PiB یا یک میلیون TiB است. بزرگترین اندازه کلاستر 64 کیلوبایت است.

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

سیستم فایل APFS

سیستم فایل Apple File System (APFS) در macOS High Sierra, iOS 10.3  و نسخه‌های بلاتر و چند سیستم دیگر مورد استفاده قرار می‌گیرد. این سیستم فایل از 8000 PiB (2 به توان 63 بایت) پشتیبانی می‌کند که تقریبا 8 برابر بیشتر از سیستم فایل ext4 است.

Journaling File System یا ژورنالینگ فایل سیستم چیست؟

قابلیت‌های اصلی APFS زیاد است. این سیستم فایل شامل ایجاد اسنپ شات می‌باشد که شبیه یک کپی از سیستم در یک نقطه خاص است. مانند NTFS این سیستم فایل هم از چک سام استفاده می‌کند تا یکپارچگی داده‌ها را تضمین کند و  با استفاده از روشی به نام Copy on writer از سیستم در مقابل کرش شدن محافظت می‌کند.

نتیجه گیری

ژورنالینگ در سیستم فایل شما را در برابر کرش سیستم و خاموش شدن‌های غیره منتظره ایمن می‌کند. با نوشتن تغییرات در یک ژورنال ما می‌توانیم اطمینان داشته باشیم که همه تغییرات در فایل‌ها ثبت شده‌اند و در طول کرش شدن سیستم یا خاموش شدن ناگهانی سیستم اطلاعات از بین نمی‌روند. سیستم‌های فایل ژرنال شده بیشتری جدا از سیستم‌های فایلی که در اینجا بحث کردیم وجود دارند. Oracle, VMware, BSD, Cisco, Solaris و غیره واحدهای ژورنالینگ اختصای خود را دارند.