O armazenamento direto refere-se a uma arquitetura de armazenamento que permite que os aplicativos acessem dados diretamente dos dispositivos de armazenamento, ignorando o sistema operacional e o sistema de arquivos. Essa abordagem pode reduzir significativamente a latência e melhorar o desempenho de aplicações que exigem acesso rápido a grandes quantidades de dados, como simulações científicas, edição de vídeo e gerenciamento de banco de dados.
Veja como os dados são acessados do armazenamento direto:
1. Acesso direto à memória (DMA): O armazenamento direto depende de DMA, um recurso de hardware que permite que periféricos (como dispositivos de armazenamento) acessem diretamente a memória sem envolver a CPU. Isso elimina a sobrecarga de cópia de dados entre o dispositivo de armazenamento e os buffers do sistema operacional.
2. E/S mapeada em memória: Com o armazenamento direto, a memória do dispositivo de armazenamento é mapeada no espaço de endereço do aplicativo. Isso permite que o aplicativo acesse os dados do dispositivo de armazenamento como se fizessem parte da memória principal do sistema.
3. NVMe (memória não volátil expressa): NVMe é um protocolo de interface de alta velocidade projetado especificamente para unidades de estado sólido (SSDs). As unidades NVMe se conectam diretamente ao barramento PCIe (Peripheral Component Interconnect Express), ignorando a interface SATA mais lenta. Isto permite taxas de transferência de dados significativamente mais altas em comparação com dispositivos de armazenamento tradicionais.
4. RDMA (acesso remoto direto à memória): RDMA é uma tecnologia que permite acesso direto à memória entre dois ou mais computadores em uma rede de alta velocidade. O RDMA ignora o sistema operacional e a pilha de rede, permitindo transferências de dados de baixa latência. É comumente usado em ambientes de computação de alto desempenho (HPC) e data centers.
5. Estruturas de dados e APIs: Os sistemas de armazenamento direto normalmente fornecem estruturas de dados específicas e interfaces de programação de aplicativos (APIs) que permitem que os aplicativos interajam diretamente com o dispositivo de armazenamento. Essas APIs fornecem funções para leitura, gravação e gerenciamento de dados, oferecendo controle refinado sobre o acesso aos dados.
Em resumo, o armazenamento direto permite que os aplicativos contornem o sistema operacional e o sistema de arquivos, usando DMA e E/S mapeada na memória para acessar diretamente os dados na memória do dispositivo de armazenamento. Essa abordagem reduz a latência e melhora o desempenho de aplicativos que exigem acesso rápido a grandes conjuntos de dados. As tecnologias NVMe e RDMA melhoram ainda mais as velocidades de transferência de dados, tornando o armazenamento direto adequado para cargas de trabalho exigentes em vários setores.