مدتی بود دنبال مطلبی با این عنوان میگشتم در در شماره 04.2007 مجله linux user مقاله زیر رو دیدم.
نگاهی به فایل سیستم جدید Ext4
نوشته مارکل هیلزینگر
برای بسیاری از کاربران لینوکس، Ext3 گزینه مناسبیه و نیاز هاشون رو برآورده میکنه.اما مشکل: Ext3 با بلاکسایز (Block size) چهار کیلو بایت (که بصورت پیشفرص می باشد) حداکثر از 8 ترابایت پشتیبانی میکند. این موضوع نه تنها مشکل برای RAIDهای حرفه ای هست. اولین هارد دیسک با حجم یک ترابایت برای کاربران خانگی به بازار آمده و حداکثر حجم فایلی که Ext3 میتواند داشته باشد 2 ترابایت میباشد. این موضوع میتونه با ورود فایل های ویدئویی HD خودشو نشون بده.
در مقابل Ext3 جدیدترین نسخه فایل سیستم Ext4 با دو ویژگی جدید و مهم ارایه میشه.
تنها فایل سیستمی که از متادیتا (Metadata) و Journaling Block Device (JBD)1 شصت و چهار بیتی پشتیبانی میکنه. این یعنی فایل سیستم و داده های بزرگ تر.
Extends در فایل سیستم Ext4 بسیار سریع تر از Ext3 می نویسد.
JBD شصت و چهار بیتی یعنی پشتیبانی از فایل سیستمی به بزرگی 1024 Petabyte .
تا پایان راه هنوز مانده
با وجودی که Ext4 از کرنل 2.6.19 بصورت رسمی به لینوکس بپوسته، اما کار روی این فایل سیستم پایان نگرفته. به عنوان مثال تاکاشی ساتو[1] به روی یک آنلاین ریسایزر [2] کار میکنه که Ext4 در حال کار تمامی فراگمنت ها رو کنترل و اصلاح کنه. در نسخه نهایی این فایل سیستم همچنین با ویژگی Undelete ارایه خواهد شد.بعضی ویژگی های جدید ممکنه نیاز به تغییر در ساختار فایل سیتم داشته باشند و این برای پارتیشن هایی که با نسخه کنونی Ext4 کار میکنن میتواند مشکل ساز باشد.
قسمت بدتر قضیه اینجاست که بر خلاف آنچه Ext3 براحتی به فایل سیستم Ext2 قابل بازگشت میباشد، این موضوع زمانی برای Ext4 صادق هست که کاربر از هیچ Extentsیی استفاده نکرده باشد.
تنظیمات کرنل
برای استفاده از فایل سیستم Ext4 در سیستم خودتان، شما نیاز به نسخه بروز کرنل و همچنین برنامه های gcc ،make و glib-devel دارید.
در تست زیر ما از کرنل 2.6.20 استفاده کردیم که شما میتوانید از این آدرس داونلود کنید.
سپس سورس آن رادر /usr/scrکپی کرده و لینک آنرا در /usr/src/linuxبسازید.
cp linux-2.6.20.tar.bz2 /usr/src
cd /usr/src
tar xvfj linux-2.6.20.tar.bz2
ln -s linux-2.6.20 linux
برای اینکه کرنل بداند که کدام المنت ها را به عنوان ماژول و یا اصلا کامپایل نکند، باید در محل سورس کرنل فایل config را قرار دهید. این را میتوانید با اجرای make menuconfig و یا make xconfig انجام دهید.از آنجایی که تنظیم مانوال (دستی) تمامی المنت حتی برای پیشرفته و حرفه ای ها نیز کار ساده ای نیست، پیشنهاد میکنیم که از فایل کانفیگ کرنل کنونی به عنوان پایه استفاده و فقط تغییرات را به آن وارد کنید. برای این کار
cp /boot/config$(uname -r) /usr/src/linux/.config
حال به محل /usr/src/linux رفته و با اجرای فرمان make oldconfig از فایل قدیمی کانفیگ یک نسخه جدید تنظیم کرده. در این هنگام (با توجه به نسخه کرنلی که استفاده میکنید) سوالاتی از شما میکند که پاسخ میدهید. در صورتیکه فقط میخواهید قابلیت Ext4 را به کرنل اضافه کنید تمامی سولات را با دکمه تایید (Enter) رد کنید تا پیشفرض ها انتخاب شوند. سپس فایل کانفیگ را با یک ادیتور (ویرایشگر) باز کرده و به دنبال خط زیر بگردید.
CONFIG_EXT4DEV_FS is not set
آنرا پاک کرده و جایگزین آن خط زیر را بنویسید.
CONFIG_EXT4DEV_FS=m
در صورتیکه نمیخواهید Ext4 را بعنوان ماژول اضافه کنید ، بنویسید
CONFIG_EXT4DEV_FS=y
|
|
خط CONFIG_EXT4DEV_FS=m را جایگزین کنید. |
و اگر اکنون (پس از تغییرات فایل کانفیگ) فرمان make oldconfig را اجرا کنید فقط سوالات مربوط Ext4 را از شما خواهد پرسید.
بعد از پایان کار کافیست با اجرای فرمان make کرنل را کامپایل کنید که با توجه به توان رایانه شما میتواند تا چند ساعت طول بکشد. سپس نوبت به نصب میرسد.
make module_install
make install
بیشتر سیستم ها بصورت خودکار فایل (inird) و همچنین گزینه بوت لودر را ایجاد میکنند.
کار با Ext4
برای آنکه بتوانید یک پارتیشن Ext4 بسازید شما به نسخه بروز E2fsprogs نیاز دارید که میتوانید از اینجا و یا سایت کرنل دات ارگ داونلود کنید.
نصب برنامه E2fsprogs با اجرای فرامین زیر صورت میگیره…
./configure
make
make install (as root)
به احتمال زیاد برنامه در زمان اجرای make قطع میشود. این از آنجاست که سیستم شما بسته texinfo را ندارد.
کاربران Open SuSE 10.2 میتونن در سایت های زوزه و اپن زوزه کرنل 2.6.20 رو داونلود کنن که برای نصب E2fsprogs آماده است. فقط توجه داشته باشید که کرنل رو با فرمان rpm -Uvh نصب نکنید بلکه با اجرای rpm -ivh .
با اجرای فرمان mke2fs -j Partition میتونید پارتیشن Ext4 خودتون رو بسازید. در صورتیکه میخواهید از ابزارهای GUI استفاده کنید، میتونید یه پارتیشن با فرمت Ext3 بسازید و با فرمان زیر آنرا مانت کنید.
Mount -t ext4dev Partition Mountpiont
در صورتیکه میخواهید extents رااستفاده کنید،گزینه زیر را به فرمان مانت اضافه کنید
-o extents
Benchhmarks
در اولین تست نسخه در حال توسعه Ext4 ما از bonnie++ و slow.c استفاده کردیم.در تست ها Ext4 بصورت کاملا مشهود از سرعت بالاتری نسبت به Ext3 و همچنین ReiserFS برخورداره. فقط در زمان عدم استفاده از extentsهاست که این سرعت در حد Ext3 تنزل پیدا میکنه.
|
در خواندن و نوشتن بلاک ها بصورت کاملا مشهود از Ext3 سریعتر کار میکنه. |
|
|
یک تست پر از استرس نشان میده چقدر داده میتونه در یک ثانیه حذف یا ایجاد میشه. |
|
|
بدون extens سرعت آن در حد Ext3 پایین می آد |
|
پی نوشت ها
[1] Takashi Sato
[2] Online-Resizer




Tuesday 3 July 2007 در 11:47 am
jaleb bood. hali bordim
Thursday 25 October 2007 در 9:23 pm
kheili khob bod mamnon be darde man ke khei khord
Tuesday 20 November 2007 در 7:04 pm
[…] این فایل سیستم پایان نگرفته. به عنوان مثال تاکاشی سا�http://ayeneh.de/blog/2007/04/01/ext4// بخوانید. ارسال شده توسط respecttousa Filed in Linux […]
Wednesday 22 April 2009 در 8:18 pm
[…] اطلاعات بیشتر در مورد Ext4 رواینجا مطاله کنید. […]