Eu recentemente migrei minha configuração do drbd do Ubutnu para o centos 7 e recebi um erro estranho:
Eu posso carregar e descarregar o módulo normalmente, e tudo parece funcionar
#>modprobe drbd
#>lsmod | grep drbd
drbd 373504 2
...
agora posso emitir comandos drbdadm up drbdres, ver o status do recurso, tudo está rodando parece. Eu também posso descarregar o módulo
#>rmmod drbd
#>lsmod | grep drbd
#>drbdadm cstate all
0: Failure: (127) Device minor not allocated
...
#> lsmod | grep drbd
drbd 373504 2
...
para que eu possa carregar o módulo, o drbdadm é capaz de carregá-lo, mas não traz nenhum recurso, enquanto os docs afirmam que o script init faria isso, então o drbd obviamente não inicializa o módulo dessa maneira.
Normally, all resources configured in /etc/drbd.conf are automatically
enabled upon system startup by the /etc/init.d/drbd init script.
(fonte: link )
Se eu tentar executar o script init.d, recebo um erro estranho:
#>/etc/init.d/drbd start script i get:
Starting DRBD resources:
sh: modinfo: command not found
open(".") failed: permission denied
#>
eu consegui localizar a (s) linha (s) onde isso acontece:
$DRBDADM="drbdadm"
...
out=$(&DRBDADM sh-nop 2>&1); ex=?
[[ $ex = 127 ]] && exit 5 #LSB for "not installed"
log_daemon_msg "Starting DRBD resources"
if [[ $ex != 0 ]] ; then
printf"\n%s\n" "$out" >&2
exit1
fi
Eu inseri uma linha para registrar $ ex e diz "3", então isso parece significar:
drbdadm sh-nop retorna "open (". ") failed: permissão negada" qual é o erro "3".
Não consigo descobrir o que isso deve me dizer, executando
#>drbdadm sh-nop
não retorna nada no terminal ou escreve nos logs que eu conheço. Eu também não consigo localizar um ponto em nenhum arquivo em que o open (".") Seria chamado.
Estou longe de ser um expert em linux, ecospecially centOS / redhat como estou acostumado a debian, tudo o que posso dizer é que o Ubuntu 14.04 funcionou bem com esta configuração sob drbd83. Agora mudei para drbd84 em centOS 7, os documentos não dizem nada sobre mudanças em partes do módulo que tocam minha configuração afaik.
A única coisa é que não posso mais armazenar os metadados internos, já que todo o dispositivo drbd será entregue como disco para uma máquina virtual.
Eu estou esperando que o erro esteja no meu "fazendo a coisa do modo debian" porque eu não consigo encontrar nenhum problema de configuração com o drbd.
Vou anexar minha configuração:
global {
usage-count no;
}
common {
syncer {
rate 100M;
}
}
resource drbdres {
device minor 0;
net {
protocol C;
}
startup {
wfc-timeout 0;
degr-wfc-timeout 60;
}
disk {
on-io-error detach;
}
#NODES
on node1 {
disk /dev/mapper/vmachines-lvdrbd;
# device drbddisk;
address 192.168.8.133:7788;
meta-disk /dev/mapper/vmachines-lvdrbdMeta; #!internal
}
on node2 {
disk /dev/mapper/vmachines-lvdrbd;
# device drbddisk;
address 192.168.8.132:7788;
meta-disk /dev/mapper/vmachines-lvdrbdMeta; #!internal
}
}
se eu conectar meu segundo host para testar a configuração independentemente desses problemas, ambos iniciarem o drbd e ficarem presos com o status "WFConnection", os endereços IP que eles configuraram para os outros hosts estão corretos, então presumo que serviço não é iniciado pelo drbdadm, ele apenas carrega o módulo se não estiver carregado.
Obrigado por qualquer sugestão ou ajuda,
Cumprimentos
BillDoor
(original: link )
EDITAR:
meus repositórios configurados:
Centos7 base
ELrepo e17
Centos7 extras
centos7 updates
eu instalei os pacotes:
drbd84-utils.x86_64
drbd84-utils-sysvinit.x86_64
kmod-drbd.x86_64
eu emiti yum install drbd84
para instalar o drbd