top of page
  • rudy310

Nutanix: Como e porque tudo começou (Parte 2)



A importância da latência


Como mostra a tabela, se você quiser aproveitar o desempenho máximo teórico que um SSD poderia oferecer, a rede pode se tornar um gargalo com de 1 a 9 SSDs, dependendo do tipo de rede utilizada.

NOTA: Os  números foram arredondados, já que um SSD parcial não é possível.Isso também não leva em consideração a CPU necessária para lidar com todas as E / S e assume a capacidade ilimitada da CPU do controlador.


O impacto da latência da memória

A latência de memória principal típica é ~ 100ns (irá variar), podemos realizar os seguintes cálculos:


  • Memória local lê latência = 100ns + [sobrecarga do SO / hypervisor]

  • Latência de leitura de memória de rede = 100ns + latência de RT de NW + [2 x sobrecarga de SO / hipervisor]

Se assumirmos que um RTT de rede típico é de ~ 0,5 ms (varia de acordo com o fornecedor do comutador), o que é de ~ 500.000 ns que se reduz a:


  • Latência de leitura de memória de rede = 100ns + 500.000ns + [2 x sobrecarga do SO / hypervisor]

Se teoricamente supomos uma rede muito rápida com um RTT de 10.000ns:


  • A latência de leitura de memória de rede = 100 ns + 10.000 ns + [2 x sobrecarga do SO / hypervisor]


O que isso significa é que, mesmo com uma rede teoricamente rápida, há uma sobrecarga de 10.000% quando comparada a um acesso à memória sem rede.Com uma rede lenta, isso pode estar acima de uma sobrecarga de latência de 500.000%.


Para aliviar essa sobrecarga, tecnologias de cache do lado do servidor são introduzidas.


Espaço do Usuário vs. Kernel

Um tópico frequentemente debatido é o argumento entre fazer as coisas no kernel versus no espaço do usuário. Aqui vou explicar o que é cada um e seus respectivos prós / contras.


Qualquer sistema operacional (SO) tem duas áreas principais de execução:


Espaço do kernel

  • A parte mais privilegiada do sistema operacional

  • Lida com agendamento, gerenciamento de memória, etc.

  • Contém os drivers de dispositivos físicos e manipula a interação de hardware

Espaço do usuário

  • "Todo o resto"

  • É aqui que a maioria dos aplicativos e processos vivem

  • Memória e execução protegidas

Esses dois espaços funcionam em conjunto para que o sistema operacional funcione. Agora, antes de seguir em frente, vamos definir alguns itens importantes:


Chamada de sistema

  • Aka kernel call, uma requisição feita via interrupção (mais aqui depois) de um processo ativo que algo pode ser feito pelo kernel

Mudança de contexto

  • Mudando a execução do processo para o kernel e vice-versa

Por exemplo, use o seguinte caso de uso de um aplicativo simples para gravar alguns dados no disco. Neste o seguinte aconteceria:


  1. App quer gravar dados no disco

  2. Invoca uma chamada do sistema

  3. Mudança de contexto para o kernel

  4. Dados de cópias do kernel

  5. Executa gravação no disco via driver


A seguir, mostramos uma amostra dessas interações:


Um é melhor que o outro? Na realidade, existem prós e contras para cada um:


Espaço do usuário

  • Muito flexível

  • Domínios de falha isolados (processo)

  • Pode ser ineficiente

  • Tempo de custo dos switches de contexto (~ 1,000ns)

Espaço do kernel

  • Muito rígido

  • Domínio de falha grande

  • Pode ser eficiente

  • Reduz interruptores de contexto

O movimento para o espaço do usuário / polling

Como os dispositivos se tornaram muito mais rápidos (por exemplo, NVMe, Intel Optane, pMEM), o kernel e a interação com o dispositivo se tornaram um gargalo.


Para eliminar esses gargalos, muitos fornecedores estão migrando do kernel para o espaço do usuário com sondagem e obtendo resultados muito melhores.


Um ótimo exemplo disso é o Kit de Desenvolvimento de Desempenho de Armazenamento Intel (SPDK) e o Kit de Desenvolvimento de Plano de Dados (DPDK) . Esses projetos são voltados para maximizar o desempenho e reduzir a latência, tanto quanto possível, e mostraram grande sucesso.


Essa mudança é composta de duas mudanças principais:


  • Movendo drivers de dispositivos para o espaço do usuário (em vez do kernel)

  • Usando polling (em vez de interrupções)

Isso permite um desempenho muito superior quando comparado aos predecessores baseados em kernel, pois elimina:

  • Chamadas caras do sistema e o manipulador de interrupções

  • Cópias de dados

  • Comutadores de contexto


A seguir mostra a interação do dispositivo usando os drivers de espaço do usuário:


Na verdade, um software que a Nutanix desenvolveu para o seu produto AHV (vhost-user-scsi) está sendo usado pela Intel para seu projeto SPDK.


Livro da escala da Web

web · scale - / web 'skãl / - arquitetura de computação de nomes - uma nova abordagem arquitetônica para infraestrutura e computação.

Esta seção apresentará alguns dos principais conceitos por trás da infraestrutura “Web-scale” e por que os aproveitamos. Antes de começar, eu só queria afirmar claramente a escala da Web não significa que você precisa ser "escala da web" (por exemplo, Google, Facebook ou Microsoft). Essas construções são aplicáveis ​​e benéficas em qualquer escala (3 nós ou milhares de nós).


Desafios históricos incluídos:

  • Complexidade, complexidade, complexidade

  • Desejo de crescimento baseado em incrementos

  • A necessidade de ser ágil

Existem algumas construções importantes usadas quando se fala em infra-estrutura “Web-scale”:

  • Hiper-convergênciaInteligência definida por software

  • Sistemas Autônomos Distribuídos

  • Escalada incremental e linear

Outros itens relacionados:

  • Automação baseada em API e análise avançada

  • Segurança como inquilino principal

  • Auto-cura

No próximo post mostraremos uma perspectiva técnica sobre o que elas realmente significam.


ASG

https://www.asgit.com.br/

contato@asg.com.br

(51) 3376.1210




9 visualizações0 comentário
bottom of page