Назад | Перейти на главную страницу

Служба drbd не запускается / WFConnection

Недавно я перенес свою установку drbd с Ubutnu на centos 7 и получаю странную ошибку:

я могу загружать и выгружать модуль в обычном режиме, и все вроде работает

#>modprobe drbd
#>lsmod | grep drbd
drbd       373504     2
...

Теперь я могу выполнить команду drbdadm up drbdres, посмотреть статус ресурса, кажется, все работает. я также могу выгрузить модуль

#>rmmod drbd
#>lsmod | grep drbd
#>drbdadm cstate all
0: Failure: (127) Device minor not allocated 
...
#> lsmod | grep drbd
drbd       373504     2
...

поэтому я могу загрузить модуль, drbdadm может загрузить его, но не вызывает никаких ресурсов, в то время как документы утверждают, что сценарий инициализации сделает это, поэтому drbd, очевидно, не инициализирует модуль таким образом.

Обычно все ресурсы, настроенные в /etc/drbd.conf, автоматически включаются при запуске системы сценарием инициализации /etc/init.d/drbd.

(источник: http://www.drbd.org/users-guide-8.3/s-enable-disable.html)

Если я попытаюсь запустить сценарий init.d, я получаю странную ошибку:

#>/etc/init.d/drbd start script i get:
Starting DRBD resources:
sh: modinfo: command not found
open(".") failed: permission denied
#>

мне удалось найти строки, где это происходит:

$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

Я вставил строку в журнал $ ex, и там написано «3», так что, похоже, это означает:

drbdadm sh-nop возвращает "open (". ") failed: permission denied", что является ошибкой "3".

Я не могу понять, что это должно мне сказать, бегу

#>drbdadm sh-nop

не возвращает ничего в терминале и не записывает в известные мне журналы. Я также не могу найти точку в любом файле, где будет вызван open (".").

Я далек от эксперта по Linux, особенно по CentOS / Redhat, поскольку я привык к debian, все, что я могу сказать, это то, что Ubuntu 14.04 хорошо работала с этой конфигурацией под drbd83. Теперь я перешел на drbd84 на CentOS 7, в документации ничего не говорится об изменениях в частях модуля, которые касаются моей конфигурации afaik. Единственное, что я больше не могу хранить внутренние метаданные, так как все устройство drbd будет передано как диск на виртуальную машину.

Я надеюсь, что ошибка заключается в том, что я «делаю что-то в стиле debian», потому что я не могу найти никаких проблем с конфигурацией с drbd.

Я добавлю свою конфигурацию:

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
    }
}

если я присоединяю свой второй хост для проверки настройки независимо от этих проблем, оба запускают drbd и застревают со статусом «WFConnection», IP-адреса, которые они настроили для других хостов, верны, поэтому я предполагаю, что служба действительно не запускается drbdadm, он просто загружает модуль, если он не загружен.

Спасибо за любые подсказки или помощь,

С уважением BillDoor

(оригинал: https://stackoverflow.com/questions/25680702/centos-7-drbd-cannot-start-service)

РЕДАКТИРОВАТЬ:

мои настроенные репозитории:

Centos7 base
ELrepo e17
Centos7 extras
centos7 updates

я установил пакеты:

drbd84-utils.x86_64
drbd84-utils-sysvinit.x86_64
kmod-drbd.x86_64

я выдал yum install drbd84 установить drbd

Ненавижу отвечать на свой вопрос, но для всех будущих новичков в CentOS и drbd именно selinux отказывает мне в доступе к определенным необходимым каталогам. Я еще не обнаружил, какие именно каталоги мне нужно настроить для drbd, но установка selinux в разрешающий режим позвольте мне хотя бы проверить настройку drbd!

Это также является причиной того, что debian работал без каких-либо проблем, поскольку selinux - это функция безопасности, присутствующая только в Enterpriseiselinux, поэтому в основном это redhat и centOS.

Я знаю, что это старый пост, но я думал, что предоставлю решение для тех, кто хочет / нуждается в включенном SELinux. Сделайте это, создав локальную политику SELinux для DRBD.

Если вы введете команду «/var/log/audit/audit.log» для поиска «drbd_t» с помощью grep, вы должны увидеть несколько ошибок; передача этих ошибок в «audit2allow» позволит вам сгенерировать новый пакет политики SELinux, который разрешает ранее запрещенные действия. Затем вы можете установить эту политику с помощью 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

Если вы столкнетесь с другой ошибкой SELinux, вы можете повторно запустить две вышеуказанные команды для создания / установки нового пакета политики, пока у вас не исчезнет больше ошибок.

Есть ли причина, по которой вы закомментировали часть конфигурации DRBD, относящуюся к устройству?

Не должно ли это быть что-то вроде:

устройство / dev / drbd0; или / dev / drbddisk;