ZFS no Proxmox

Abaixo existem duas formas para que seja feita a limitação de uso da Memoria RAM pelo ZFS dentro do ambiente Proxmox.

A segunda versao tem como referencia direta a Documentacao Oficial do ProxmoxVE, entao seu uso e o recomendado.

Antes de ver como realizar as configuracoes e importante que voce saiba como o ZFS trabalha. Por padrao ele vai usar 50% da Memoria RAM do host Proxmox para o cache ARC.

A partir da versao 8.1 e posterior do Proxmox, seu uso foi limitado por padrao em 10% da Memoria RAM do host Proxmox ate um maximo de 16GB. Essa limitacao esta no arquivo /etc/modprobe.d/zfs.conf.

Observacao: Os valores de minimo e maximo nao podem ser iguais, caso voce defina igual o Kernel Linux ira retornar para as configuracoes padrao. Os valores tambem devem ser inseridos no em formato byte, abaixo existe uma tabela ensinando como calcular os GB em bytes.

Maneira 01 (sem seguir a Documentacao Oficial):

1 – Para editar o tamanho do ARC do ZFS com valor maximo e minimo rode o comando abaixo, representando os GB em bytes.

Tabela de calculo:

1 GB = 1024 MB
1 MB = 1024 KB
1 KB = 1024 bytes

16 GB = 1024³ bytes = 17179869184
8 GB = 1024³ bytes = 8589934592

sysctl vfs.zfs.arc_max=17179869184

sysctl vfs.zfs.arc_min=8589934592

2 – Como sera preciso reiniciar o servidor, adicione as linhas abaixo no arquivo sysctl.conf para que as novas configuracoes fiquem persistens no sistema e nao suma depois da reinicializacao.

nano /etc/sysctl.conf

linhas abaixo adicionadas no arquivo sysctl.conf

vfs.zfs.arc_max=17179869184
vfs.zfs.arc_min=8589934592

3 – Reinicie o servidor

systemctl reboot

4 – Verifique o tamanho do ARC filtrando apenas o primeiros dez resultados do size.

arc_summary | grep size | head -10

Maneira 02 (seguindo a Documentacao Oficial):

Observacao: Defini o valor minimo de referencia em bytes é 8GB e o maximo de 16GB, porem cada ambiente tera seu valor especifico.

1 – Edite os arquivos padrao do ZFS no host Proxmox para definir os valores maximo e minimo do ARC. Aqui no passo 1 basta apenas inserir o valor de uso da Memoria RAM em bytes, sem a necessidade de inserir outros parametros na linha de configuracao.

echo “$[8 * 102410241024 – 1]” >/sys/module/zfs/parameters/zfs_arc_min

8589934591

echo “$[16 * 102410241024 – 1]” >/sys/module/zfs/parameters/zfs_arc_max

17179869183

2 – Para que a nova configuracao seja persistente, edite o arquivo para inserir o valor em bytes desejado.

nano /etc/modprobe.d/zfs.conf

options zfs zfs_arc_max=17179869183

3 – Levando em consideracao que o seu sistema de arquivos raiz e o ZFS você precisa editar o initramfs sempre que realizar uma alteracao nas configuracoes.

update-initramfs -u -k all

Saida do comando:

update-initramfs: Generating /boot/initrd.img-6.8.4-2-pve
Running hook script ‘zz-proxmox-boot’..
Re-executing ‘/etc/kernel/postinst.d/zz-proxmox-boot’ in new private mount namespace..
Copying and configuring kernels on /dev/disk/by-uuid/1C3B-B0B4
Copying kernel and creating boot-entry for 6.8.4-2-pve
Copying and configuring kernels on /dev/disk/by-uuid/1C3D-10DC
Copying kernel and creating boot-entry for 6.8.4-2-pve

Depois de atualizar o initramfs reinicie o host Proxomox para que as novas alteracoes tenham efeito.

4 – Para ver as novas configuracoes depois de reiniciar o host Proxmox, execute o comando abaixo.

arcstat && free -h

5 – Se quiser ver o uso atual do ARC rode o comando abaixo que tambem pode ser usado para monitorar via Zabbix com UserParameter.

awk ‘/^size/ { printf “%s %.2f\n”, $1, $3 / 1048576 }’ < /proc/spl/kstat/zfs/arcstats

Você pode gostar...

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *