HIFFS نمایه ترکیبی برای فلش فایل سیستم

0
520
فلش فایل سیستم
فلش فایل سیستم

Hybrid Index for Flash File System

حافظه فلش، به ویژه حافظه فلش NAND، به گزینه ای محبوب برای طراحی سیستم ذخیره سازی تبدیل شده است. سیستم های معمولی، ویژگی های حافظه فلش را در نظر نمی گیرند و باعث عملکرد ضعیف می شوند.  برای حل این مشکل، در این مقاله یک طرح جدید برای سیستم پرونده NAND flash ارائه می‌دهیم که HIFFS (شاخص ترکیبی برای فلش فایل سیستم) نامیده می‌شود. HIFFS شامل دو جز است: فهرست شاخه درخت و فهرست داده پرونده. دایرکتوری درخت Hash از یک فهرست مبتنی بر Hash استفاده می‌کند تا عملکرد به روزرسانی بهتر و کارایی جستجو را بدست آورد. فهرست داده انطباقی پرونده با توجه به اندازه پرونده از استراتژی متفاوت استفاده می‌کند. نتایج آزمایش نشان می‌دهد که HIFFS عملکرد بهتری نسبت به سیستم فایل‌های پیشرفته دارد.

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

با این حال، در مقایسه با دیسک‌های سخت سنتی، حافظه فلش دارای چندین ویژگی است که آن را برای کاربرد مستقیم در سیستم‌های ذخیره‌سازی فعلی نامناسب می‌کند. پاک کردن-قبل از نوشتن و چرخه‌های محدود از برنامه/ پاک کردن (P/E) مهمترین مشکلاتی هستند که استفاده گسترده حافظه‌های فلش را به خطر می‌اندازند.

در سیستم فایل‌های سنتی، فایل‌ها و دایرکتوری‌ها در یک ساختار درختی ایندکس می‌شوند. از شاخص Hash برای سرعت بخشیدن به عملکرد فهرست استفاده می‌شود. اما استفاده از فضا کم است، زیرا باید فضای ثابت را برای جدول Hash اختصاص دهد.

ساختار مقاله

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

1) ما یک ساختار دایرکتوری مبتنی بر Hash قابل توسعه ترکیبی پیشنهاد می‌کنیم. برای هر دایرکتوری جداول Hash جزئی ایجاد می‌شود تا هزینه جستجو کاهش یابد.

2) ما یک دیتا فایل ایندکس تطبیقی را برای کاهش هزینه ایندکس فایل شاخص پیشنهاد می‌دهیم. این کار با افزودن اطلاعات ایندکس شده دیتا فایل به متادیتا،  YAFFS و Ext2 را بهبود می‌بخشد و اجازه می‌دهد استراتژی ایندکس سازی مناسب بر اساس فایل سایزهای متفاوت شکل پذیرد.

3) ما HIFFS را پیاده‌سازی می‌کنیم و در مقایسه با سیستم فایل‌های پیشرفته، آن را با استفاده از توان ارزیابی می‌کنیم.

طراحی HIFFS

HIFFS توسط Namespace Manager ، Object Address Allocator و Hybrid File Data Index تشکیل شده است. معماری کلی سیستم HIFFS در شکل 1 نشان داده شده است.

HIFFS، مشابه YAFFS، ذخیره‌سازی مبتنی بر شیء را برای مدیریت همه فایل‌ها پیشنهاد می‌دهد. یعنی برای هر فایلی که شامل فایل دایرکتوری، فایل inode و دیتا فایل باشد که بعنوان یک ایندکس استفاده شده باشد، یک object ID منحصر به فرد اختصاص می‌دهد. Namespace Manager وظیفه سازماندهی ساختار دایرکتوری و تکمیل فهرست‌بندی دایرکتوری و در نتیجه به دست آوردن object ID بر اساس نام فایل را دارد. این شامل نمای کامل شاخه Hash Tree و جداول Hash برای هر زیر شاخه است. Object Address Allocator یک جدول آدرس فیزیکی برای تعیین مکان همه object‌ها با استفاده از شناسه منحصر به فرد هر object است.

شکل 1. معماری کلی سیستم HIFFS

 

 

شکل 2. ساختار شاخه درخت Hash از HIFFS.

در HIFFS، ساختار فهرست توسط hash tree پیاده‌سازی می‌شود. همانطور که در شکل 2 نشان داده شده است، ما برای هر فهرست به جای کل جدول Hash در YAFFS، یک جدول Hash با N مورد (N برابر با تعداد برگ‌ها) می‌سازیم. از این جداول Hash برای حفظ اطلاعات ایندکس استفاده می‌کنیم. عناصر یک جدول Hash زیر شاخه‌ها و فایل‌های منظم در دایرکتوری هستند. هر عنصر شامل یک جفت مقدار Hash و object‌-ID از یک زیر شاخه یا یک فایل منظم در شاخه است.

فایل ایندکس بطور مشابه Ext2/3 شامل ایندکس مستقیم، ایندکس غیرمستقیم، ایندکس دو برابر غیرمستقیم، ایندکس سه برابر غیر مستقیم است. ایندکس مستقیم شامل آدرس فیزیکی داده های فایل است و شاخص چند سطح غیرمستقیم با جستجوی جدول آدرس فیزیکی در Object Address Allocator، شناسه های object را برای یافتن فایل شاخص بالاتر ذخیره می کند.

سنجش عملکرد

ما آزمایش‌های مبتنی بر شبیه‌سازی را توسط مانیتور nandsim انجام می‌دهیم که برای شبیه سازی تراشه‌های فلش NAND استفاده می‌شود.

با استفاده از ابزار آزمایش عملکرد سیستم فایل پرونده به نام filebench، پهنای باند را ارزیابی کرده و پهنای باند را می‌خوانیم/می‌نویسیم. شکل 3 عملکرد بهبود یافته توسط HIFFS را نشان می‌دهد.

نتایج نشان می دهد که HIFFS از YAFFS ، Ext2 ، Ext4 و Btrfs بهتر عمل می کند. توان HIFFS برای انواع مختلف بار کاری 9٪ (وب پروکسی) تا 22٪ (varmail) بهتر از YAFFS است. برای varmail ،HIFFS به ترتیب 20برابر، 22 برابر و 35 برابر در مقایسه با Ext2 ،Ext4 و Btrfs بهبود می‌یابد.

دلیل آن این است که varmail همیشه داده ها را بلافاصله به دستگاه های جانبی می ریزد. بنابراین استراتژی انعطاف پذیر HIFFS و YAFFS از Ext2،Ext4 و Btrf که از استراتژی بازگشت استفاده می‌کنند، بهتر عمل می‌کنند.

شکل 3. عملکرد عملیات جستجو

نتیجه

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