Tornando hds velhos mais rápidos que um ssd - criando "cluster" de hds
Tags: hds, desempenho, ssd, hardware
Published: 2021-08-01 00:14:56

<p>Algumas criptomoedas utilizam hds para minerar - sim, é estranho mas isso acontece - e elas precisam de velocidade para fazer tal, então se você for um minerador ou precisar de um super ssd, cá está este artigo para você.</p>

<p>Então, como auxílio, descrevo neste artigo as principais formas de usar o máximo de desempenho de HDS de modo a terem uma velocidade semelhante a de um ssd ao mesmo tempo que possuem uma quantidade de gigas maiores.</p>

<p>Para tal, usaremos o conceito descrito como RAID 0 e iremos criar uma hierarquia de LVMs.</p>

<p>Em resumo, RAID 0 é distribuir os arquivos em blocos intercalados em cada HD, assim é possível fazer com que a soma da velocidade dos HDS seja equivalente a velocidade total de leitura e gravação dos blocos. A imagem a seguir demonstra a organização em blocos:</p>

<img src="https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gipv5qdqc70h7jvdkp2j.png"/>

<p>E a LVM(LOGICAL VOLUME MANAGER) tem como função principal criar volumes lógicos, ou seja, descrever ao sistema operacional a existência de um amontoado de discos que juntos formam somente um.</p>

<p>Se os HDS tiverem velocidades diferentes, recomendo que leiam até o final do artigo</p>

<p>Pronto, entendido os termos acima, temos que criar um ambiente que seja do tamanho necessário para fazer coisas do dia a dia, acredito que 256GB sejam o suficiente.</p>

<p>Tendo já instalados os pacotes necessários(lvm2), pode-se dar início ao processo de desenvolvimento.</p>

<p>Assim, inicia-se testando a velocidade dos HDS que serão utilizados. Caso haja HDS com o dobro de velocidade dos demais, separe-os e mais abaixo será descrito o que fazer com eles.</p>

<p>Tendo separados os HDS e agrupados por velocidades semelhantes, cria-se partições da forma que será mencionada e usa os comando para criar uma LVM:</p>

<pre>
<p>#pvcreate /dev/[caminhoDoHD2] /dev/[caminhoDoHD2]...</p>
<p>#vgcreate [nome do grupo] /dev/[caminhoDoHD2] /dev/[caminhoDoHD2]...</p>
<p>#lvcreate --type raid0 -L[TamanhoDaLVM] --stripes [ÑumeroDeHDsMaisLentos] --stripesize [TamanhoDosBlocos] -n [NomeDaLVM] [NomeDoGrupo]</p>
<p>mkfs.ext4 /dev/[NomeDoGrupo]/[NomeDaLVM]</p>
</pre>

<p>pvcreate, cria rótulos físicos.</p>
<p>vgcreate, cria grupos de partições.</p>
<p>lvcreate, cria disco lógico.</p>
<p>mkfs.ext4, monta o disco com o formato ext4</p>

<p>Para determinar o tamanho dos blocos e da LVM a ser utilizada, é necessário levar em consideração a quantidade e velocidade dos HDs disponíveis. Antes de iniciar o processo de criação da LVM, é importante ter em mente que a RAID 0 geralmente opera com a velocidade do HD mais lento, ou seja, a velocidade média de leitura e gravação será comparável à multiplicação da velocidade do HD mais lento com a quantidade de HDs na LVM (VelocidadeHDMaisLento * QuantidadeDeHDs = Velocidade da LVM).</p>

<p>Dessa forma, é preciso criar uma hierarquia de LVMs. Por exemplo, considerando HD1, HD1, HD1, HD1, HD2, HD2, sendo que HD2 possui o dobro da velocidade de HD1, podemos criar a seguinte configuração:</p>

<ul>
  <li>LVM1 = (HD1 + HD1 + HD1 + HD1) = 4 * velocidadeHD1</li>
  <li>LVM2 = (HD2 + HD2) = 4 * velocidadeHD1</li>
  <li>LVMMaster = LVM1 + LVM2 = 8 * velocidadeHD1</li>
</ul>

<p>No entanto, é importante notar que, para que a RAID 0 funcione corretamente, os HDs devem ser particionados de acordo com o grupo em que serão inseridos, para que a LVMMaster tenha o tamanho de 256G. Assim, o HD de cada grupo deve ser particionado de modo que sua respectiva LVM tenha exatamente a metade do tamanho da LVMMaster.</p>

<p>Além disso, é importante considerar o tamanho do bloco. Recomenda-se que todas as LVMs tenham um tamanho de bloco de 256, uma vez que os arquivos gerados durante a plotagem são grandes.</p>

<p>Uma vantagem desse processo é que é possível usar até pendrives, o que pode aumentar a velocidade da LVM e torná-la comparável à SDDS.</p>

<p>Em caso de dúvidas, estou à disposição para responder nos comentários.😬</p>