El viaje de F2FS y por qué los sistemas de archivos son importantes: entrevista con Stan Dmitriev de Tuxera

Los sistemas de archivos no se discuten en ningún otro foro con demasiada frecuencia. El tema involucra mucho desarrollo de bajo nivel, por lo que los desarrolladores prefieren enfocarse en aplicaciones, ROM o núcleos. Sin embargo, el sistema de archivos es una parte vital de cada almacenamiento. Es la tecnología que describe cómo se almacenan y recuperan los datos en el almacenamiento de su dispositivo. Hay muchos tipos diferentes de sistemas de archivos, cada uno con sus propios pros y contras, y elegir uno sobre otro puede hacer una gran diferencia en la estabilidad y el rendimiento. Entonces, ¿cómo hacen esa elección los OEM? Tuve el placer de hablar con Stan Dimitriev, el Gerente de Relaciones Públicas y Comunicaciones de Tuxera, una empresa finlandesa que brinda soluciones de sistemas de archivos a muchos OEM grandes.

P: ¿Puedes presentarte y Tuxera?

A: Soy Stan Dmitriev. Desde que obtuve mi primer teléfono Android (HTC EVO 3D), me he convertido en un fanático activo de la comunidad. Digamos que instalé una ROM personalizada y anulé mi garantía el primer día (Stan.Dmitriev es miembro del foro). Hace un par de años, cofundé un proyecto de inicio llamado Corgi para Feedly, en ese momento la comunidad nos ayudó mucho a definir y desarrollar la aplicación.

Actualmente soy el Gerente de Relaciones Públicas y Comunicaciones de Tuxera, que es el software de almacenamiento integrado líder, sistemas de archivos para ser precisos, compañía en el mercado. Nuestro software alimenta más de mil millones de dispositivos y se puede encontrar en los últimos teléfonos insignia, automóviles, enrutadores, drones y cámaras. La historia de la compañía comenzó con NTFS-3G, cuando nuestro presidente y CTO Szabolcs "Szaka" Szakactics hizo que NTFS funcionara con dispositivos Linux. Actualmente, desarrollamos nuestros propios sistemas de archivos e implementaciones para almacenamiento externo e integrado y trabajamos con la mayoría de las compañías automotrices y muchas compañías de teléfonos inteligentes.

Aquí en Tuxera visitamos los foros con bastante frecuencia, especialmente cuando solucionamos problemas de un dispositivo bloqueado o encontramos una ROM / kernel personalizado para jugar. Muchos de mis colegas visitan con frecuencia para leer sobre las últimas noticias de tecnología profunda sobre los ecosistemas de Android y Linux.

P: Los sistemas de archivos son una parte integral de nuestros dispositivos, pero muy pocas personas conocen su función, mejoras, fortalezas y debilidades. ¿Cuál es el don de esto y por qué más personas deberían interesarse en los sistemas de archivos que mantienen sus datos?

R: Los sistemas de archivos son un elemento vital del kernel de Linux que es responsable de todas las interacciones entre el dispositivo y su almacenamiento. Cada vez que toma una foto, abre una aplicación o mira un video: el sistema de archivos juega un papel central para que el sistema operativo acceda y almacene todos los archivos. Los sistemas de archivos no fueron tan emocionantes durante algún tiempo, la razón principal es que el cuello de botella en el rendimiento provenía del almacenamiento.

Pero como las velocidades de flash se están volviendo extremadamente rápidas, especialmente con la introducción de UFS, ahora es el software el que debe modernizarse para mantenerse al día con el rendimiento del flash. El sistema de archivos no solo puede afectar las velocidades de almacenamiento, sino que también juega un papel importante en el mantenimiento del rendimiento del teléfono a largo plazo. Si se hace mal, el almacenamiento se fragmentará, un fenómeno en el que un uso ineficiente del almacenamiento puede reducir el rendimiento del dispositivo. Reducir esa posibilidad al mínimo es una característica importante de un sistema de archivos.

P: ¿Qué es F2FS (primer) y por qué comenzó a llegar a Android? ¿Qué OEM lideraron la carga?

R: F2FS es un sistema de archivos de código abierto, con el tono principal de que está diseñado para la arquitectura de almacenamiento flash. El almacenamiento NAND (flash) se utiliza en todos los teléfonos Android actuales, generalmente como soluciones eMMC o UFS. El proyecto fue desarrollado inicialmente por Samsung y ha ganado un gran interés por parte de algunos de los OEM móviles. No tenemos los datos sobre los OEM que comenzaron este cambio. Pero por lo que sé, personalmente, Motorola fue el primero, con muchos otros fabricantes de equipos originales como OnePlus y Huawei después de este cambio en breve.

P: ¿Cuáles fueron las ventajas que proporcionó? Los OEM citan operaciones de almacenamiento más rápidas y rendimiento de la interfaz de usuario, pero ¿hay alguna otra ventaja?

R: El tono fue bastante simple, F2FS brinda un mayor rendimiento al almacenamiento basado en flash. Su sistema arrancaría más rápido (velocidades de lectura más rápidas), las velocidades de escritura serían más altas, lo que le permitiría grabar videos pesados ​​de 4K, velocidad de cuadros más alta y videos de 360 ​​grados. Además, la latencia entre el sistema y el almacenamiento sería muy baja, lo que significa que la animación y las aplicaciones de apertura se sentirían mucho más ágiles.

P: Los problemas, específicamente, parecen centrarse en el rendimiento degradante. ¿Podría explicar eso con mayor profundidad? Cual es la causa

R: La idea de F2FS fue realmente genial, para lograr el rendimiento más rápido posible para dispositivos flash. Pero también es importante centrarse en el rendimiento a largo plazo. El hardware siempre puede ser rápido, pero mantener estas velocidades continuamente es un desafío mucho más difícil. Para un caso de uso de Android, el almacenamiento del dispositivo está casi lleno la mayor parte del tiempo, y hay miles de operaciones de lectura y escritura que ocurren a veces incluso en un segundo. Muchas de las aplicaciones populares ejecutan servicios en segundo plano, esto significa que la aplicación está realizando algunas operaciones de lectura / escritura incluso cuando no la abre. Si se hace mal, las operaciones de escritura pueden aumentar drásticamente la fragmentación del almacenamiento, haciendo que cada próxima operación de lectura / escritura sea aún más lenta.

Vemos la fragmentación del almacenamiento como una de las causas de la degradación del rendimiento en los dispositivos Android. Ahora, lo que debe determinarse es si los problemas son causados ​​por la compatibilidad del hardware y cómo funciona el sistema de archivos con el almacenamiento de varios OEM, o si la arquitectura F2FS se enfoca en las velocidades iniciales, y esto afecta el rendimiento a largo plazo. Los problemas también pueden ser causados ​​por errores, ya que el sistema de archivos aún está en desarrollo.

P: ¿Hay otros problemas de rendimiento o confiabilidad que son menos conocidos?

R: Una cosa interesante que encontramos es que F2FS tiene una sobrecarga inesperada, al menos un par de cientos de MB de su almacenamiento para el almacenamiento en caché y el mantenimiento del almacenamiento. Esto definitivamente tiene sentido si tiene 64 GB de almacenamiento o más, pero en teléfonos de bajo presupuesto con tamaños de ROM de 8 GB y 16 GB, esto podría ser un problema.

El principal hallazgo es que la implementación actual de F2FS es excelente para entornos de solo lectura cuando desea alcanzar velocidades más altas. F2FS debe centrarse en mejorar su rendimiento de almacenamiento a largo plazo en una alta interacción con archivos pequeños, ya que esto es lo que sucede en el entorno de Android.

Esto es, en cierto sentido, una batalla de teorías. Puede imaginar que el rendimiento del hardware es tan rápido que la degradación no será un problema. O lo miras de la manera opuesta, donde el hardware es tan rápido, que tener un rendimiento un poco más lento que se pueda mantener a largo plazo, es lo que se debe lograr. F2FS eligió el primer enfoque, y no hay opciones incorrectas aquí, es un experimento importante y una curva de aprendizaje para toda la industria. Dicho esto, lo que estamos viendo actualmente es que el rendimiento a largo plazo debería ser el foco principal en este momento.

P: Algunos fabricantes de equipos originales han dejado de utilizar F2FS, mientras que otros, como Huawei, todavía admiten F2FS en dispositivos recientes. ¿Crees que hay una tendencia en ambos sentidos? (Adopción lenta o abandono completo)

R: Existen múltiples escenarios por los que los OEM continuarían usando F2FS.

  • Un OEM podría tener su propia implementación de F2FS, que trae algunas soluciones a los problemas conocidos.

  • Un OEM podría tener muy buenos lazos con el fabricante del almacenamiento flash, ya que tener acceso a la capa FTL de NAND y ajustar el sistema de archivos para que funcione bien con el hardware puede aportar mejoras significativas, incluida la fragmentación del almacenamiento flash.

  • Un OEM podría preferir centrarse en el rendimiento inicial del teléfono, ya que el ciclo de vida promedio de un teléfono inteligente es de alrededor de 2 años, y a medida que el teléfono se ralentiza, ya comprarán uno nuevo.

  • Un OEM también podría tener algún servicio de desfragmentación en ejecución, esto puede resolver parcialmente los problemas de F2FS.

Estos son algunos de los escenarios posibles, al mismo tiempo, estamos viendo que algunos OEM ya están volviendo a usar Ext4, por ejemplo OnePlus 3T estaba usando F2FS, pero todos los modelos más nuevos de OnePlus usan Ext4.

P: F2FS actualmente necesita una solución de desfragmentación sobre la marcha, que podría resolver el problema que está apareciendo actualmente con F2FS.

R: Las herramientas de desfragmentación han existido durante algún tiempo, la principal ventaja es que pueden reasignar / reescribir los bloques de memoria para reducir la fragmentación del almacenamiento. Pero el problema con este enfoque es que reescribe las celdas de memoria flash, lo que reduce la vida útil del almacenamiento. El mejor escenario sería escribir datos de manera inteligente en primer lugar. Hacer el control de daños no es la solución ideal.

Piense en ello como hacer un desastre en una habitación arrojando muchas cosas por todas partes y luego comenzando a colocarlas en los cajones. ¿Por qué no hacer eso de inmediato?

P: ¿Han logrado los OEM contrarrestar o abordar algunos de los problemas que retrasan F2FS? Por ejemplo, Huawei descarta el rendimiento degradante y anuncia un UX más rápido con el tiempo, en parte gracias a su "IA".

R: Bueno, si una IA puede analizar el comportamiento de almacenamiento y reescribir el sistema de archivos para que funcione para un dispositivo flash específico, esto probablemente pueda resolver los problemas de fragmentación. La IA también puede analizar qué aplicaciones o características usa la persona en su mayoría y precargarlas / almacenarlas en consecuencia, haciendo que las funciones del teléfono se sientan más ágiles, sin embargo, eso no resolvería el problema de la fragmentación. Mi suposición principal es que la mayoría de las optimizaciones están relacionadas con el espacio del usuario, y no algunas optimizaciones de sistemas de archivos de tecnología profunda.

P: ¿Cuáles son algunos otros desarrollos interesantes del sistema de archivos que debemos tener en cuenta? ¿Cómo impactarían en la experiencia del usuario, incluso en un nivel sutil o bajo?

R: F2FS y Ext4 siguen siendo muy vitales y son los sistemas de archivos de código abierto. Ext4 es más maduro y confiable, pero podría limitar el rendimiento del flash; F2FS es más ágil pero también más experimental. Toda la situación en la que el software se convierte en el cuello de botella es lo que hace que los sistemas de archivos vuelvan a ser emocionantes. Estamos pasando de cada segundo a entornos de recuento de milisegundos y los sistemas de archivos desempeñarán un papel importante en este aumento de rendimiento. El desarrollo más emocionante para File Systems sería crear una solución verdaderamente optimizada para flash que pueda mantener el rendimiento del flash.

En Tuxera, estamos desarrollando el Sistema de archivos Flash Tuxera, donde hacemos cosas como optimizaciones de software específicas de hardware para garantizar que el sistema de archivos esté optimizado para un dispositivo, caso de uso y memoria flash específicos. Con presencia en automoción, nos centramos principalmente en el rendimiento a largo plazo y la degradación de la memoria flash. Este es más del tipo de optimización de hardware x software, del que Steve Jobs solía hablar. La aplicación de Machine Learning para crear tales "controladores" es algo que creemos que podría ser realmente emocionante para toda la industria del almacenamiento.

P: Nuestro almacenamiento flash físico también es cada vez más rápido, ¿cómo ve que este hecho afecta tanto la experiencia del usuario final como el futuro de los sistemas de archivos?

R: A medida que el hardware se hace más rápido, el software necesita asegurarse de que pueda mantener estas arquitecturas de hardware avanzadas, este es el principal desafío que los sistemas de archivos deben resolver actualmente. Puede tener increíbles características de velocidad de lectura y escritura del dispositivo, pero si la pila de software trae latencia adicional, la experiencia del usuario no se sentirá tan ágil. Este es un momento emocionante para el desarrollo del sistema de archivos, ya que existe una clara necesidad de una tecnología para dispositivos móviles más rápida, ágil y aún más confiable.

Pero a medida que el flash se acelera, la pregunta principal es: ¿cuál es la velocidad a la que el rendimiento se vuelve irrelevante? Piense en ello como la resolución de pantalla Retina, donde una mayor densidad de píxeles realmente no hace que la imagen sea más nítida para el ojo humano.

P: Gracias por tu tiempo.

A: gracias!