DEV Community

loading...

Criando plots chia em HDS usando o máximo de desempenho no linux

Emanuel Cascone
I am an Italian-Brazilian computer science student and I am passionate for new technologies
・3 min read

A criação de plots da criptomoeda CHIA é o maior embargo durante a mineração pois, para microfazendeiros, ter um equipamento suficientemente potente para gerar plots em um tempo razoável torna-se um investimento fora do orçamento.
Então, como auxílio, descrevo neste artigo as principais formas de usar o máximo de desempenho possíveis em mineração usando somente HDS.

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

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:

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.

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

Pronto, entendido os termos acima, temos que criar um ambiente que seja do tamanho necessário para criar os plots temporários (249G), mas usaremos o tamanho 256G.

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

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.

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:

#pvcreate /dev/[caminhoDoHD2] /dev/[caminhoDoHD2]...
#vgcreate [nome do grupo] /dev/[caminhoDoHD2] /dev/[caminhoDoHD2]...
#lvcreate --type raid0 -L[TamanhoDaLVM] --stripes [ÑumeroDeHDsMaisLentos] --stripesize [TamanhoDosBlocos] -n [NomeDaLVM] [NomeDoGrupo]
mkfs.ext4 /dev/[NomeDoGrupo]/[NomeDaLVM]
Enter fullscreen mode Exit fullscreen mode

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

Pronto, a pergunta é: qual o tamanho dos blocos e da LVM que se deve usar?
Isso vai depender da quantidade de hds que possui e da velocidade deles, antes de dar início ao desenvolvimento da aplicação acima, é necessário antes ter conhecimento de que a RAID 0 geralmente funciona com a velocidade do HD mais lento, ou seja, a velocidade média de gravação e leitura será comparável a multiplicação da velocidade do HD mais lendo com a quantidade de HDS da LVM (VelocidadeHDMaisLento*QuantidadeDeHDS= Velocidade da lVM).

Assim, deve-se criar uma hierarquia de LVMs.
Exemplificando, tendo os HDs de velocidade HD1,HD1,HD1( 2*velocidadeHD1),HD2, HD2, Hd2, temos:

LVM1 = (HD1+HD1+HD1+HD1) = 4*velocidadeHD1
LVM2 = (HD2+HD2) = 4*velocidadeHD1
LVMMaster = LVM1+LVM2 = 8*velocidadeHD1

Todavia é necessário ponderar outra coisa, para que a raid 0 funcione corretamente, os HDS devem ser particionados de acordo com o grupo que serão inseridos, de momo a LVMMaster ter o tamanho 256G. Assim, o hd de cada grupo deve ser particionado de forma que sua respectiva LVM tenha exatamente a metade do tamanho da sua mãe.

Além disso, vale se atentar ao tamanho do bloco, recomendo que todas as LVMs usem tamanho de bloco 256, pois os arquivos gerados durante a plotagem são grandes

OBS.: A melhor parte desse processo é que é possível usar até pendrives, podendo aumentar a velocidade da LVM e tornando-se comparável a SDDS.

Qualquer dúvida respondo nos comentários 🙂👌

Poderia me dar um café?
xch: xch1aqle0ecaqnws2rvx2wy4etx97jr7tyszctj979fjq4n4krhzkepqxhged2

Discussion (0)