Я недавно переместил свою установку drbd от Ubutnu до песней 7, и я получаю странную ошибку:
я могу загрузить и обычно разгружать модуль, и все это, кажется, работает
#>modprobe drbd
#>lsmod | grep drbd
drbd 373504 2
...
я могу теперь выпустить drbdadm drbdres команды, видеть состояние для ресурса, все работает, это кажется. я могу также разгрузить модуль
#>rmmod drbd
#>lsmod | grep drbd
#>drbdadm cstate all
0: Failure: (127) Device minor not allocated
...
#> lsmod | grep drbd
drbd 373504 2
...
таким образом, я могу загрузить модуль, drbdadm может загрузить его, но не поднимает ресурсов, в то время как документы утверждают, что init сценарий сделал бы это, таким образом, drbd, очевидно, не инициализирует модуль таким образом.
Обычно, все ресурсы, настроенные в/etc/drbd.conf, автоматически включены после системного запуска/etc/init.d/drbd init сценарий.
(источник: 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 возвращается "открытый (". ") отказавший: разрешение отклонило", который является ошибкой "3".
Я не могу узнать то, что это, как предполагается, говорит мне, работая
#>drbdadm sh-nop
ничего не возвращает в терминале или пишет в журналы, о которых я знаю. Я также не могу определить местоположение точки ни в каком файле где открытый (". "), был бы назван.
Я далек от эксперта по Linux, ecspecially 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
Я знаю, что это старый пост,но я думал, что предоставлю решение для тех, кто хочет / нуждается в включенном SELinux. Сделайте это, создав локальную политику SELinux для DRBD.
Если вы введете grep в '/var/log/audit/audit.log' для "drbd_t", вы должны увидеть некоторые ошибки; передача этих ошибок в «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, вы можете повторно запустить две вышеуказанные команды для создания / установки нового пакета политики, пока у вас не будет больше ошибок.
Ненавижу отвечать на свой вопрос, но для всех будущих новичков в использовании CentOS и drbd именно selinux отказывает мне в доступе к определенным необходимым каталогам. Я еще не обнаружил, какие именно каталоги мне нужно настроить для drbd, но установка selinux в разрешающий режим позволяет мне, по крайней мере, протестировать установку drbd!
Это также причина того, почему debian запускается без каких-либо проблемы, так как selinux - это функция безопасности, присутствующая только в Enterpriseiselinux, поэтому в основном это redhat и CentOS.
Есть ли причина, по которой вы закомментировали часть вашего DRBD-конфигуратора, посвященную устройству?
Должно ли это быть что-то вроде:
устройство /dev/drbd0; или /dev/drbddisk;
.