Вопрос или проблема
После перезагрузки сервера CentOS ZFS не работает:
$ sudo zfs list
Модули ZFS не загружены.
Попробуйте запустить '/sbin/modprobe zfs' от имени root, чтобы загрузить их.
$ sudo modprobe zfs
modprobe: FATAL: Модуль zfs не найден.
Версия моей ОС CentOS Linux release 7.2.1511 (Core)
, а uname -r
выводит 3.10.0-327.18.2.el7.x86_64
.
Я заметил, что некоторые пакеты, похоже, были обновлены автоматически при загрузке машины – я нашел следующие записи в /var/log/yum.log
:
28 фев 10:11:17 Обновлено: epel-release-7-9.noarch
28 фев 10:11:29 Обновлено: openblas-openmp64-0.2.19-4.el7.x86_64
28 фев 10:11:30 Обновлено: openblas-threads64_-0.2.19-4.el7.x86_64
28 фев 10:11:31 Обновлено: openblas-openmp-0.2.19-4.el7.x86_64
28 фев 10:11:32 Обновлено: openblas-serial64_-0.2.19-4.el7.x86_64
28 фев 10:11:33 Обновлено: openblas-threads-0.2.19-4.el7.x86_64
28 фев 10:11:34 Обновлено: openblas-threads64-0.2.19-4.el7.x86_64
28 фев 10:11:35 Обновлено: openblas-0.2.19-4.el7.x86_64
28 фев 10:11:36 Обновлено: openblas-openmp64_-0.2.19-4.el7.x86_64
28 фев 10:11:37 Обновлено: openblas-serial64-0.2.19-4.el7.x86_64
28 фев 10:11:37 Обновлено: openblas-devel-0.2.19-4.el7.x86_64
28 фев 10:11:43 Обновлено: libtirpc-0.2.4-0.8.el7.x86_64
28 фев 10:11:44 Обновлено: 1:nfs-utils-1.3.0-0.33.el7.x86_64
28 фев 10:12:22 Установлено: kernel-devel-3.10.0-514.6.2.el7.x86_64
28 фев 10:12:27 Обновлено: x2goserver-4.0.1.20-1.el7.x86_64
28 фев 10:12:27 Обновлено: x2goserver-xsession-4.0.1.20-1.el7.x86_64
Согласно dkms status
, похоже, что ZFS не установлен:
$ sudo dkms status
nvidia, 352.93, 3.10.0-327.10.1.el7.x86_64, x86_64: установлен
nvidia-uvm, 352.93, 3.10.0-327.10.1.el7.x86_64, x86_64: установлен (существует original_module)
spl, 0.6.5.9: добавлено
zfs, 0.6.5.9: добавлено
nvidia-uvm, 352.93, 3.10.0-229.el7.x86_64, x86_64: установлен-weak из 3.10.0-327.10.1.el7.x86_64
nvidia, 352.93, 3.10.0-327.18.2.el7.x86_64, x86_64: установлен-weak из 3.10.0-327.10.1.el7.x86_64
nvidia-uvm, 352.93, 3.10.0-327.18.2.el7.x86_64, x86_64: установлен-weak из 3.10.0-327.10.1.el7.x86_64
nvidia, 352.93, 3.10.0-327.4.4.el7.x86_64, x86_64: установлен-weak из 3.10.0-327.10.1.el7.x86_64
nvidia-uvm, 352.93, 3.10.0-327.4.4.el7.x86_64, x86_64: установлен-weak из 3.10.0-327.10.1.el7.x86_64
Когда я пытаюсь выполнить dkms install
, я получаю ошибку:
$ sudo dkms install zfs/0.6.5.9
Ошибка! echo
Заголовки вашего ядра для ядра 3.10.0-327.18.2.el7.x86_64 не найдены
в /lib/modules/3.10.0-327.18.2.el7.x86_64/build или /lib/modules/3.10.0-327.18.2.el7.x86_64/source.
Версия kernel-headers
кажется совпадает с kernel
, но в репозитории нет пакета kernel-devel
той же версии.
$ yum list установлен | grep kernel
kernel.x86_64 3.10.0-229.el7 @anaconda
kernel.x86_64 3.10.0-327.4.4.el7 @updates
kernel.x86_64 3.10.0-327.10.1.el7 @updates
kernel.x86_64 3.10.0-327.18.2.el7 @updates
kernel-devel.x86_64 3.10.0-327.28.3.el7 @updates
kernel-devel.x86_64 3.10.0-327.36.1.el7 @updates
kernel-devel.x86_64 3.10.0-327.36.2.el7 @updates
kernel-devel.x86_64 3.10.0-327.36.3.el7 @updates
kernel-devel.x86_64 3.10.0-514.6.2.el7 @updates
kernel-headers.x86_64 3.10.0-327.18.2.el7 @updates
kernel-tools.x86_64 3.10.0-327.18.2.el7 @updates
kernel-tools-libs.x86_64 3.10.0-327.18.2.el7 @updates
$ sudo yum install "kernel-devel-uname-r == $(uname -r)"
[...]
Нет пакета kernel-devel-uname-r == 3.10.0-327.18.2.el7.x86_64 доступно.
Ошибка: Нечего делать
Что мне делать дальше?
Я подумывал об обновлении ядра (до версии 514.6.2.el7
), но я против этого, потому что опасаюсь, что это может вызвать проблемы. (Я унаследовал этот сервер как временный администратор и не понимаю всего, как он настроен.)
Запустите:
depmod -a; modprobe zfs
И снова:
dkms build -m zfs -v $(zfsVersion)
Вы должны обновлять репозиторий ZFS YUM каждый раз, когда меняется версия ядра, чтобы обе версии совпадали. А потом обновите и ZFS, и ядро.
Ответ или решение
Проблема: Модуль ZFS не найден на CentOS после перезагрузки
После перезагрузки вашего сервера на CentOS, вы столкнулись с проблемой, связанной с отсутствием загрузки модуля ZFS. Сообщение об ошибке, которое вы получили:
$ sudo zfs list
The ZFS modules are not loaded.
Try running '/sbin/modprobe zfs' as root to load them.
$ sudo modprobe zfs
modprobe: FATAL: Module zfs not found.
Это указывает на то, что модули ZFS не загружены, и команда modprobe
не может их найти. Вы используете CentOS версии 7.2.1511 с ядром 3.10.0-327.18.2.el7.x86_64
.
Анализ ситуации
-
Обновления пакетов: Вы заметили обновления системных пакетов в
/var/log/yum.log
, среди которых нет изменений для пакетов, связанных с ZFS. Это может означать, что ZFS был установлен до обновления системы, но обновление ядра могло привести к его несовместимости. -
Версии пакетов: Запуск
dkms status
показал, что ZFS не установлен:
zfs, 0.6.5.9: added
Это говорит о том, что система не видит установленные модули ZFS для текущей версии ядра.
- Проблема с отсутствующими заголовками ядра: Ошибка в
dkms install zfs/0.6.5.9
указывает на то, что заголовки модуля для ядра3.10.0-327.18.2.el7.x86_64
не найдены:
Your kernel headers for kernel 3.10.0-327.18.2.el7.x86_64 cannot be found at /lib/modules/3.10.0-327.18.2.el7.x86_64/build or /lib/modules/3.10.0-327.18.2.el7.x86_64/source.
Решение проблемы
Чтобы устранить эту проблему и восстановить работу модуля ZFS, следуйте данным рекомендациям:
1. Убедитесь, что установлены все необходимые пакеты:
Проверьте наличие kernel-devel
и kernel-headers
для вашего текущего ядра:
sudo yum install kernel-devel kernel-headers
Если вы не можете найти соответствующий пакет, возможно, следует рассмотреть возможность обновления ядра до версии, для которой доступны необходимые пакеты.
2. Установка ZFS через DKMS
После установки нужных пакетов или обновлений, выполните следующие действия:
sudo dkms build zfs/0.6.5.9
sudo dkms install zfs/0.6.5.9
3. Обновление репозитория ZFS
Каждый раз, когда вы обновляете ядро, убедитесь, что вы также обновляете репозиторий ZFS. Это можно сделать следующим образом:
sudo yum update zfs
4. Перезагрузка системы
В некоторых случаях может помочь перезагрузка системы после выполнения вышеуказанных команд, чтобы убедиться, что все изменения вступили в силу и модули загружаются автоматически.
5. Тестирование модуля ZFS
После выполнения всех вышеперечисленных шагов выполните следующую команду, чтобы проверить, работает ли ZFS корректно:
sudo zfs list
Если всё прошло успешно, вы должны увидеть список ваших настроек ZFS.
Заключение
В итоге, проблема с загрузкой ZFS на CentOS 7 может быть решена путем установки соответствующих версий kernel-devel
и kernel-headers
, а также обновлением самого ZFS. Следуя данным рекомендациям, вы сможете избежать конфликтов в будущем и поддерживать стабильную работу вашего сервера. Не забудьте внимательно следить за обновлениями системы и их влиянием на установленные модули.