• Главная
  • Карта сайта
Не найдено

Elementos básicos da Flash Virtualization Platform (FVP), parte 2. Usando sua própria plataforma ou sistema de arquivos

Um dos tópicos que discuti com Satyam e Murali Vilayannur foi o sistema de arquivos usado para armazenar dados em dispositivos flash. Os seguintes fatos dignos de nota devem ser mantidos em mente: A Satyam criou o VMFS3, a Murali foi o desenvolvedor líder do VMFS5. Deste ponto de vista, o uso do VMFS parece óbvio. No entanto, a grande surpresa para mim foi o fato de que, para os dispositivos flash, não usamos o VMFS, uma surpresa ainda maior é que não usamos o sistema de arquivos.

Por que não VMFS?
Os sistemas de arquivos fornecem recursos que não são necessários e às vezes até conflitam com os requisitos da plataforma que processa a E / S ativa em dispositivos flash. Um dos maiores problemas com o uso de um sistema de arquivos semelhante ao VMFS em um dispositivo flash é que ele é otimizado para sistemas de armazenamento SAN e seus modelos de gerenciamento de dados; A Satyam escreveu um artigo sobre isso para o ACM enquanto trabalhava no VMware. Infelizmente, isso torna o sistema de arquivos uma ferramenta inadequada para tarefas de FVP.

Os sistemas de arquivos de endereço direto sobrecarregam os dispositivos flash, reduzindo sua vida útil, não processam de forma ideal operações arbitrárias de E / S, testam seus algoritmos de coleta de lixo (geralmente muito frágeis) e seus objetos (arquivos e diretórios) são menos adequados nível de máquina virtual e gerenciamento de qualidade de serviço, o que é extremamente importante para as tarefas de FVP. A próxima seção detalhará o problema do gerenciamento de dados em dispositivos flash, mas por enquanto uma breve conclusão: se o seu dispositivo flash for caro para você, não coloque nele um sistema de arquivos de endereçamento direto.

Os sistemas de arquivos também fornecem recursos que excedem em muito as necessidades do FVP. Por exemplo, bloqueios de disco. O VMFS possui um gerenciador avançado de bloqueio distribuído que controla o acesso de diferentes hosts ESXi aos discos. O FVP gerencia os discos locais do host e não requer bloqueios em outros hosts; como resultado, o gerenciador de bloqueio distribuído se torna completamente supérfluo. O mesmo pode ser dito sobre compatibilidade POSIX e transações distribuídas. E assim por diante.

Operações de flash de baixo nível
Veja um exemplo de como a gravação em dispositivos flash é fundamentalmente diferente das gravações em discos rígidos. O Flash não pode sobrescrever os dados existentes. Os dados na memória flash podem ser gravados apenas em uma página em branco. Um recurso da memória flash é que a gravação pode ser feita por páginas, e o apagamento pode ser feito somente em blocos. O que é uma página e o que é um bloco? O Flash armazena dados nas células; as células são combinadas em páginas (4 KB); as páginas são agrupadas em blocos. A maioria dos fabricantes combina 128 páginas em um bloco. Se você quiser apagar a página, então você precisa apagar o bloco inteiro. Todos os dados necessários de outras páginas devem ser salvos em outro lugar. É amplamente sabido que os dispositivos flash têm um número limitado de ciclos de gravação e apagamento.

Consequentemente, uma gravação de E / S aleatória pode ter um impacto maior do que você imaginava. O problema é que a maioria dos sistemas de arquivos foi desenvolvida nos anos 80 e 90 e não progrediu desde então. Os sistemas de arquivos não levam em conta a degradação do desempenho que causam em dispositivos flash usando operações de baixo nível projetadas para discos rígidos; A maioria dos fabricantes de dispositivos flash implementa vários mecanismos para compensar a degradação progressiva do desempenho. Com a ajuda de vários esquemas, consideramos esses mecanismos e descobrimos por que a fragmentação tem esse efeito em dispositivos flash.

Gestão de desgaste
Note, por simplicidade, decidi mostrar 9 páginas em um bloco ao invés de 128 páginas por bloco.

Vamos começar com o processo de gerenciamento de desgaste. Neste exemplo, o aplicativo já criou os dados e os registrou nas páginas A, B e C no bloco 1 (Etapa 1). Novos dados chegam (Etapa 2), que são gravados nas páginas D, E e F. O aplicativo atualiza os dados anteriores (CA) e, em vez de usar as páginas anteriores, o dispositivo flash continua a usar as novas páginas. Esses novos dados são rotulados como A-1, B-1 e C-1. A distribuição de registros da maneira mais uniforme possível é chamada de "gerenciamento de desgaste". Páginas antigas agora estão marcadas como expiradas.

Coleta de lixo e entrada múltipla
Neste exemplo, o bloco A está cheio, o que acontece se o espaço disponível para o usuário para gravação acabar e novos dados chegarem?

O Flash copiará dados atuais para células vazias. Os dados reais no bloco são lidos e gravados em outro bloco. Os dados vencidos permanecerão em suas páginas e serão apagados junto com o restante das páginas de bloqueio. Esse processo é chamado de "coleta de lixo".

A coleta de lixo é boa, mas a entrada múltipla que ocorre durante sua operação causa danos significativos aos dispositivos flash. Para gravar 3 páginas, o dispositivo flash deve ler 6 páginas e gravar as 6 páginas em outro local antes de poder gravar novos dados. E não se esqueça do ciclo de apagamento. Suponha um cenário em que o disco esteja cheio, para onde (temporariamente) moveremos os dados antes de gravar novos dados? No meu diagrama, adicionei o bloco B para essa opção. Para fazer isso em uma situação real (ao usar o sistema de arquivos), você precisa alocar o excesso de espaço reservado pelo flash do controlador.

Para fazer isso em uma situação real (ao usar o sistema de arquivos), você precisa alocar o excesso de espaço reservado pelo flash do controlador

Excesso de espaço
A capacidade do flash pode ser reservada para processos gerenciados por um controlador flash. Isso pode ser feito tanto pelo fabricante do dispositivo flash quanto pelo usuário. Por exemplo, quando você compra um acelerador PCIe flash de 160 GB, na verdade, você obtém um cartão de 192 GB. 160 GB estão disponíveis para o usuário e 32 GB são reservados adicionalmente para operações no nível do controlador em nível de flash, como coleta de lixo, correção de erros e firmware do controlador. Quando você compra uma unidade SSD não industrial, normalmente obtém um pouco de excesso de espaço reservado. Ao formatar este dispositivo flash em qualquer sistema de arquivos, você deve estar ciente desses recursos e, possivelmente, reservar espaço adicional fora da capacidade disponível. Atualmente, não há recomendações de dimensionamento padronizadas, por isso você precisa fazer escolhas com base em sua própria experiência. Na pior das hipóteses, você se encontrará com um disco fragmentado e o SSD terá que transferir dados constantemente para escrever novos. Imagine as crianças brincando de tag, apenas o padrão de movimento é um pouco mais complicado.

Reconsiderando o gerenciamento de dados em dispositivos flash
Os engenheiros da PernixData desenvolveram um novo formato para gerenciar dados em dispositivos flash para FVP. Detalhes serão divulgados nos artigos a seguir, e agora alguns pontos fundamentais.

Otimizado para flash
O formato é projetado para armazenar dados de E / S temporários com o mínimo possível de metadados e trabalhar com um dispositivo flash com o máximo de desempenho disponível para ele. Ele converte entradas aleatórias em entradas consecutivas, para aproveitar melhor o desempenho do flash no modo de gravação seqüencial. Isso reduz o número de dados redundantes sobrescritos e apaga os ciclos. E o algoritmo não contém as limitações herdadas dos sistemas de arquivos, como tamanhos de blocos grandes, diretórios, arquivos, transações longas, gerenciadores de bloqueios etc.

Capacidade compartilhada dinamicamente entre máquinas virtuais
Obrigado integração profunda Com o VMkernel, o FVP pode rastrear blocos de dados e determinar se a máquina virtual está lendo ou gravando. Acompanhando de forma independente essas operações, a plataforma pode dimensionar os buffers de leitura e gravação no espaço alocado para a máquina virtual. O FVP pode armazenar em cache ou excluir um conjunto arbitrário de dados da máquina virtual do cache. Por outro lado, a política de evacuação de dados no sistema de arquivos tradicional para um dispositivo flash será sub-ótima e resultará em várias reescritas, uma vez que o sistema de arquivos só pode gravar dados no final do arquivo ou excluir blocos do final também.

Isso também significa que você não precisa atribuir uma configuração de espaço de cache estático para cada máquina virtual, como seria se você usasse um sistema de arquivos com endereçamento direto. Foi uma ótima decisão para nós; a experiência do usuário do produto deve ser o mais intuitiva possível.

Cito nosso gerente de produtos Bala: "A elegância do produto, na minha opinião, é que ele executa tarefas básicas, NÃO exigindo ações novas ou incomuns do usuário".

Em termos de trabalho diário, isso é excelente: você não precisa pré-dimensionar o cache para cada máquina virtual. Isso significa que você não precisa saber e prever o uso futuro do flash - o FVP fará tudo por você. A falta de uma alocação de recursos rígidos significa a falta de subutilização de flash por máquinas virtuais descarregadas e a aparência de ciclos de limpeza de bloco redundantes para máquinas virtuais ativas com tamanho de cache flash insuficiente. Isso minimiza o problema de várias gravações e garante o máximo desempenho e confiabilidade dos dispositivos flash.

Artigo original .

Desde 2016, a FVP foi retirada da venda.

Por que não VMFS?
O que é uma página e o que é um bloco?
Suponha um cenário em que o disco esteja cheio, para onde (temporariamente) moveremos os dados antes de gravar novos dados?
Новости
Провайдеры:
  • 08.09.2015

    Batyevka.NET предоставляет услуги доступа к сети Интернет на территории Соломенского района г. Киева.Наша миссия —... 
    Читать полностью

  • 08.09.2015
    IPNET

    Компания IPNET — это крупнейший оператор и технологический лидер на рынке телекоммуникаций Киева. Мы предоставляем... 
    Читать полностью

  • 08.09.2015
    Boryspil.Net

    Интернет-провайдер «Boryspil.net» начал свою работу в 2008 году и на данный момент является одним из крупнейших поставщиков... 
    Читать полностью

  • 08.09.2015
    4OKNET

    Наша компания работает в сфере телекоммуникационных услуг, а именно — предоставлении доступа в сеть интернет.Уже... 
    Читать полностью

  • 08.09.2015
    Телегруп

    ДП «Телегруп-Украина» – IT-компания с 15-летним опытом работы на рынке телекоммуникационных услуг, а также официальный... 
    Читать полностью

  • 08.09.2015
    Софтлинк

    Высокая скоростьМы являемся участником Украинского центра обмена трафиком (UA — IX) с включением 10 Гбит / сек... 
    Читать полностью