Imprimir post Imprimir post
 

DRBD com discos de 1 TB

Posted by Eriberto on jul 14, 2009 in Debian, Kernel, Linux, Rede, Sistema Operacional |

Hoje eu comecei a configurar dois Dell PowerEdge 840 com 4 discos de 1 TB cada. Esses serão os meus novos servidores de backup aqui no trabalho. Estou usando DRBD para fazer com que o segundo seja o espelho do primeiro (RAID 1 over TCP/IP). Criei uma partição de 15 GB para receber o Debian Lenny e uni o resto do primeiro disco com os outros com LVM.

O problema ocorreu quando eu instalei e configurei o DRBD. Ao dar start, vejam a mensagem de erro:

gramado:/# /etc/init.d/drbd start
Starting DRBD resources:    [ d(backup) /dev/drbd0: Failure: (140) vmalloc() failed. Out of memory?

[backup] cmd /sbin/drbdsetup /dev/drbd0 disk /dev/gramado/backup /dev/gramado/backup internal –set-defaults –create-device  failed – continuing!

n(backup) ].
gramado:/#

Bem, o problema parece claro: vmalloc() failed. É o seguinte (resumo): o kernel pode alocar espaço para uso na memória física ou na virtual. Para a memória física ele usa kmalloc. Para memória virtual (RAM + swap) ele usa vmalloc. A literatura especializada diz que é raro usar vmalloc. No entanto, encontrei isto:

kmalloc is limited in the size of buffer it can provide: 128 KBytes. If you need a really big buffer, you have to use vmalloc or some other mechanism like reserving high memory at boot.

Fonte: STACK OVERFLOW. What is the difference between vmalloc and kmalloc?. Disponível em http://stackoverflow.com/questions/116343/what-is-the-difference-between-vmalloc-and-kmalloc. Acesso em 14 jul. 09.

No caso do meu problema com o DRBD, dei uma olhada no vmalloc com o comando # cat /proc/meminfo. No resultado, observei o seguinte:

VmallocTotal:   114680 kB
VmallocUsed:      2344 kB
VmallocChunk:   111928 kB

Conclusão: se tinha cerca de 112 MB e ele só usou 2.3 MB e ainda disse que faltou memória, então 112 MB era pouco. Agora, como fazer para aumentar o vmalloc? Uma rápida olhadinha no Google mostrou como. É só editar o menu.lst do GRUB. No meu caso, a linha referente ao kernel que estou usando ficou assim (para 160 MB de vmalloc):

kernel          /boot/vmlinuz-2.6.26-2-686 root=/dev/sda1 ro quiet vmalloc=160m

É isso. Problema resolvido. Veja:

gramado:~# cat /proc/meminfo


VmallocTotal:   147448 kB
VmallocUsed:    121272 kB
VmallocChunk:    25844 kB

gramado:~# /etc/init.d/drbd start
Starting DRBD resources:    [ d(backup) n(backup) ].
gramado:~#

Tags:, ,

Reply


CAPTCHA Image
Reload Image

Copyright © 2019 Eriberto Blog All rights reserved.
desk-mess-mirrored v theme from BuyNowShop.com.