Путешествие F2FS и почему файловые системы так важны: интервью со Стэном Дмитриевым из Tuxera

click fraud protection

XDA берет интервью у Стэна Дмитриева из Tuxera, финской компании, специализирующейся на файловых системах. Стэн обсуждает файловые системы и будущее F2FS.

Файловые системы не слишком часто обсуждаются на XDA или любом другом форуме. Эта тема предполагает много низкоуровневой разработки, поэтому разработчики предпочитают сосредотачиваться на приложениях, ПЗУ или ядрах. Тем не менее файловая система является жизненно важной частью любого хранилища. Это технология, которая определяет, как данные в памяти вашего устройства хранятся и извлекаются. Существует множество различных типов файловых систем, каждая из которых имеет свои плюсы и минусы, и выбор одной из них может существенно повлиять на стабильность и производительность. Так как же OEM-производители делают этот выбор? Я имел удовольствие поговорить с Стэн Димитриев, менеджер по связям с общественностью и коммуникациям компании Туксера, финская компания, предоставляющая решения для файловых систем многим крупным OEM-производителям.

Вопрос: Можете ли вы представиться и Таксеру?

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

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

Здесь, в Tuxera, мы довольно часто посещаем форумы XDA, особенно при устранении неполадок заблокированного устройства или поиске пользовательского ПЗУ/ядра для игры. Многие из моих коллег часто посещают XDA, чтобы прочитать о последних новостях в области высоких технологий, связанных с экосистемами Android и Linux.

Вопрос: Файловые системы являются неотъемлемой частью наших устройств, но мало кто знает об их роли, улучшениях, сильных и слабых сторонах. Какой в ​​этом смысл и почему больше людей должны интересоваться файловыми системами, в которых хранятся их данные?

О: Файловые системы — это жизненно важный элемент ядра Linux, который отвечает за все взаимодействие между устройством и его хранилищем. Каждый раз, когда вы делаете снимок, открываете приложение или смотрите видео, файловая система играет ключевую роль в обеспечении доступа и хранения всех файлов ОС. Файловые системы какое-то время не вызывали такого интереса, основная причина в том, что узким местом в производительности было хранилище.

Но поскольку скорость флэш-памяти становится чрезвычайно высокой, особенно с появлением UFS, теперь необходимо модернизировать программное обеспечение, чтобы соответствовать производительности флэш-памяти. Файловая система не только может влиять на скорость хранения, но также играет важную роль в поддержании производительности телефона в долгосрочной перспективе. Если все сделано неправильно, хранилище станет фрагментированным — явление, при котором неэффективное использование хранилища может снизить производительность устройства. Сведение такой возможности к минимуму является важной характеристикой файловой системы.

Вопрос: Что такое F2FS (начальное руководство) и почему он начал появляться на Android? Какие OEM-производители лидировали?

О: F2FS — это файловая система с открытым исходным кодом, основная идея которой заключается в том, что она предназначена для архитектуры флэш-накопителей. Память NAND (флэш-память) используется во всех современных телефонах Android, обычно в виде решений eMMC или UFS. Первоначально проект был разработан компанией Samsung и вызвал большой интерес со стороны некоторых OEM-производителей мобильных устройств. У нас нет данных о том, какие OEM-производители начали этот сдвиг. Но насколько мне известно, Motorola была первой, и вскоре за этим сдвигом последовали многие другие OEM-производители, такие как OnePlus и Huawei.

Вопрос: Какие преимущества это дало? OEM-производители отмечают более быстрые операции хранения и производительность пользовательского интерфейса, но есть ли какие-либо другие преимущества?

А: подача Было довольно просто: F2FS повышает производительность флэш-накопителей. Ваша система будет загружаться быстрее (более высокая скорость чтения), скорость записи будет выше, что позволит записывать тяжелое видео 4K, замедленное видео с более высокой частотой кадров и видео на 360 градусов. Кроме того, задержка между системой и хранилищем будет сверхнизкой, а это означает, что анимация и открытие приложений будут происходить намного быстрее.

Вопрос: Проблемы, в частности, связаны со снижением производительности. Не могли бы вы объяснить это более подробно? В чем причина?

О: Идея F2FS действительно была великолепной — добиться максимально возможной производительности флэш-устройств. Но также важно сосредоточиться на результатах в долгосрочной перспективе. Аппаратное обеспечение всегда может быть быстрым сразу после установки, но постоянное поддержание этих скоростей является гораздо более сложной задачей. В случае использования Android память устройства большую часть времени почти заполнена, и иногда даже за секунду происходят тысячи операций чтения и записи. Многие популярные приложения запускают службы в фоновом режиме. Это означает, что приложение выполняет некоторые операции чтения/записи, даже если вы его не открываете. Если все сделано неправильно, операции записи могут резко увеличить фрагментацию хранилища, делая каждую следующую операцию чтения/записи еще медленнее.

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

Вопрос: Есть ли какие-либо другие менее известные проблемы с производительностью или надежностью?

О: Мы обнаружили одну интересную вещь: F2FS требует неожиданных затрат: как минимум несколько сотен МБ вашего хранилища для кэширования и обслуживания хранилища. Это определенно имеет смысл, если у вас 64 ГБ встроенной памяти или больше, но на бюджетных телефонах с объемом ПЗУ 8 или 16 ГБ это может стать проблемой.

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

В каком-то смысле это битва теорий. Вы можете либо представить, что производительность оборудования настолько высока, что ухудшение не будет проблемой. Или вы посмотрите на это с другой стороны, когда оборудование настолько быстрое, что необходимо добиться немного более низкой производительности, которую можно поддерживать в долгосрочной перспективе. F2FS выбрала первый подход, и здесь нет неправильных вариантов, это важный эксперимент и кривая обучения для всей отрасли. При этом то, что мы сейчас видим, заключается в том, что долгосрочные результаты должны быть в центре внимания прямо сейчас.

Вопрос: Некоторые OEM-производители отказались от использования F2FS, в то время как другие, например Huawei, по-прежнему поддерживают F2FS на последних устройствах. Как вы думаете, есть ли тенденция в любом случае? (Медленное внедрение или полный отказ)

О: Существует несколько сценариев, по которым OEM-производители будут продолжать использовать F2FS.

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

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

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

  • У OEM-производителя также может быть запущена служба дефрагментации, это может частично решить проблемы F2FS.

Это некоторые из возможных сценариев, в то же время мы видим, что некоторые OEM-производители уже возвращаясь к использованию Ext4, например, OnePlus 3T использовал F2FS, но все новые модели OnePlus используют Экст4.

Вопрос: F2FS в настоящее время нуждается в каком-то решении для дефрагментации на ходу, которое могло бы решить проблему, возникающую в настоящее время с F2FS.

О: Инструменты дефрагментации существуют уже некоторое время, их основное преимущество заключается в том, что они могут перераспределять/перезаписывать блоки памяти, чтобы уменьшить фрагментацию хранилища. Но проблема этого подхода в том, что вы перезаписываете ячейки флэш-памяти, что сокращает срок службы хранилища. Лучшим сценарием было бы в первую очередь разумно записывать данные. Контроль ущерба не является лучшим решением.

Думайте об этом, как о том, чтобы навести беспорядок в комнате, разбросав повсюду кучу вещей, а затем начав раскладывать их по ящикам. Почему бы не сделать это сразу?

Вопрос: Удалось ли OEM-производителям противодействовать или решить некоторые проблемы, сдерживающие F2FS? Например, Huawei отвергает снижение производительности и рекламирует более быстрый пользовательский интерфейс с течением времени, отчасти благодаря своему «ИИ».

О: Если ИИ сможет проанализировать поведение хранилища и переписать файловую систему для работы с конкретным флэш-устройством, это, вероятно, сможет решить проблемы фрагментации. ИИ также может анализировать, какие приложения или функции человек использует чаще всего, и предварительно загружать/сохранять их. соответственно — сделать функции телефона более быстрыми, но это не решит проблему фрагментации. хотя. Мое основное предположение состоит в том, что большинство оптимизаций связаны с пользовательским пространством, а не с какими-то глубокими оптимизациями файловой системы.

Вопрос: О каких еще интересных разработках в области файловых систем нам следует знать? Как они повлияют на пользовательский опыт, пусть даже на тонком или низком уровне?

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

В Tuxera мы разрабатываем файловую систему Tuxera Flash, в которой мы делаем такие вещи, как программное обеспечение для конкретного оборудования. оптимизация, обеспечивающая оптимизацию файловой системы для конкретного устройства, варианта использования и флэш-памяти. Память. Присутствуя в автомобильной отрасли, мы в основном ориентируемся на долгосрочную производительность и ухудшение качества флэш-памяти. Это скорее аппаратно-программная оптимизация, о которой говорил Стив Джобс. Мы считаем, что применение машинного обучения для создания таких «драйверов» может быть действительно интересным для всей индустрии хранения данных.

Вопрос: Наши физические флэш-накопители также становятся все быстрее. Как, по вашему мнению, этот факт повлияет как на удобство работы конечных пользователей, так и на будущее файловых систем?

О: Поскольку аппаратное обеспечение становится все быстрее, программное обеспечение должно гарантировать, что оно может соответствовать этим передовым аппаратным архитектурам, и это основная задача, которую в настоящее время предстоит решить файловым системам. У вас могут быть невероятные характеристики скорости чтения и записи устройства, но если программный стек обеспечивает дополнительную задержку, пользовательский опыт не будет таким быстрым. Это захватывающее время для разработки файловых систем, поскольку существует очевидная потребность в более быстрой, быстрой и в то же время более надежной технологии для мобильных устройств.

Но по мере того, как флэш-память становится все быстрее, возникает главный вопрос: какова скорость, при которой производительность становится неактуальной? Думайте об этом как о разрешении экрана Retina, где более высокая плотность пикселей на самом деле не делает изображение более четким для человеческого глаза.

Вопрос: Спасибо, что уделили время.

А: Спасибо!