يک سيستم فايل موازی نسل جديد برای کلاسترهای لينوکس مقدمه ای بر دومين سيستم فايل موازی مجازی

دانشمندان علوم کامپيوتر از کامپيوترهای عظيم موازی به منظور شبيه سازی رويدادهايی که در دنيای واقعی رخ می دهند استفاده می کنند. اين اعمال در چنين مقياس بزرگی جهت درک بهتر نمودهای علمی يا پيش بينی رفتارها لازم و ضروری می باشند. در اغلب موارد منابع محاسباتی يک فاکتور محدود کننده در حوزه اين شبيه سازی ها محسوب می گردند. منابع محدود تنها شامل CPU و حافظه نمی شوند، بلکه اين منابع
دوشنبه، 22 مهر 1387
تخمین زمان مطالعه:
موارد بیشتر برای شما
يک سيستم فايل موازی نسل جديد برای کلاسترهای لينوکس مقدمه ای بر دومين سيستم فايل موازی مجازی
يک سيستم فايل   موازی نسل جديد برای کلاسترهای لينوکس مقدمه ای بر دومين سيستم فايل موازی مجازی
يک سيستم فايل موازی نسل جديد برای کلاسترهای لينوکس مقدمه ای بر دومين سيستم فايل موازی مجازی

نويسنده:علي نجف زاده

خلاصه

دانشمندان علوم کامپيوتر از کامپيوترهای عظيم موازی به منظور شبيه سازی رويدادهايی که در دنيای واقعی رخ می دهند استفاده می کنند. اين اعمال در چنين مقياس بزرگی جهت درک بهتر نمودهای علمی يا پيش بينی رفتارها لازم و ضروری می باشند. در اغلب موارد منابع محاسباتی يک فاکتور محدود کننده در حوزه اين شبيه سازی ها محسوب می گردند. منابع محدود تنها شامل CPU و حافظه نمی شوند، بلکه اين منابع زيرسيستم های ورودی/خروجی را نيز در بر می گيرند، چرا که چنين برنامه هايی معمولا حجم زيادی از داده را توليد و يا پردازش می نمايند. برای اينکه روند شبيه سازی با سرعت بالا اجرا شده و ادامه يابد، سيستم ورودی/خروجی بايستی قادر به ذخيره صدها مگابايت داده در هر ثانيه باشد، و در اين عمليات بايد ديسک های زيادی مورد استفاده قرار گيرد. نرم افزاری که اين ديسک ها را به صورت يک سيستم فايل مرتبط سازماندهی می کند يک "سيستم فايل موازی" ناميده می شود.  سيستم های فايل موازی بويژه به منظور فراهم نمودن ورودی/خروجی های بسيار سريع در مواقعی که بايستی توسط پردازش های زيادی در يک لحظه مورد دسترسی قرار گيرند طراحی شده اند. اين پردازش ها ميان چندين کامپيوتر مختلف، يا ميان گره ها(nodes)، که کامپيوتر موازی را تشکيل می دهند توزيع گرديده است. شکل 1 يک نمای سطح بالا از يک کامپيوتر موازی به همراه يک سيستم فايل موازی را نمايش می دهد. گره هايی که کار محاسبه را انجام می دهند به يکديگر متصل شده اند و از سوی ديگر توسط شبکه کلاستر به گره های سرور ورودی/خروجی مرتبط هستند، و داده را بر روی ديسک های الصاقی به گره های سرور ذخيره می نمايند.

يک سيستم فايل موازی نسل جديد برای کلاسترهای لينوکس مقدمه ای بر دومين سيستم فايل موازی مجازی

شماتیک گره ها در LINUX لازم نيست که شما برای بهره بردن از يک سيستم فايل موازی در يک لابراتوار ملی، که دارای يک کلاستر 1000 گره ای است، مشغول به کار باشيد. برای سالها سيستم فايل موازی مجازی (PVFS) مخصوص کلاسترهای لينوکس در دسترس بوده است، که به هر شخصی امکان برپا کردن و استفاده از همان سيستم فايل موازی که در حال حاضر بر روی کلاسترهای بزرگ فراوانی در سراسر دنيا مورد استفاده قرار می گيرند را می دهد. اخيرا يک سيستم فايل موازی کامل تر و جديدتر بنام PVFS2 عرضه شده است. اين سيستم فايل جديد دارای انعطاف پذيری بيشتری بوده، و بهره بيشتری از سخت افزار موجود در کلاسترهای امروزی می برد، با کلاسترهای بزرگتر مطابقت بيشتری دارد، و مديريت آن نسبت به نسل قبل ساده تر است.

تاريخچه لينوکس

توروالدز در طراحي سيستم‌عامل آزمايشي خود در سال 1991 از سيستم فايلMinix استفاده كرد. سيستم فايلMinix جوابگوي نيازهاي توروالدز بود و به خوبي در سيستم‌عامل جديد جا افتاد. با به‌وجود آمدن يك جنبش اينترنتي براي توسعه اين سيستم‌عامل جديد و تبديل آن به يك سيستم‌عامل اپن‌سورسِ قابل استفاده براي عامه مردم، نارسايي و مشكلات سيستم فايلMinix ظهور كرد و نياز به طراحي يك سيستم فايل جديد توسط مشتاقان لينوكس حِس شد. دو مشكل عمده Minix در سيستم فايل عبارت بودند از كوچك بودن نام فايل‌ها (حداكثر 14 كاراكتر) و فضاي حافظه بسيار محدود (بلوك آدرس‌دهي فقط 16 بيتي بود يعني 216=46 مگابايت) طراحي Virtual File System) VFS) توسط <كريس پروون زنو> راه را براي خلق يك سيستم فايل جديد با توانايي و كارايي بهتر ازMinix هموار ساختVFS . يا همان لايه مجازي سيستم‌ فايل توسط خود آقاي توروالدز توسعه داده شد و به كرنل لينوكس اضافه گرديد. بلافاصله در آوريل 1992 سيستم‌ فايل جديد،Extended File system ، در نسخه 96/0 لينوكس به‌جاي سيستم فايلMinix استفاده شد. در واقع بنيان‌گذارانEXT fs عبارتند از Remy Card از آزمايشگاه ماساچوست، "Theodor Ts o" از انجمن تكنولوژي ماسوچوست و Stephan Tweedie از دانشگاه رادينبرگ.

 

Minix

Ext Fs

Ext2 Fs

Xia Fs

Max FS Size

64 MB

2 GB

2 GB

2 GB

Max File Size

64 MB

2 GB

2 GB

64 MB

Max File Name

16/30 c

255 c

255 c

248 c

3 time Support

no

no

yes

yes

Extensible

no

no

yes

no

var. block size

no

no

yes

no

Maintained

yes

no

yes

?

ويژگي مهم EXT fs حافظه دو گيگا بايتي براي سيستم فايل و نامگذاري 255 كاراكتري فايل‌ها است. همراه ساير بخش‌هاي لينوكس كه روح توسعه در آن‌ها جريان داشت، در ژانويه 1993،EXT fs بهSecond Extended File system ارتقاء داده شد. EXT مشكلاتي داشت كه مي‌بايست برطرف مي‌شدند. مانند عدم كارايي مناسب Inode ها وLink List ها و عدم امكان استفاده از Time stamps (ثبت زمان‌هاي مربوط به هر فايل) EXT2 fs نسبت به نگارش قبلي خود بسيار بهتر و مطمئن‌تر بود و مشكلات و باگ‌هاي موجود برطرف شده بودند.

ولي از پايداري لازم برخوردار نبود. همزمان باEXT2 fs ، سيستم فايلي هم براساس ساختارMinix به نام Xia طراحي شد كه يك سيستم فايل مطمئن و پايدار بود. در نسخه‌هاي بعديEXT2 fs ، پايداري آن هم به حد مناسب رسيد و به عنوان سيستم فايل مخصوص لينوكس معرفي و عرضه شد. پس از مدت زيادي كه از زمان عرضه و استفاده EXT3 fs گذشت، نسل جديدEXT به نامEXT3 fs طراحي شد. پررنگ‌ترين ويژگي 3EXT استفاده از فناوري journaling است. Journaling روشي براي ثبت وقايع هر فايل است تا انسجام و سازگاري داده‌ها با سيستم براي هميشه تضمين شود.Vfs اين توانايي را هم ايجاد كرده است كه لينوكس بتواند با ديگر سيستم‌ فايل‌هاي موجود نيز در تعامل باشد و سيستم‌ فايل‌هاي ديگري هم براي عمليات‌خود تعريف كند. همان‌طور كه در تاريخچه گفته شد، اولين نسخه‌‌هاي لينوكس همراه با سيستم فايلMinix عرضه شدند كه يك سيستم فايل مناسب و كارا مي‌نمود ولي پيشرفت پروژه گنو و طراحي يك سيستم‌عامل اپن‌سورس فراگير، نيازمند سيستم‌ فايل جديدتري بود.

كليد سيستم فايلext به وسيله طراحي ساختارVFS رقم خورد. براي شناخت بيشتر اين سيستم فايلي، ابتدا لايه مجازي سيستم فايل استفاده شده در لينوكس را بررسي مي‌كنيم.

 Virtual File system) VFS)

يک سيستم فايل موازی نسل جديد برای کلاسترهای لينوکس مقدمه ای بر دومين سيستم فايل موازی مجازی

لایه VFS

لينوكس از يك لايه مجازيVFS براي سيستم فايل خود استفاده مي‌كند. اين لايه مجازي ميان سيستم فايل در كرنل و لايه فراخواني فرايندهاي كاربران لينوكس واقع شده است (شكل فوق). همان‌طور كه شكل نشان مي‌دهد،VFS بر روي سيستم فايل قرار گرفته و با گرفتن توابع فراخواني پروسس‌هاي كاربران، اطلاعات تجزيه و تحليل شده را به سمت يك بلوك سيستم‌ فايل هدايت مي‌كند. هر پروسس در وضعيت كاري كاربر با اين لايه سيستم فايل در ارتباط است نه به‌صورت مستقيم با رويه‌هاي سيستم فايل. هسته سيستم‌عامل با به‌كارگيريVFS اين توانايي را به كرنل مي‌دهد كه بدون هيچ نگراني از فرمت‌هاي گوناگون پشتيباني كند، مانند فرمت فايل يونيكس و ويندوز. همچنينVFS باعث تسريع در عمليات‌هاي سيستم فايل شده و در هر فراخواني فقط نياز به دسترسي به يك بلوك است. مفاهيم اوليهext Extendedfs از مفاهيم يونيكس براي ساختاربندي خود استفاده مي‌كند. مهم‌ترين اين مفاهيمInode ،Directories وLink List ها مي‌باشند. Inode براي هر فايل يك ساختار بلوك مانندInode وجود دارد و هر فايل در لايه فيزيكي سيستم‌عامل تبديل به يكInode مي‌شود. هرInode از بخش‌هاي مختلفي تشكيل مي‌شود كه هر بخش شامل يك سري اطلاعات است. نوع فايل، اندازه فايل،owner يا مالك فايل، مجوزها و خصوصيات فايل، تاريخ‌هاي ثبت شده براي فايل مانند تاريخ ايجاد، آخرين دسترسي، اصلا‌ح و اشاره‌گرها، مهم‌ترين اطلاعات هرInode را تشكيل مي‌دهند. داده‌هاي هر فايل درData Block ها ذخيره و نگهداري مي‌شوند كه هر Inode تعدادي اشاره‌گر به اين ديتابلوك‌ها دارد. هر فرايندي در سطح سيستم‌عامل كه نياز به فايلي مشخص دارد كافيست شماره آن فايل را به دست بياورد و با رجوع بهInode فايل تمام اطلاعات لازم را در اختيار خواهد داشتInode .ها ساختاري همانند شكل زیر دارند.

يک سيستم فايل موازی نسل جديد برای کلاسترهای لينوکس مقدمه ای بر دومين سيستم فايل موازی مجازی

شکل INODE ها

Directories

دايركتوري‌ها همان ساختار درختي آشناي سازمان‌دهي فايل‌ها هستند. ساختار هر دايركتوري به صورت زير مي‌باشد: Inode number entry length file name

Inode number

entry length

file name

يک سيستم فايل موازی نسل جديد برای کلاسترهای لينوکس مقدمه ای بر دومين سيستم فايل موازی مجازی

Directories

Length ها

مدخل‌هاي اشاره‌كننده به Link ها هستند. هر دايركتوري مي‌تواند شامل فايل يا زيردايركتوري باشد. دايركتوري‌ها نام هر فايل همراه شمارهInode آن را در خود ذخيره مي‌كنند. هسته سيستم‌عامل براي يافتن يك فايل ابتدا دايركتوري‌ها را اسكن مي‌كند و با پيدا كردن شمارهInode فايل آدرس فيزيكي فايل در ديسك توليد مي‌شود (شكل فوق). از ديگر وظايف دايركتوري‌ها مديريتLink List ها است. Link همانند يونيكس، مفهوم لينك هم درext مطرح و به كار برده شده استLink List . مي‌تواند يك اشاره‌كننده به فايل يا دايركتوري يا بلوك‌هايي از داده‌ها باشد. شما با ايجاد يك لينك مي‌توانيد دسترسي سريع به فايل يا دايركتوري داشته باشيد. خود هسته سيستم‌عامل هم براي دسته‌بندي اطلاعات ازLink List ها استفاده مي‌كندLink .ها در سطح كاربر هم قابل تعريف و به‌كارگيري هستند و به لينك‌هاي سخت‌افزاري و نرم‌افزاري تقسيم‌بندي مي‌شوند. ساختار فيزيكي Ext Fs سيستم فايلext لينوكس ساختار فيزيكي‌ همانند سيستم فايلBSD دارد.

بدين‌صورت كه حافظه سيستم‌ فايل تماماً بهBlock Group ها تقسيم مي‌شود. اين بلوك‌ها در اندازه‌هاي 1K، 2K،4K قرار مي‌گيرند و هر بلوك براي يك سري اطلاعات با كاربردي خاص استفاده مي‌شود. ساختار حافظه فيزيكي سيستم فايلext به اين شكل است: Boot Sector Block Group 1 Block Group 2 ... Block Group N هر يك از اينBlock Group ها هم ساختاري اين چنين دارند: Super Block FS Description Block Bitmap Inode Table Data Block همان‌طور كه مشاهده مي‌شود هرBlock Group در ابتدا شامل يكSuper Block است كه اطلاعات مدير سيستم(Root) به همراه اطلاعات كلي مربوط به بلوك در آن قرار مي‌گيرد. بخش بعدي اطلاعات مربوط به سيستم‌ فايل است و در ادامه جدولInode ها، داده‌هاي هر بلوك و بيت‌هاي كنترلي بلوك وInode قرار مي‌گيرند. در اين شيوه از ساختار‌بندي فايل، چون جدولInode ها فاصله‌اي بسيار نزديك با بلوك‌ داده‌ها دارد كارايي سيستم چندين برابر مي‌شود و سرعت دستيابي به اطلاعات هر بلوك از فايل‌ها افزايش مي‌يابد. همچنين با ايجاد يك ساختار بلوك‌بندي شده فضاي آدرس‌دهي منطقي كمتري مصرف مي‌شود. Ext2 fs سيستم فايل استاندارد گنو / لينوكس پس از به كار گرفته شدن سيستم فايلExt fs در هسته گنو/ لينوكس برخي نواقص و نارسايي‌هاي آن ظاهر شد و بنابراين به سيستم فايل Second Extended fs ارتقاء داده شد. قريب يك دههExt2 fs پيش‌فرض سيستم فايل لينوكس در كرنل و توزيع‌هاي تجاري بود. شايد بتوان مهمترين شاخصه‌هايExt2 fs كه باعث متمايز شدن آن از تمامي سيستم‌ فايل‌هاي قبل از خود شد را به‌صورت زير ليست كرد: Ext2 fs توانايي كار و پشتيباني با فايل‌هايي با فرمتي غير ازExt را هم داراست.

به راحتي با داشتن يكVFS فايل‌هاي ويندوز و يونيكس و ديگر سيستم‌عامل‌هاي تجاري همانندBSD و فرمتV را شناخته و از اين فرمت‌ها در كنارExt استفاده مي‌كند. Ext2 fs قابليت نامگذاري فايل‌ها تا 255 كاراكتر را ميسر مي‌كند و حتي در صورت تعريف بلوك‌هاي بزرگ‌تر باز هم اين اندازه قابل افزايش است. به‌صورت پيش‌فرض، حافظه فيزيكي 2Ext برابر2 گيگا بايت است. اين اندازه از سيستم فايل همراهVFS امكان ايجاد يك پارتيشن بزرگ تا اندازه4 گيگا بايت را ميسر مي‌كند و ديگر نيازي به تقسيم يك پارتيشن بزرگ به اندازه‌هاي كوچك‌تر به وجود نمي‌آيد.

Boot Sector

Block Group 1

Block Group 2

...

Block Group

هر يك از اينBlockGroup ها هم ساختاري اين چنين دارند:

Super Block

FS Description

Block Bitmap

Inode Table

Data Block

Ext fs با تخصيص پنجاه درصد بلوك‌هاي حافظه به حساب ريشه (Root) توانايي‌هاي بالقوه‌اي در اختيار مدير سيستم قرار مي‌دهد. با استفاده از اين بلوك‌ها امكان پيگيري فرايندهاي كاربران به آساني ميسر مي‌شود. از خصوصيات ويژهExt2 fs امكان‌دهي به كاربر درset كردن خصوصيات يك فايل در زمان ساخت يا بعد از آن است. حتي يك كاربر مي‌تواند برخي رفتارهاي سيستم فايل را هم به تناسب خود تغيير دهد. اين اعمال تغييرات به‌وسيله ارايه ابزارهاي بسيار ساده‌اي كه از طرف جامعه اپن‌سورس به كاربران هديه مي‌شود، به آساني صورت مي‌گيرد. اجازه تعريف اندازه بلوك‌هاي فيزيكي سيستم فايل به مدير سيستم ديگر مزيتExt2 fs است. مدير سيستم مي‌تواند برحسب نياز بلوك‌ها را به صورت دستي سايزبندي كند. اين امر موجب كارايي هر چه بيشتر سيستم در مواجه با فرايندهاي بلوكه شده مي‌شود. استفاده ازLink ها درExt2 fs به راحتي امكان‌پذير است و با يك دستور <>Ln در پوسته فرمان مي‌توانيد براي فايل‌ها و دايركتوري‌ها، يكLink درست كنيد. در سيستم فايلExt2 fs ،State هاي سيستم فايل قابل ثبت و نگهداري است. فيلدSuper Block در هر بلوك سيستم فايل وظيفه‌اي براي نگهداري اين اطلاعات دارد كه قابل بازخواني هستند. و مزيت آخرExt2 fs در دسترس و همگاني بودن توابع كتابخانه‌اي سيستم فايل است كه اين امكان را مي‌دهد، هر كاربري با به‌كارگيري اين توابع توانايي هرگونه تغيير، اصلاح و به‌وجود آوردن و ساخت را در 2Ext به‌دست آورد. به همين خاطر ابزارهاي بسياري براي كار باExt2 fs موجود و قابل تهيه هستند. از ابزار پيكربندي سيستم فايل تا ابزار اشكال‌زدايي آن. مهمترين اين ابزارها عبارتند ازDebugfs :،dump2 fs ،tune fs ،e2fsck ،Mk2 fs . Ext3 fs نسل جديد سيستم فايل گنو / لينوكس در كرنلي كه ازExt2 fs استفاده مي‌كند اگر عملياتshut down به درستي انجام نشود، به عنوان مثال قطع برق ياCrash كردن سيستم، شاهد بروز دو مشكل عمده هستيم: امكان خرابي و از بين رفتن داده‌ها و دوم اين‌كه سيستم براي بوت مجدد نيازمند به استفاده از ابزار اسكن داده‌ها براي شناسايي و تشخيص داده جهت سازگاري آن‌ها با سيستم فايل است. گاهي در اين موارد مدت زمان زيادي بايد صبر كنيد تا چند گيگابايت اطلاعات توسط سيستم خوانده شوند كه اين بسيار نامطلوب استthree Extended fs . نسل جديدExt2 fs مشكل را برطرف كرده استExt3 fs . با بهره‌گيري از تكنولوژي <>journaling يا <سيستم ثبت وقايع فايل‌ها>، امنيت داده‌ها و سازگاري و انسجام اطلاعات را در هنگام وقوع خطاهاي سخت‌افزاري تظمين مي‌كند. Ext3 fs توسط آقاي Tweedie (از بنيان‌گذاران سيستم فايل (Ext fs توسعه يافته و از هسته 15.4.2 به بعد قابل استفاده است. Journaling از روشي در ذخيره و نگهداري داده‌ها بر روي ديسك استفاده مي‌كند كه ديگر نيازي به سازمان‌دهي اطلاعات بلوك‌هاي سيستم فايل و تنظيم كردن آدرس‌هاي منطقي نيست و هيچ زماني در فرايند بوت براي شناخت داده‌ها و انسجام آن‌ها با سيستم فايل صرف نمي‌شود. در ضمن امنيت داده‌ها هم تأمين مي‌شود. در زمان وقوع يك خطاي سخت‌افزاري، ژورنالينگ از اطلاعات داده‌ها پشتيباني مي‌كند و باعث مي‌شود هيچ‌گونه اطلاعات جديدي بر روي داده‌ها نوشته نشود.

سرعت و بهره توان عملياتيExt3 fs به مراتب بيشتر ازExt2 fs استExt3 fs . از سه روش براي بالا بردن سرعت استفاده مي‌كند. در روشData = write back ، پس ازCrash كردن سيستم، داده‌هاي قديمي استفاده مي‌شود. در اين روش اطمينان صحت داده‌ها پايين مي‌آيد ولي سرعت بالا‌ مي‌رود. در روش Data = ordered (پيش‌فرض) از هر گونه اضافه شدن اطلاعات به داده‌هاي بلوك‌هاي سيستم فايلInode ها جلوگيري مي‌شود. اين مد بهترين كارايي را دارد. در سومين روشData= journal ، سيستم از يك فايل بزرگjournal براي نگهداري اطلاعات سيستمي ضروري براي ذخيره و بازيابي داده‌هاي ديسك استفاده مي‌كند. مي‌شود گفت كه فايل journal در واقع فايلBackup سيستم است. Ext3 fs باExt2 fs سازگاري كامل دارد و تبديل و ارتقاء به آساني و با چند خط فرمان‌نويسي درshell سيستم صورت مي‌پذيرد. و اين كار بدون هيچ‌گونه نياز به فرمت كردن يا پارتيشن‌بندي يا اختلال در بلوك‌هاي داده‌هاي سيستم فايل صورت مي‌پذيرد. يعني شما فقط فايلjournal را به سيستم فايلExt2 fs اضافه مي‌كنيد. به‌كارگيري تكنولوژيjournaling در سيستم فايل علاوه بر مزاياي گفته شده، باعث ايجاد يك تاريخچه از هر فايل در سيستم شده و عمليات پيگيري وقايع هر فايل به آساني امكان‌پذير مي‌شود. گذشته از اين ژورنالينگ در ديگر امكانات هسته هم استفاده مي‌كند. همه اين ويژگي‌ها باعث شده‌اند كه بسياري از شركت‌هاي تجاري سيستم فايل 3Ext را به عنوان پيش‌فرض توزيع گنو/ لينوكس خود انتخاب كنندRed Hat . از نسخه 2/7،Ext3 fs را در نسخه لينوكس خود به‌كار برد. مفاهيم سيستم فايل موازی برای دستيابی به کارآيی بالا، يک سيستم فايل موازی فايل ها را همانند سيستم RAID ميان گره ها قطعه قطعه و تقسيم می نمايد. در اين سيستم، بجای ديسک ها، گره ها سرورهای داده محسوب می شوند. همانگونه که يک RAID چندين کانال را به منظور افزايش کارآيی در يک مجموعه از ديسک های محلی متمرکز می کند، يک سيستم فايل موازی نيز اتصالات شبکه را در يک مجموعه از ديسک هايی که به صورت شبکه در آمده اند متمرکز می نمايد. قطعه قطعه کردن داده در ميان گره ها يک روش ساده برای دستيابی به موازی سازی ميان چندين سيستم ورودی/خروجی سری است. بر خلاف حالتی که چندين گره از يک RAID به صورت اشتراکی استفاده می کنند، يک سيستم فايل موازی قادر به استفاده همزمان از چندين لينک شبکه، با حذف گلوگاه محدودکننده، می باشد. تا زمانی که فايلها به اين روش قطعه قطعه می شوند و برنامه های موازی وادار به کار بر روی نواحی معينی از يک فايل به اشتراک گذاشته شده می گردند، شبکه و محتويات لود شده ديسک ها توانايی گسترش در ميان گره های ذخيره سازی را دارند. در مقابل، سيستم های فايل شبکه ای دارای نقش متفاوتی هستند. امروزه، داشتن يک پيکربندی از چندين ماشين با برخی از انواع ذخيره سازی اشتراکی يا سيستم فايل همچون NFS، Windows Networking يا AppleTalk ديگر امر غير عادی محسوب نمی شود. اين سيستم ها با توجه به پيشرفت های حاصل شده در کارآيی آنها (پيشرفت هايی نظير عمل کش کردن سمت کلاينت) به خوبی home directory ها کار خود را انجام می دهند. کش سازی سمت کلاينت تاريخچه تغييرات محلی فايل را بدون بروزرسانی بيدرنگ در وضعيتی که داده بر روی سرور و يا بر روی حافظه های کش موجود بر روی ساير کلاينت ها ذخيره شده باشد نگه داری می کند. اين رويکرد بطور کلی بارگذاری های شبکه را کاهش داده و سرعت انجام اعمال معمولی از قبيل ويرايش يا کامپايل فايل ها را به روشی که هزينه های شبکه را تقريبا شفاف می سازد افزايش می دهد. در حالی که مزيت کش سازی سمت کلاينت در سيستم های فايل شبکه ای بر کسی پوشيده نيست، برنامه های موازی در صورتيکه داده ارائه شده به آنها ناهماهنگ و متناقض باشد می توانند نتايج نادرستی را توليد نمايند. اگر پردازش ها همواره يک ديد مشترک از داده را به اشتراک گذارند، برنامه های موازی قادر خواهند بود بدون خطا به کار خود ادامه دهند. يک روش، حصول اطمينان از اين مسئله است که حافظه های کش موجود در هر گره همواره حاوی آخرين داده است. تکنيک های گوناگونی برای حفظ هماهنگی و سازگاری وجود دارد، که توسط هر تکنيک به مشخصه های متفاوتی از کارآيی می توان دست يافت.

برای مثال، برخی سيستم های فايل کلاستر مسئله سازگاری و هماهنگی داده را با استفاده از قفل های فايل به منظور جلوگيری از دستيابی همزمان به فايل حل می کنند. بطور کلی، قفل ها روشی برای حصول اطمينان از اين مطلب هستند که تنها يک فرايند در يک لحظه قادر به اعمال تغييرات بر روی داده است. در يک سيستم فايل شبکه ای، معمولا يک قفل بايستی از يک مدير قفل مرکزی کسب اجازه نمايد. قفل های فايل نوع Coarse-grained تضمين می کنند که فقط يک پردازش در يک لحظه قادر به نوشتن داده در يک فايل باشد. کارآيی با افزايش تعداد پردازش ها تنزل خواهد يافت. ساير روش ها شامل طرح های قفل فايل fine-grained، همچون قفل محدوده بايت (byte-range)، می باشند که اين امکان را فراهم می آورند که چندين پردازش بصورت همزمان نواحی مختلفی از يک فايل به اشتراک گذاشته شده را بنويسند. به هر حال، آنها با محدوديت های مقياس پذيری ((scalability نيز مواجه می شوند. بالاسری (overhead) ناشی از نگهداری تعداد زيادی از قفل های از اين نوع در نهايت به تنزل کارآيی ختم می گردد. در حالت کلی تر، هر سيستم قفل شبکه ای با يک گلوگاه محدود کننده برای دسترسی داده مواجه می شود. برای دستيابی به مقياس پذيری و کارآيی در مورد درخواست های برنامه هايی که اعمال ورودی/خروجی زيادی دارند، يک سيستم بدون بالاسری قابل توجه (همچون قفل کردن) و بدون عرضه متفاوت داده ميان گره ها (همچون کش سازی سمت کلاينت) مورد نياز است. برنامه های موازی تمايل دارند که هر فرايند را وادار به نوشتن در نواحی مجزايی از يک فايل به اشتراک گذاشته شده نمايند. برای اين نوع برنامه ها، در حقيقت هيچ نيازی به عمل قفل کردن نيست، و ما می خواهيم که تمام اعمال نوشتن بصورت موازی و بدون تاخير موجود در چنين رويکردهايی ادامه يابد. بجای داشتن يک سيستم فايل با کارآيی بالا که زمان زيادی را صرف مجادله برای منابع مشترک يا تلاش برای حفظ سازگاری و هماهنگی حافظه های کش کند، حالت ايده آل اين است که سيستمی را طراحی کنيم که به اشتراک گذاری منابع و سازگاری مناسب را پشتيبانی نمايد. PVFS2 مثالی از يک سيستم فايل موازی نسل آينده است که برای برآورده ساختن اين موارد طراحی شده است. در قسمت بعد به بحث در مورد چگونگی راه اندازی PVFS2 خواهيم پرداخت.





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