انتقال به سیستم فایل f2fs. انتقال از HDD به SSD و F2FS

ظهر بخیر ابتدا بیایید بفهمیم F2FS چیست و برای چه چیزی لازم است.

F2FS (Flash-Friendly File System) یک فایل سیستم است که در سال 2013 معرفی شد و برای استفاده در درایوهای فلش از جمله SSD، کارت حافظه و داخلی بهینه شده است. دستگاه های مختلفتراشه های حافظه به طور کلی، این یک سیستم فایل است که در ابتدا زمان دسترسی ثابت و تعداد محدودی از چرخه های بازنویسی را برای سلول های حافظه در نظر می گیرد، به همین دلیل استفاده از آن مطلوب است.

آماده سازی دستگاه برای نصب فایل سیستم

پشتیبانی از این فایل سیستم از نسخه 3.8 در هسته لینوکس گنجانده شده است. CyanogenMOD در شکل خام خود اجازه استفاده از این را نمی دهد سیستم فایل، پس باید تمام شود. اما، خوشبختانه، هموطن دیم فیش قبلاً همه کارها را برای ما انجام داده است و اکنون تنها کاری که باید انجام دهیم این است که سیستم عامل را به درستی نصب کنیم. من فوراً به شما هشدار می دهم که کاملاً تمام داده های تلفن پاک می شود ، بنابراین بهتر است از قبل به انواع نسخه های پشتیبان فکر کنید (اکانت Google برای مخاطبین ، پشتیبان گیری Titanium برای برنامه و دست ها برای بازیابی عکس های مهم). اگر قبلاً همه چیز مهم را ذخیره کرده اید و به یکپارچگی دستان خود اطمینان دارید، بیایید شروع کنیم. اما من به شما یادآوری می کنم که به روز رسانی سیستم عامل گوشی شما تا حدی همیشه یک قرعه کشی است و فقط شما مسئول گوشی خود هستید. شما می توانید آن را بشکنید!

هنگام نوشتن دستورالعمل، من از اندروید پارانوئید استفاده می کردم و بار اول نتوانستم F2FS را نصب کنم، آن را به حالت کارخانه بازنشانی کردم و بعد از آن سیستم عامل در خانه بود. تنها گزینه برای ذخیره داده ها در صورتی است که دارید در حال حاضر CM11 معمولی هزینه دارد. در این صورت، باید از طریق TWRP که در زیر موجود است، از /داده بک آپ بگیرید و پس از نصب آن را بازیابی کنید. اگر رام دیگری از جمله استوک دارید، بازیابی /داده توصیه نمی شود.

روی 250 گیگابایت و شروع کردم به فکر کردن در مورد اینکه چگونه می توانم سیستم را به آن انتقال دهم.

اول از همه، من از انتخاب سیستم فایل مناسب برای SSD متحیر شدم. پس از مدتی جستجو، تصمیم گرفتم آن را روی یک FS نسبتاً جدید که توسط سامسونگ به طور خاص برای رسانه های فلش F2FS (Flash Friendly File System) ساخته شده است، نصب کنم.

F2FS یک فایل سیستم نسبتاً جوان است، اما با این وجود توسط هسته لینوکس از نسخه 3.8 پشتیبانی می شود.

کار به این شکل بود:

  1. به سیستم یاد دهید که F2FS را بفهمد
  2. پارتیشن بندی و فرمت SSD در F2FS
  3. داده ها را کپی کنید
  4. fstab و grub را تنظیم کنید

پشتیبانی از F2FS را در کوبونتو فعال کنید

در کوبونتو 14.04 و 14.10، ماژول پشتیبانی f2fs وجود دارد، اما فعال نیست. بنابراین برای فعال کردن پشتیبانی کافیست تایپ کنید:

sudo modprobe f2fs

بررسی اتصال ماژول

sudo lsmod | grep f2fs

اکنون سیستم می تواند با f2fs کار کند، اما فقط تا زمان راه اندازی مجدد. برای اطمینان از بارگیری خودکار ماژول هر بار که بوت می‌کنید، یک ورودی f2fs را به انتهای فایل /etc/modules اضافه کنید.

sudo -i
echo f2fs >> /etc/modules

همچنین به initramfs پشتیبانی از f2fs را آموزش می دهیم. برای این کار f2fs را به انتهای فایل اضافه کرده و آپدیت کنید.

در kubuntu 16.10 با هسته 4.8 شما همچنین باید یک ماژول اضافه کنید crc32در غیر این صورت سیستم بوت نمی شود.

sudo -i
echo f2fs >> /etc/initramfs-tools/modules
echo crc32 >> /etc/initramfs-tools/modules
به روز رسانی-initramfs -u

برای ایجاد f2fs، f2fs-tools و بسته های gparted را نصب کنید

sudo apt-get نصب f2fs-tools gparted

مدیر پارتیشن KDE نمی تواند f2fs ایجاد کند، اما gparted می تواند.

برای پشتیبانی در 14.04، همچنین باید بسته util-linux را به نسخه 2.25 یا بالاتر به روز کنید.

sudo add-apt-repository ppa:xeron-oskom/util-linux && sudo apt-get update && sudo apt-get dist-upgrade -f

SSD را وصل کنید، پارتیشن ها را ایجاد کنید و در F2FS فرمت کنید

از آنجایی که من فقط یک لپ تاپ بدون آن در اختیار داشتم کامپیوتر رومیزی SSD را به عنوان درایو خارجی از طریق USB وصل کردم. برای این کار قدیمی را گرفتم هارد خارجی، جدا شده و به جای معمول وصل شده است درایو خارجی SSD من و همه چیز را به usb وصل کردم.
با کمال تعجب، نه سیستم و نه مدیر پارتیشن دیسک آن را ندیدند. اما بعد از بوت شدن از روی فلش نصبی با kubuntu 14.04 دیسک نمایان شد و با موفقیت یک پارتیشن خالی ایجاد کردم و بعد از آن دیسک در سیستم اصلی قابل مشاهده شد که در آن پارتیشن بندی و فرمت کردم.

من پارتیشن بندی را در gparted انجام دادم، زیرا مدیر پارتیشن KDE f2fs هنوز متوجه نمی شود.

من شخصاً آن را اینگونه علامت گذاری کردم:
/Boot ext2 768 Mb
/روت f2fs 20 گیگ
/Home f2fs 210Gb

مبادله در فایلی در زیر خواهد بود.

کپی اطلاعات از HDD به SSD

انتقال داده از /home

در SSD، در بخش home، یک پوشه با نام کاربری خود ایجاد کنید و خود را به عنوان مالک آن اختصاص دهید

sudo mkdir $USER && chown "$USER":"$USER" $USER

و همه چیزهایی را که نیاز داریم کپی کنیم، فراموش نکنیم که موارد اصلی را کپی کنیم فایل های پیکربندیو پوشه هایی مانند:
kde
.محلی
پیکربندی
موزیلا

برای انتقال داده‌ها از فهرست اصلی خود، می‌توانید از کپی ساده و در عین حال حفظ ویژگی‌ها و حقوق فایل‌ها استفاده کنید. من یک کپی انتخابی از پوشه خانه، از آنجایی که هارد دیسک من دقیقا دو برابر اندازه SSD جدید بود و همه چیز به سادگی جا نمی شد و "آشغال" زیادی در آنجا جمع شده بود.

اینجوری کپی کردم:

sudo cp -ar /home/dm/.kde/* /media/f2fs/home/dm

کپی کردن /root و /boot

برای کپی داده ها از /root، بوت شدن از liveusb kubuntu، فعال کردن پشتیبانی از f2fs، سوار کردن پارتیشن های لازم و کپی کردن داده ها از پارتیشن ها.

پشتیبانی از f2fs را فعال کنید
sudo modprobe f2fs

یک پوشه ایجاد کنید که در آن سوار می شویم
sudo mkdir /media/f2fs_root

بیایید ببینیم چه درایوهایی در دسترس ما هستند
sudo fdisk -l

پارتیشن ریشه f2fs را سوار کنید. به جای sdx، پارتیشن خود را جایگزین کنید.
sudo mount /dev/sdx /media/f2fs_root

کپی / root از HDD به SSD
sudo cp -ar /media/kubuntu/root/* /media/f2fs_root

ما همین کار را با پارتیشن /boot انجام می دهیم.

راه اندازی fstab و grub

ما در سیستم خود راه اندازی مجدد می کنیم.

راه اندازی fstab

UUID پارتیشن ها را در SSD بیابید
sudo blkid

و fstab را روی SSD ویرایش کنید

sudo nano /media/f2fs/root/etc/fstab

برای من اکنون چیزی شبیه به این است:

UUID=ххххххх-хххх-хххх-хххх-хххххххххххх / f2fs rw,noatime,discard 0 2
UUID=ххххххх-хххх-хххх-хххх-хххххххххххх /home f2fs rw,noatime,discard 0 2
UUID=хххххххх-хххх-хххх-хххх-хххххххххххх /boot ext2 auto,noatime 1 2

کروت کردن یک SSD برای پیکربندی grub

sudo mount /dev/sdx /media/f2fs/root/boot
sudo mount /dev/sdx /media/f2fs/root/boot/efi
sudo mount --bind /dev /media/f2fs/root/dev
sudo mount --bind /proc /media/f2fs/root/proc
sudo mount --bind /sys /media/f2fs/root/sys
sudo chroot /media/f2fs/root

سپس بوت لودر را نصب کنید

sudo grub-install /dev/sdx
sudo update-grub

کجا sdX- نام دستگاه های SSD(مثلا /dev/sdb)

بدون ترک chroot ما grub.cfg را روی SSD ویرایش می کنیم
/boot/grub/grub.cfg را باز کنید

sudo nano /boot/grub/grub.cfg

و ما به دنبال رکوردهایی مانند:
linux /vmlinuz-3.16.0-25-generic root=/dev/sdb2

که در آن تغییر می کنیم / dev/sdb2در /dev/sda2

تمام شد، هارد دیسک را جدا کنید و SSD را وصل کنید.

مواد مورد استفاده:

عملکرد سیستم فایل یک چیز بسیار مهم است، در این مقاله خواهیم فهمید که کدام فایل سیستم در حال حاضر سریعتر است و همچنین نحوه عملکرد بستگی به نسخه هسته لینوکس دارد. ما عملکرد Ext4 را در مقابل F2FS در مقابل Btrfs در SSD مقایسه خواهیم کرد و از هسته های 4.4، 4.5، 4.6 و 4.7 استفاده خواهیم کرد.

هر سه سیستم فایل روی هر یک از آخرین نسخه‌های هسته پایدار آزمایش شده‌اند. تمام تست ها بر روی یک SSD Samsung 950 PRO M.2 NVM Express انجام شد.

همانطور که سیستم عاملبرای آزمایش، از یک بیلد شبانه از اوبونتو 16.10 و همچنین هسته های گرفته شده از هسته اصلی Ubuntu Kernel PPA استفاده کردیم. آزمایش ها به روشی کاملاً خودکار و قابل تکرار با استفاده از آن انجام شد نرم افزارمجموعه تست فورونیکس برای تست هر یک از سیستم های فایل، پارتیشن به طور کامل فرمت شد. همچنین قالب بندی برای هر نسخه کرنل انجام شد. برای نصب هر فایل سیستم از گزینه های پیش فرض نصب استفاده شد.

اولین آزمایش برای آزمایش عملکرد پایگاه داده SQLite بود. سرعت کپی هنگام نوشتن با Btrfs کمی کمتر از Ext4 و F2FS است. Ext4 بهترین نتیجه را در این تست نشان داد. عملکرد Btrfs در هسته های لینوکس 4.5 و لینوکس 4.6 به طور قابل توجهی بهبود یافت و برای سیستم های فایل دیگر در همان سطح باقی ماند.

در تست خواندن تصادفی FIO، هر سه سیستم فایل رگرسیون را نشان دادند که با نسخه 4.4 هسته لینوکس شروع می شد.

نتایج خواندن متوالی نتایج بسیار متفاوتی در مقایسه با کاهش سرعت خواندن در هسته های جدیدتر دارند.

تست نوشتن تصادفی چندان جالب نیست.

در تست FS-Mark، F2FS در صدر قرار گرفت. کار با 1000 فایل با حجم 1 مگابایت تست شد. عملکرد Ext4 و Btrfs تقریباً در یک سطح است.

Flash-Friendly File-System به ارائه نتایج عالی ادامه می دهد. این بار 4000 فایل، 32 زیر شاخه، حجم 1 مگابایت.

در تست چند رشته‌ای، FS-Mark تفاوت زیادی در عملکرد سیستم‌های فایل Ext4 در مقابل F2FS در مقابل Btrfs نشان نداد.

F2FS دوباره در رتبه اول در سرعت خواندن در تست BlogBench قرار گرفت. در رتبه دوم Btrfs قرار دارد.

بهترین سرعت نوشتن با توجه به BlogBench در ext4.

F2FS در بنچمارک Dbench به اوج برمی گردد.

EXT4 و F2FS در تست عملکرد PostgreSQL بهتر از Btrfs عمل کردند.

نتیجه گیری

اینها همه نتایج تست Ext4 در مقابل F2FS در مقابل Btrfs هستند که امروز به آنها نگاه خواهیم کرد. همانطور که می بینید، F2FS یک فایل سیستم بسیار امیدوارکننده است، اما Ext4 و Btrfs به خوبی حفظ می کنند. در مورد هسته ها، عملکرد عموما افزایش می یابد، اما این افزایش چندان زیاد نیست.

الکسی فدورچوک
علایق اوبونتو، 06/12/2013

سیستم فایل f2fs (Flash-Friendly File System) به طور خاص برای قرار دادن روی SSD ها و رسانه های ذخیره سازی حالت جامد مشابه طراحی شده است. این به طور بومی توسط هسته لینوکس پشتیبانی می شود، که با نسخه 3.8.0 شروع می شود - همان نسخه ای که در اوبونتو 13.04 گنجانده شده است.

پشتیبانی اساسی از f2fs می تواند به راحتی توسط تیم تأیید شود

$ ls /lib/modules/3.8.0-23-generic/kernel/fs/f2fs

در خروجی آن ماژول را خواهیم دید

با این حال، به طور پیش فرض فعال نیست. بنابراین، می توانید سعی کنید آن را به روش معمول دانلود کنید:

$ sudo modprobe f2fs

تلاش موفقیت آمیز خواهد بود، زیرا تیم به ما اطلاع خواهد داد

$lsmod | grep f2fs f2fs 109231 0

جالب اینجاست که خروجی دستور است

Dmesg | grep -i f2fs

همچنان خالی خواهد بود و پس از راه اندازی مجدد، هیچ اشاره ای از این ماژول پیدا نخواهد شد. بنابراین باید اطمینان حاصل کنید که هنگام راه اندازی سیستم به صورت دستی بارگیری می شود. برای انجام این کار، فقط خط را به فایل /etc/modules اضافه کنید

به عنوان یک سوپرکاربر چه کاری می توانید انجام دهید یا ویرایشگر متن، یا دنباله ای از دستورات مانند

$ sudo -i $ echo f2fs >> /etc/modules $ exit

همانطور که ممکن است حدس بزنید، این تضمین می کند که ماژول مربوطه باید در مرحله اولیه سازی سیستم بارگذاری شود.

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

با این حال، به دست آوردن این جعبه ابزار کار خوبی نیست. و شامل بررسی در دسترس بودن مخزن جهان و به دنبال آن دستور است

Sudo apt-get نصب f2fs-tools

با این حال، همه ابزارهای کار با f2fs در حال حاضر به یک دستور - /sbin/mkfs.f2fs و مستندات همراه - man (8) mkfs.f2fs خلاصه می‌شوند.

ایجاد f2fs در یک پارتیشن یا دستگاه خام به روش معمول انجام می شود:

Mkfs.f2fs /dev/sdf1

در پاسخ به آن نتیجه گیری زیر حاصل خواهد شد:

ابزارهای F2FS: نسخه: 1.1.0 (29-نوامبر 2012) اطلاعات: اندازه بخش = 512 اطلاعات: کل بخش ها = 30308319 (در 512 بایت) اطلاعات: ناحیه تراز شده segment0 blkaddr: 256 اطلاعات: این دستگاه اطلاعات TRIM را پشتیبانی نمی کند : فرمت موفق شد

مثال بالا در مورد یک درایو فلش صدق می کند، به همین دلیل است که ما پیامی در مورد عدم پشتیبانی از TRIM می بینیم - در هر SSD مدرن، البته، وجود نخواهد داشت.

دستور mkfs.f2fs چندین گزینه دارد. یکی از آنها -l یک برچسب برای پارتیشن یا دستگاه مربوطه تنظیم می کند که هنگام استفاده از f2fs در رسانه های قابل جابجایی مانند درایوهای فلش بسیار مفید است. بقیه خط مشی تخصیص بلوک (-a)، اندازه منطقه تامین (-o)، تعداد بخش ها در هر بخش (-s) و بخش در هر منطقه (-z) را تعریف می کنند. با این حال تأثیری که دارند در جایی مستند نیست و من فرصت آزمایش را نداشتم. پس تنها چیزی که باقی می‌ماند تکیه بر پیش‌فرض‌ها است که به جز خاله مانیا، با صدور دستور mkfs.f2fs بدون آرگومان نیز می‌توان آن‌ها را مشاهده کرد:

تخصیص مبتنی بر پشته -o نسبت بیش از حد -s # بخش در هر بخش - z # بخش در هر منطقه

پس از ایجاد سیستم فایل f2fs، تمایل طبیعی برای امتحان کردن آن وجود دارد. چرا نصب آن در جایی توصیه می شود؟ با وجود اطمینان از بارگیری ماژول مورد نیاز، به طور خودکار توسط سیستم شناسایی نمی شود. یعنی بر خلاف سایر سیستم های فایل در رسانه های خارجی، به طور پیش فرض در داخل قابل مشاهده نیست فایل منیجرهامانند ناتیلوس یا تونار.

با این حال، این بدان معنا نیست که پارتیشن‌ها یا دستگاه‌های دارای f2fs باید به‌صورت دستی نصب شوند، خیلی کمتر به عنوان root. کافی است یک نقطه مونت در فهرست اصلی کاربر ایجاد کنید (مثلا $HOME/test) و خط را در /etc/fstab وارد کنید.

/dev/sdb1 $HOME/تست کاربر f2fs، noauto 0 0

البته فراموش نکنید که مقدار متغیر $HOME را جایگزین کنید و نام دستگاه موجود را مشخص کنید. پس از آن دستگاه با f2fs هنگام اتصال در میان نقاط ورودی Nautilus یا Thunar ظاهر می شود (به صورت یک برچسب - اگر مشخص شده باشد). این برای رسانه های قابل جابجایی - به عنوان مثال، درایوهای فلش یا کارت های SD اعمال می شود. دستگاه های داخلی ( درایوهای SSD) توصیه می شود آن را به روش معمول "به صورت دائمی" نصب کنید.

متاسفانه در حال حاضر امکان قرار دادن ریشه سلسله مراتب فایل در f2fs وجود ندارد. نصب کننده اوبونتو این گزینه را ارائه نمی دهد. و "راهکارها" موضوعات مشابه، که هنگام نصب از ریشه در ZFS استفاده می شوند، با این واقعیت محدود می شوند که grub-probe f2fs را تشخیص نمی دهد و هیچ "اصلاح کننده" مانند GRUB برای Native ZFS هنوز وجود ندارد (؟).

در بین مددرها و علاقه مندان به اندروید، مانند هر فرقه ای، چندین زیارتگاه وجود دارد که به طور معمول هر چه باشد مورد احترام قرار می گیرند. اینها هسته‌های سفارشی، اسکریپت‌ها و برنامه‌های کاربردی برای بهینه‌سازی سیستم، بهبود دهنده‌های صدا و موارد دیگر هستند. اخیراً فایل سیستم F2FS به آنها اضافه شده است که طبق شواهد بسیاری عملکرد کار با حافظه NADN را به میزان قابل توجهی بهبود می بخشد و آن را از سایش محافظت می کند. اما آیا واقعا اینطور است؟

شروع کنید

F2FS (Flash Friendly File System) برای اولین بار در اکتبر 2012 در معرض دید عموم قرار گرفت، زمانی که سامسونگ وصله هایی را با پیاده سازی آن برای هسته لینوکس منتشر کرد. به گفته توسعه دهندگان، FS از ابتدا به طور خاص برای فلش مموری طراحی شده است و امکان افزایش عملکرد خواندن/نوشتن این درایوها و استفاده از ویژگی های آنها برای برخی بهینه سازی ها و محافظت در برابر سایش را فراهم می کند.

در پایان سال، F2FS به بخشی رسمی از لینوکس 3.8 تبدیل شد و پس از مدتی پشتیبانی آن در CyanogenMod 10.2 و سفارشی ظاهر شد. بازیابی TWRP. از آن زمان، موددرها و بهینه‌سازها آن را در تمام هسته‌های سفارشی خود گنجانده‌اند، نقدهای ستایش‌آمیز زیادی می‌نویسند، اسکرین‌شات‌هایی را با اثبات عملکرد خارق‌العاده سیستم فایل منتشر می‌کنند.

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

و دلیل آن ساده است: F2FS عملاً بهتر از سیستم فایل ext4 که به طور پیش فرض در اندروید استفاده می شود، نیست. برای اینکه بی اساس نباشم، دو افسانه اصلی در مورد F2FS را تجزیه و تحلیل می کنم: عملکرد و احترام به درایوهای فلش.

عملکرد

می توانید نمونه های زیادی را در اینترنت در مقایسه عملکرد ext4 و F2FS بیابید. آنها بسیار شبیه هستند و اغلب در سرعت نوشتن داده ها سود زیادی برای دومی نشان می دهند. برای مثال، نتایج مقایسه AndroBench در اینجا آمده است گوشی هوشمند سونی Experia Z1:

عجیب به نظر می رسد، اینطور نیست؟ سرعت نوشتن تصادفی 150 برابر سریعتر از ext4 و شش برابر سریعتر از سرعت خواندن است. این ناهنجاری اولین بار توسط روزنامه نگاران فورونیکس هنگام آزمایش F2FS در اوایل سال 2013 مشاهده شد:


سپس آنها به طور منطقی فرض کردند که در واقع F2FS داده ها را فوراً روی دیسک نمی نویسد، بلکه آنها را برای نوشتن بعدی ذخیره می کند. اگر به معماری F2FS نگاه کنید، مشخص می شود که واقعاً چنین است. F2FS با بلوک های داده با اندازه 4 کیلوبایت کار می کند و آنها را در بخش های 2 مگابایتی ترکیب می کند که به نوبه خود در بخش هایی ترکیب می شوند که می تواند حداکثر شش قطعه باشد.

ما بعداً در مورد اینکه چرا به چنین سیستمی نیاز است صحبت خواهیم کرد، اما در حال حاضر فقط بر این واقعیت تمرکز می کنیم که قبل از نوشتن در حافظه، بخش ها باید با بلوک ها پر شوند. به عبارت دیگر، F2FS بلوک‌های 4 کیلوبایتی از داده‌های نوشته شده را در قطعات بزرگ‌تر جمع‌آوری می‌کند و سپس آنها را به یکباره روی دیسک می‌ریزد. این دلیل عملکرد بالای غیرعادی F2FS در سرعت نوشتن یک بلوک تصادفی 4 کیلوبایتی و عملکرد نوشتن متوالی چندین بلوک کاملاً قابل مقایسه با ext4 است.

آخرین آزمایشات فورونیکس نیز عملکرد تقریباً برابر هر دو سیستم فایل را تأیید می کند. F2FS تنها در تست کار همزمان با هزاران فایل پیشتاز محسوسی شد که به دلیل بهینه سازی های داخلی آن است. با این حال، هیچ گوشی هوشمندی با این همه فایل به طور همزمان کار نمی کند. این وضعیت حتی در دسکتاپ نیز نادر است و مختص سرورها است.

نگرش دقیق نسبت به رانندگی

دومین تصور غلط در مورد F2FS مربوط به نگرش دقیق تر نسبت به حافظه فلش است. همه ما می دانیم که حافظه فلش یک چیز شکننده است و تنها می تواند چند هزار چرخه نوشتن/پاک کردن داده را تحمل کند. به همین دلیل، توصیه می‌شود داده‌ها را در یک درایو فلش با فرمت گزارش قرار دهید، جایی که بلوک‌های جدید بلوک‌های قدیمی را بازنویسی نمی‌کنند، بلکه در یک منطقه خالی نوشته می‌شوند، پس از آن بلوک قدیمی به‌عنوان بلااستفاده علامت‌گذاری می‌شود و متعاقبا پاک می‌شود. آزاد کردن فضا

F2FS دقیقاً اینگونه کار می کند و به همین دلیل است که بسیاری از مردم آن را در نظر می گیرند بهترین انتخاببرای حافظه فلش در مقایسه با ext4، که طبق طرح کلاسیک کار می کند، که شامل تغییر داده ها در محل است. اما یک اخطار وجود دارد. واقعیت این است که کاملاً هر فلش مموری مدرن، از درایوهای فلش USB گرفته تا سرورهای SSD، حاوی یک کنترلر FTL (لایه ترجمه فلش) است که وظیفه ارائه یک حالت کاملاً متفاوت را بر عهده دارد. دیسک های مغناطیسیفلش مموری مانند یک دیسک معمولی است که می توان تعداد معینی بلوک داده را روی آن نوشت.

علاوه بر مواردی مانند ترکیب چند تراشه حافظه فلش در یک "دیسک" و انجام عملیات TRIM که بلوک هایی را که دیگر استفاده نمی شوند پاک می کند، FTL همچنین مسئول انتخاب مکان فیزیکی بلوک برای نوشتن در حافظه است. و در اینجا او از یک مینی FS با ساختار log استفاده می کند (تعجب!). به عبارت دیگر، هر فلش مموری مدرن خود درگیر افزایش عمر سرویس خود است، صرف نظر از اینکه چه سیستم فایلی روی آن ایجاد می کنید: F2FS، ext4، FAT32 یا هر چیز دیگری - نتیجه یکسان خواهد بود.

در واقع، دلیل نامیده شدن F2FS "Flash Friendly" به خاطر سازگاری با حافظه نیست، بلکه به این دلیل است که برخی از ویژگی های آن را برای کارآمدتر کردن کار با حافظه در نظر می گیرد. یکی از مثال‌های افزایش کارایی، مکانیسم ترکیب داده‌ها در بخش‌ها است.

واقعیت این است که بسیاری از تراشه های حافظه فلش نه یک، بلکه چندین درایو مستقل را شامل می شوند. و ضبط به هر یک از آنها می تواند به طور همزمان رخ دهد. با ترکیب داده‌ها در بخش‌ها، F2FS می‌تواند آن‌ها را به طور همزمان برای نوشتن ارسال کند، که در تئوری عملکرد نوشتن را چندین برابر تعداد درایوها افزایش می‌دهد.

اما در اینجا نیز همه چیز به این سادگی نیست. همه بهینه سازی های F2FS نیاز دارند سفارشی سازیسیستم فایل برای هر مدل حافظه فلش یک سیستم فایل تنها به اندازه تنظیم دقیق آن موثر خواهد بود. و این نباید توسط کاربر سیستم عامل سفارشی، بلکه توسط خود سازنده حافظه انجام شود، زیرا فقط او می تواند تمام تفاوت های ظریف طراحی آن را بداند.

مجموع

F2FS یک فایل سیستم عالی است. گواه این واقعیت است که او به تازگی به دنیا آمده است، او در حال حاضر قادر به رقابت با ext4 است که سال ها و توسط صدها نفر لیسیده شده است. با این حال، نباید از آن انتظار معجزه داشته باشید و برای فرمت دستگاه خود اجرا کنید. بله، بسیاری از افراد حتی بدون آزمایش هم ادعای افزایش قابل توجهی در عملکرد دارند، اما باز هم به احتمال زیاد، این اثرات ناشی از مکانیسم نوشتن تنبل است و در واقع افزایش قابل توجهی در سرعت وجود ندارد.