Sistemas de Arquivos e Armazenamento
Autor: Thorsten Leemhuis / Copyright (c) 2012 Heise Media UK Ltd.
Tradução: Marcelo Soares Souza
Originalmente: http://h-online.com/-1440033
licenciado sobre Creative Commons 3.0 Brasil
O Btrfs e o MD oferecem novas maneiras de mudar arranjos RAIDs mantendo os dados intactos. O sistema de arquivo Ext4 agora pode ser expandido mais rapidamente. O kernel ganhou um driver para uma nova interface de armazenamento.
Para o Kernel Linux 3.3, os desenvolvedores fizeram muitas mudanças e adições ao código de balanceamento e "restriping", que reorganiza os dados dentro de volumes Btrfs (1[1], 2[2], 3[3], 4[4], 5[5], 6[6]); estas mudanças[7] permitirão que arranjos RAIDs, criados com Btrfs, migre - por exemplo, de RAID 1 para RAID 10. O novo código também permite que este tipo de migração seja pausado, cancelada e reiniciada após uma falha.
Existe agora apenas algumas poucas funcionalidades opcionais no Btrfs que podem ser compilada e usadas, por este sistema de arquivos ainda experimental, para a condução de testes de integridade durante o funcionamento do mesmo (1[8], 2[9]), isto ajuda a analisar situações que levem este sistema de arquivo a estados de inconsistência. O texto de ajuda[10] para a configuração desta funcionalidade alerta que isto é "perigoso" e não deve ser usado durante o dia-a-dia.
Expandindo
O código do Ext4 ganhou um novo mecanismo para o redimensionamento (por exemplo 1[13]). Com isto, não é apenas um programa mas o kernel em si que é responsável pelo redimensionamento de uma partição sobre o Ext4. De acordo com benchmarks[14], de um desenvolvedor que testou, uma versão inicial [15], o novo mecanismo precisa de apenas 3.5 segundos para redimensionar um driver de 20 GB para 230 GB; esta abordagem anteriormente precisava mais de 5 minutos. Porém, a nova técnica ainda não suporta algumas novas funcionalidades do Ext4, incluindo Big Allocations (Bigalloc), introduzido no Kernel Linux 3.2[16].
Tirando o Lixo
Os desenvolvedores do XFS removeram[17] a opção de montagem "nodelaylog". Este era usado para ativar um método antigo de operação para escrita de dados do log que o kernel não utiliza já a algum tempo. A nova abordagem, seus desenvolvedores dizem, corrige um problema de performance relacionado a escrita de metadados. Algumas informações sobre isto pode ser encontrado no vídeo "XFS: Recent and Future Adventures in Filesystem Scalability[18]" apresentação feita por Dave Chinner na linux.conf.au; LWN.net tem um sumário sobre a apresentação.
Reorganizando: Mdadm
O código MD, responsável por RAIDs por software, ganhou novas funções para copiar dados usados em um dispositivo de armazenamento para outro, assim o primeiro pode ser removido ao termino deste processo. Este "hot replace" reduz o perigo de perda de dados quando se troca discos que são parte de uma RAID, desde que evita a reconstrução (que cria uma nova versão dos dados redundantes em um novo volume de dados) que era anteriormente necessário para tal troca.
Uma reconstrução não é livre de risco, desde que os dados tem que ser lidos de um disco do volume de dados remanescente, que pode ter desenvolvido áreas corrompidas; em adição, exceto para RAID 6, não existe redundância durante a reconstrução. O kernel pode realizar um "hot replace" para RAID 1, 4, 5, 6, e 10. A versão atual do Mdadm ainda não suporta esta técnica; algumas dicas de como usar este pode ser encontrado em dois emails antigos dos desenvolvedores do MD e Mdadm (1[22], 2[23]).
Drivers de Armazenamento
Os desenvolvedores do Kernel Linux integraram[24] o driver ib_srpt, com o qual o kernel pode também usar o SRP[25] (Protocolo SCSI RDMA[26]) para funcionar como um host de armazenamento; o código por detrás utiliza o LIO (Linux-Iscsi.Org[27]) framework integrado na versão 2.6.38[28].
O kernel agora inclui um drive[29] para NVMe[30] – NVM (Non-Volatile Memory) Express (exemplo 1[31], 2[32]). Este é uma interface padrão definida a um ano atrás para acesso a unidades de armazenamento SSDs conectados a PCI ou PCIe; SATA Express, sucessor do SATA 6G[33], e que supostamente também usará conceitos de NVMe.
Um driver também foi [34] adicionado a camada de bloco para Micron's RealSSD PCIe e o driver lpfc Emulex LightPulse Fibre Channel SCSI agora suporta[35] loopback.
Diversos
Alguns poucos patches lançaram bases para métodos de congelamento de processos, assim estes podem ser transportados para outros sistemas e continuarem sendo executados ("checkpoint and restart" – "C/R"). Este incluem o diretório /proc/<pid>/map_files/ [36] usado para ler todos os arquivos e as áreas mapeadas em memória.
Administradores de sistemas podem usar as novas opções de montagem do Procfs[37] "hidepid=" e "gid=" para limitar o acesso a alguns diretórios /proc/<PID>/-. "hidepid=1", por exemplo, é possível impedir que um processo acesse informações de processos que não lhe pertence.
Mudanças no mapeamento de dispositivos SCSI corrigem uma vulnerabilidade[38] que pode, sobre algumas circunstâncias, ser usado por sistemas convidados KVM para acessar dados do sistema host (exemplo 1[39], 2[40]).
Aplicações podem usar o novo Ioctl para consultar[41] quando um volume de dados possui componentes rotacionais; a consulta através do Sysfs, continua funcionando.
Outras melhorias
Muitas pequenas melhorias nesta versão do Kernel, mas de forma alguma insignificantes, as mudanças podem ser encontrados na lista abaixo. Esta lista contém os cabeçalhos dos commits referindo as respectivas mudanças.
Sistemas de Arquivos
audit: dynamically allocate audit_names when not enough space is in the names array[43]
Btrfs: add allocator tracepoints[44]
Btrfs: generic data structure to build unique lists[45]
Btrfs: revamp clustered allocation logic[46]
ceph: enable/disable dentry complete flags via mount option[47]
ACL and FSCACHE support no longer EXPERIMENTAL[48]
configfs: convert to umode_t[49]
epoll: limit paths[50]
ext4: optimize ext4_find_delalloc_range() in nodelalloc mode[51]
fuse: support ioctl on directories[52]
GFS2: Add readahead to sequential directory traversal[53]
GFS2: dlm based recovery coordination[54]
move fs/partitions to block/[55]
NFSD: Added fault injection[56]
NFSD: Added fault injection documentation[57]
NFS: Retry mounting NFSROOT[58]
NFSv4: Change the default setting of the nfs4_disable_idmapping parameter[59]
proc: clean up and fix /proc/<pid>/mem handling[60]
procfs: parse mount options[61]
reiserfs: Properly display mount options in /proc/mounts[62]
Squashfs: Update documentation to include xattrs[63]
switch ->create() to umode_t[64]
switch debugfs to umode_t[65]
switch ->mknod() to umode_t[66]
switch vfs_mkdir() and ->mkdir() to umode_t[67]
sysfs: propagate umode_t[68]
vfs: switch ->show_options() to struct dentry *[69]
xfs: replace i_flock with a sleeping bitlock[70]
Armazenamento
mlx4_core: Added FW commands and their wrappers for supporting SRIOV[71]
mlx4_core: initial header-file changes for SRIOV support[72]
mlx4_core: mtt modifications for SRIOV[73]
SCSI: bfa: Implement LUN Masking feature using the SCSI Slave Callouts.[74]
SCSI: isci: enable wide port targets[75]
SCSI: isci, firmware: Remove isci fallback parameter blob and generator[76]
SCSI: isci: oem parameter format v1.3 (cable select)[77]
SCSI: isci: performance-fix, shorten default "no outbound task" timeout[78]
SCSI: isci: update version to 1.1[79]
SCSI: lpfc 8.3.28: Add support for ABTS failure handling[80]
SCSI: lpfc 8.3.28: Critical Miscellaneous fixes[81]
SCSI: lpfc 8.3.28: Miscellaneous fixes in sysfs and mgmt interfaces[82]
SCSI: lpfc 8.3.28: SLI fixes and added SLI4 support[83]
SCSI: lpfc 8.3.28: Update driver version to 8.3.28[84]
SCSI: MAINTAINERS: pvscsi maintainers update[85]
SCSI: megaraid_sas: Version and Changelog update[86]
SCSI: mpt2sas: Bump driver version to 11.100.00.00[87]
SCSI: mpt2sas: Increase max transfer support from 4MB to 16MB[88]
SCSI: mpt2sas: Support for greater than 2TB capacity WarpDrive[89]
SCSI: mptsas: Add device ID for SAS1068_820XELP.[90]
SCSI: qla2xxx: Implement FCP priority tagging for 82xx adapters.[91]
SCSI: qla2xxx: Update to dynamic logging.[92]
SCSI: qla4xxx: Update driver version to 5.02.00-k10[93]
SCSI: qla4xxx: Update driver version to 5.02.00-k11[94]
SCSI: qla4xxx: Update driver version to 5.02.00-k12[95]
Links deste artigo
[1] http://git.kernel.org/linus/f43ffb60fd9 ... de6653b916
[2] http://git.kernel.org/linus/0940ebf6b92 ... 3b75745da6
[3] http://git.kernel.org/linus/596410151ed ... 92796b256d
[4] http://git.kernel.org/linus/9555c6c1806 ... 47e06ed663
[5] http://git.kernel.org/linus/19a39dce3b9 ... f7605ff099
[6] http://git.kernel.org/linus/c9e9f97bdfb ... 4ac21cc9bc
[7] http://thread.gmane.org/gmane.linux.kernel/1240436
[8] http://git.kernel.org/linus/21adbd5cbb5 ... cb03c44546
[9] http://git.kernel.org/linus/5db0276014b ... af1c7d5b1a
[10] http://git.kernel.org/linus/c975dd469d7 ... 07c2398591
[11] http://thread.gmane.org/gmane.linux.kernel/1255125
[12] http://thread.gmane.org/gmane.linux.kernel/1250814
[13] http://git.kernel.org/linus/19c5246d251 ... 78c64b1454
[14] http://thread.gmane.org/gmane.comp.file ... ext4/29916
[15] http://thread.gmane.org/gmane.comp.file ... ext4/30024
[16] http://www.h-online.com/open/features/K ... 87311.html
[17] http://git.kernel.org/linus/93b8a5854f2 ... ccb62ff608
[18] http://www.youtube.com/watch?v=FegjLbCn ... Sq2HTgo1Pf
[19] http://lwn.net/Articles/476263/
[20] http://git.kernel.org/linus/2d78f8c4517 ... 96b59c69d8
[21] http://git.kernel.org/linus/671488cc25f ... df17a6ff69
[22] http://thread.gmane.org/gmane.linux.raid/35899
[23] http://thread.gmane.org/gmane.linux.raid/36067
[24] http://git.kernel.org/linus/a42d985bd5b ... 57bf7bb94d
[25] http://en.wikipedia.org/wiki/SCSI_RDMA_Protocol
[26] http://linux-iscsi.org/wiki/SCSI_RDMA_Protocol
[27] http://linux-iscsi.org/
[28] http://www.h-online.com/open/features/K ... 99926.html
[29] http://thread.gmane.org/gmane.linux.kernel/1240831
[30] http://www.nvmexpress.org/
[31] http://git.kernel.org/linus/b60503ba432 ... ad2c0c363d
[32] http://git.kernel.org/linus/366e8217e5e ... 3110fb4a98
[33] http://en.wikipedia.org/wiki/Serial_ATA ... bit.2Fs.29
[34] http://git.kernel.org/linus/88523a61558 ... 755d8e7005
[35] http://git.kernel.org/linus/1b51197d0fd ... 4008a7fc60
[36] http://git.kernel.org/linus/640708a2cff ... e6ece7e53e
[37] http://git.kernel.org/linus/0499680a421 ... 806bea1201
[38] http://www.h-online.com/news/item/Host- ... 02022.html
[39] http://git.kernel.org/linus/0bfc96cb772 ... b3646ef35e
[40] http://git.kernel.org/linus/ec8013beddd ... 0deef85462
[41] http://git.kernel.org/linus/ef00f59c95f ... 65e253f4cc
[42] http://www.h-online.com/open/features/K ... 21959.html
[43] http://git.kernel.org/linus/5195d8e217a ... 063a022465
[44] http://git.kernel.org/linus/3f7de037fb3 ... 88b702394c
[45] http://git.kernel.org/linus/da5c8135642 ... b1b37f079d
[46] http://git.kernel.org/linus/1bb91902dc9 ... 05cb08fbe5
[47] http://git.kernel.org/linus/a40dc6cc2e1 ... 7763df510c
[48] http://git.kernel.org/linus/c56001879bc ... bea63c3012
[49] http://git.kernel.org/linus/439475140be ... 9862341ae4
[50] http://git.kernel.org/linus/28d82dc1c4e ... 24d1fe61de
[51] http://git.kernel.org/linus/8c48f7e88e2 ... ea85d30b22
[52] http://git.kernel.org/linus/b18da0c56e9 ... e720964151
[53] http://git.kernel.org/linus/dfe4d34b39b ... 23da7581bf
[54] http://git.kernel.org/linus/e0c2a9aa1e6 ... caff073666
[55] http://git.kernel.org/linus/9be96f3fd10 ... 2465bcced3
[56] http://git.kernel.org/linus/65178db42a0 ... e9952d8e01
[57] http://git.kernel.org/linus/114a0a08d46 ... 7f57bfc5ba
[58] http://git.kernel.org/linus/43717c7daeb ... 3095bb1ba5
[59] http://git.kernel.org/linus/074b1d12fe2 ... 674b30d84c
[60] http://git.kernel.org/linus/e268337dfe2 ... 7977a3cccc
[61] http://git.kernel.org/linus/97412950b10 ... 5c2465adf6
[62] http://git.kernel.org/linus/c3aa077648e ... 34647db853
[63] http://git.kernel.org/linus/89cab5b5727 ... 5b10e3eda5
[64] http://git.kernel.org/linus/4acdaf27ebe ... ed1ad885ef
[65] http://git.kernel.org/linus/f4ae40a6a50 ... 5e926a473e
[66] http://git.kernel.org/linus/1a67aafb5f7 ... e6351d6a35
[67] http://git.kernel.org/linus/18bb1db3e76 ... a5b0f8722c
[68] http://git.kernel.org/linus/faef2b6c996 ... 8ec6bb7928
[69] http://git.kernel.org/linus/34c80b1d93e ... b5510d92d4
[70] http://git.kernel.org/linus/474fce06752 ... e81c2d31bf
[71] http://git.kernel.org/linus/5cc914f1085 ... 0adcbecbcd
[72] http://git.kernel.org/linus/623ed84b1f9 ... aa6f27ecd1
[73] http://git.kernel.org/linus/ea51b377abc ... 3bda69afb1
[74] http://git.kernel.org/linus/5b7db7af522 ... bea2206b27
[75] http://git.kernel.org/linus/7e629841b8f ... b0a3282225
[76] http://git.kernel.org/linus/7d99b3abaf8 ... 8326d61f8b
[77] http://git.kernel.org/linus/9fee607f0b2 ... 21dff10d66
[78] http://git.kernel.org/linus/6024d38b86e ... 765870d444
[79] http://git.kernel.org/linus/d3fd2e2bc29 ... 59003461c3
[80] http://git.kernel.org/linus/cb69f7decc3 ... 9df288c7bb
[81] http://git.kernel.org/linus/2e90f4b5a2a ... bd0a62522b
[82] http://git.kernel.org/linus/026abb87a55 ... e356b6351e
[83] http://git.kernel.org/linus/ff78d8f97c8 ... 71db45b923
[84] http://git.kernel.org/linus/5c41dc3a791 ... 61be8281a1
[85] http://git.kernel.org/linus/f2d7e40e806 ... 412f53c7d1
[86] http://git.kernel.org/linus/798edaadba9 ... 05d75a3af1
[87] http://git.kernel.org/linus/7509d6bb955 ... f839470bf8
[88] http://git.kernel.org/linus/9ac49d3a510 ... 9b341b5794
[89] http://git.kernel.org/linus/ba96bd0b1d4 ... c8f46b0fe7
[90] http://git.kernel.org/linus/85d37226fb5 ... 29bd6bb3cd
[91] http://git.kernel.org/linus/a00f6296aaf ... 10992a33c4
[92] http://git.kernel.org/linus/cfb0919c12a ... bdd44ebb90
[93] http://git.kernel.org/linus/7b12859ae47 ... 26d9ee03df
[94] http://git.kernel.org/linus/3a19cbf5306 ... 61f70c6b71
[95] http://git.kernel.org/linus/19b628dfc60 ... 8932d28929
[96] http://git.kernel.org/linus/90c161b643d ... 8b49172d8a
[97] http://www.h-online.com/open/features/L ... 40083.html
[98] http://www.h-online.com/search/?sort=d; ... kernel-log
[99] http://www.h-online.com/open/
[100] http://www.h-online.com/open/features/T ... 21120.html
[101] http://identi.ca/kernellog2
[102] http://twitter.com/#!/kernellog2
[103] http://identi.ca/kernellogauthor
[104] http://twitter.com/#!/kernellogauthor
Caso tenha gostado do post, por favor, prestigie a fonte para este e outros assuntos afins o agradece sua preferência, volte sempre!
ORIGEM CRIACIONAL: Marcelo Junta Dados
Vivamos a LIBERDADE com total DIGNIDADE!