F2FS: як у Android назріла необхідність міняти файлову систему

в індустрії створили нову файлову систему F2FS, яка має боротися зі сповільненням девайсу з часом.

Власники смартфонів та планшетів на Android знають: відразу після купівлі девайс працює, як блискавка, але через певний час починає більше нагадувати черепаху. Цьому існує багато причин, і одна з головних – флеш-пам’ять, а саме її фрагментація. Щосекунди в Android відбуваються сотні або тисячі операцій зчитування-запису, але наявні файлові системи погано пристосовані для мобільних девайсів. Тож в індустрії створили нову файлову систему F2FS, яка має боротися зі сповільненням девайсу з часом.

Що таке файлова система

Щоразу, як ви відкриваєте фото, запускаєте музичний трек чи відео, файлова система відіграє ключову роль у виконанні цих дій. Вона є одним з багатьох програмно-апаратних шарів в електронних девайсах і визначає способи роботи з файлами. Адже на диску дані у вигляді нулів та одиниць йдуть один за одним суцільним потоком і не розділяються на окремі блоки.

Розділити цей потік та подати його у зручному вигляді файлів допомагає файлова система. У першому наближенні її можна побачити як базу даних, в колонках якої вказана назва файлу, координати його початку та розмір, а також інші дані. Саме файлові системи роблять можливою концепцію папок для розміщення файлів.

Існують десятки файлових систем. Найвідомішими є FAT (File Allocation Table) та її модифікація FAT32, яка сьогодні використовується на більшості USB-накопичувачів, у картах пам’яті тощо. Також відома NTFS (New Technology File System), яка є основою для Microsoft Windows. Ще Microsoft створила exFAT – модифікацію FAT для девайсів на базі флеш-пам’яті.

Файлова система Android сьогодні

Смартфони Android базуються на Linux, а тому сьогодні переважно використовують файлову систему ext4 (Fourth Extended File System). Вона є еволюцією найпопулярнішої файлової системи в операційній системі Linux – еxt3, яка також є еволюцією попередніх версій ext. В еxt3 головну увагу приділили журналам для ведення історії операцій. В еxt4 пішли далі та модифікували важливі структури для зберігання даних.

В еxt4 додали 48-бітну адресацію блоків, завдяки чому максимальний розмір цієї файлової системи дорівнює одному эксабайту, а файли можуть бути розміром до 16 терабайтів. Користувачам USB-флешок з FAT32 знайома ситуація досягнення максимального розміру, адже ця файлова система дозволяє лише файли до 0,004 терабайтів.

Файлову систему еxt4 створили в період 2003-2006 років, і вона найкраще адаптована для роботи з механічними жорсткими дисками. У флеш-пам’яті зовсім інший принцип: вона має відносно низьку швидкість роботи, але це компенсується розпаралелюванням процедур запису та читання на десятки каналів.

В ext4 також не враховується одне з головних обмежень флеш-пам’яті – кількість циклів запису в одну комірку. З кожним поколінням флеш-пам’яті воно зменшується, і в пам’яті QLC сягає кількох сотень. Журнали операцій в ext4 швидко зношують флеш-пам’ять.

Потреба в альтернативі

Довгий час над файловою системою смартфонів не замислювалися через те, що основним гальмом при роботі з даними була апаратна частина. Однак із появою флеш-пам’яті в форматі UFS на заміну старому eMMC вузьким місцем стала саме ext4.

Для врахування особливостей флеш-пам’яті і максимального використання її переваг у Samsung в 2012 році представили файлову систему F2FS.

F2FS є файловою системою з відкритим вихідним кодом, і вона адаптована до флеш-пам’яті типу NAND (існує ще флеш-пам’ять NOR). Після презентації розробниками Samsung першого варіанту ця файлова система зацікавила інших виробників. Однією з перших її впровадження почала Motorola, слідом за нею новинку стали використовувати й інші виробники, включаючи OnePlus та Huawei.

Що дає F2FS

Нова файлова система значно прискорює роботу флеш-пам’яті: смартфони завантажуються швидше, можна записувати «важкі» файли 4K, фільми на 360 градусів. Також знизилась латентність (затримка) між операційною системою та фізичним накопичувачем, завдяки чому програми відкриваються та реагують на дії користувача швидше. Вона також споживає менше енергії при читанні та записі файлів.

Швидкість роботи файлової системи в Android є дуже важливим параметром, оскільки щосекунди проходять сотні та тисячі операцій запису-зчитування. Популярні програми часто залишаються працювати у фоновому режимі, і тому вони звертаються до накопичувача навіть тоді, коли їх візуально немає на екрані.

З часом у накопичувачів збільшується фрагментація, яку вважають одним із головних сповільнювачів Android з часом. Ситуація ускладнюється тим, що флеш-пам’ять у смартфонах часто заповнена. Для максимальної швидкості флеш-накопичувачів краще постійно тримати кілька десятків відсотків пам’яті вільними.

За швидкість файлова система F2FS «розплачується» збільшенням зайнятого простору, який використовується для кешу та рутинних операцій. На девайсах із 64 ГБ флеш це може бути непомітним, але на бюджетних апаратах з 8 ГБ чи 16 ГБ може виявитися проблемою.

Що гальмує F2FS

F2FS, хоч і показує пришвидшення роботи на початку, сьогодні знаходиться у фазі «дитячих хвороб» і має багато багів при довготривалому використанні. Наявні реалізації цієї файлової системи найкраще підходять для задач, в яких необхідно лише зчитувати дані. Однак програмісти працюють над тим, щоб F2FS так само швидко записувала файли протягом довгого часу.

Для забезпечення високої продуктивності запису F2FS у довготривалій перспективі можна використовувати засоби дефрагментації файлів. Це чудове рішення, але воно збільшує кількість циклів запису у флеш-пам’ять. Тому програмісти шукають способи зменшити фрагментацію даних без необхідності спеціального запуску дефрагментації. Один із варіантів – залучити штучний інтелект, який прогнозуватиме запис даних.

Матеріал по F2FS: інтерв’ю розробника F2FS Стена Дмітрієва

1 коментар

  1. Все в самих гірших традиціях ІТ. Це як Уиль’ям Гейтс декілька років обіцяв нову “революційну” файлову систему. Регуляторам респект

Comments are closed.