Namjae Jeon, membro do projeto Samba, que dá suporte ao driver EXFAT e ao servidor KSMBD no núcleo do Linux, propôs a inclusão de uma nova implementação do sistema de arquivos NTFS — ntfsplus. Espera-se que um driver NTFS de melhor qualidade e mantido melhore a compatibilidade dos sistemas Linux com dispositivos Windows e facilite o trabalho dos usuários.
Na sua forma atual, o suporte ao NTFS no Linux é limitado pelo antigo driver NTFS, removido do núcleo do Linux e que suportava apenas leitura, além do atual driver NTFS3, que possui muitos problemas ainda não resolvidos devido à falta de manutenção. Por conta desses problemas, muitos usuários e distribuições continuam a usar o antigo driver ntfs-3g, que opera no espaço do usuário.
Como base para o driver ntfsplus, foi utilizada a base de código do clássico driver ntfs, que foi reestruturada, ampliada com a capacidade de gravar dados e substancialmente aprimorada para suportar funcionalidades modernas, como o uso de folhetos de páginas de memória (folios) em vez da estrutura buffer_head. O novo driver implementa a alocação de blocos atrasada, permitindo alcançar alto desempenho operações de gravação e redução da fragmentação. Para operações de gravação/leitura em buffer, entrada/saída direta, mapeamento de extensões e operações de gravação/leitura por página, é utilizada a biblioteca iomap.
Diferentemente do driver existente ntfs3, desenvolvido pela Paragon Software, o driver ntfsplus demonstra maior desempenho e suporta funcionalidades como iomap, alocação de blocos atrasada (delayed allocation) e mapeamento de identificadores de usuários ao montar (idmap). Após a aceitação no núcleo principal, pretende-se implementar um journal completo em ntfsplus (no ntfs3 é criado apenas um replay-log, que falha em testes). O novo driver passa com sucesso em 287 testes do conjunto xfstests, além de implementar as funcionalidades necessárias para executar os testes de desempenho Bonnie++ (o driver ntfs3 passou em 218 testes xfstests e causou problemas ao executar Bonnie++).
Ao realizar testes com o iozone, o driver ntfsplus mostrou-se de 3 a 5% mais rápido que o ntfs3 ao gravar em modo de thread único e de 35 a 110% mais rápido ao utilizar 4 threads. A velocidade de leitura do ntfsplus e do ntfs3 está aproximadamente no mesmo nível. No teste de listagem de arquivos (ls -lR) em diretórios com 100/200/400 mil arquivos, o ntfsplus foi mais rápido em 12~14%. Quanto à velocidade de montagem, o ntfsplus é de 5 a 6 vezes mais rápido. O alto desempenho do ntfsplus é alcançado através da aplicação de operações assíncronas iomap, alocação atrasada de blocos, otimização na alocação de novos clusters, otimização na fusão de fragmentos, carregamento da bitmap de clusters em segundo plano, pré-carregamento de blocos inode e informações de diretórios.
Foi preparado um conjunto separado de utilitários ntfsprogs-plus para o ntfsplus, que operam no espaço do usuário e se baseiam nas ferramentas ntfsprogs do projeto ntfs-3g. As ferramentas ntfsclone, ntfscluster e ntfsinfo foram transferidas do ntfsprogs. O projeto também desenvolveu um novo utilitário ntfsck para verificação e recuperação de partições NTFS danificadas.
Fonte: opennet.ru
