CentOS7 и LSI-9200-8E: Как увидеть все внешние диски?

Я работаю над малобюджетным изменением конфигурации, которое включает миграцию из рабочей среды IBM M1010 (LSI9220-8i) с обновленной прошивкой на более новый сервер с LSI9200-8e SAS HBA.

Все отлично работает на старом сервере, но потребляет много энергии, и желательна конфигурация с меньшими затратами энергии.

Когда диски отключаются от старого сервера и подключаются к новому серверу, я получаю такую ​​последовательность в журналы:

Jan  6 13:15:17 hostname1 kernel: mpt2sas_cm1: 64 BIT PCI BUS DMA ADDRESSING SUPPORTED, total mem (18317688 kB)
Jan  6 13:15:17 hostname1 kernel: kvm: VM_EXIT_LOAD_IA32_PERF_GLOBAL_CTRL does not work properly. Using workaround
Jan  6 13:15:17 hostname1 kernel: mpt2sas_cm1: MSI-X vectors supported: 1, no of cores: 4, max_msix_vectors: -1
Jan  6 13:15:17 hostname1 kernel: mpt2sas1-msix0: PCI-MSI-X enabled: IRQ 34
Jan  6 13:15:17 hostname1 kernel: mpt2sas_cm1: iomem(0x00000000fbff0000), mapped(0xffffc90003620000), size(16384)
Jan  6 13:15:17 hostname1 kernel: mpt2sas_cm1: ioport(0x0000000000006000), size(256)
Jan  6 13:15:17 hostname1 kernel: mpt2sas_cm1: Allocated physical memory: size(4422 kB)
Jan  6 13:15:17 hostname1 kernel: mpt2sas_cm1: Current Controller Queue Depth(1948),Max Controller Queue Depth(2040)
Jan  6 13:15:17 hostname1 kernel: mpt2sas_cm1: Scatter Gather Elements per IO(128)
Jan  6 13:15:17 hostname1 kernel: mpt2sas_cm1: LSISAS2008: FWVersion(20.00.07.00), ChipRevision(0x03), BiosVersion(00.00.00.00)
Jan  6 13:15:17 hostname1 kernel: mpt2sas_cm1: Protocol=(
Jan  6 13:15:17 hostname1 kernel: Initiator
Jan  6 13:15:17 hostname1 kernel: ,Target
Jan  6 13:15:17 hostname1 kernel: ),
Jan  6 13:15:17 hostname1 kernel: Capabilities=(
Jan  6 13:15:17 hostname1 kernel: TLR
Jan  6 13:15:17 hostname1 kernel: ,EEDP
Jan  6 13:15:17 hostname1 kernel: ,Snapshot Buffer
Jan  6 13:15:17 hostname1 kernel: ,Diag Trace Buffer
Jan  6 13:15:17 hostname1 kernel: ,Task Set Full
Jan  6 13:15:17 hostname1 kernel: ,NCQ
Jan  6 13:15:17 hostname1 kernel: )
Jan  6 13:15:17 hostname1 kernel: scsi host4: Fusion MPT SAS Host
Jan  6 13:15:17 hostname1 kernel: mpt2sas_cm1: sending port enable !!

... trimmed out probably unrelated messages ...

Jan  6 13:15:19 hostname1 kernel: mpt2sas_cm1: host_add: handle(0x0001), sas_addr(0x500605b005722a20), phys(8)

... trimmed out probably unrelated messages ...

Jan  6 13:15:40 hostname1 kernel: scsi 4:0:0:0: CDB: Inquiry 12 00 00 00 24 00
Jan  6 13:15:40 hostname1 kernel: scsi target4:0:0: handle(0x0009), sas_address(0x4433221100000000), phy(0)
Jan  6 13:15:40 hostname1 kernel: scsi target4:0:0: enclosure_logical_id(0x500605b005722a20), slot(0)
Jan  6 13:15:40 hostname1 kernel: scsi 4:0:0:0: task abort: FAILED scmd(ffff880488f78380)
Jan  6 13:15:40 hostname1 kernel: scsi 4:0:0:0: attempting device reset! scmd(ffff880488f78380)
Jan  6 13:15:40 hostname1 kernel: scsi 4:0:0:0: CDB: Inquiry 12 00 00 00 24 00
Jan  6 13:15:40 hostname1 kernel: scsi target4:0:0: handle(0x0009), sas_address(0x4433221100000000), phy(0)
Jan  6 13:15:40 hostname1 kernel: scsi target4:0:0: enclosure_logical_id(0x500605b005722a20), slot(0)
Jan  6 13:15:40 hostname1 kernel: scsi 4:0:0:0: device reset: FAILED scmd(ffff880488f78380)
Jan  6 13:15:40 hostname1 kernel: scsi target4:0:0: attempting target reset! scmd(ffff880488f78380)
Jan  6 13:15:40 hostname1 kernel: scsi 4:0:0:0: CDB: Inquiry 12 00 00 00 24 00
Jan  6 13:15:40 hostname1 kernel: scsi target4:0:0: handle(0x0009), sas_address(0x4433221100000000), phy(0)
Jan  6 13:15:40 hostname1 kernel: scsi target4:0:0: enclosure_logical_id(0x500605b005722a20), slot(0)
Jan  6 13:15:40 hostname1 kernel: scsi target4:0:0: target reset: FAILED scmd(ffff880488f78380)
Jan  6 13:15:40 hostname1 kernel: mpt2sas_cm1: attempting host reset! scmd(ffff880488f78380)
Jan  6 13:15:40 hostname1 kernel: scsi 4:0:0:0: CDB: Inquiry 12 00 00 00 24 00
Jan  6 13:15:40 hostname1 kernel: mpt2sas_cm1: Blocking the host reset
Jan  6 13:15:40 hostname1 kernel: mpt2sas_cm1: host reset: FAILED scmd(ffff880488f78380)
Jan  6 13:15:40 hostname1 kernel: scsi 4:0:0:0: Device offlined - not ready after error recovery

Я уже установил последнюю версию прошивки LSI, так как это казалось наиболее вероятным источником проблем. Драйвер вроде бы это подтверждает:

LSISAS2008: FWVersion(20.00.07.00), ChipRevision(0x03), BiosVersion(00.00.00.00)

Прошивка была получена здесь: https: //docs.broadcom. com / docs-and-downloads / host-bus-adapters / host-bus-adapters-common-files / sas_sata_6g_p20 / 9200-8e_Package_P20_IT_FW_BIOS_for_MSDOS_Windows.zip

Прошивка была перепрошита с помощью загрузочного live12 "CD1358" FreeDOS с [11] http://pingtool.org/bootable-dos-iso-bios-upgrade/

BIOS не загружается, так как именно так поставлялись карты 8E, и я не пытаюсь загружаться с них, поэтому не должно

Я вижу один диск на каждый канал SAS, но есть три-четыре диска. Один диск, кажется, работает нормально.

Я попробовал поменять местами кабели, чтобы увидеть, связана ли проблема с конкретным кабелем - похоже, это не так.

Я планирую попробовать CentOS 6, если есть драйвер проблема или условие гонки во время загрузки, вызывающее проблему. RUN pecl установить Imagick

  • На ответ на первый запрос должно уйти 6 минут (это нормальное поведение, мой вопрос не в том, что на ответ требуется меньше времени).
  • Второй запрос должен занять менее 100 мсек.

Дело в том, что запрос сервер ожидает завершения первого запроса перед отправкой ответа на второй запрос.

Моя конфигурация - AWS EC2 с 2 виртуальными ядрами (я считаю, что это полезно для обработки одновременных вычислений).

Запрос проходит через сервер Nginx процессу php-fpm. Я думал, что проблема в том, что я неправильно сконфигурировал PHP-FPM. Однако, после прочтения информации, это моя конфигурация php-fpm:

$ cat www.conf | grep max_children     
;   static  - a fixed number (pm.max_children) of child processes;
;             pm.max_children      - the maximum number of children that can
;             pm.max_children           - the maximum number of children that
pm.max_children = 5

$ cat www.conf | grep start_servers    
;             pm.start_servers     - the number of children created on startup.
pm.start_servers = 2

$ cat www.conf | grep min_spare_servers
;             pm.min_spare_servers - the minimum number of children in 'idle'
; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2
pm.min_spare_servers = 1

$ cat www.conf | grep max_requests     
;pm.max_requests = 500

$ cat www.conf | grep max_children     
;   static  - a fixed number (pm.max_children) of child processes;
;             pm.max_children      - the maximum number of children that can
;             pm.max_children           - the maximum number of children that
pm.max_children = 5

Что мне не хватает? Где мне искать, чтобы отладить такое поведение

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

Спасибо всем, и хороших выходных.

3
задан 12 January 2018 в 11:28
1 ответ

У вас очень мало запущенных рабочих процессов PHP, поэтому может случиться так, что первый запрос использует все доступные рабочие процессы для завершения, и поэтому второй запрос блокируется.

Попробуйте с эти настройки:

pm.max_children = 20
pm.start_servers = 5
pm.min_spare_servers = 3

Фактические полезные числа зависят от вашего фактического трафика. По сути, max_children - это максимальное количество одновременно доступных воркеров, которые могут обслуживать отдельные запросы, и вам необходимо иметь там правильное значение, соответствующее вашему трафику.

3
ответ дан 3 December 2019 в 06:27

Теги

Похожие вопросы