serviço drbd não inicializável / WFConnection

4

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

    
por billdoor 05.09.2014 / 12:58

3 respostas

2

Eu sei que este é um post antigo, mas pensei em fornecer uma solução para aqueles que querem / precisam do SELinux ativado. Faça isso criando uma política local do SELinux para DRBD.

Se você digitar o '/var/log/audit/audit.log' para "drbd_t", verá alguns erros; canalizar esses erros para 'audit2allow' permitirá que você gere um novo pacote de políticas do SELinux que permita as ações anteriormente negadas. Você pode então instalar essa política com 'semodule -i':

# grep drbd_t /var/log/audit/audit.log | audit2allow -M drbdlocal
******************** IMPORTANT ***********************
To make this policy package active, execute:

semodule -i drbdlocal.pp

# semodule -i drbdlocal.pp

Se você encontrar outro erro do SELinux, poderá executar novamente os dois comandos acima para criar / instalar um novo pacote de políticas até não ter mais erros.

    
por 07.02.2015 / 00:25
3

Eu odeio responder a minha própria pergunta, mas para todos os futuros recém-chegados ao centOS e ao drbd, o selinux é o único que me nega o acesso a certos diretórios necessários. Eu ainda não descobri quais diretórios exatamente eu preciso configurar para o drbd, mas definir selinux para o modo permissivo me permite pelo menos testar a configuração do drbd!

Esta também é a razão pela qual o debian rodou sem problemas, já que o selinux é uma funcionalidade de segurança apenas presente no Enterpriselinux, portanto, principalmente redhat e centOS.

    
por 17.09.2014 / 08:35
0

Existe algum motivo para você ter comentado a parte do dispositivo de sua configuração do DRBD?

Isso não deve ser algo como:

dispositivo / dev / drbd0; ou / dev / drbddisk;

    
por 07.09.2014 / 02:18