Autor: Thorsten Leemhuis (Copyright (c) 2012 Heise Media UK Ltd.)
Traduzido: Marcelo Soares Souza (Dúvidas e melhorias na tradução envie por E-mail)
Originalmente: http://h-online.com/-1750000
No último fim de semana, Linus Torvalds lançou[1] o quinto candidato de lançamento do Linux 3.7; ele ficou feliz em destacar que apenas algumas mudanças, na maioria secundárias, foram submetidas para este candidato de lançamento. Como de costume, Torvalds e seus companheiros desenvolvedores já incorporaram todas as grandes novas funcionalidades[2] no início do ciclo de desenvolvimento do Linux 3.7. Desde que é raro que novas mudanças sejam integradas durante a fase de estabilização, O "Em breve no Kernel Linux" pode fornecer uma visão abrangente sobre os mais importantes avanços nesta versão do Linux, que é esperado para meados de Dezembro.
Este resumo sera apresentado na costumas série de artigos que cobrirão as várias áreas do Linux. O primeiro artigo abaixo descreve as mais importantes novidades no sistema de arquivos e armazenamento do Kernel; os artigos subsequentes irão discutir os drivers gráficos, suporte a redes, arquitetura e drivers de dispositivos.
Btrfs
De acordo com os desenvolvedores, uma otimização no código do fsync no Btrfs[3] melhorou a performance de escrita, especialmente em máquinas virtuais, quando uma imagem de uma máquina virtual esta localizada em um sistema de arquivos Btrfs e a máquina convidada (guest) frequentemente requisita escrita imediata usando o fsync.
Comentando sobre a modificação, um desenvolvedor, que trabalha para a Fusionio, notou que os testes do benchmark Fio[4], com dados distribuído onde cada um finalizou com fsync, a transferência de dados com um disco SATA aumentou de 82 para 140KB por segundo. O número ainda são bastante baixos porque, a cada pequena gravação aleatória, o benchmark aguardou até que o dado fosse realmente escrito. Com um driver "Fusion drive", não especificado, (tal como o Fusion IO Drive - um dispositivo PCIe com um chip de memória flash), a transferência reportada aumentou de 431 para 2,532KB/s.
Esta modificação é base para outra mudança[5] que melhora a performance do fsync com gravações sincronizadas: em testes que o desenvolvedor rodou com o programa "dd", a transferência do driver SATA aumentou de 104 inicialmente para 121KB/s; em um ramdisk, o Btrfs aparentemente completou o testes muitas vezes mais rápida do que antes. Uma modificação no código do fsync para o Btrfs que foi introduzida[6] no 3.5 foi revertida[7] porque um resultado do sysbench mostrou que a performance caiu de 39 para 24MB/s no sistema de testes de desenvolvimento.
Assim como o Ext4 e outros sistemas de arquivos antes dele, o Btrfs pode agora[8] desalocar áreas de memória dentro dos arquivos. Esta técnica de "hole punching" é de interesse, por exemplo, de ferramentas de virtualização porque este permite ao sistema de arquivo dos sistemas hospedeiro (host) a desalocar espaço quando os arquivos que usam espaço forem deletados no sistema convidado (guest). Além, há um algumas correções de erros no código de envio/recebimento que foi introduzido no Linux 3.6[9]. Com o Btrfs no Linux 3.7 é possível agora ter não apenas 20, mas mais de 65,536 hardlinks para um arquivo. Chris Mason, o responsável do ainda experimental sistema de arquivos, lista as várias outras mudanças no Btrfs em um email[10] com sua requisição de GIT pull.
Sistemas de arquivos
O Ext4 pode agora redimensionar[11] em volumes com mais de 16TB de tamanho. Theodore "tytso" Ts'o também faz observações, em seu email[12] para sua principal requisição de GIT pull, de que as operações de redimensionamento se tornaram mais rápidas.
O sistema de arquivos CIFS (Common Internet File System) que dá acesso aos compartilhamentos Windows e Samba agora suporta o[13] SMB (Server Message Block) 2.0, este foi introduzido no Windows Vista, assim como nos descendentes como o Windows 7 com a versão SMB 2.1. O código ainda é classificado como experimental; fragmentos deste código já fazem parte do kernel já a algum tempo, mas estava marcada como "quebrada" e foram, por isso, não utilizadas.
O suporte a NFS 4.1 não é mais classificado como experimental[14].
Armazenamento
O código da ferramenta MD (RAID) para o Linux 3.7 pode agora usar o descarte para informar aos dispositivos, em um arranjo RAID, sobre novas áreas de armazenamento desalocadas, o que é relevante para discos SSDs (1[15], 2[16], 3[17], 4[18], 5[19]). O código do NBD (Network Block Devices) pode também informar sobre áreas de armazenamento desalocadas através do descarte.
Em dispositivos ATA, o arquivo de dispositivo cache_type no sysfs (por exemplo /sys/devices/pci0000:00/0000:00:1f.2/ata1/host0/target0:0:1/0:0:1:0/scsi_disk/0:0:1:0/cache_type) pode agora ser utilizado[20] para realizar a troca entre os comportamentos de cache write-through e write-back.
Agora o subsistema Libata possui suporte a [21] "Aggressive SATA device sleep", um mecanismo de gerenciamento de energia que é especificado na proposta técnica AHCI 1.3.1 e pode reduzir o consumo de energia em sistemas com discos SATA.
O driver SCSI qla4xxx pode agora lidar com [22] o Qlogic 8032 (ISP83XX), e o Virtio-Scsi suporta o redimensionamento de dispositivos de armazenamento[23].
A camada de bloco agora oferece[24] o comando "WRITE SAME" que permite que um pacote de dados seja transmitido uma vez e em seguida seja escrito em todos os blocos de IO especificados. Isto fornece uma maneira fácil e eficiente de realizar tarefas tais como inicialização de RAIDs ou sobrescrita de dispositivos de armazenamentos.
Links deste artigo
[1] http://article.gmane.org/gmane.linux.kernel/1391790
[2] http://www.h-online.com/news/item/Main-development-phase-of-Linux-3-7-completed-1729556.html
[3] http://git.kernel.org/linus/5dc562c541e1026df9d43913c2f6b91156e22d32
[4] http://git.kernel.dk/?p=fio.git;a=summary
[5] http://git.kernel.org/linus/4e2f84e63dc138eca91e89ccbc34f37732ce58f7
[6] http://git.kernel.org/linus/0885ef5b5601e9b007c383e77c172769b1f214fd
[7] http://git.kernel.org/linus/90abccf2c6e6e9c5a5d519eaed95292afa30aa11
[8] http://git.kernel.org/linus/2aaa66558172b017f36bf38ae69372813dedee9d
[9] http://www.h-online.com/open/features/What-s-new-in-Linux-3-6-1714690.html
[10] http://thread.gmane.org/gmane.comp.file-systems.btrfs/20335
[11] http://git.kernel.org/linus/01f795f9e0d67adeccc61a8b20c28acb45fa5fd8
[12] http://article.gmane.org/gmane.comp.file-systems.ext4/34721
[13] http://git.kernel.org/linus/ba02e89915afcfc9a071a86e5cae32f77c7d353a
[14] http://git.kernel.org/linus/8544a9dc18a1aa787b85425ecc9233b0a9adaff4
[15] http://git.kernel.org/linus/f1cad2b68ed12c0f82d3f56e150691f62b6f5edf
[16] http://git.kernel.org/linus/c83057a1f4f987327c49448b046d9625c612ed8e
[17] http://git.kernel.org/linus/2ff8cc2c6d4e323de71a42affeb3041fa17d5b10
[18] http://git.kernel.org/linus/532a2a3fba8df076d65fdf17518eeb327b37a313
[19] http://git.kernel.org/linus/620125f2bf8ff0c4969b79653b54d7bcc9d40637
[20] http://git.kernel.org/linus/1b26d29ccd592ea585c7cc291384184c5568da92
[21] http://git.kernel.org/linus/65fe1f0f66a57380229a4ced844188103135f37b
[22] http://git.kernel.org/linus/6e7b429259fc0b7f2d9b1147466656b34d114815
[23] http://git.kernel.org/linus/865b58c05b841964f48f574c2027311bd04db8a1
[24] http://git.kernel.org/linus/4363ac7c13a9a4b763c6e8d9fdbfc2468f3b8ca4