مقاله سيستم فايل NTFS چيست ؟)

    —         —    

ارتباط با ما     —     لیست پایان‌نامه‌ها

... دانلود ...

بخشی از متن مقاله سيستم فايل NTFS چيست ؟) :

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

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

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

ی ایجاد كنند كه طول نام آنها تا 256 كاركتر باشد .
چهار مجوز استاندارد در سیستم NTFS برای فایل ها و پوشه ها وجود دارند :
1- No Access: با انتخاب این گزینه كاربران هیچگونه مجوزی برای خواندن ، نوشتن و ; فایل یا پوشه مربوطه نخواهند داشت .
2- Read : با توجه به آنكه اجزاه خواندن یك فایل شامل اجرای آن نیز می باشد ،از این رو كاربری كه این سطوح از دسترسی را داشته باشد می تواند فایل را اجرا كرده و آن را بخواند .
3- Change : این سطح دسترسی و مجوز ، كاربر را قادر می كند تا فایل را خوانده و در صورت لزوم تغییرات خود را در آن انجام دهد یا حنی فایل را حذف كند .
4- Full Control : با فعال بودن این گزینه كاربران دارای مجوز می توانند فایل را خواند ، تغییرات مورد نیاز را درآن ایجاد كرده و یا حذف كنند . در واقع تمام امكانات و اختیاراتی كه كاربر در حالت Change دارد در این قسمت نیز وجود دارد و فرق این دو سطح مجوز در آن است كه با داشتن مجوز Full Control ، كاربر می تواند حتی برای سایر كاربران سیستم دسترسی تعریف كند و یا دسترسی كاربر دیگر را از آن پوشه و یا فایل حذف كند .  زیرا داشتن مجوز Change بالاترین سطح دسترسی را به كاربران می دهد مگر آنكه واقعا بخواهید كاربری امكان تعریف یا حذف مجوز برای سایرین را داشته باشد .

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

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

تعریف مجوزها
تعیین مجوز برای منابع اشتراكی شبكه
مجوزهای بررسی شده در فوق در واقع برای تعیین سطح دسترسی كاربرانی است كه از یك سیستم بطور مشترك استفاده می كنند . اما ممكن است سیستم شما در بین چندین سیستم دیگر و در یك شبكه قرار گرفته باشد و شما بخواهید با تعیین سطح دسترسی های مشخص امكان دسترسی به یك یا چند كاربر بدهید . پس از تعریف منابع اشتاركی در سیستم تان كه می تواند فایل ها ، پوشه ها ، درایو ها ، چاپگر ، اسكنر و ; باشد ، كاربران دارای مجوز می توانند به این منابع دسترسی داشته باشند . با توجه به آنچه گذشت می توان سطوح دسترسی كاربران در سطح شبكه را نیز به شكل زیر تعریف كرد:
1- No Access: نازلترین سطح دسترسی (دسترسی وجود ندارد)
2- Read : اجرا و خواندن
3- Change : اجرا ، خواندن و اعمال تغییرات
4- Full Control : اجرا ، خواندن ، نوشتن و اعمال تغییرات ، تغییر در سطح مجوز ها
با توجه به این توانایی ها شما می توانید برای یك فایل و یا پوشه در هر دو وضعیت سیستم محلی و شبكه ، مجوزلازم را به كاربران بدهید . مثلا با تعیین مجوز Change برای یك فایل در سیستم محلی ، به كاربرانی كه در پشت سیستم شما می نشینند امكان اعمال تغییرات را در فایل بدهید و با تعیین مجوز Read در سطح شبكه تنها امكان خواندن را به كاربرانی كه از شبكه استفاده می كنند بدهید . البته در صورت جابجایی این سطوح ، یعنی تعیین مجوز Change, در سطح شبكه و Read در سطح سیستم محلی ، تنها مجوز Read كه حداقل سطح دسترسی بین این دو است به كاربران داده می شود و كاربران شبكه نیز تنها می توانند فایل را خوانده و اجرا كنند . شكل زیر ، بوت سكتور یك ولوم قالب دار را با یك NTFS را شرح می دهد .وقتی یك ولوم NTFS را قالب بندی می كنید ، برنامه قالب بندی اولین 16 قسمت را برای بوت سكتور و كد بوت استرپ اختصاص می دهد.
Byte Offset

Field Length

Field Name

0x00

3 bytes

Jump Instruction

0x03

LONGLONG

OEM ID

0x0B

25 bytes

BPB

0x24

48 bytes

Extended BPB

0x54

426 bytes

Bootstrap Code

0x01FE

WORD

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

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

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

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

ور مثال فایلی به اندازه 1 بایت ایجاد كنید ، حداقل یك دسته باید در سیستم فایل FAT اختصاص بیابد. اگر فایلی در NTFS به حد كافی كوچك باشد ،می تواند بدون استفاده از دسته های ویرایشگر خود درركورد MFTزخیره شود . هنگامی كه فایل دورتر از مزر دسته بزرگ می شود ، دسته دیگری اختصاصی می شود . این بدین معنی است كه سایز دسته بزرگتر ، فضای دیسك بیشتری را به خود اختصاص خواهد داد و در نتیجه اجرا بهتر است .
فهرست زیر ارزش پیشفرض را كه ویندوز NT/2000/XP برای قالب بندی NTFS استفاده می كند را نشان می دهد :
بهرحال هر گاه شما فرمت ها را به صورت دستی قالب بندی كنید ، می توانید سایز دسته را در جعبه فرمت محاوره به 512 بایت ، 1KB، 2KB ،4KB، 8KB، 16KB،32KB، 64KB تعیین كنید . این عمل چه چیزی به ما می دهد ؟
ما به كمك این عمل می توانیم میانگین سایز فایل را تعیین كنیم ونتیجتا بخش ها را فرمت نماییم . چگونه می توانیم تعیین كنیم ؟ را ه آسان ( ولی ناهموار ) این است كه شماره های فایل در یك درایو را به وسیله دیسك های نهایی كه دركیلوبایت ها استفاده می شود ، تقسیم بندی كنیم . راه دیگر این است كه به اطلاعاتی بپردازید كه می خواهید آنها را در درایو قبل از قالب بندی ذخیره نمایید . هنگامی كه می خواهید مولتی مدیا ها را كه در سایز بسیار بزرگ هستند ، دسته را بزرگتر كنید تا یك اجرا توسعه پیدا كند . و اگر داری صفحات وب كوچك و یا مدارك مقاله ای هستید ، سایز دسته را كوچك تر كنید تا فضای زیادی را از دیسك اشغال نكند . توجه : در ولوم ها ، داشتن سایز دسته ها بیش از 4 KB تراكم حمایت نمی شود . ذخیره و قسمت شدن MFT محتویات MFT مكررا سیستم های فایل و شاخص ها را استفاده می كند . بنابراین اجرای MFT تاثیر بسیار زیادی بر روی اجرای بی عیب ولوم می گذارد. به وسیله قسمت ذخیره خطایNTFS ، حدود 125% سایز ولوم برای MFT خواهد بود یعنی جائیكه به MFT اجازه داده می شود تا بزرگ شود و به كاربر این اجازه را نمی دهد كه اطلاعات را در آنجا بنویسد.برای مثال هنگامی كه فایل های بسیاری به داخل درایو جابه جا می شوند، MFT می تواند دورتر از قسمت ذخیره بزرگ شده و تبدیل به قسمت هایی شود . دلیل دیگر این است كه هنگامی كه شما فایل ها را حذف می كنید ، NTFS اكثر اوقات از فضای خود در MTF برای ذخیره سازی فایل های جدید استفاده نمی كند و فقط مدخل MTF مانند هنگامی كه مدخل جدیدی را برای فایل جد

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

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

پیچیدگی سیستم را بالا میبرد. ویندوز XP Professional از این گزینه و پنهانی كردن ان حمایت میكند .
سازگاری : ارزشهای NTFS با ویندوز95/98/Me نمیتوانند مشخص شوند . كه تنها مرتبط با وقتیستكه از دابل بوت كردن یا بوت چندگانه استفاده می شود . FAT32 فقط موقعی مورد دسترسی هست كه كامپیوتر بایكی از این سه ویندوز بالا بیاد . FAT32 میتواند به NTFS كانورت شود اما NTFS نمیتواند بدون فرمت شدن كانورت شود .
بازدهی فضایی : NTFS میتونه دیسك رو سهمیه بندی كنه برای هر كاربر و میتواند از فایلهای كمپرس استفاده كند اما FAT32 نمیتونه . در XP ‌ماكزیموم پارتیشن 32 GB هست روی FAT32 و این عمل با NTFS به 16 TB Terabyte میرسه اعتبار : FAT32 استعداد error گیریش خیلی زیاد هست NTFS دارای لوگ فایل هست كه برای تعمیر اتوماتیك فایل سیستم هست. NTFS از كلاسترهای دینامیك حمایت میكنه به اینصورت كه سكتورهای خراب رو مشخص میكنه كه دیگه برای دفعات بعدی استفاده نشوند.

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

ی رفتارها لازم و ضروری می باشند. در اغلب موارد منابع محاسباتی یک فاکتور محدود کننده در حوزه این شبیه سازی ها محسوب می گردند.
منابع محدود تنها شامل 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 توانایی كار و پشتیبانی با فایل‌هایی با فرمتی 
به راحتی با داشتن یكVFS فایل‌های ویندوز و یونیكس و دیگر سیستم‌عامل‌های تجاری همانندBSD و فرمتV را شناخته و از این فرمت‌ها در كنارExt استفاده می‌كند. Ext2 fs قابلیت نامگذاری فایل‌ها تا 255 كاراكتر را میسر می‌كند و حتی در صورت تعریف بلوك‌های بزرگ‌تر باز هم این اندازه قابل افزایش است. به‌صورت پیش‌فرض، حافظه فیزیكی 2Ext برابر2 گیگا بایت است. این انداز

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

یت را میسر می‌كند و دیگر نیازی به تقسیم یك پارتیشن بزرگ به اندازه‌های كوچك‌تر به وجود نمی‌آید.
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 در دسترس و همگانی بودن توا

بع كتابخانه‌ای سیستم فایل است كه این امكان را می‌دهد، هر كاربری با به‌كارگیری این توابع توانایی هرگونه تغییر، اصلاح و به‌وجود آوردن و ساخت را در 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 توسعه یافته و از هسته 1542 به بعد قابل استفاده است. 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 خواهیم پرداخت.
سیستم 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) استفاده می نمایند. اینترفیسای مختلف کمک می کند. آن همچنین اعمال دستیابی غیرپیوسته را فراهم می آورد که جهت دستیابی کارآمد به داده گسترش یافته در سراسر فایل مورد استفاده قرار می گیرد. در مورد تصویر 2 این کار با درخواست هر عنصر هشتمی که در آفست 0 شروع شده و در آفست 56 پایان می یابد، کلا به عنوان یک عملیات سیستم فایل، صورت می پذیرد.
در این مقاله ما بر روی روش اول تمرکز کرده ایم.
راه اندازی PVFS2
PVFS2 جهت اجرا بر روی چندین ماشین در نظر گرفته شده است. در هر صورت، برای سادگی کار، ما PVFS2 را بر روی یک ماشین نصب و راه اندازی می کنیم. ما ماشین را با نام “testmachine1” صدا خواهیم زد و نصب را در محل پیش فرض (/usr/local) انجام خواهیم داد. سپس نسخه PVFS2 را در /mnt/pvfs نصب خواهیم کرد. فرایند مربوط به نصب بر روی چندین ماشین کاملا مشابه روند گفته شده است.
PVFS2 بر روی اغلب توزیع های جدید GNU/Linux ایجاد شده است، اما اگر شما مایلید از ماژول کرنل استفاده نمایید، شما به کرنل لینوکس نسخه 260-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 بیاندازید.
لینوس توروالدز، خالق لینوکس، نسخه جدید هسته لینوکس را منتشر کرد. در نسخه 2612 بازبینی‌های مهمی در جهت ارتقاء این بخش از سیستم‌عامل لینوکس انجام شده است. پشتیبانی از فناوری TPM (Trusted Platform Modules) و بهبود کارکرد درایورهای لینوکس از جمله مهمترین تغییرات در نسخه جدید است.
TPM یک فناوری سخت‌افزاری است که برای حفاظت از داده‌های حساس مانند پسورد کاربران به‌کارمی‌رود. نسخه جدید کرنل، یک درایور برای پشتیبانی از تراشه‌های TPM (مانند تراشه‌های به‌کار رفته در لپ‌تاپ‌های ساخت شرکت IBM) افزوده شده است. این درایور از تراشه‌های ساخت شرکت‌های Atmel و National Semiconductor پشتیبانی می‌کند.
گفته می‌شود که توسعه نرم‌افزاری این نسخه با استفاده از ابزار جدیدی که توروالدز ساخته و نام Git را برآن نهاده، صورت گرفته است. ماه آوریل امسال توروالدز تصمیم گرفت نرم‌افزار BitKeeper را که از سال 2002 برای توسعه لینوکس به‌کار می‌برد کنار بگذارد و به ابزار جدید 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

لینک کمکی