مقاله در مورد FAT32 , NTFS ,LINUX
سيستم فايل NTFS چيست ؟

حتما تا كنون با عناويني همچون FAT16 و FAT32 آشنا هستيد . اين دو از سيستم هاي فايلي مايكروسافت هستند كه در حال حاضر با توجه به گسترش زمينه هاي مختلف سيستم هاي كامپيوتري ناكارآمد و غير قابل اطمينان هستند.
يكي از مهمترين مشكلات امنيتي در سيستم FAT16 و FAT32 عدم توانايي در تعريف سطوح مجوز دسترسي به فايل ها و يا پوشه ها مي باشد . كه اين امر مي تواند به عنوان يكي از دلايل ناكارآمدي و قابل اطمينان نبودن اين سيستم ها در سطوح شبكه باش

د .
بر اين اساس مايكروسافت سيستم فايلي جديدي تحت عنوان NTFS را ايجاد نمود كه از يك ساختار ۶۴ بيتي پشتيباني مي كند و از اين رو كاربران مي توانند فايل هاي

 

ي ايجاد كنند كه طول نام آنها تا ۲۵۶ كاركتر باشد .
چهار مجوز استاندارد در سيستم NTFS براي فايل ها و پوشه ها وجود دارند :
۱- No Access: با انتخاب اين گزينه كاربران هيچگونه مجوزي براي خواندن ، نوشتن و … فايل يا پوشه مربوطه نخواهند داشت .
۲- Read : با توجه به آنكه اجزاه خواندن يك فايل شامل اجراي آن نيز مي باشد ،از اين رو كاربري كه اين سطوح از دسترسي را داشته باشد مي تواند فايل را اجرا كرده و آن را بخواند .
۳- Change : اين سطح دسترسي و مجوز ، كاربر را قادر مي كند تا فايل را خوانده و در صورت لزوم تغييرات خود را در آن انجام دهد يا حني فايل را حذف كند .
۴- Full Control : با فعال بودن اين گزينه كاربران داراي مجوز مي توانند فايل را خواند ، تغييرات مورد نياز را درآن ايجاد كرده و يا حذف كنند . در واقع تمام امكانات و اختياراتي كه كاربر در حالت Change دارد در اين قسمت نيز وجود دارد و فرق اين دو سطح مجوز در آن است كه با داشتن مجوز Full Control ، كاربر مي تواند حتي براي ساير كاربران سيستم دسترسي تعريف كند و يا دسترسي كاربر ديگر را از آن پوشه و يا فايل حذف كند .  زيرا داشتن مجوز Change بالاترين سطح دسترسي را به كاربران مي دهد مگر آنكه واقعا بخواهيد كاربري امكان تعريف يا حذف مجوز براي سايرين را داشته باشد .

 

البته مجوزه هاي ديگري نيز چون Read Only ، No Exe

cute، Execute Only ، Write Only و … نيز قابل تعريف مي باشند .

تعریف مجوزها
تعيين مجوز براي منابع اشتراكي شبكه
مجوزهاي بررسي شده در فوق در واقع براي تعيين سطح دسترسي كاربراني است كه از يك سيستم بطور مشترك استفاده مي كنند . اما ممكن است سيستم شما در بين چندين سيستم ديگر و در يك شبكه قرار گرفته باشد و شما بخواهيد با تعيين سطح دسترسي هاي مشخص امكان دسترسي به يك يا چند كاربر بدهيد . پس از تعريف منابع اشتاركي در سيستم تان كه مي تواند فايل ها ، پوشه ها ، درايو ها ، چاپگر ، اسكنر و … باشد ، كاربران داراي مجوز مي توانند به اين منابع دسترسي داشته باشند . با توجه به آنچه گذشت مي توان سطوح دسترسي كاربران در سطح شبكه را نيز به شكل زير تعريف كرد:
۱- No Access: نازلترين سطح دسترسي (دسترسي وجود ندارد)
۲- Read : اجرا و خواندن
۳- Change : اجرا ، خواندن و اعمال تغييرات
۴- Full Control : اجرا ، خواندن ، نوشتن و اعمال تغييرات ، تغيير در سطح مجوز ها
با توجه به اين توانايي ها شما مي توانيد براي يك فايل و يا پوشه در هر دو وضعيت سيستم محلي و شبكه ، مجوزلازم را به كاربران بدهيد . مثلا با تعيين مجوز Change براي يك فايل در سيستم محلي ، به كاربراني كه در پشت سيستم شما مي نشينند امكان اعمال تغييرات را در فايل بدهيد و با تعيين مجوز Read در سطح شبكه تنها امكان خواندن را به كاربراني كه از شبكه استفاده مي كنند بدهيد . البته در صورت جابجايي اين سطوح ، يعني تعيين مجوز Change, در سطح شبكه و Read در سطح سيستم محلي ، تنها مجوز Read كه حداقل سطح دسترسي بين اين دو است به كاربران داده مي شود و كاربران شبكه نيز تنها مي توانند فايل را خوانده و اجرا كنند . شكل زیر ، بوت سكتور يك ولوم قالب دار را با يك NTFS را شرح مي دهد .وقتي يك ولوم NTFS را قالب بندي مي كنيد ، برنامه قالب بندي اولين ۱۶ قسمت را براي بوت سكتور و كد بوت استرپ اختصاص مي دهد.
Byte Offset

Field Length

Field Name

۰x00

۳ bytes

Jump Instruction

۰x03

LONGLONG

OEM ID

۰x0B

۲۵ bytes

BPB

۰x24

۴۸ bytes

Extended BPB

۰x54

۴۲۶ bytes

Bootstrap Code

۰x01FE

WORD

End of Sector Marker
در ولوم هاي NTFS ، اطلاعات رشته هايي هستند كه BPB ها را از يك BPB گسترده شده دنبال مي كند . ان اطلاعات كه در رشته ها قرار دارند Ntldr( برنامه لود كننده NT ) را قادر مي سازند تا ليست هاي فايل هاي اصلي ( MTF) را در طول شروع ، پيدا كنند. در ولوم هاي NT ، MFT در يك سكتور از پيش تعريف شده ، محدود نشده اند . اين موضوع در مورد ولوم هاي FAT16 و FAT32 نيز صادق است . به همين خاطر اگر سكتور بدي در محل نرمال آنها قرار گيرد ، MFT ها مي توانند جابه جا شوند. اگر اطلاعات خراب شده باشد ، MFT نمس تواند مستقر شود و ويندوز NT/2000 فرض را بر اين خواهد گذاشت كه ولوم قالب بندي نشده است .
مثال زير روشن خواهد كرد كه چگونه يك بوت سكتور ولوم NTFS هنگامي كه وندوز ۲۰۰۰ در حال اجراست ، قالب بندي مي شود . در اين قسمت نتيجه چاپي قالب بندي شده است .
در جدول زير قسمت هاي BPB وBPB گسترش يافته در ولوم NTFS شرح داده شده است .
به دليل اينكه يك سيستم در حال كار نرمال در بوت اسكوتر ها به دليل دسترسي به ولوم وجود دارد، بيشترين توصيه ما اين است كه ديسك مرورگر با قائده اي را مانند chkdsk نصب كنيد اين كار بسيار بهتر از اين است كه از همه اطلاعات خود BACK UP بگيريد تا از پاك شدن اطلاعات ضروري خود جلوگيري كنيد .
MFT
هر فايل در يك ولوم NTFS به وسيله ركوردي در يك فايل مخصوص به نام فهرست فايل اصلي يا ( MFT) نشان داده مي شود .
NTFS اولين ۱۶ ركورد را در يك فهرست براي اطلاعات مخصوص رزرو مي كند . اولين ركورد از اين فهرست ، فهرست فايل اصلي را توصيف مي كند و خود به وسيله يك ركورد بازتابي MFT پيروي مي شود .اگر اولين ركورد MFT خراب شده باشد ،NTFS ركورد دوم را مي خواند تا بتواندركورد بازتابي MFT را كه اولين ركورد آن مانند اولين ركورد MFT است را پيدا كند مكان هاي اطلاعات كه به بخش هاي ركورد بازتابي MFT و MFT تقسيم شده اند ، در بو ت سكتور ها ثبت شده اند .نسخه اي ديگر از بوت سكتور در مركز منطقي ديسك محدود شده است . سومين ركورد MFT فايل ثبت كننده وقايع است كه براي ترميم فايل ها به كار برده مي شود . هفدهمين ركورد و ركوردهاي زيرين فهرست فايل اصلي براي هر كدام از فايل ها هستند.

طرح ساده ای از ساختمان MFT

فهرست فايل اصلي مقدار مشخصي از فضا را براي هر كدام از فايل هاي ركورد اختصاص مي دهد . خصوصيات يك فايل در فضاي اختصاص يافته در MTF نوشته مي شود .فايل ها كوچك و ديركتور ها ( معمولا ۱۵۰۰ بايتي و يا كوچكتر ) مانند فايلي كه در شكل بعد نشان داده شده است، مي توانند كاملا در داخل ركورد فهرست فايل اصلي جاسازي شوند .
اين طراحي دسترسي به فايل ها را بسيار سريع مي كند .براي مثال سيستم فايل FAT كه از يك فهرست فايل اختصاصي براي ليست كردن اسامي و آدرسها هر فايل استفاده مي كند FAT راهنما ، محتوي يك شاخص را به داخل يك فهرست فايل اختصاصي ثبت مي كند . وقتي شما بخواهيد يك فايل را ببينيد ، در ابتدا FAT فهرست فايليله زنجيره اي از واحد هاي اختصاصي اتصال يافته به آن فايل ، بازيافت مي نمايد .

 

ركورد هاي راهنما در داخل فهرست فايل اصلي قرار گرفته اند . بجاي اطلاعات ، راهنما ها محتوي اطلاعات شاخص هستند . ركورد هاي راهنماي كوچك ، كاملا در داخل ساختمان MFT مستقر هستند . راهنماهاي بزرگتر اساسا در داخل B-trees هستند و داراي ركوردهاي همراه اشاره گر هستند كه براي دسته هاي خروجي محتوي راهنماهاي ثبت كننده اي كه نمي توانند در داخل ساختمان MTFباشند ، مناسب هستند .
فايل NTFS نسبت داده شده :
سيستم فايل NTFS هر فايل و فولدر را مانند يك فايل نسبت داده شده مي بيند . عناصري مانند نام فايل و يا اطلاعات امنيتي خود فايل و حتي اطلاعات خود همه به عنوان فايل نسبت داده شده هستند . هر نسبت داده شده اي به وسيله يك نوع كد نسبت داده شده و يا اختيارا به وسيله يك اسم نسبت داده شناسايي ميگردد . هنگامي كه يك نسبت گر فايل بتواند در داخل ركورد فايل MFT متناسب شود ، به نام نسبت دهنده مقيم ناميده مي شوند .براي مثال اطلاعاتي از قبيل نام فايل ونشان زماني ، اغلب اوقات شامل ركورد فايل MTFمي گردند . هنگامي كه همه اطلاعات يك فايل براي متناسب بودن با ركورد فايل MTF بسيار بزرگ است ، بعضي از نسبت داده شده هاي آن غير ساكن مي شوند . نسبت داده شده هاي غير ساكن در جاي ديگرفضاي ديسك در ولوم به صورت دسته هاي يك يا بيشتر اختصاصي مي شوند .
NTFS ليست نسبت داده شده ها را ايجاد مي كند و آ نها را براي توضيح مكان ركوردهاي نسبت داده شده ، نسبت مي دهد .
فهرست ۳-۵ همه فايل هاي نسبت داده شده را كه به وسيله سيستم فايلNTFS تعريف شده است ليست وار نشان مي دهد. اين ليست قابليت وسعت بيشتر را دارد به دين معنا كه فايل هاي نسبت داده شده ديگري در آينده مي توانند تعريف شده و به اين ليست اضافه شوند .
بهينه سازي NTFS
اگر شما احتياجات ذخيره سازي خود را بررسي كنيد ، مي توانيد بعضي از پارامتر هاي سراسري NTFS را براي به دست آوردن افزايش قدرت اجرا يي CD تنيظم كنيد .
فاكتور هاي بسيار ديگري نيز موجود دارد ( ما در اينجا از ذكر نوع CD درايو و يا rpm خود داري مي كنيم )كه مي توانند بر روي اجراي NTFS تاثير بگذارند مانند : سايز دسته ، موقعيت ، قابليت ريز شدن فهرست فايل اصلي (MTF ) و فايل هاي صفحه بندي ، ولوم فشرده NTFS ، منبع ولوم NTFS ( كه به وسيله ولوم وجودي FAT به وجود مي آيند و يا معكوس مي شوند .
تعريف سايزدسته به طور دقيق :
دسته يك واحد اختصاص يافته است . اگر شما به ط

 

ور مثال فايلي به اندازه ۱ بايت ايجاد كنيد ، حداقل يك دسته بايد در سيستم فايل FAT اختصاص بيابد. اگر فايلي در NTFS به حد كافي كوچك باشد ،مي تواند بدون استفاده از دسته هاي ويرايشگر خود درركورد MFTزخيره شود . هنگامي كه فايل دورتر از مزر دسته بزرگ مي شود ، دسته ديگري اختصاصي مي شود . اين بدين معني است كه سايز دسته بزرگتر ، فضاي ديسك بيشتري را به خود اختصاص خواهد داد و در نتيجه اجرا بهتر است .
فهرست زير ارزش پيشفرض را كه ويندوز NT/2000/XP براي قالب بندي NTFS استفاده مي كند را نشان مي دهد :
بهرحال هر گاه شما فرمت ها را به صورت دستي قالب بندي كنيد ، مي توانيد سايز دسته را در جعبه فرمت محاوره به ۵۱۲ بايت ، ۱KB، ۲KB ،۴KB، ۸KB، ۱۶KB،۳۲KB، ۶۴KB تعيين كنيد . اين عمل چه چيزي به ما مي دهد ؟
ما به كمك اين عمل مي توانيم ميانگين سايز فايل را تعيين كنيم ونتيجتا بخش ها را فرمت نماييم . چگونه مي توانيم تعيين كنيم ؟ را ه آسان ( ولي ناهموار ) اين است كه شماره هاي فايل در يك درايو را به وسيله ديسك هاي نهايي كه دركيلوبايت ها استفاده مي شود ، تقسيم بندي كنيم . راه ديگر اين است كه به اطلاعاتي بپردازيد كه مي خواهيد آنها را در درايو قبل از قالب بندي ذخيره نماييد . هنگامي كه مي خواهيد مولتي مديا ها را كه در سايز بسيار بزرگ هستند ، دسته را بزرگتر كنيد تا يك اجرا توسعه پيدا كند . و اگر داري صفحات وب كوچك و يا مدارك مقاله اي هستيد ، سايز دسته را كوچك تر كنيد تا فضاي زيادي را از ديسك اشغال نكند . توجه : در ولوم ها ، داشتن سايز دسته ها بيش از ۴ KB تراكم حمايت نمي شود . ذخيره و قسمت شدن MFT محتويات MFT مكررا سيستم هاي فايل و شاخص ها را استفاده مي كند . بنابراين اجراي MFT تاثير بسيار زيادي بر روي اجراي بي عيب ولوم مي گذارد. به وسيله قسمت ذخيره خطايNTFS ، حدود ۱۲٫۵% سايز ولوم براي MFT خواهد بود يعني جائيكه به MFT اجازه داده مي شود تا بزرگ شود و به كاربر اين اجازه را نمي دهد كه اطلاعات را در آنجا بنويسد.براي مثال هنگامي كه فايل هاي بسياري به داخل درايو جابه جا مي شوند، MFT مي تواند دورتر از قسمت ذخيره بزرگ شده و تبديل به قسمت هايي شود . دليل ديگر اين است كه هنگامي كه شما فايل ها را حذف مي كنيد ، NTFS اكثر اوقات از فضاي خود در MTF براي ذخيره سازي فايل هاي جديد استفاده نمي كند و فقط مدخل MTF مانند هنگامي كه مدخل جديدي را براي فايل جد

يد حذف يا اختصاصي مي كند ، نشانه گذاري مي نمايد . اين عمل بعضي از اجرا ها و نتايج بازيافتي را داراست و به هر حال اين نيرو را به MFT مي دهد تا بتواند قسمت شود .
انتخاب فايل سيستم در ويندوز XP زياد ساده نيست و البته چيزيست كه بارها بايد انتخاب كنيم ! اصولا براي انتخاب فايل سيستم از ما در مورد دو نوع FAT32 و NTFS ميپرسند در حاليكه اين گونه در ۳ بخش هست كه بايد بهش FAT رو هم اضافه كنيم … در مورد FAT بايد بگم كه ماكزيموم ۲ GB گنجايش براي هر درايو هست و از MS-DOS حمايت ميكند برا همينم اين گزينه رو كنار ميزاريم و ميريم سر اصل موضوع : اما اينكه صريحا بشه انتخاب كرد كه از كدوم نوع بايد استفاده كرد نميشه جواب داد چون هر كدام بسته به كارايي خودشون بايد مورد ا

ستفاده قرار بگيرند …در مورد امنيت و اعتبار خوب بحثي نيست كه NTFS خيلي بهتر است . مجموعه نظر هاي بعضي شركت ها رو در زير در مورد قياس اين دو با هم ميارم :
امنيت: FAT32 براي فراهم اوردن امنيت بسيار ضعيف است چراكه كاربري كه به درايو خاصي دسترسي دارد به تمام فايلهاي ان درايو دسترسي خواهد داشت. NTFS به كاربران با مجوزهاي متفاوتي اجازه استفاده از فايلها و فولدر هاي درايو را ميدهد كه

پيچيدگي سيستم را بالا ميبرد. ويندوز XP Professional از اين گزينه و پنهاني كردن ان حمايت ميكند .
سازگاري : ارزشهاي NTFS با ويندوز۹۵/۹۸/Me نميتوانند مشخص شوند . كه تنها مرتبط با وقتيستكه از دابل بوت كردن يا بوت چندگانه استفاده مي شود . FAT32 فقط موقعي مورد دسترسي هست كه كامپيوتر بايكي از اين سه ويندوز بالا بياد . FAT32 ميتواند به NTFS كانورت شود اما NTFS نميتواند بدون فرمت شدن كانورت شود .
بازدهي فضايي : NTFS ميتونه ديسك رو سهميه بندي كنه براي هر كاربر و ميتواند از فايلهاي كمپرس استفاده كند اما FAT32 نميتونه . در XP ‌ماكزيموم پارتيشن ۳۲ GB هست روي FAT32 و اين عمل با NTFS به ۱۶ TB Terabyte ميرسه اعتبار : FAT32 استعداد error گيريش خيلي زياد هست NTFS داراي لوگ فايل هست كه براي تعمير اتوماتيك فايل سيستم هست. NTFS از كلاسترهاي ديناميك حمايت ميكنه به اينصورت كه سكتورهاي خراب رو مشخص ميكنه كه ديگه براي دفعات بعدي استفاده نشوند.

 

يک سيستم فايل موازی نسل جديد برای کلاسترهای لينوکس مقدمه ای بر دومين سيستم فايل موازی مجازی
خلاصه
دانشمندان علوم کامپيوتر از کامپيوترهای عظيم موازی به منظور شبيه سازی رويدادهايی که در دنيای واقعی رخ می دهند استفاده می کنند.
اين اعمال در چنين مقياس بزرگی جهت درک بهتر نمودهای علمی يا پيش بين

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

شماتیک گره ها در LINUX
لازم نيست که شما برای بهره بردن از يک سيستم فايل موازی در يک لابراتوار ملی، که دارای يک کلاستر ۱۰۰۰ گره ای است، مشغول به کار باشيد. برای سالها سيستم فايل موازی مجازی (PVFS) مخصوص کلاسترهای لينوکس در دسترس بوده است، که به هر شخصی امکان برپا کردن و استفاده از همان سيستم فايل موازی که در حال حاضر بر روی کلاسترهای بزرگ فراوانی در سراسر دنيا مورد استفاده قرار می گيرند را می دهد. اخيرا يک سيستم فايل موازی کامل تر و جديدتر بنام PVFS2 عرضه شده است. اين سيستم فايل جديد دارای انعطاف پذيری بيشتری بوده، و بهره بيشتری از سخت افزار موجود در کلاسترهای امروزی می برد، با کلاسترهای بزرگتر مطابقت بيشتری دارد، و مديريت آن نسبت به نسل قبل ساده تر است.
تاريخچه لينوکس
توروالدز در طراحي سيستم‌عامل آزمايشي خود در سال ۱۹۹۱ از سيستم فايلMinix استفاده كرد. سيستم فايلMinix جوابگوي نيازهاي توروالدز بود و به خوبي در سيستم‌عامل جديد جا افتاد. با به‌وجود آمدن يك جنبش اينترنتي براي توسعه اين سيستم‌عامل جديد و تبديل آن به يك سيستم‌عامل اپن‌سورسِ قابل استفاده براي عامه مردم، نارسايي و مشكلات سيستم فايلMinix ظهور كرد و نياز به طراحي يك سيستم فايل جديد توسط مشتاقان لينوكس حِس شد. دو مشكل عمده Minix در سيستم فايل عبارت بودند از كوچك بودن نام فايل‌ها (حداكثر ۱۴ كاراكتر) و فضاي حافظه بسيار محدود (بلوك آدرس‌دهي فقط ۱۶ بيتي بود يعني ۲۱۶=۴۶ مگابايت) طراحي Virtual File System) VFS) توسط <كريس پروون زنو> راه را براي خلق يك سيستم فايل جديد با توانايي و كارايي بهتر ازMinix هموار ساختVFS . يا همان لايه مجازي سيستم‌ فايل توسط خود آقاي توروالدز توسعه داده شد و به كرنل لينوكس اضافه گرديد. بلافاصله در آوريل ۱۹۹۲ سيستم‌ فايل جديد،Extended File system ، در نسخه ۹۶/۰ لينوكس به‌جاي سي

ستم فايل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 حافظه دو گيگا بايتي براي سيستم فايل و نامگذاري ۲۵۵ كاراكتري فايل‌ها است. همراه ساير بخش‌هاي لينوكس كه روح توسعه در آن‌ها جريان داشت، در ژانويه ۱۹۹۳،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 طراحي شد. پررنگ‌ترين ويژگي ۳EXT استفاده از فناوري 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 ها تقسيم مي‌شود. اين بلوك‌ها در اندازه‌هاي ۱K، ۲K،۴K قرار مي‌گيرند و هر بلوك براي يك سري اطلاعات با كاربردي خاص استفاده مي‌شود. ساختار حافظه فيزيكي سيستم فايل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 توانايي كار و پشتيباني با فايل‌هايي با فرمتي 
به راحتي با داشتن يكVFS فايل‌هاي ويندوز و يونيكس و ديگر سيستم‌عامل‌هاي تجاري همانندBSD و فرمتV را شناخته و از اين فرمت‌ها در كنارExt استفاده مي‌كند. Ext2 fs قابليت نامگذاري فايل‌ها تا ۲۵۵ كاراكتر را ميسر مي‌كند و حتي در صورت تعريف بلوك‌هاي بزرگ‌تر باز هم اين اندازه قابل افزايش است. به‌صورت پيش‌فرض، حافظه فيزيكي ۲Ext برابر۲ گيگا بايت است. اين انداز

ه از سيستم فايل همراهVFS امكان ايجاد يك پارتيشن بزرگ تا اندازه۴ گيگا با

يت را ميسر مي‌كند و ديگر نيازي به تقسيم يك پارتيشن بزرگ به اندازه‌هاي كوچك‌تر به وجود نمي‌آيد.
Boot Sector Block Group 1 Block Group 2 … Block Group
هر يك از اينBlock Group ها هم ساختاري اين چنين دارند:
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 در دسترس و همگاني بودن توا

بع كتابخانه‌اي سيستم فايل است كه اين امكان را مي‌دهد، هر كاربري با به‌كارگيري اين توابع توانايي هرگونه تغيير، اصلاح و به‌وجود آوردن و ساخت را در ۲Ext به‌دست آورد. به

همين خاطر ابزارهاي بسياري براي كار با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 توسعه يافته و از هسته ۱۵٫۴٫۲ به بعد قابل استفاده است. 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 در سيستم فايل علاوه بر مزاياي گفته شده، باعث ايجاد يك تاريخچه از هر فايل در سيستم شده و عمليات پيگيري وقايع هر فايل به آساني امكان‌پذير مي‌شود. گذشته از اين ژورنالينگ در ديگر امكانات هسته هم استفاده مي‌كند. همه اين ويژگي‌ها باعث شده‌اند كه بسياري از شركت‌هاي تجاري سيستم فايل ۳Ext را به عنوان پيش‌فرض توزيع گنو/ لينوكس خود انتخاب كنندRed Hat . از نسخه ۲/۷،Ext3 fs را در نسخه لينوكس خود به‌كار برد. مفاهيم سيستم فايل موازی برای دستيابی به کارآيی بالا، يک سيستم فايل موازی فايل ها را همانند سيستم RAID ميان گره ها قطعه قطعه و تقسيم می نمايد. در اين سيستم، بجای ديسک ها، گره ها سرورهای داده محسوب می شوند. همانگونه که يک RAID چندين کانال را به منظور افزايش کارآيی در يک مجموعه از ديسک های محلی متمرکز می کند، يک سيستم فايل موازی نيز اتصالات شبکه را در يک مجموعه از ديسک هايی که به صورت شبکه در آمده اند متمرکز می نمايد. قطعه قطعه کردن داده در ميان گره ها يک روش ساده برای دستيابی به موازی سازی ميان چندين سيستم ورودی/خروجی سری است. بر خلاف حالتی که چندين گره از يک RAID به صورت اشتراکی استفاده می کنند، يک سيستم فايل موازی قادر به استفاده همزمان از چندين لينک شبکه، با حذف گلوگاه محدودکننده، می باشد. تا زمانی که فايلها به اين روش قطعه قطعه می شوند و برنامه های موازی وادار به کار بر روی نواحی معينی از يک فايل به اشتراک گذاشته شده می گردند، شبکه و محتويات لود شده ديسک ها توانايی گسترش در ميان گره های ذخيره سازی را دارند. در مقابل، سيستم های فايل شبکه ای دارای نقش متفاوتی هستند. امروزه، داشتن يک پيکربندی از چندين ماشين با برخی از انواع ذخيره سازی اشتراکی يا سيستم فا

يل همچون NFS، Windows Networking يا AppleTalk ديگر امر غير عادی محسوب نمی شود. اين سيستم ها با توجه به پيشرفت های حاصل شده در کارآيی آنها (پيشرفت هايی نظير عمل کش کردن سمت کلاينت) به خوبی home directory ها کار خود را انجام می دهند. کش سازی سمت کلاينت تاريخچه تغييرات محلی فايل را بدون بروزرسانی بيدرنگ در وضعيتی

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

 

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

آورند که چندين پردازش بصورت همزمان نواحی مختلفی از يک فايل به اشتراک گذاشته شده را بنويسند. به هر حال، آنها با محدوديت های مقياس پذيری ((scalability نيز مواجه می شوند. بالاسری (overhead) ناشی از نگهداری تعداد زيادی از قفل های از اين نوع در نهايت به تنزل کارآيی ختم می گردد. در حالت کلی تر، هر س

يستم قفل شبکه ای با يک گلوگاه محدود کننده برای دسترسی داده مواجه می شود. برای دستيابی به مقياس پذيری و کارآيی در مورد درخواست های برنامه هايی که اعمال ورودی/خروجی زيادی دارند، يک سيستم بدون بالاسری قابل تو

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

حفظ سازگاری و هماهنگی حافظه های کش کند، حالت ايده آل اين است که سيستمی را طراحی کنيم که به اشتراک گذاری منابع و سازگاری مناسب را پشتيبانی نمايد. PVFS2 مثالی از يک سيستم فايل موازی نسل آينده است که برای برآورده ساختن اين موارد طراحی شده است. در قسمت بعد به بحث در مورد چگونگی راه اندازی PVFS2 خواهيم پرداخت.
سيستم PVFS2
سيستم PVFS2 PVFS2 نشان می دهد که ساختن يک سيستم فايل موازی که بصورت مجازی با پی ريزی دقيق فوق داده و فضانام و همچنين تعريف معانی دستيابی داده که می تواند بدون قفل کردن در دسترس قرار گيرد سازگاری را حفظ کند، امکانپذير است. اين طراحی به بروز برخی از رفتارهای سيستم فايل که مورد انتظار تعدادی از برنامه های سنتی نيست ختم می شود. اين معانی در زمينه ورودی/خروجی موازی بحث جديدی به شمار نمی روند. PVFS2 بصورت دقيق تر معانی را که توسط MPI-IO، يک API ورودی/خروجی با کارآيی بالا، ديکته می شود پياده سازی می نمايد. PVFS2 همچنين دارای پشتيبانی محلی برای الگوهای انعطاف پذير ناپيوسته دستيابی داده می باشد. اغلب برنامه های سنتی (نظير “cat” و “vi”) به نواحی داده پيوسته از فايل های باز شده دسترسی دارند، در حاليکه برنامه های علمی اغلب اوقات نيازمند الگوهای دستيابی هستند که ناپيوسته باشند. برای مثال، شما می توانيد برنامه ای را تصور نماييد که ستونی از عناصر خارج از يک آرايه را می خواند. برای بازيابی اين داده، برنامه ممکن است تعداد زيادی عمل خواندن کوچک و پراکنده را بر روی سيستم فايل انجام دهد. در صورتيکه، اگر بتواند طی يک مرحله تمامی عناصر ناپيوسته را از سيستم فايل درخواست نمايد، هم سيستم فايل و هم برنامه به نحو کارآمد تری وظيفه خود را انجام خواهند داد (شکل زير را ببينيد).

آرایه دستورات

علاوه بر کارآيی، ثبات و مقياس پذيری scalability)) نيز اهداف مهم طراحی به شمار می آيند. به منظور کمک به دستيابی به اين اهداف، PVFS2 بر اساس يک معماری مستقل از وضعيت ((stateless طراحی گرديده است. اين به آن معنی است که سرورهای PVFS2 تاريخچه مربوط به اطلاعات سيستم فايل، اطلاعاتی مانند اينکه کدام فايل ها باز شده اند يا موقعيت فايل ها و مواردی از اين قبيل، را نگهداری نمی کنند. همچنين در اين مورد ه

يچ وضعيت قفل مشترکی برای مديريت وجود ندارد. مزيت اصلی يک معماری مستقل از وضعيت اين است که در آن کلاينت ها قادرند بدون بهم زدن کل سيستم دچار خطا شده و مجددا به کار خود ادامه دهند. اين معماری همچنين به PVFS2 اين امکان را می دهد که در مواجهه با صدها سرور و هزاران کلاينت بدون اينکه تحت فشار بالاسری و پيچيدگی پيگيری وضعيت فايل يا اطلاعات قفل متعلق به کلاينت های مذکور قرار گيرد وظيفه خود را بدرستی انجام دهد.
بر خلاف PVFS نسل گذشته، PVFS2 دارای يک سيستم شبکه ای و ذخيره سازی ماژولار است. يک سيستم ذخيره سازی ماژولار اين امکان را برای چندين back-end ذخيره سازی فراهم می آورد که به راحتی به PVFS2 متصل شوند. اين خاصيت تلفيقی کار افرادی را که در حال تحقيق بر روی ورودی/خروجی به منظور آزمايش و تجربه تکنيک های مختلف ذخيره سازی هستند ساده می سازد. همچنين يک سيستم شبکه ای ماژولار اجازه کار بر روی اتصالی از شبکه های چندگانه را داده و فرايند افزودن پشتيبانی برای انواع ديگری از شبکه ها را آسان می نمايد. PVFS2 در حال حاضر TCP/IP و همچنين شبکه های Infiniband و Myrinet را پشتيبانی می کند.
اين طراحی ها PVFS2 را قادر به انجام وظايف خود به نحو عالی در يک محيط موازی می سازد، اما در وضعيتی که به عنوان يک سيستم فايل محلی مورد استفاده قرار گيرد کار خود را به خوبی قبل انجام نخواهد داد. بدون کش سازی فوق داده سمت کلاينت، برخی اعمال

زمان زيادی صرف می کنند.اين امر می تواند مدت زمان انجام برنامه هايی همچون “ls” را بيشتر از حد انتظار افزايش دهد. با وجود اين محدوديت، PVFS2 برای برنامه هايی که دارای اعمال ورودی/خروجی زيادی هستند مناسب تر است، تا اينکه برای ميزبانی يک home directory مورد استفاده قرار گيرد. PVFS2 برای خواندن و نوشتن کارآمد حجم زيادی از داده بهينه شده است، و از اينرو بسيار مناسب برنامه های علمی می باشد.
اجزاء PVFS2

بسته اصلی PVFS2 شامل سه جزء متفاوت است: يک سرور، يک کلاينت و يک ماژول کرنل. سرور بر روی گره هايی که داده سيستم فايل يا فوق داده را ذخيره می کنند اجرا می شود. کلاينت و ماژول کرنل نيز بوسيله گره هايی که به شکل فعال داده (يا فوق داده) را از سرورهای PVFS2 ذخيره يا بازيابی می کنند مورد استفاده قرار می گيرند.
بر خلاف PVFS اصلی، هر سرور PVFS2 توانايی ايفای نقش به عنوان يک سرور داده، يک سرور فوق داده يا هر دو را بصورت همزمان دارد. همانگونه که قبلا گفته شد، سيستم های فايل موازی از تعدادی گره سود می برند که تمام داده ميان آنها به شکل قابل پيش بينی قطعه قطعه شده است. اين گره ها همان سرورهای داده در PVFS2 هستند. برخی از انواع پيکربندی نيز ممکن است از چندين سرور فوق داده بهره ببرند. ذخيره کردن فوق داده در ميان چندين گره کمکی است به موازنه بارگذاری سرور تحت اعمالی که شامل دسترسی سنگين و زياد به فوق داده هستند (مثلا ايجاد يا تغيير نام تعداد زيادی فايل). اين نوع پيکربندی بطور کامل در PVFS2 پشتيبانی می گردد. بهرحال، تعداد سرورهای فوق داده هيچ فشاری بر روی اعمال خواندن يا نوشتن وارد نمی آورد، و اکثر برنامه های علمی اعمال فوق داده کافی جهت هر گونه بهره برداری از پيچيدگی افزوده انجام نمی دهند.
کلاينت های PVFS2 با سرورهای PVFS2 بر روی اتصال شبکه ارتباط برقرار می نمايند. تمامی ارتباط به صورت اختياری به حالت رمز در می آيند تا اطمينان حاصل گردد که ماشين های دارای معماری های متفاوت توانايی درک يکديگر را دارند. يک کلاستر مختلط شامل گره های x86، Itanium و PowerPC را تصور نماييد. رمزبندی ارتباط ما تضمين می کند که تمامی گره ها قادر به استفاده از يک PVFS2 volume، صرفنظر از ترتيب بايت محلی يا اندازه کلمه خواهند بود.
ماژول کرنل PVFS2 يک درايور کرنل لينوکس است که به يک PVFS2 اجازه نصب را همانند هر نوع سيستم فايل لينوکس ديگری می دهد. وظيفه اصلی آن ترجمه واضح تمامی اعمال سيستم فايل به دستورات کلاينت PVFS2 بر روی PVFS2 نصب شده است.
دستيابی به سيستم های فايل PVFS2
دو روش جهت دستيابی به سيستم های فايل PVFS2 فراهم گرديده است. روش اول نصب کردن سيستم فايل PVFS2 است. اين روش اعمال تغييرات توسط کاربر و دايرک

توری های ليست، يا انتقال فايل ها و همچنين اجرای باينری ها از سيستم فايل را مجاز می شمارد. اين مکانيزم با برخی بالاسری های کارآيی مواجه می گردد اما مناسب ترين روش جهت دستيابی تعاملی به سيستم فايل می باشد.
برنامه های علمی از روش دوم (MPI-IO) استفاده می نمايند. اينترفيسای مختلف کمک می کند. آن همچنين اعمال دستيابی غيرپيوسته را فراهم می آورد که جهت دستيابی کارآمد به داده گسترش يافته در سراسر فايل مورد استفاده قرار می گيرد. در مورد تصوير ۲ اين کار با درخواست هر عنصر هشتمی که در آفست ۰ شروع شده و در آفست ۵۶ پايان می يابد، کلا به عنوان يک عمليات سيستم فايل، صورت می پذيرد.
در اين مقاله ما بر روی روش اول تمرکز کرده ايم.
راه اندازی PVFS2
PVFS2 جهت اجرا بر روی چندين ماشين در نظر گرفته شده است. در هر صورت، برای سادگی کار، ما PVFS2 را بر روی يک ماشين نصب و راه اندازی می کنيم. ما ماشين را با نام “testmachine1” صدا خواهيم زد و نصب را در محل پيش فرض (/usr/local) انجام خواهيم داد. سپس نسخه PVFS2 را در /mnt/pvfs نصب خواهيم کرد. فرايند مربوط به نصب بر روی چندين ماشين کاملا مشابه روند گفته شده است.
PVFS2 بر روی اغلب توزيع های جديد GNU/Linux ايجاد شده است، اما اگر شما مايليد از ماژول کرنل استفاده نماييد، شما به کرنل لينوکس نسخه ۲٫۶٫۰-test4 يا پس از آن نياز خواهيد داشت.
PVFS2 با استفاده از “configure” و “make” ايجاد و نصب گرديده است. در مثال هايی که در ادامه آمده است اينگونه فرض شده که شما به عنوان root وارد سيستم شده ايد. در صورتيکه شما مايل به ايجاد ماژول کرنل باشيد گزينه “–with-kernel” مورد نياز خواهد بود.
./configure –with-kernel=/usr/src/linux-2.6.x
make
make install
اگر شما قصد ايجاد ماژول کرنل اختياری را داريد، اکنون بايد آن را بصورت مجزا کامپايل نماييد. اين کار را با تغيير دايرکتوری ها به دايرکتوری “src/kernel/linux-2.6” و اجرای “make” انجام دهيد. پس از اينکه ماژول ايجاد شد، فايل pvfs2.ko را در محلی به انتخاب خود کپ

ی نماييد (مثلا در /lib/modules/`uname -r`/kernel/fs/pvfs2.ko).
پس از آنکه نرم افزار ايجاد و نصب گرديد، بايستی پيکربندی شود. بسته PVFS2 ابزاری بنام pvfs2-genconfig را جهت ايجاد فايل های پيکربندی برای هر يک از سرورهای شما فراهم آورده است. هر سرور به دو فايل پيکربندی نياز دارد (يکی برای پيش فرض های عمومی، و يکی برای تنظيمات محلی) که بايستی در هنگام اجرای pvfs2-genconfig مشخص گردند. يک مثال دستور خط فرمان می تواند به صورت زير باشد:

pvfs2-genconfig global.conf local.conf
اين فرمان اطلاعات ديگری نيز از شما دريافت می نمايد؛ بهرحال، احتمالا موارد پيش فرض برای اين مثال کفايت می کند. توجه داشته باشيد که فايل های ايجاد شده global.conf و local.conf-testmachine1 خواهند بود.
قبل از آغاز به کار سرور PVFS2، شما بايستی دايرکتوری هايی را که برای عمل ذخيره سازی مورد استفاده قرار خواهند گرفت را تعيين نماييد. اين کار بسيار ساده با آغاز pvfs2-server به همراه يک آرگومان “-f” در کنار نام فايل های پيکربندی صورت می گيرد.
pvfs2-server global.conf local.conf-testmachine1 -f
سرور، فضای ذخيره سازی را آغاز سازی نموده و سپس خارج می شود. حال از اين پس با همين خط فرمان اما بدون آرگومان “-f” می تواند شروع به کار نمايد.
pvfs2-server global.conf local.conftestmachine1
در مرحله بعد، يک فايل با نام /etc/pvfs2tab ايجاد نماييد. اين فايل حاوی خط زير است:
tcp://testmachine1:3334/pvfs2-fs /mnt/pvfs pvfs2 default 0 0
در اين مرحله از کار، اگر شما اينترفيس ماژول کرنل لينوکس را مورد آزمايش قرار نداده ايد، می توانيد بدون هيچ مشکلی به قسمت Testing برويد. در غير اينصورت، همين حالا آن را با استفاده از insmod يا modprobe لود نماييد.
گام بعدی آغاز به کار برنامه کلاينت PVFS2 است. برنامه کلاينت PVFS2 شامل دو برنامه به نام های pvfs2-client-core و pvfs2-client است. در صورتيکه برنامه pvfs2-client-core در PATH سيستم شما نصب شده باشد، برنامه pvfs2-client آن را بصورت خودکار يافته و شما به سادگی می توانيد “pvfs2-client” را اجرا نماييد. در غير اينصورت، شما بايد با استفاده از سوييچ خط فرمان –p محل برنامه pvfs2-client-core را برای pvfs2-client مشخص نماييد.
pvfs2-client -p /usr/local/bin/pvfs2-client-core

و در نهايت، برای نصب نوع نسخه PVFS2 :
mount -t pvfs2 pvfs2 /mnt/pvfs
حالا PVFS2 نصب شده و آماده آزمايش است!
سيستم فايل جديد خود را آزمايش نماييد.

نخستين کار استفاده از ابزار pvfs2-ping به منظور اطمينان از روشن و در حال اجرا بودن سرور است. اين ابزار طی يکسری مراحل تعيين می نمايد که سيستم بدرستی پيکربندی شده و به درخواست هايی که از سوی کلاينت (کلاينتی که بر روی آن نصب شده است) صادر می شود پاسخ می دهد.
pvfs2-ping -m /mnt/pvfs
سپس يک فايل را با استفاده از pvfs2-import بر روی سيستم کپی نماييد. اين ابزار از برخی جهات شبيه “cp” است، اما در هنگام انتقال داده به سيستم فايل از بافرهای بزرگی استفاده می کند. همچنين زمان کپی را محاسبه می نمايد.
pvfs2-import linuxdistro.iso /mnt/pvfs/linuxdistro.iso
برای چک کردن فضای قابل استفاده بر روی سرورها، ما ابزاری بنام pvfs2-statfs فراهم کرده ايم. اين ابزار اطلاعات را مشابه فرمان “df” گزارش می دهد؛ آن در ميان تمامی سرورهای PVFS2 پيکربندی شده شما کار خود را انجام می دهد. همانند “df”، استفاده از گزينه “-h” موجب نمايش خروجی در اندازه خوانا توسط انسان می شود.
pvfs2-statfs -h -m /mnt/pvfs
اگر شما PVFS2 را نصب کرده باشيد، امکان استفاده از ابزارهای سيستمی استاندارد همچون “cp” و “df” برای شما فراهم خواهد بود. در هنگام

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

نيست. برنامه های با کارآيی بالا برای دستيابی داده بر روی مجموعه متفاوتی از مشخصه ها تکيه دارند. به طور خاص، PVFS2 جهت برنامه های دارای حجم زيادی از اعمال ورودی/خروجی بسيار مناسب است. اگر شما حجم زيادی از داده داريد و نيازمند دسترسی سريع به آن از ماشين های فراوانی هستيد، ارزش آن را دارد که نگاهی به PVFS2 بياندازيد.
لينوس توروالدز، خالق لينوکس، نسخه جديد هسته لينوکس را منتشر کرد. در نسخه ۲٫۶٫۱۲ بازبيني‌هاي مهمي در جهت ارتقاء اين بخش از سيستم‌عامل لينوکس انجام شده است. پشتيباني از فناوري TPM (Trusted Platform Modules) و بهبود کارکرد درايورهاي لينوکس از جمله مهمترين تغييرات در نسخه جديد است.
TPM يک فناوري سخت‌افزاري است که براي حفاظت از داده‌هاي حساس مانند پسورد کاربران به‌کارمي‌رود. نسخه جديد کرنل، يک درايور براي پشتيباني از تراشه‌هاي TPM (مانند تراشه‌هاي به‌کار رفته در لپ‌تاپ‌هاي ساخت شرکت IBM) افزوده شده است. اين درايور از تراشه‌هاي ساخت شرکت‌هاي Atmel و National Semiconductor پشتيباني مي‌کند.
گفته مي‌شود که توسعه نرم‌افزاري اين نسخه با استفاده از ابزار جديدي که توروالدز ساخته و نام Git را برآن نهاده، صورت گرفته است. ماه آوريل امسال توروالدز تصميم گرفت نرم‌افزار BitKeeper را که از سال ۲۰۰۲ براي توسعه لينوکس به‌کار مي‌برد کنار بگذارد و به ابزار جديد Git روي آورد. اين اقدام به دنبال فشار افکار عمومي در جامعه اپن‌سورس و نکوهش استفاده از يک ابزار غير آزاد براي توسعه يک پلاتفرم آزاد صورت گرفت. در طي اين مدت جامعه اپن‌سورس تلاش کرد با روش مهندسي معکوس ساختار BitKeeper را تحليل کند و ابزارهايي براي مقاصد خود بسازد.
برخي تحليلگران معتقدند صرف‌نظر از بحث‌هايي که پيرامون توسعه لينوکس با استفاده از يک نرم‌افزار آزاد يا غير آزاد ممکن است وجود داشته باشد، انتقال روند توسعه کرنل لينوکس از BitKeeper به Git تغيير عمده‌اي از ‌نظر فني محسوب نمي‌شود.
از ميان ويژگي‌هاي جديد و تغييرات اين نسخه مي‌توان به اصلاحات مربوط به IPv6 ، قابليت Software Suspend و Device Mapper اشاره‌کرد. به اين نسخه همچنين قابليت Address Space Randomization افزوده شده است که براي محدودکردن دامنه تاثيرگذاري ويروس‌ها تعبيه‌شده است. همچنين اصلاحاتي در درايورهاي USB ، تراشه‌هاي صوتي، شبکه و نيز سيستم‌هاي فايلي CIFS ، JFS و XFS صورت گرفته است.
انتظار مي‌رود نسخه جديد هسته لينوکس از SELinux پشتيباني کند. SELinux پروژه مشترکي است که با همکاري آژانس امنيت ملي آمريکا (NSA) و جامعه اپن سورس اجرا مي‌شود. اجراي اين پروژه از سوي شرکت Red Hat و در غالب پروژه Fedora Core حمايت مي‌شود.
http://www.bitasoft.ir/useful/computers/FAT32_article.htm