我可以正常加载和卸载模块,整个过程似乎都有效
#>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能够加载它但不会带来任何资源,而文档声称init脚本会这样做,所以drbd显然不会以这种方式初始化模块.
Normally,all resources configured in /etc/drbd.conf are automatically
enabled upon system startup by the /etc/init.d/drbd init script.
(来源: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(”.“)失败:权限被拒绝”这是错误“3”.
我不知道这应该告诉我什么,跑步
#>drbdadm sh-nop
不会在终端返回任何内容或写入我知道的日志.我也无法在任何调用open(“.”)的文件中找到一个点.
我不是linux上的专家,ecs特别是centOS / redhat,因为我习惯debian,我只能说Ubuntu 14.04在drbd83下运行良好.我现在已经转换到了centOS 7上的drbd84,文档没有说明触摸我的配置模块部分的变化.
唯一的问题是我不能再将元数据存储在内部,因为整个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
解决方法
如果你为“drbd_t”grep’/var/log/audit/audit.log’,你会看到一些错误;将这些错误传递给’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