A tecnologia SMR ou “gravação em mosaico”, em que a gravação nos pratos do disco rígido é sobreposta, permite maior densidade de dados e aumento da capacidade final de armazenamento. No entanto, mesmo com uma pequena alteração nas informações, toda a zona de sobreposição deve ser lida e substituída novamente, o que torna as unidades SMR muito lentas nas operações de gravação e, o que é especialmente desagradável, imprevisível em termos de latência.
A Kalista.IO vem explorando há muito tempo a possibilidade de corrigir essa falha – o fruto de sua cooperação com a Western Digital foi a criação do pacote de software Olympus. Seus dois componentes principais são os módulos Phalanx e Abacus. Como os testes mostraram, a IOPS aumentou quase 60% com uma estabilidade de resposta de ordem de magnitude mais alta. Agora o Phalanx está disponível como software JBOD autônomo, relata Blocks & Files.
Nesta versão, a implementação das ideias do Kalista é extremamente simples: a leitura ocorre de todos os discos do array, mas a escrita é feita apenas em porções para o próximo disco do grupo, para que o primeiro disco não precise sobrescrever constantemente blocos SMR . Ao solicitar a exclusão, os dados são marcados apenas como excluídos. E à medida que a fragmentação cresce, o próprio software transfere blocos de dados para o espaço disponível, após o que o HDD fragmentado é marcado como vazio e reinserido no conjunto de unidades graváveis. Em seguida, o ciclo com enchimento sequencial do HDD é repetido.
Essa abordagem permite que um array baseado em discos SMR tenha um desempenho tão bom quanto um colega que consiste em drives CMR e, em alguns casos, um sistema baseado em Phalanx é até um pouco mais rápido. Além disso, o chamado. “cauda de latência”, típica de matrizes SMR convencionais, nas quais alguns dos discos estão constantemente ocupados reescrevendo grandes blocos de dados. O Phalanx funciona no lado do sistema host e é absolutamente transparente para o sistema operacional, aplicativos e todas as opções de armazenamento: arquivo, bloco e objeto. Diferentes tipos de representação de dados podem coexistir no mesmo array Phalanx.