terça-feira, 19 de abril de 2011

As futuras tecnologias de armazenamento no Linux

A sessão de abertura do segundo dia da oficina Linux Filesystem, Storage, and Memory Management 2011 foi conduzida por Michael Cornwall, diretor global de padrões de tecnologia da IDEMA, uma organização de padrões para fabricantes de unidades de disco. Há treze anos, quando trabalhava como fabricante de hardware, Michael não sabia com quem falar na comunidade Linux para contar com suporte para o hardware de sua empresa. Anos depois, o problema ainda existe: não é fácil para a indústria de hardware trabalhar com a comunidade Linux, e com isso o Linux acaba tendo bem menos influência do que deveria. A apresentação de Michael tratou das futuras mudanças na indústria do armazenamento, e de como a comunidade Linux pode se envolver para melhorar as coisas.



A International Disk Drive Equipment and Materials Association trabalha para padronizar as unidades de disco e os muitos componentes encontrados nelas. Há quem diga que as unidades de disco de armazenamento rotativo já estão "de saída", mas o fato é que 650 milhões de unidades foram vendidas no ano passado (um recorde), e a ideia é vender um bilhão em 2015. Essa indústria não vai morrer tão cedo. E quem conduz os rumos dessa indústria? Segundo Michael, quatro empresas: Dell, Microsoft, HP e EMC. Três dessas empresas vendem Linux, mas o Linux não está representado no planejamento da indústria.
Muita gente ficaria surpresa em saber de quanta coisa está incluída nas unidades contemporâneas. Geralmente temos um processador ARM de mais de um núcleo, semelhante aos que encontramos em celulares, e até 1 GB de RAM. Esse processador ARM é habilidoso, mas depende da ajuda de um bocado de hardware dedicado; circuitos especiais lidam com geração e verificação de código de correção de erros, implementação de protocolos, gerenciamento de buffer, detecção de E/S sequencial e por aí vai. As unidades de disco são pequenos computadores rodando sistemas operacionais próprios.
A interface de programação das unidades de disco não mudou nos últimos vinte anos: elas ainda oferecem uma matriz de blocos de acesso aleatório de 512 bytes, acessados por endereços de blocos lógicos. O maior problema para o software é: como fazer para mover as cabeças o mínimo possível? O hardware avançou muito ao longo dos anos, mas continua preso a uma "arquitetura arcaica de programação". Mas essa arquitetura vai ter que mudar nos próximos anos.
A primeira mudança expressiva se chama "formato avançado", termo pomposo cunhando para as unidades com setores de 4 KB. Christoph Hellwig aproveitou a oportunidade para dizer que queria conversar com o marketeiro que bolou esse nome. Estamos todos torcendo para que a conversa se dê em uma lista pública, para que possamos acompanhar. O motivador da mudança para setores de 4 KB é a maior eficiência do código de correção de erros, ou ECC. Usando o ECC para proteger setores maiores, os fabricantes podem obter um ganho de 20% em capacidade.
O desenvolvedor que encabeça o suporte aos discos de 4 KB no Linux, Martin Petersen, se queixou do fato de ser quase impossível trabalhar em novas tecnologias com a indústria. Os protótipos dos fabricantes funcionaram no Linux, mas a primeira unidade de produção não. Mesmo com seu "chapéu Oracle de uma tonelada" ele pena para conseguir respostas dos fabricantes. "Bem-vindo ao ramo dos discos rígidos", Michael respondeu bem-humorado. Ele disse que é preciso haver um programa de certificação Linux para hardware, provavelmente orientado pela Red Hat para poder ser levado a sério pela indústria. Outros concordaram com a ideia, acrescentando que para o programa ser realmente eficaz, fabricantes como Dell e HP teriam que começar a exigir certificação Linux de seus fornecedores.
Unidades com setores de 4 KB apresentam uma série de desafios interessantes além do tamanho aumentado dos setores. O Windows 2000 não consegue alinhar partições corretamente nessas unidades, então alguns fabricantes criaram unidades de alinhamento especiais para compensar. Outros ainda trabalham com alinhamento normal, e nem sempre é fácil diferenciar os dois tipos. Enquanto isso, em resposta às solicitações da Microsoft e da Dell, os fabricantes estão começando a produzir unidades de 4 KB que não emulam setores de 512 bytes. Logo, há uma ampla variedade de hardware para suportar. Há um kit de avaliação disponível para os desenvolvedores dispostos a trabalhar com as novas unidades.
A próxima etapa seria formada pelas "unidades híbridas", que combinam armazenamento rotativo e flash no mesmo pacote. A primeira geração dessas unidades não se saiu muito bem no mercado. É evidente que o Windows assumiu o controle da parte Flash da unidade, arruinando seu propósito original, fazendo com que ninguém perceba ganhos de desempenho reais. Há uma segunda geração a caminho que pode se sair melhor: ela conta com mais armazenamento flash (de 8 a 64 GB) e não permite que o sistema operacional se meta com ela, o que deve melhorar o desempenho.
Ted Ts'o expressou a preocupação de que essas unidades possam ser otimizadas para sistemas de arquivos como VFAT ou NTFS. Essas otimizações não costumam funcionar bem com outros sistemas de arquivos. Michael respondeu que isso é parte de um problema maior: os sistemas de arquivos do Linux não têm visibilidade entre os fabricantes. Se os fabricantes tivessem motivos para dar suporte ao ext4 ou ao btrfs, eles o fariam. Afinal, é relativamente fácil para a unidade de disco consultar a tabela de partições e descobrir com qual tipo de sistema de arquivos está lidando. Acontece que os fornecedores não fazem ideia do tamanho da demanda para sistemas de arquivos do Linux, então parece que o suporte não vai pintar tão cedo.
Indo um pouco além, temos o "SMR", uma tecnologia que elimina o espaço normal entre faixas adjacentes no disco, levando a mais um ganho de 20% de capacidade. Mas esse espaço não existe à toa: ele permite que uma faixa seja gravada sem corromper a faixa adjacente. Logo, uma unidade SMR não pode reescrever uma faixa; tem que reescrever todas as faixas naquela região. De acordo com Michael, isso significa que grandes escritas sequenciais devem ter um desempenho razoável, mas que as pequenas e aleatórias podem se sair muito mal.
A indústria ainda está tentando descobrir como fazer o SMR funcionar bem. Uma possibilidade seria criar algumas regiões mais espaçadas na unidade. As escritas seguiriam primeiro para essas regiões, para depois serem transferidas para as regiões compactas em segundo plano. Isso exigiria a inclusão de uma tabela de mapeamento para que a verdadeira localização de cada bloco fosse descoberta. Essa ideia causou uma certa preocupação no público. Como os padrões de E/S podem ser otimizados se as conexões entre os endereços de blocos lógicos e a localização no disco não existe mais?
A resposta parece ser a de que, conforme a unidade reescreve os dados, ela vá colocando-os em algo que lembre sua ordem natural e faça a desfragmentação. O processo todo depende da unidade ter tempo ocioso suficiente para cuidar do trabalho de reescrita; dizem que a maioria das unidades fica ociosa 90% do tempo, então isso não seria um problema. A computação em nuvem e a virtualização podem tornar isso mais complicado, já que seu propósito é o de maximizar a utilização do hardware. Mas os fabricantes de hardware parecem acreditar que vai dar certo.
Michael apresentou quatro opções diferentes para programar interfaces para unidades SMR. A primeira é a tradicional emulação de disco rígido com remapeamento que já foi descrita acima; essas unidades funcionarão em todos os sistemas, mas podem ter problemas de desempenho. Outra possibilidade é o "SMR de bloco grande", uma unidade que faça todas as transferências em blocos grandes (com 32 MB de cada vez, por exemplo). Essas unidades não seriam adequadas a todos os fins, mas poderiam funcionar bem em gravadores de vídeo digital ou em backups. A terceira opção é "emulação com dicas", onde o sistema operacional poderia indicar quais blocos deveriam ser armazenados juntos na mídia física. Finalmente, há a abordagem de armazenamento total de objeto, onde a unidade tem conhecimento dos objetos lógicos (arquivos) e tenta armazená-los de forma contígua.
E essas unidades vão funcionar bem no Linux? É difícil dizer, já que o Linux não tem representação no comitê técnico do SMR. Essas unidades chegarão ao mercado em 2012 ou 2013, então essa é a hora de tentar ter alguma influência em seu desenvolvimento. Dizem que o comitê é relativamente aberto, com listas de discussão abertas, sem contratos de sigilo e sem a exigência de licenciamento das opressivas patentes. Não deve ser difícil para os desenvolvedores do Linux tomarem parte nisso.
Além do SMR, existe o conceito de RAM não volátil (NV-RAM). Um dispositivo NV-RAM é uma matriz de RAM dinâmica tradicional combinada a uma matriz flash de mesmo tamanho e a uma placa cheia de capacitores. Ela opera como RAM normal, mas quando falta energia, a carga dos capacitores é usada para copiar os dados da RAM para a memória flash; esses dados são restaurados quando a energia volta. Sistemas de armazenamento de alta tecnologia usam NV-RAM há algum tempo, mas agora ela está sendo direcionada a um mercado mais amplo.
No momento, os dispositivos NV-RAM se apresentam em três formas. A primeira lembra uma unidade de disco tradicional; a segunda é uma placa PCI-Express com um driver de bloco especial; a terceira é a "NV-DIMM", que se conecta diretamente ao barramento de memória do sistema. A NV-DIMM tem muito potencial, mas é a mais difícil para se oferecer suporte. Ela exige, por exemplo, um BIOS que entenda o dispositivo, e que não destrua seu conteúdo com o teste de memória na inicialização. Não dá para embutir isso em qualquer computador.
Indo mais além no futuro, em 2015 deve aparecer a memória realmente não volátil. Como vamos interagir com ela, perguntou Michael, e como vamos garantir que a arquitetura esteja certa? A Dell e a Microsoft pediram unidades de disco com setores de 4 KB, e conseguiram. O que Michael quer saber é, o que a comunidade Linux quer? Ele recomenda que a comunidade do kernel forme um comitê de cinco pessoas para conversar com a indústria de unidades de disco rígido. É preciso haver uma lista de desenvolvedores que irão receber amostras de hardware. E o mais importante, precisamos ter uma ideia bem estabelecida do que queremos. Com tudo isso, a indústria pode muito bem começar a ouvir a comunidade Linux, o que seria ótimo.
Créditos a Jonathan Corbet - lwn.net
Tradução por Roberto Bechtlufft <info at bechtranslations.com.br>

Nenhum comentário:

Postar um comentário