Подорож F2FS і чому файлові системи важливі: інтерв’ю зі Стеном Дмитрієвим з Tuxera

XDA бере інтерв’ю у Стена Дмитрієва з Tuxera, фінської компанії, яка спеціалізується на файлових системах. Стен обговорює файлові системи та майбутнє F2FS.

Файлові системи не надто часто обговорюються на XDA чи будь-якому іншому форумі. Тема передбачає багато розробок низького рівня, тому розробники вважають за краще зосереджуватися на програмах, ПЗУ або ядрах. Тим не менш, файлова система є важливою частиною кожного сховища. Це технологія, яка описує, як зберігаються та витягуються дані в пам’яті вашого пристрою. Існує багато різних типів файлових систем — кожна зі своїми перевагами та недоліками — і вибір однієї над одною може значно змінити стабільність і продуктивність. Отже, як виробники комплектного обладнання роблять такий вибір? Мені було приємно поспілкуватися Стен Дімітрієв, PR та комунікаційний менеджер в Туксера, фінська компанія, яка надає рішення для файлових систем багатьом великим OEM-виробникам.

З: Чи можете ви представити себе та Туксеру?

A: Я Стен Дмитрієв. З тих пір, як я отримав свій перший телефон Android (HTC EVO 3D), я став активним шанувальником спільноти XDA. Скажімо, я встановив нестандартне ПЗУ та втратив гарантію в перший день (
Стен. Дмитрієв є учасником форуму на XDA). Пару років тому я був співзасновником стартап-проекту під назвою Corgi for Feedly, тоді спільнота XDA дуже допомогла нам у визначенні та розробці програми.

Наразі я працюю менеджером із зв’язків із громадськістю та зв’язками компанії Tuxera, яка є провідною компанією на ринку вбудованого програмного забезпечення для зберігання даних, а точніше файлових систем. Наше програмне забезпечення підтримує понад один мільярд пристроїв, і його можна знайти в останніх флагманських телефонах, автомобілях, маршрутизаторах, дронах і камерах. Історія компанії почалася з NTFS-3G, коли наш президент і технічний директор Саболч «Сака» Сакактікс створив NTFS для роботи з пристроями Linux. Наразі ми розробляємо власні файлові системи та реалізації як для зовнішнього, так і для вбудованого сховища та співпрацюємо з більшістю автомобільних компаній, а також багатьма компаніями, що займаються виробництвом смартфонів.

Тут, у Tuxera, ми досить часто відвідуємо форуми XDA, особливо під час усунення несправностей із заблокованим пристроєм або пошуку спеціального ПЗУ/ядра для гри. Багато моїх колег часто відвідують XDA, щоб прочитати останні новини глибоких технологій навколо екосистем Android і Linux.

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

A: Файлові системи є життєво важливим елементом ядра Linux, який відповідає за всі взаємодії між пристроєм і його накопичувачем. Кожного разу, коли ви робите фотографію, відкриваєте програму або переглядаєте відео, файлова система відіграє основну роль для доступу ОС до всіх файлів і їх зберігання. Деякий час файлові системи не були такими захоплюючими, головна причина полягає в тому, що вузьке місце у продуктивності виникало через сховище.

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

З: Що таке F2FS (праймер) і чому він почав свій шлях до Android? Які OEM-виробники були провідними?

A: F2FS — це файлова система з відкритим вихідним кодом, головним чином, вона розроблена для архітектури флеш-пам’яті. Накопичувач NAND (флеш-пам’ять) використовується в усіх сучасних телефонах Android зазвичай як рішення eMMC або UFS. Спочатку проект був розроблений компанією Samsung і викликав великий інтерес у деяких виробників мобільного обладнання. Ми не маємо даних про те, які виробники комплектного обладнання почали цю зміну. Але з того, що я особисто знаю, Motorola була першою, а багато інших OEM-виробників, як-от OnePlus і Huawei, незабаром продовжили цю зміну.

З: Які переваги це дало? OEM-виробники посилаються на швидші операції зберігання та продуктивність інтерфейсу користувача, але чи є якісь інші переваги?

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

З: Проблеми, зокрема, зосереджені навколо погіршення продуктивності. Чи могли б ви пояснити це глибше? У чому причина?

A: Ідея F2FS була справді чудовою, щоб досягти найшвидшої продуктивності флеш-пристроїв. Але також важливо зосередитися на продуктивності в довгостроковій перспективі. Апаратне забезпечення завжди може бути швидким із коробки, але підтримувати ці швидкості постійно є набагато складнішим завданням. Для випадку використання Android пам’ять пристрою майже заповнена більшу частину часу, і тисячі операцій читання і запису іноді відбуваються навіть за секунду. Багато популярних програм запускають служби у фоновому режимі, це означає, що програма виконує деякі операції читання/запису, навіть якщо ви її не відкриваєте. Якщо виконати операції неправильно, операції запису можуть різко збільшити фрагментацію сховища, що робить кожну наступну операцію читання/запису ще повільнішою.

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

З: Чи існують інші проблеми з продуктивністю або надійністю, які менш відомі?

A: Одна цікава річ, яку ми виявили, полягає в тому, що F2FS має несподівані накладні витрати, принаймні кілька сотень МБ вашого сховища для кешування та обслуговування сховища. Це однозначно має сенс, якщо у вас 64 ГБ пам’яті або більше, але на бюджетних телефонах із розміром ПЗУ 8 ГБ, 16 ГБ це може бути проблемою.

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

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

З: Деякі OEM-виробники відмовилися від використання F2FS, тоді як інші, наприклад Huawei, все ще підтримують F2FS на останніх пристроях. Як ви думаєте, чи є тенденція в будь-якому випадку? (Повільне прийняття або повна відмова)

A: Існує кілька сценаріїв, чому OEM-виробники продовжуватимуть використовувати F2FS.

  • OEM може мати власну реалізацію F2FS, яка приносить деякі виправлення відомих проблем.

  • OEM може мати дуже хороші зв’язки з виробником флеш-пам’яті, оскільки він має доступ до FTL-рівня NAND і налаштування файлова система, щоб добре працювати з апаратним забезпеченням, може принести значні покращення, включно з фрагментацією флеш-пам'яті зберігання.

  • OEM-виробник міг би зосередитися на початковій продуктивності телефону, оскільки середній життєвий цикл смартфона становить близько 2 років, і оскільки телефон стає повільним, вони вже купуватимуть новий.

  • OEM також може мати запущену службу дефрагментації, це може частково вирішити проблеми F2FS.

Це деякі з можливих сценаріїв, у той же час ми бачимо, що деякі OEM-виробники вже є повернення до використання Ext4, наприклад, OnePlus 3T використовував F2FS, але всі новіші моделі OnePlus використовують Ext4.

З: F2FS наразі потребує дефрагментації на ходу, яка могла б вирішити проблему, яка зараз виникає з F2FS.

A: Інструменти дефрагментації існують уже деякий час, головна перевага полягає в тому, що вони можуть перерозподіляти/перезаписувати блоки пам’яті, щоб зменшити фрагментацію пам’яті. Але проблема з цим підходом полягає в тому, що ви переписуєте комірки флеш-пам’яті, що зменшує термін служби сховища. Найкращим сценарієм було б спочатку розумно записувати дані. Контролювати пошкодження – це не вихід.

Подумайте про це як про створення безладу в кімнаті, розкинувши купу речей навколо, а потім почавши розкладати їх по ящиках. Чому б не зробити це відразу?

Питання: чи вдалося виробникам комплектного обладнання протидіяти чи вирішити деякі проблеми, які стримують F2FS? Наприклад, Huawei відкидає погіршення продуктивності та рекламує швидший UX з часом, частково завдяки їхньому «ШІ».

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

З: Про які інші захоплюючі розробки файлової системи ми повинні знати? Як вони вплинуть на взаємодію з користувачем, навіть на незначному чи низькому рівні?

A: F2FS і Ext4 все ще дуже важливі та є основними файловими системами для відкритого коду. Ext4 є більш зрілим і надійним, але може обмежити продуктивність флеш-пам’яті; F2FS швидший, але також більш експериментальний. Вся ситуація, коли програмне забезпечення стає вузьким місцем, робить файлові системи знову захоплюючими. Ми переходимо від середовищ із підрахунком кожної секунди до кожної мілісекунди, і файлові системи відіграватимуть важливу роль у цьому підвищенні продуктивності. Найбільш захоплюючою розробкою для файлових систем було б створити справді оптимізоване рішення для флеш-пам’яті, яке могло б підтримувати продуктивність флеш-пам’яті.

У Tuxera ми розробляємо Tuxera Flash File System, де ми робимо такі речі, як спеціальне програмне забезпечення оптимізації, які гарантують оптимізацію файлової системи для конкретного пристрою, варіанту використання та флеш-пам’яті пам'ять. Працюючи в автомобільній промисловості, ми в основному зосереджуємося на довгостроковій продуктивності та погіршенні якості флеш-пам’яті. Це скоріше тип оптимізації апаратного забезпечення та програмного забезпечення, про який говорив Стів Джобс. Застосування машинного навчання для створення таких «драйверів» — це те, що, на нашу думку, може бути справді захоплюючим для всієї індустрії зберігання даних.

З: Наше фізичне флеш-сховище також стає швидшим. Як ви бачите, що цей факт вплине як на роботу кінцевого користувача, так і на майбутнє файлових систем?

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

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

Q: Дякуємо за ваш час.

A: Дякую!