PowerFlex. Подборка драйверов PowerFlex SDC для PowerFlex по требованию

Summary: В этой статье на основе базы знаний описывается, как включить компиляцию драйвера PowerFlex SDC по требованию в системах Linux.

This article applies to This article does not apply to This article is not tied to any specific product. Not all product versions are identified in this article.

Instructions

Эта функция предназначена для поддержки изменений двоичного интерфейса приложений (ABI) в ядре Linux, которые могут привести к сбою загрузки драйвера SDC, предварительно скомпилированного для другого ядра.

Исторически сложилось так, что установочный пакет SDC для Linux (RPM/DEB) содержал несколько модулей ядра SDC для различных ядер этого дистрибутива Linux. Для пользователей, выполняющих установку в дистрибутивах, таких как Ubuntu, которая выпускает частые обновления ядра, предусмотрена возможность настроить службу SDC для подключения к удаленному репозиторию драйверов SDC Dell и попытки загрузки SDC оттуда.

С помощью новой функции пользователи могут скомпилировать идеальное соответствие драйвера SDC для работающего ядра, не полагаясь на наличие соответствующего SDC в репозитории драйвера.

Примечание. Функция самокомпиляции поддерживается только в системах Linux, в которых поддерживается SDC. Подробные сведения см. в таблице поддержки PowerFlex.

Целевая аудитория: Пользователи, которые часто обновляют свои ядра из соображений безопасности и используют специализированные пользовательские ядра, могут извлечь выгоду из этой функции.

 

Необходимые условия
Для успешного выполнения процедуры компиляции на хосте сервиса SDC должны быть установлены следующие пакеты:

  • Последняя версия компилятора GNU C (GCC), GCC
  • GNU make(1).
  • Пакет разработки ядра для работающего ядра. Этот пакет обычно доступен со следующими именами:
    • kernel-devel для дистрибутивов с помощью менеджера пакетов RPM. (Red Hat, SUSE и т.д.)
    • linux-heads для дистрибутивов, использующих менеджер пакетов Debian (Debian, Ubuntu и т.д.)

Автоматическая компиляция
по требованиюЧтобы обеспечить автоматическую компиляцию драйвера SDC по требованию, хост должен соответствовать всем предварительным требованиям, перечисленным в разделе Необходимые условия выше. При запуске драйвера SDC сервис SDC пытается скомпилировать драйвер SDC, если выполняются все следующие условия:

  • SDC, соответствующий работающему ядру, недоступен в кэше драйверов.
    Дополнительные сведения о кэше драйверов см. в разделе Кэш драйверов ниже.

  • Файл с именем /etc/emc/scaleio/scini_sync/.build_scini Существует.
    Содержимое файла игнорируется. Однако пользователи должны оставить его пустым для возможных будущих улучшений.
    Файл можно создать, выполнив команду touch(1) .

Ручная компиляция
SDC, узел компиляции должен удовлетворять всем предварительным требованиям, перечисленным в разделе Необходимые условия выше.
Чтобы вручную скомпилировать драйвер SDC, выполните следующие действия.

  1. Скопируйте пакет компиляции из соответствующего каталога в кэше драйвера во временный каталог. Расположение пакета зависит от версии PowerFlex и дистрибутива Linux.
    Например, пакет PowerFlex 3.6.3 SDC для дистрибутивов на базе Red Hat Enterprise Linux 9 выглядит следующим образом: /bin/emc/scaleio/scini_sync/driver_cache/RHEL9/3.6.3000.128/Dell-PowerFlex-scini_builder-3.6.3000.128.x86_64.tgz
    Дополнительные сведения о кэше драйверов см. в разделе Кэш драйверов ниже.

  2. Перейдите во временный каталог и извлеките пакет компиляции.
    Пример.

    tar xzf Dell-PowerFlex-scini_builder-3.6.3000.128.x86_64.tgz
  3. Запустите build_driver.sh скрипт, расположенный на верхнем уровне извлекаемого содержимого. Без аргументов сценарий пытается скомпилировать драйвер для работающего ядра.
    Чтобы скомпилировать для другого ядра, укажите путь к каталогам заголовков этого ядра с помощью команды "-o" и "-s" аргументы командной строки.
    Для получения дополнительной информации о вызове выполните команду:

    build_driver.sh -h
  4. Выходные данные процесса компиляции печатаются в стандартном выводе.
    После успешной компиляции полученный файл драйвера SDC, scini.ko, можно найти по адресу ./ini/scini.ko.

  5. Скопируйте файл драйвера с хоста компиляции на целевой хост SDC в каталог, соответствующий целевой версии ядра, в том же местоположении, что и пакет компиляции, в кэше драйвера.
    Например, для драйвера, выполненного для версии ядра 5.14.0-362.24.1.el9_3.x86_64, целевой путь к файлу драйвера выглядит следующим образом: /bin/emc/scaleio/scini_sync/driver_cache/RHEL9/3.6.3000.128/5.14.0-362.24.1.el9_3.x86_64/scini.ko.

 

Additional Information

Кэш
драйвераДрайвер SDC, успешно скомпилированный для определенного ядра, будет скопирован в соответствующий каталог кэша драйвера, и его компиляция не будет запущена повторно.
Кэш драйверов находится в следующем местоположении: /bin/emc/scaleio/scini_sync/drive_cache.

Журнал
сборкиЕсли включена автоматическая компиляция по требованию, все журналы компиляции добавляются в /bin/emc/scaleio/scini_sync/driver_build.log.
Успешная компиляция заканчивается сообщениями, подобными следующему:

make: Entering directory '/usr/src/linux-headers-5.15.0-30-generic'
"Following additional compilation's conditions are defined:" 
BLK_MQ_HEADER 
BLK_DEV_MAX_SEGMENTS 
SOCKET_HAS_NET_IN_CREATE 
BIO_BI_BDEV 
BIO_BI_STATUS 
BLK_QUEUE_FLAG_FUNCS 
BLK_INITIALIZE_RMQ_FN 
WAIT_QUEUE_ENTRY_T 
HAS_SCSI_REQUEST 
HAS_SCSI_REQ 
HAS_SCSI_CMND 
HAS_SCSI_IOCTL 
HAS_SCSI_IOCTL_WITH_GENDISK 
HAS_QUEUE_FLAG_DISCARD 
HAS_DISK_LIVE_IN_GENHD 
  CC [M]  /tmp/PowerFlex_driver_build_hpoM6l/ini/./linux/api/api_main.o 
  CC [M]  /tmp/PowerFlex_driver_build_hpoM6l/ini/./linux/api/api_mos.o 
  CC [M]  /tmp/PowerFlex_driver_build_hpoM6l/ini/./linux/api/api_net.o 
  CC [M]  /tmp/PowerFlex_driver_build_hpoM6l/ini/./linux/api/api_ioctl.o 
  CC [M]  /tmp/PowerFlex_driver_build_hpoM6l/ini/./linux/api/api_blk_io.o 
  CC [M]  /tmp/PowerFlex_driver_build_hpoM6l/ini/./linux/api/api_blk_dev.o 
  LD [M]  /tmp/PowerFlex_driver_build_hpoM6l/ini/scini.o 
"Following additional compilation's conditions are defined:" 
BLK_MQ_HEADER 
BLK_DEV_MAX_SEGMENTS 
SOCKET_HAS_NET_IN_CREATE 
BIO_BI_BDEV 
BIO_BI_STATUS 
BLK_QUEUE_FLAG_FUNCS 
BLK_INITIALIZE_RMQ_FN 
WAIT_QUEUE_ENTRY_T 
HAS_SCSI_REQUEST 
HAS_SCSI_REQ 
HAS_SCSI_CMND 
HAS_SCSI_IOCTL 
HAS_SCSI_IOCTL_WITH_GENDISK 
HAS_QUEUE_FLAG_DISCARD 
HAS_DISK_LIVE_IN_GENHD 
  MODPOST /tmp/PowerFlex_driver_build_hpoM6l/ini/Module.symvers 
  CC [M]  /tmp/PowerFlex_driver_build_hpoM6l/ini/scini.mod.o 
  LD [M]  /tmp/PowerFlex_driver_build_hpoM6l/ini/scini.ko 
  BTF [M] /tmp/PowerFlex_driver_build_hpoM6l/ini/scini.ko 
Skipping BTF generation for /tmp/PowerFlex_driver_build_hpoM6l/ini/scini.ko due to unavailability of vmlinux 
make: Leaving directory '/usr/src/linux-headers-5.15.0-30-generic' 
02-Apr-2024 11:46:48 INFO: Success.

Контейнер
инициализации SDCКонтейнер инициализации SDC поставляется предварительно настроенным для использования этой функции. Он включает в себя gcc и делает пакеты, а /etc/emc/scaleio/scini_sync/.build_scini Файл присутствует. Однако для успешной компиляции каталог заголовков ядра хоста должен быть сопоставлен с контейнером, чтобы /usr/src. Например, чтобы запустить контейнер вручную с помощью docker, после установки правильного пакета kernel-devel на хосте, добавьте -v/usr/src:/usr/src в командную строку, чтобы каталог заголовков ядра был доступен скрипту компиляции.

Ограничение
Может возникнуть ситуация, когда компилятор GCC, доступный в дистрибутиве Linux хоста, недостаточно развит для компиляции SDC для какого-либо ядра. Такая ситуация должна быть редкой, так как она, вероятно, будет включать в себя пользовательское ядро, а не то, которое является общим для этого дистрибутива. В этом случае пользователь должен установить более продвинутый GCC из нестандартного репозитория пакетов, и местоположение этого GCC должно быть указано в $PATH. Не существует автоматического способа предоставить альтернативный путь GCC к сервису SDC.

Версии
3.6.3 или выше
4.5.2 или выше

Видеоинструкции

 

Affected Products

PowerFlex rack, PowerFlex Appliance, PowerFlex Software

Products

PowerFlex custom node
Article Properties
Article Number: 000224134
Article Type: How To
Last Modified: 18 Sep 2024
Version:  6
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.