A jornada do F2FS e por que os sistemas de arquivos são importantes: entrevista com Stan Dmitriev de Tuxera

click fraud protection

O XDA entrevista Stan Dmitriev da Tuxera, uma empresa finlandesa especializada em sistemas de arquivos. Stan discute sistemas de arquivos e o futuro do F2FS.

Os sistemas de arquivos não são discutidos no XDA ou em qualquer outro fórum com muita frequência. O tópico envolve muito desenvolvimento de baixo nível, então os desenvolvedores preferem se concentrar em aplicativos, ROMs ou kernels. No entanto, o sistema de arquivos é uma parte vital de todo armazenamento. É a tecnologia que descreve como os dados armazenados no seu dispositivo são armazenados e recuperados. Existem muitos tipos diferentes de sistemas de arquivos – cada um com suas próprias vantagens e desvantagens – e escolher um em vez de outro pode fazer uma enorme diferença na estabilidade e no desempenho. Então, como os OEMs fazem essa escolha? Tive o prazer de conversar com Stan Dimitriev, gerente de relações públicas e comunicações da Smoking, uma empresa finlandesa que fornece soluções de sistema de arquivos para muitos grandes OEMs.

P: Você pode se apresentar e Tuxera?

R: Meu nome é Stan Dmitriev. Desde que ganhei meu primeiro telefone Android (HTC EVO 3D), tornei-me um fã ativo da comunidade XDA. Digamos apenas que instalei uma ROM personalizada e anulei minha garantia no primeiro dia (Stan. Dmitriev é membro do fórum no XDA). Há alguns anos, fui cofundador de um projeto de startup chamado Corgi for Feedly, naquela época a comunidade XDA nos ajudou muito na definição e desenvolvimento do aplicativo.

Atualmente sou gerente de relações públicas e comunicações da Tuxera, que é a empresa líder em software de armazenamento embarcado, sistemas de arquivos para ser mais preciso, do mercado. Nosso software alimenta mais de um bilhão de dispositivos e pode ser encontrado nos mais recentes telefones, carros, roteadores, drones e câmeras. A história da empresa começou com o NTFS-3G, quando nosso presidente e CTO Szabolcs “Szaka” Szakactics criou o NTFS para funcionar com dispositivos Linux. Atualmente, desenvolvemos nossos próprios sistemas de arquivos e implementações para armazenamento externo e incorporado e trabalhamos com a maioria das empresas automotivas, bem como com muitas empresas de smartphones.

Aqui no Tuxera, visitamos frequentemente os fóruns do XDA, especialmente ao solucionar problemas de um dispositivo bloqueado ou encontrar uma ROM/kernel personalizado para brincar. Muitos de meus colegas visitam frequentemente o XDA para ler sobre as últimas notícias de tecnologia profunda sobre os ecossistemas Android e Linux.

P: Os sistemas de arquivos são parte integrante de nossos dispositivos, mas poucas pessoas sabem sobre sua função, melhorias, pontos fortes e fracos. Qual é a vantagem disso e por que mais pessoas deveriam se interessar pelos sistemas de arquivos que mantêm seus dados unidos?

R: Os sistemas de arquivos são um elemento vital do kernel Linux, responsável por todas as interações entre o dispositivo e seu armazenamento. Cada vez que você tira uma foto, abre um aplicativo ou assiste a um vídeo – o sistema de arquivos desempenha um papel fundamental para o sistema operacional acessar e armazenar todos os arquivos. Os sistemas de arquivos não eram tão interessantes há algum tempo, o principal motivo é que o gargalo no desempenho vinha do armazenamento.

Mas como as velocidades do flash estão ficando extremamente rápidas, especialmente com a introdução do UFS, agora é o software que precisa ser modernizado para acompanhar o desempenho do flash. O sistema de arquivos não apenas pode afetar as velocidades de armazenamento, mas também desempenha um papel importante na manutenção do desempenho do telefone a longo prazo. Se feito de maneira errada, o armazenamento ficará fragmentado, fenômeno em que o uso ineficiente do armazenamento pode reduzir o desempenho do dispositivo. Reduzir essa possibilidade ao mínimo é uma característica importante de um sistema de arquivos.

P: O que é F2FS (primer) e por que ele começou a chegar ao Android? Quais OEMs estavam liderando o ataque?

R: F2FS é um sistema de arquivos de código aberto, com o objetivo principal de ser projetado para arquitetura de armazenamento flash. O armazenamento NAND (flash) é usado em todos os telefones Android atuais, geralmente como soluções eMMC ou UFS. O projeto foi desenvolvido inicialmente pela Samsung e ganhou grande interesse de alguns OEMs móveis. Não temos dados sobre quais OEMs iniciaram essa mudança. Mas pelo que sei, pessoalmente, a Motorola foi a primeira, com muitos outros OEMs como OnePlus e Huawei seguindo essa mudança em breve.

P: Quais foram as vantagens que isso proporcionou? Os OEMs citam operações de armazenamento e desempenho de UI mais rápidas, mas existem outras vantagens?

R: O tom foi bastante simples, o F2FS traz maior desempenho para armazenamento baseado em flash. Seu sistema inicializaria mais rápido (velocidades de leitura mais rápidas), as velocidades de gravação seriam maiores, permitindo gravar 4K pesado, câmera lenta com taxa de quadros mais alta e vídeos em 360 graus. Além disso, a latência entre o sistema e o armazenamento seria ultrabaixa, o que significa que a animação e a abertura de aplicativos seriam muito mais rápidas.

P: Os problemas, especificamente, parecem centrar-se na degradação do desempenho. Você poderia explicar isso com mais profundidade? Qual é a causa?

R: A ideia do F2FS foi realmente ótima, para alcançar o desempenho mais rápido possível para dispositivos flash. Mas também é importante focar no desempenho no longo prazo. O hardware sempre pode ser rápido desde o início, mas manter essas velocidades continuamente é um desafio muito mais difícil. Para um caso de uso do Android, o armazenamento do dispositivo fica quase cheio na maior parte do tempo e há milhares de operações de leitura e gravação acontecendo às vezes até em um segundo. Muitos dos aplicativos populares executam serviços em segundo plano, o que significa que o aplicativo realiza algumas operações de leitura/gravação mesmo quando você não o abre. Se feitas de maneira errada, as operações de gravação podem aumentar drasticamente a fragmentação do armazenamento, tornando cada operação seguinte de leitura/gravação ainda mais lenta.

Vemos a fragmentação do armazenamento como uma das causas da degradação do desempenho em dispositivos Android. Agora o que precisa ser determinado é se os problemas são causados ​​pela compatibilidade de hardware e como o sistema de arquivos funciona com armazenamento de vários OEMs, ou se a arquitetura F2FS se concentra nas velocidades iniciais, e isso afeta o longo prazo desempenho. Os problemas também podem ser causados ​​por bugs, pois o sistema de arquivos ainda está em desenvolvimento.

P: Existem outros problemas de desempenho ou confiabilidade que sejam menos conhecidos?

R: Uma coisa interessante que descobrimos é que o F2FS tem uma sobrecarga inesperada, pelo menos algumas centenas de MB do seu armazenamento para armazenamento em cache e manutenção. Definitivamente, isso faz sentido se você tiver 64 GB de armazenamento ou mais, mas em telefones econômicos com tamanhos de ROM de 8 GB e 16 GB, isso pode ser um problema.

A principal conclusão é que a implementação atual do F2FS é ótima para ambientes somente leitura quando você deseja atingir velocidades mais altas. O F2FS precisa focar em melhorar seu desempenho de armazenamento de longo prazo em alta interação com arquivos pequenos, como é o que acontece no ambiente Android.

Isto é, em certo sentido, uma batalha de teorias. Você pode imaginar que o desempenho do hardware é tão rápido que a degradação não será um problema. Ou você olha de forma oposta, onde o hardware é tão rápido, que ter um desempenho um pouco mais lento que pode ser mantido no longo prazo, é o que deve ser alcançado. A F2FS escolheu a primeira abordagem, e não há opções erradas aqui, é um experimento importante a ser feito e uma curva de aprendizado para toda a indústria. Dito isto, o que estamos a ver atualmente é que o desempenho a longo prazo deve ser o foco principal neste momento.

P: Alguns OEMs abandonaram o uso do F2FS, enquanto outros, como a Huawei, ainda oferecem suporte ao F2FS em dispositivos recentes. Você acha que há uma tendência de qualquer maneira? (Adoção lenta ou abandono total)

R: Existem vários cenários pelos quais os OEMs continuariam usando o F2FS.

  • Um OEM poderia ter sua própria implementação de F2FS, que traz algumas correções para os problemas conhecidos.

  • Um OEM poderia ter laços muito bons com o fabricante de armazenamento flash, já que tinha acesso à camada FTL do NAND e ajuste o sistema de arquivos funcionar bem com o hardware pode trazer melhorias significativas, inclusive para a fragmentação do flash armazenar.

  • Um OEM pode preferir focar no desempenho inicial do telefone, já que o ciclo de vida médio de um smartphone é de cerca de 2 anos e, à medida que o telefone fica lento, eles já estarão comprando um novo.

  • Um OEM também pode ter algum serviço de desfragmentação em execução, o que pode resolver parcialmente os problemas do F2FS.

Estes são alguns dos cenários possíveis, ao mesmo tempo, vemos que alguns OEMs já estão voltando a usar Ext4, por exemplo, OnePlus 3T estava usando F2FS, mas todos os modelos OnePlus mais recentes usam Ext4.

P: O F2FS atualmente precisa de alguma solução de desfragmentação em movimento, que poderia resolver o problema que está aparecendo atualmente com o F2FS.

R: As ferramentas de desfragmentação já existem há algum tempo, a principal vantagem é que elas podem realocar/reescrever os blocos de memória para reduzir a fragmentação do armazenamento. Mas o problema dessa abordagem é que você reescreve as células da memória flash, o que reduz a vida útil do armazenamento. O melhor cenário seria gravar dados de forma inteligente em primeiro lugar. Fazer o controle de danos não é a solução ideal.

Pense nisso como bagunçar um quarto jogando um monte de coisas por todo lado e depois começar a arrumá-las nas gavetas. Por que não fazer isso imediatamente?

P: Os OEMs conseguiram neutralizar ou resolver alguns dos problemas que impedem o F2FS? Por exemplo, a Huawei descarta o desempenho degradante e anuncia uma UX mais rápida ao longo do tempo, em parte graças à sua “IA”.

R: Bem, se uma IA puder analisar o comportamento do armazenamento e reescrever o sistema de arquivos para funcionar em um dispositivo flash específico, isso provavelmente poderá resolver os problemas de fragmentação. A IA também pode analisar quais aplicativos ou recursos a pessoa usa mais e pré-carregá-los/armazená-los consequentemente – tornar os recursos do telefone mais rápidos, o que não resolveria o problema da fragmentação no entanto. Minha principal suposição é que a maioria das otimizações está relacionada ao espaço do usuário, e não a algumas otimizações profundas do sistema de arquivos de tecnologia.

P: Quais são alguns outros desenvolvimentos interessantes em sistemas de arquivos dos quais devemos estar cientes? Como eles impactariam a experiência do usuário, mesmo que em um nível sutil ou baixo?

R: F2FS e Ext4 ainda são muito vitais e são os sistemas de arquivos preferidos para código aberto. Ext4 é mais maduro e confiável, mas pode limitar o desempenho do flash; F2FS é mais rápido, mas também mais experimental. Toda a situação em que o software se torna o gargalo é o que torna os sistemas de arquivos interessantes novamente. Estamos passando de ambientes com contagem de cada segundo para cada milissegundo, e os sistemas de arquivos desempenharão um papel importante nesse aumento de desempenho. O desenvolvimento mais interessante para sistemas de arquivos seria criar uma solução verdadeiramente otimizada para flash que pudesse manter o desempenho do flash.

Na Tuxera, estamos desenvolvendo o Tuxera Flash File System, onde fazemos coisas como software específico de hardware otimizações garantindo que o sistema de arquivos seja otimizado para um dispositivo, caso de uso e flash específicos memória. Estando presentes no setor automotivo, focamos principalmente no desempenho e degradação de longo prazo da memória flash. Isso é mais o tipo de otimização hardware x software, de que Steve Jobs falava. Aplicar o aprendizado de máquina para criar esses “drivers” é algo que acreditamos que poderia ser realmente interessante para todo o setor de armazenamento.

P: Nosso armazenamento flash físico também está cada vez mais rápido. Como você vê esse fato impactando a experiência do usuário final e o futuro dos sistemas de arquivos?

R: À medida que o hardware fica mais rápido, o software precisa garantir que possa acompanhar essas arquiteturas de hardware avançadas. Este é o principal desafio que os sistemas de arquivos devem resolver atualmente. Você pode ter características incríveis de velocidade de leitura e gravação do dispositivo, mas se a pilha de software trouxer latência adicional, a experiência do usuário não será tão rápida. Este é um momento emocionante para o desenvolvimento de sistemas de arquivos, pois há uma clara necessidade de uma tecnologia móvel mais rápida, mais ágil e ainda mais confiável.

Mas à medida que o flash fica mais rápido, a questão principal é: qual é a velocidade com que o desempenho se torna irrelevante? Pense nisso como a resolução da tela Retina, onde uma densidade de pixels mais alta não torna a imagem mais nítida para o olho humano.

P: Obrigado pelo seu tempo.

R: Obrigado!