Доброго времени суток!
Есть пара серверов под управлением Альт Линукс СПТ 6.0:
[root@node2 ~]# uname -a
Linux node2.localdomain 2.6.32-el-smp-alt42.M60C.1 #1 SMP Tue Jul 2 16:14:14 UTC 2013 x86_64 GNU/Linux
На этой паре планируется развертывание кластера из двух нод. На нем же должна функционировать DRBD.
В Альт Линукс СПТ 6 есть следующие модулю связанные с drbd:
[root@node2 ~]# apt-cache search drbd
drbd83-heartbeat - Heartbeat resource agent for DRBD
drbd83-tools - Distributed Redundant Block Device utilities
drbd83-udev - udev integration scripts for DRBD
kernel-source-drbd83-8.3.8 - Kernel source for DRBD
kernel-image-std-def - The Linux kernel (the core of the Linux operating system)
kernel-image-un-def - The Linux kernel (the core of the Linux operating system)
kernel-modules-drbd83-hpc-skif - Linux drbd83 kernel modules for DRBD.
kernel-modules-drbd83-ovz-el - Linux drbd83 kernel modules for DRBD.
kernel-modules-drbd83-ovz-smp - Linux drbd83 kernel modules for DRBD.
kernel-modules-drbd83-xen-dom0 - Linux drbd83 kernel modules for DRBD.
linux-ha-common - The basic directory layout for Linux-HA project apps
На ноды установлены пакеты drbd83-tools и (в последствии) kernel-source-drbd83-8.3.8. При инициализации функционирования DRBD возникает ошибка:
[root@node1 ~] drbdadm -- --overwrite-data-of-peer primary all
Could not stat("/proc/drbd"): No such file or directory
do you need to load the module?
try: modprobe drbd
Command 'drbdsetup 0 primary --overwrite-data-of-peer' terminated with exit code 20
drbdadm primary VM_STORAGE_1: exited with code 20
Тоже возникает при, если просто стартавать сервис:
[root@node1 ~]# service drbd start
Starting DRBD resources: Can not load the drbd module.
Налицо отсутствие модуля под данное ядро. Т.к. в списке модулей для drbd под мое ядро модуля нет, то захотелось этот модуль собрать. Был поставлен пакет kernel-source-drbd83-8.3.8. В /usr/src/kernel/sources появился файлик kernel-source-drbd83-8.3.8.tar.bz2. После распаковки запускаем make clean, make. Получаем вагон ошибок:
[root@node1 kernel-source-drbd83-8.3.8]# make
Calling toplevel makefile of kernel source tree, which I believe is in
KDIR=/lib/modules/2.6.32-el-smp-alt42.M60C.1/build
set -e; exec > drbd_buildtag.c.new; \
echo -e "/* automatically generated. DO NOT EDIT. */"; \
echo -e "#include <linux/drbd.h>"; \
echo -e "const char *drbd_buildtag(void)\n{"; \
echo -e "\treturn \"Versioh: \""; \
echo -e "\t\t\" build by $USER@$HOSTNAME, `date "+%F %T"`\";\n}"; \
mv --force drbd_buildtag.c.new drbd_buildtag.c
test -f ../scripts/adjust_drbd_config_h.sh && \
KDIR=/lib/modules/2.6.32-el-smp-alt42.M60C.1/build O= /bin/bash ../scripts/adjust_drbd_config_h.sh
make: [kbuild] Ошибка 1 (игнорирована)
make -C /lib/modules/2.6.32-el-smp-alt42.M60C.1/build SUBDIRS=/usr/src/kernel/sources/kernel-source-drbd83-8.3.8 modules
make[1]: Entering directory `/usr/src/linux-2.6.32-el-smp-alt42.M60C.1'
CC [M] /usr/src/kernel/sources/kernel-source-drbd83-8.3.8/drbd_buildtag.o
CC [M] /usr/src/kernel/sources/kernel-source-drbd83-8.3.8/drbd_bitmap.o
CC [M] /usr/src/kernel/sources/kernel-source-drbd83-8.3.8/drbd_proc.o
CC [M] /usr/src/kernel/sources/kernel-source-drbd83-8.3.8/drbd_worker.o
CC [M] /usr/src/kernel/sources/kernel-source-drbd83-8.3.8/drbd_receiver.o
/usr/src/kernel/sources/kernel-source-drbd83-8.3.8/drbd_receiver.c:3031:1: warning: "min_not_zero" redefined
In file included from /usr/src/linux-2.6.32-el-smp-alt42.M60C.1/arch/x86/include/asm/percpu.h:45,
from /usr/src/linux-2.6.32-el-smp-alt42.M60C.1/arch/x86/include/asm/current.h:5,
from /usr/src/linux-2.6.32-el-smp-alt42.M60C.1/arch/x86/include/asm/processor.h:15,
from include/linux/prefetch.h:14,
from include/linux/list.h:7,
from include/linux/connector.h:81,
from /usr/src/kernel/sources/kernel-source-drbd83-8.3.8/linux/drbd.h:28,
from <command-line>:0:
include/linux/kernel.h:850:1: warning: this is the location of the previous definition
CC [M] /usr/src/kernel/sources/kernel-source-drbd83-8.3.8/drbd_req.o
CC [M] /usr/src/kernel/sources/kernel-source-drbd83-8.3.8/drbd_actlog.o
CC [M] /usr/src/kernel/sources/kernel-source-drbd83-8.3.8/lru_cache.o
CC [M] /usr/src/kernel/sources/kernel-source-drbd83-8.3.8/drbd_main.o
CC [M] /usr/src/kernel/sources/kernel-source-drbd83-8.3.8/drbd_strings.o
CC [M] /usr/src/kernel/sources/kernel-source-drbd83-8.3.8/drbd_nl.o
/usr/src/kernel/sources/kernel-source-drbd83-8.3.8/drbd_nl.c: In function ‘drbd_setup_queue_param’:
/usr/src/kernel/sources/kernel-source-drbd83-8.3.8/drbd_nl.c:716: error: implicit declaration of function ‘blk_queue_max_sectors’
/usr/src/kernel/sources/kernel-source-drbd83-8.3.8/drbd_nl.c:717: error: implicit declaration of function ‘blk_queue_max_phys_segments’
/usr/src/kernel/sources/kernel-source-drbd83-8.3.8/drbd_nl.c:717: error: ‘MAX_PHYS_SEGMENTS’ undeclared (first use in this function)
/usr/src/kernel/sources/kernel-source-drbd83-8.3.8/drbd_nl.c:717: error: (Each undeclared identifier is reported only once
/usr/src/kernel/sources/kernel-source-drbd83-8.3.8/drbd_nl.c:717: error: for each function it appears in.)
/usr/src/kernel/sources/kernel-source-drbd83-8.3.8/drbd_nl.c:718: error: implicit declaration of function ‘blk_queue_max_hw_segments’
/usr/src/kernel/sources/kernel-source-drbd83-8.3.8/drbd_nl.c:718: error: ‘MAX_HW_SEGMENTS’ undeclared (first use in this function)
make[2]: *** [/usr/src/kernel/sources/kernel-source-drbd83-8.3.8/drbd_nl.o] Ошибка 1
make[1]: *** [_module_/usr/src/kernel/sources/kernel-source-drbd83-8.3.8] Ошибка 2
make[1]: Leaving directory `/usr/src/linux-2.6.32-el-smp-alt42.M60C.1'
make: *** [kbuild] Ошибка 2
Как мне получить этот несчастный модуль? У майтейнеров альта очевидно была подобная проблема:
http://lists.altlinux.org/pipermail/sisyphus-incominger/2010-August/254402.html. Но чем это у них закончилось я так не нашел.
Прошу помочь