سیستم فایل NTFS چیست ؟

فروردین ۱۴, ۱۳۸۸ توسط :   موضوع : آموزش كامپيوتر

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

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

تعریف مجوزها
تعیین مجوز برای منابع اشتراکی شبکه
مجوزهای بررسی شده در فوق در واقع برای تعیین سطح دسترسی کاربرانی است که از یک سیستم بطور مشترک استفاده می کنند . اما ممکن است سیستم شما در بین چندین سیستم دیگر و در یک شبکه قرار گرفته باشد و شما بخواهید با تعیین سطح دسترسی های مشخص امکان دسترسی به یک یا چند کاربر بدهید . پس از تعریف منابع اشتارکی در سیستم تان که می تواند فایل ها ، پوشه ها ، درایو ها ، چاپگر ، اسکنر و … باشد ، کاربران دارای مجوز می توانند به این منابع دسترسی داشته باشند . با توجه به آنچه گذشت می توان سطوح دسترسی کاربران در سطح شبکه را نیز به شکل زیر تعریف کرد:
۱- No Access: نازلترین سطح دسترسی (دسترسی وجود ندارد)
۲- Read : اجرا و خواندن
۳- Change : اجرا ، خواندن و اعمال تغییرات
۴- Full Control : اجرا ، خواندن ، نوشتن و اعمال تغییرات ، تغییر در سطح مجوز ها
با توجه به این توانایی ها شما می توانید برای یک فایل و یا پوشه در هر دو وضعیت سیستم محلی و شبکه ، مجوزلازم را به کاربران بدهید . مثلا با تعیین مجوز Change برای یک فایل در سیستم محلی ، به کاربرانی که در پشت سیستم شما می نشینند امکان اعمال تغییرات را در فایل بدهید و با تعیین مجوز Read در سطح شبکه تنها امکان خواندن را به کاربرانی که از شبکه استفاده می کنند بدهید . البته در صورت جابجایی این سطوح ، یعنی تعیین مجوز Change, در سطح شبکه و Read در سطح سیستم محلی ، تنها مجوز Read که حداقل سطح دسترسی بین این دو است به کاربران داده می شود و کاربران شبکه نیز تنها می توانند فایل را خوانده و اجرا کنند . شکل زیر ، بوت سکتور یک ولوم قالب دار را با یک NTFS را شرح می دهد .وقتی یک ولوم NTFS را قالب بندی می کنید ، برنامه قالب بندی اولین ۱۶ قسمت را برای بوت سکتور و کد بوت استرپ اختصاص می دهد.
 
در ولوم های 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 فهرست فایل اختصاصی را می خواند و مطمئن می شود که آن فایل وجود دارد . سپس 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 از دانشگاه رادینبرگ.
 
ویژگی مهم 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
 
مدخل‌های اشاره‌کننده به 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 توانایی کار و پشتیبانی با فایل‌هایی با فرمتی غیر ازExt را هم داراست.
به راحتی با داشتن یکVFS فایل‌های ویندوز و یونیکس و دیگر سیستم‌عامل‌های تجاری همانندBSD و فرمتV را شناخته و از این فرمت‌ها در کنارExt استفاده می‌کند. Ext2 fs قابلیت نامگذاری فایل‌ها تا ۲۵۵ کاراکتر را میسر می‌کند و حتی در صورت تعریف بلوک‌های بزرگ‌تر باز هم این اندازه قابل افزایش است. به‌صورت پیش‌فرض، حافظه فیزیکی ۲Ext برابر۲ گیگا بایت است. این اندازه از سیستم فایل همراهVFS امکان ایجاد یک پارتیشن بزرگ تا اندازه۴ گیگا بایت را میسر می‌کند و دیگر نیازی به تقسیم یک پارتیشن بزرگ به اندازه‌های کوچک‌تر به وجود نمی‌آید.
هر یک از اینBlock Group ها هم ساختاری این چنین دارند:
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) استفاده می نمایند. اینترفیس 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 جهت برنامه های دارای حجم زیادی از اعمال ورودی/خروجی بسیار مناسب است. اگر شما حجم زیادی از داده دارید و نیازمند دسترسی سریع به آن از ماشین های فراوانی هستید، ارزش آن را دارد که نگاهی به 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 حمایت می‌شود

  • آسان طب



همکاران ما از نظرات و پیشنهادات شما استقبال می نمایند

نظر يا مطلب خود درباره اين مقاله را بفرماييد
اگر مي خواهيد تصويري در كنار نظر شما نشان داده شود اينجا را امتحان كنيد . gravatar