Ir para o conteúdo
ou

Software livre Brasil

 Voltar a Blog do Marc...
Tela cheia

Em breve no Kernel Linux 3.2 - Parte 2 - Sistemas de Arquivos

30 de Novembro de 2011, 0:00 , por Software Livre Brasil - 0sem comentários ainda | Ninguém está seguindo este artigo ainda.
Visualizado 378 vezes

Tux NewsAutor: Thorsten Leemhuis / Copyright © 2011 Heise Media UK Ltd.
Traduzido: Marcelo Soares Souza
Originalmente: http://h-online.com/-1387311

Um grande número de mudanças no Btrfs possibilita que a estrutura deste sistema de arquivo não seja tão propenso à corrupção em caso de falha no sistema. Ao construir blocos em clusters, o Ext4 pode se tornar muito mais rápido em alguns cenários. CIFS também promete ganhos de performance.
 
Semana passada, durante o Dia de Ação de Graças (Thanksgiving Day), Linus Torvalds disponibilizou[1] o terceiro candidato de lançamento da versão 3.2 do Kernel Linux. Os commits desde a RC2, de acordo com Torvalds, estão, em sua maioria, pequenos e razoáveis, embora haja "certamente mais agitação" do que ele gostaria.
 
Torvalds prevê que o lançamento da quarte prévia ocorrera no final desta semana ou no inicio da próxima, com o lançamento final previsto para meados de Janeiro. Sobre a luz do desenvolvimento em curso no Kernel Linux 3.2, O Kernel Log continua sua série "Em Breve no Kernel Linux 3.2" descrevendo novas funcionalidade na área de sistema de arquivos. O primeiro artigo da série demonstrou as mudanças nos drivers e infraestrutura de rede[2]; artigos sobre arquitetura, infraestrutura e drivers para outros dispositivos surgirão nas próximas semanas.
 
Grandes Blocos
 
O sistema de arquivos Ext4 agora suporta alocação de grandes blocos (ex. 1[3], 2[4], 3[5]). A técnica, conhecida como bigalloc, agrega blocos de 4K para armazenar dados em clusters de até 1 MB. Isto reduz o overhead (sobrecarga) de administração quando se grava arquivos grandes e deve aumentar significamente a performance[6] em alguns cenários. Porém também é mais dispendioso no uso do espaço de armazenamento, desde que cada arquivo ocupa pelo menos um cluster. O bigalloc pode ser usado com a nova versão do E2fsprogs 1.42[7][8]; para isto você precisa criar um sistema de arquivos usando o comando mkfs.ext4 definindo o tamanho do cluster com o argumento '-C'.
 
Para a versão 3.2, o desenvolvedor do sistema de arquivo Ext Theodore 'tytso' Ts'o removeu um antigo algorítimo para alocação de blocos de memória (Ext3[9], Ext4[10]). Ele também fez muitas mudanças [11] que devem fazer o Ext4 reagir melhor se o usuário especificar opções mutuamente incompatíveis de montagem. Em uma apresentação recente na LinuxCon Europe 2011[12], Ts'o observou que o Ext4 é estável com uma configuração padrão (ex. opções de montagem padrões com ou sem journal), mas que problemas são possíveis ou mesmo prováveis com algumas combinações de opções de montagem incomuns (ex. salvar o journal em outro disco). Extensos testes de integridade, com todas as combinações possíveis é, como observou, praticamente impossível. Ele, no entanto, quer trabalhar para reduzir o número de opções.
 
O slide da apresentação do Ts'o ainda não foi disponibilizado no site da conferência[13]. O site porém, contém alguns PDFs com informação sobre os recentes desenvolvimento no Ext4 e Btrfs discutido na apresentação "The Ongoing Evolution of Ext4: New Features and Performance Enhancements[14]"PDF de Lukas Czerner e "Quo vadis Linux File Systems: An Operations Point of View on Ext4 and Btrfs[15]"PDF de Udo Seidel.
 
Mais robustez
 
Os desenvolvedores adicionaram[16] funções readahead para o, ainda experimental, sistema de arquivos Btrfs. Suporte a Scrub[17], introduzido no Linux 3.0[18], foi aprimorado [19] e deve ficar um pouco mais rápido - quando este encontra blocos danificados, a função scrub retorna o nome do arquivo que foi alocado a aquele espaço. Btrfs irá agora automaticamente ajustar a tabela de alocação sem um scrub rodar explicitamente em situações onde este encontrar erro de leitura, mas pode preencher a requisição de leitura em uma segunda copia dos dados.
 
Se o nó raiz, um componente chave no Btrfs, é danificado, a nova opção de montagem "-o recovery" [20] pode ser usado para instruir o sistema de arquivo para usar um nó raiz alternativo. O kernel então irá tentar um antigo nó raiz e montar um sistema de arquivo em um estado antigo, permitindo o usuário resgatar qualquer dado que possa ser acessado através deste método.
 
Mudanças na função de log interna, que buscava aprimorar a performance do Btrfs, inesperadamente foram omitidas do 3.2 em resposta a um problema surgido no último momento. Chris Mason explica o problema na sua requisição de git pull[21], na qual ele também fala sobre outras melhorias adicionadas no Kernel Linux 3.2. Uma segunda requisição trouxe um grande número de mudanças na RC3; lá Manson menciona [22] correções (por exemplo: 1[23]) para problemas que podem levam ao corrompimento em caso de falha do sistema ou falha de energia em alguns casos.
 
Diversos
 
Um grande número de mudanças no código do sistema de arquivos CIFS, responsável pelo acesso aos compartilhamentos Samba ou Windows, melhoram significamente o volume de transmissão de dados em algumas situações (1[25], 2[26], 3[27]).
 
O Objects Raid Engine (ORE) no Exofs irá suportar RAID 5 (1[29], 2[30], 3[31]). Exofs (EXtended Object File System) foi desenvolvido para dispositivos de armazenamento de objetos. Este é a terceira implementação no Kernel de [32] RAID 5. É esperado que o Btrfs, eventualmente, ofereça suporte a RAID 5.
 
Na relato de atualização do XFS em Outubro de 2011[33], Christoph Hellwig descreve algumas melhorias no XFS, incluindo otimizações quando se executa o fsync(2) em diretórios[34] e redução de latência com o sync(2).
 
Outras Pequenas melhorias
 
Muitas pequenas melhorias nesta versão do Kernel, mas de forma alguma insignificante, as mudanças podem ser encontrados na lista abaixo. Esta lista contém os cabeçalhos dos commits referindo as respectivas mudanças.
 
Btrfs

  •  Btrfs: add a log of past tree roots[36]
  •  Btrfs: allow us to overcommit our enospc reservations[37]
  •  Btrfs: don't wait as long for more batches during SSD log commit[38]
  •  Btrfs: inline checksums into the disk free space cache[39]
  •  Btrfs: introduce mount option no_space_cache[40]
  •  Btrfs: stop using write_one_page[41]

 Família Ext

  •  ext4: add ext4-specific kludge to avoid an oops after the disk disappears[42]
  •  ext4: Add new ext4_discard_partial_page_buffers routines[43]
  •  ext4: add some tracepoints in ext4/extents.c[44]
  •  ext4: documentation: remove acl and user_xattr mount options[45]
  •  ext4: fake direct I/O mode for data=journal[46]
  •  ext4: fix 2nd xfstests 127 punch hole failure[47]
  •  ext4: fix xfstests 75, 112, 127 punch hole failure[48]

 Vários

  •  9p: fix 9p.txt to advertise msize instead of maxdata[49]
  •  Add definition for share encryption[50]
  •  add new module parameter 'enable_oplocks'[51]
  •  aio: allocate kiocbs in batches[52]
  •  ceph: document ioctls[53]
  •  ceph: use kernel DNS resolver[54]
  •  cifs: Add data structures and functions for uid/gid to SID mapping (try #4)[55]
  •  cifs: Add mount options for backup intent (try #6)[56]
  •  cifs: Display strictcache mount option in /proc/mounts[57]
  •  CIFS: Implement caching mechanism for mandatory brlocks[58]
  •  CIFS: Implement caching mechanism for posix brlocks[59]
  •  [CIFS] Show nostrictsync and noperm mount options in /proc/mounts[60]
  •  [CIFS] Update cifs version to 1.76[61]
  •  cifs: update README about the kernel module parameters[62]
  •  cifs: warn about deprecation of /proc/fs/cifs/OplockEnabled interface[63]
  •  fs/9p: Update zero-copy implementation in 9p[64]
  •  GFS2: speed up delete/unlink performance for large files[65]
  •  isofs: add readpages support[66]
  •  MAINTAINERS: update XFS maintainer entry[67]
  •  net/9p: Convert net/9p protocol dumps to tracepoints[68]
  •  nfsd4: implement new 4.1 open reclaim types[69]
  •  pnfs-obj: move to ore 02: move to ORE[70]
  •  Squashfs: Add an option to set dev block size to 4K[71]
  •  udf: Add readpages support for udf.[72]
  •  vfs: add "device" tag to /proc/self/mountstats[73]
  •  vfs: add d_prune dentry operation[74]
  •  xfs: optimize fsync on directories[75]

 Links
[1] http://thread.gmane.org/gmane.linux.kernel/1220028
[2] http://www.h-online.com/open/features/Kernel-Log-Coming-in-3-2-Part-1-Networking-1379085.html
[3] http://git.kernel.org/linus/53accfa9f819c80056db6f03f9c5cfa4bcba1ed8
[4] http://git.kernel.org/linus/281b59959707dfae03ce038cdf231bf4904e170c
[5] http://git.kernel.org/linus/6f16b60690ba04cf476480a6f19b204e4b95b4a6
[6] http://thread.gmane.org/gmane.comp.file-systems.ext4/26666
[7] http://e2fsprogs.sourceforge.net/e2fsprogs-release.html#1.42
[8] http://e2fsprogs.sourceforge.net/
[9] http://git.kernel.org/linus/fbc854027c91fa2813ae7f9de43cc0b5c1119f41
[10] http://git.kernel.org/linus/4113c4caa4f355b8ff8b7ff0510c29c9d00d30b3
[11] http://git.kernel.org/linus/56889787cfa77dfd96f0b3a3e6a4f26c2e4a5134
[12] https://events.linuxfoundation.org/events/linuxcon-europe
[13] https://events.linuxfoundation.org/events/linuxcon-europe/slides
[14] https://events.linuxfoundation.org/images/stories/pdf/lceu11_czerner1.pdf
[15] https://events.linuxfoundation.org/images/stories/pdf/lceu11_seidel.pdf
[16] http://git.kernel.org/linus/7414a03fbf9e75fbbf2a3c16828cd862e572aa44
[17] http://www.h-online.com/open/features/Kernel-Log-Coming-in-3-0-Part-2-Filesystems-1263681.html
[18] http://www.h-online.com/open/features/What-s-new-in-Linux-3-0-1279552.html
[19] http://git.kernel.org/linus/7a26285eea8eb92e0088db011571d887d4551b0f
[20] http://git.kernel.org/linus/af31f5e5b84b5bf2bcec464153a5130b170b2770
[21] http://thread.gmane.org/gmane.linux.kernel/1211681
[22] http://thread.gmane.org/gmane.linux.kernel/1218615
[23] http://git.kernel.org/linus/387125fc722a8ed432066b85a552917343bdafca
[24] http://thread.gmane.org/gmane.linux.kernel.cifs/4696
[25] http://git.kernel.org/linus/e28bc5b1fdbd6e850488234d6072e6b66fc46146
[26] http://git.kernel.org/linus/9ee305b70e09f5132c9723780ce10e69710b8bca
[27] http://git.kernel.org/linus/32b9aaf1a53b3c8d435f86339b01b3968520cb0a
[28] http://thread.gmane.org/gmane.linux.nfs/44365
[29] http://git.kernel.org/linus/a1fec1dbbc8db974d2582e4040590cebe72171e4
[30] http://git.kernel.org/linus/769ba8d92025fa390f3097e658b8ed6e032d68e9
[31] http://git.kernel.org/linus/44231e686b2ba3b5702db867bb84e6d76b7cf2c7
[32] http://lwn.net/Articles/463575/
[33] http://thread.gmane.org/gmane.linux.kernel/1211509
[34] http://git.kernel.org/linus/1da2f2dbf2d2aaa1b0f6ca2f61fcf07e24eb659b
[35] http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=summary
[36] http://git.kernel.org/linus/af31f5e5b84b5bf2bcec464153a5130b170b2770
[37] http://git.kernel.org/linus/2bf64758fd6290797a5ce97d4b9c698a4ed1cbad
[38] http://git.kernel.org/linus/cd354ad613a393424f85333ceed6b15e07fb94ae
[39] http://git.kernel.org/linus/5b0e95bf607ddd59b39f52d3d55e6581c817b530
[40] http://git.kernel.org/linus/73bc187680f94bed498f8a669103cad290e41180
[41] http://git.kernel.org/linus/1728366efa5ebf48bd2ed544afa8700cd07ba822
[42] http://git.kernel.org/linus/7c2e70879fc0949b4220ee61b7c4553f6976a94d
[43] http://git.kernel.org/linus/4e96b2dbbf1d7e81f22047a50f862555a6cb87cb
[44] http://git.kernel.org/linus/d8990240d8c911064447f8aa5a440f9345a6d692
[45] http://git.kernel.org/linus/af909a57fde821627282204ba43f27331342bf26
[46] http://git.kernel.org/linus/84ebd795613488992b273220c2937d575d27d2a9
[47] http://git.kernel.org/linus/2be4751b21ae1cacb002da48cfc5bf6743fee8c1
[48] http://git.kernel.org/linus/ba06208a1315ab2d2217e09c79582b886c9f629e
[49] http://git.kernel.org/linus/14211d026dad4641d4dffd7a4c520bcaa8fd4a65
[50] http://git.kernel.org/linus/96814ecb404d587fade79af70bb741bc753e9ffb
[51] http://git.kernel.org/linus/e75047344ea415760b2508a6fa29c0288c7b6b68
[52] http://git.kernel.org/linus/080d676de095a14ecba14c0b9a91acb5bbb634df
[53] http://git.kernel.org/linus/6a8ea4706adb4b4d8f77a8da5f9778b65fbf6f48
[54] http://git.kernel.org/linus/ee3b56f265cafb28c9a1b58faed4f1dbdf51af86
[55] http://git.kernel.org/linus/21fed0d5b763b94a7d1568c27d0cce892ab8d43e
[56] http://git.kernel.org/linus/3d3ea8e64efbeb3e4289675dbbfab82333395642
[57] http://git.kernel.org/linus/875cd04381e695afbbbef025438113e12af84963
[58] http://git.kernel.org/linus/85160e03a79e0d7f9082e61f6a784abc6f402701
[59] http://git.kernel.org/linus/4f6bcec910d45e4f46b1514977caa529bc69e645
[60] http://git.kernel.org/linus/71c424bac5679200e272357a225639da8bf94068
[61] http://git.kernel.org/linus/8ea00c6977d8b1463ee86d6689c8ef35ee2529a0
[62] http://git.kernel.org/linus/c9c4708fdf63d26e3fdfc65bba9e82e654cae285
[63] http://git.kernel.org/linus/8bc4392a1e50f346e97f8777aaefd9cfc3d45c9f
[64] http://git.kernel.org/linus/abfa034e4b8ed0046fa589769e9840af645bc4ba
[65] http://git.kernel.org/linus/bd5437a7d4307a35f2c7cc19cad706ec0e5d61f0
[66] http://git.kernel.org/linus/3069083cc8def2ffad8520f0f24c6f95f140aac5
[67] http://git.kernel.org/linus/c8891329131f791e0ddc422eaf6fc86e9a8cf8f5
[68] http://git.kernel.org/linus/348b59012e5c6402741d067cf6eeeb6271999d06
[69] http://git.kernel.org/linus/8b289b2c2355c3bea75f3e499b4aa251a3191382
[70] http://git.kernel.org/linus/eecfc6312a24e6d0d2883de0a9a6ccf8e993f472
[71] http://git.kernel.org/linus/7657cacf478940b995c2c73fdff981c13cc62c5c
[72] http://git.kernel.org/linus/bc1123239ab950798779ca4e23228afb5443eb5d
[73] http://git.kernel.org/linus/a877ee03ac010ded434b77f7831f43cbb1fcc60f
[74] http://git.kernel.org/linus/f0023bc617ba600956b9226f1806033d7486c8ba
[75] http://git.kernel.org/linus/1da2f2dbf2d2aaa1b0f6ca2f61fcf07e24eb659b
[76] http://www.h-online.com/open/features/Linux-Kernel-3-2-Tracking-1379114.html
[77] http://www.h-online.com/search/?sort=d&rm=search&mediatype=3&q=kernel-log
[78] http://www.h-online.com/open/
[79] http://www.h-online.com/open/features/The-H-s-Linux-Kernel-History-1221120.html
[80] http://identi.ca/kernellog2
[81] http://twitter.com/#!/kernellog2
[82] http://identi.ca/kernellogauthor
[83] http://twitter.com/#!/kernellogauthor


Tags deste artigo: kernel linux software livre

0sem comentários ainda

Enviar um comentário

Os campos são obrigatórios.

Se você é um usuário registrado, pode se identificar e ser reconhecido automaticamente.