Гид по технологиям

Как обновить DRBD userland до 8.3.9 в OpenSUSE 11.4

• 5 min read • Инструкции • Обновлено 19 Nov 2025
Обновление DRBD userland до 8.3.9 в OpenSUSE 11.4
Обновление DRBD userland до 8.3.9 в OpenSUSE 11.4

Введение

При запуске кластера с corosync, drbd, ocfs2 и pacemaker вы можете столкнуться с ошибкой несовпадения версий DRBD:

Starting DRBD resources: DRBD module version: 8.3.9
userland version: 8.3.8
you should upgrade your drbd tools!

Это означает, что модуль, встроенный в используемое ядро, имеет версию 8.3.9, а пакеты утилит (userland) — 8.3.8. Решения:

  • дождаться пересборки пакетов DRBD для вашей версии OpenSUSE; или
  • собрать userland 8.3.9 вручную из исходников на основе исходного дерева ядра (описано ниже).

Замечание: инструкция предназначена для тестовой среды. Я использовал два 32-битных сервера OpenSUSE 11.4 под VMware Workstation, установленных с live-CD. Конфигурация дисков и адреса в примере:

  • /dev/sda — система OpenSUSE
  • /dev/sdb — диск для DRBD
  • drbd1: 192.168.5.129
  • drbd2: 192.168.5.137

Если нужны другие сетевые или дисковые конфигурации, адаптируйте команды соответственно.

Шаг 1. Установка kernel-source и инструментов сборки на обоих серверах

Установите исходники ядра и базовые пакеты для сборки:

zypper install kernel-source gcc flex make

Скриншот установки пакетов kernel-source и инструментов сборки

После установки нужно подготовить дерево исходников ядра.

Подготовка дерева исходников ядра

Перейдите в каталог с исходниками ядра и скопируйте конфигурационный файл текущего запущенного ядра:

cd /usr/src/linux
cp /boot/config-2.6.37.1-1.2-desktop ./.config

Для запуска menuconfig потребуется пакет ncurses-devel:

zypper install ncurses-devel

Затем запустите:

make menuconfig

В интерфейсе make menuconfig выберите пункт “Load an Alternate Configuration File” (Загрузить альтернативный файл конфигурации) и подтвердите, что выбран .config:

Экран выбора файла конфигурации в menuconfig

В следующем окне .config будет автоматически выбран — подтвердите выбор:

Подтверждение .config в menuconfig

Выберите “Exit” и сохраните изменения. Теперь дерево исходников ядра готово к использованию при сборке DRBD.

Подтверждение готовности дерева исходников

Информация о дереве исходников и настройках компиляции

Шаг 2. Скачивание исходников DRBD 8.3.9

  1. Скачайте tarball с официального зеркала DRBD или источника, соответствующего вашей политике безопасности.
  2. Распакуйте архив, перейдите в каталог исходников и прочитайте README/INSTALL для специфичных зависимостей.

Пример (замените URL на актуальный):

wget http://example.org/drbd-8.3.9.tar.gz
tar xzf drbd-8.3.9.tar.gz
cd drbd-8.3.9

Важно: используйте проверенные источники. Проверяйте контрольные суммы при возможности.

Шаг 3. Сборка userland против дерева исходников ядра

  1. Убедитесь, что в /usr/src/linux присутствуют заголовки и .config, как в шаге 1.
  2. Запустите сборку согласно инструкциям в исходниках DRBD, например:
make KERNEL_DIR=/usr/src/linux
make install KERNEL_DIR=/usr/src/linux

Команды точны для многих версий DRBD, но внимательно читайте локальные инструкции внутри архива, так как флаги и переменные окружения могут отличаться.

Шаг 4. Проверка и перезапуск DRBD

После установки новых утилит выполните проверку версий:

drbdadm --version
cat /proc/drbd  # или dmesg | grep -i drbd

Если версии совпадают (userland 8.3.9 и модуль 8.3.9), перезапустите сервисы кластера и DRBD. Следите за логами dmesg и /var/log/messages для ошибок.

Важные замечания

Important: НЕ нужно перекомпилировать всё ядро для этой операции. Мы используем дерево исходников ядра как среду сборки для совместимости ABI модуля и userland. Тем не менее, любые изменения в дереве исходников или использовании mismatched headers могут привести к нестабильности.

Note: всегда делайте резервные копии конфигураций DRBD и снимки виртуальных машин перед любыми операциями на класте.

Тестирование и критерии приёмки

Критерии приёмки:

  • drbdadm –version показывает 8.3.9.
  • /proc/drbd или вывод drbdadm status не содержит предупреждений о несовпадении версий.
  • Ресурсы DRBD успешно поднимаются и синхронизируются между нодами в тестовой среде.

Проверьте на одном узле, затем на втором. Тестирование на продакшн-кластере без отката крайне рискованно.

Отладка типичных ошибок

  • Ошибка: “you should upgrade your drbd tools!” — userland и модуль не совпадают. Убедитесь, что вы установили correct userland binary и что ядро использует ожидаемый модуль.
  • Ошибка компиляции против KERNEL_DIR — проверьте наличие /usr/src/linux/Makefile и .config.
  • Символы типа undefined reference — убедитесь, что gcc и остальные dev-пакеты установлены и соответствуют архитектуре.

Альтернативные подходы

  • Подождать обновлённые пакеты от сообщества OpenSUSE.
  • Использовать backports RPM, специально подготовленные для вашей версии ядра (требует доверенного поставщика).
  • Обновить дистрибутив или ядро до версии, совместимой с доступными пакетами DRBD.

Контрольный список для администратора

  • Сделан снимок/срез виртуальной машины (snapshot).
  • Резервная копия конфигурации DRBD (файлы в /etc/drbd.d/*).
  • Установлены kernel-source, gcc, make, flex, ncurses-devel.
  • Проверена версия ядра и соответствующий config-файл в /boot.
  • Скачаны и проверены исходники DRBD 8.3.9.
  • Сборка и установка завершены без ошибок.
  • Проверены версии после установки и протестирована синхронизация.

Когда этот метод не сработает

  • Если модуль DRBD встроен жёстко и не совместим по ABI с любым userland (редкий случай). Тогда нужно пересобрать или обновить само ядро.
  • Если политика безопасности организации запрещает сборку бинарников из исходников.
  • Если используется нестандартный патч-уровень ядра, который ломает совместимость.

Короткая методология (как думать об этой задаче)

  1. Идентифицируйте версию модуля и userland.
  2. Решите: ждать пакета или собирать локально.
  3. Подготовьте дерево исходников и окружение сборки.
  4. Соберите userland против текущего дерева ядра.
  5. Тестируйте в изолированной среде, затем вводите в эксплуатацию.

Факт-бокс

  • Цель: устранить несоответствие версий DRBD (userland vs kernel module).
  • Среда: OpenSUSE 11.4 (примерная версия ядра 2.6.37.1).
  • Риск: низкий при тщательном тестировании; средний при работе в продакшн без отката.

Глоссарий (1 строка)

  • userland — набор пользовательских утилит и библиотек, взаимодействующих с модулем ядра; в DRBD это drbdadm и drbddisk.

Контакты и благодарности

Если у вас вопросы по шагам или нужны уточнения, вы можете написать автору примера: [email protected].

Резюме

Данная инструкция показывает, как собрать DRBD userland 8.3.9 против дерева исходников ядра OpenSUSE 11.4 без перекомпиляции самого ядра. Подход полезен, когда пакетная система не предоставляет совместимого userland, но требует аккуратности, резервного копирования и тестирования в изолированной среде.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро