четверг, 29 января 2015 г.

Починка зависания ESXi с установленным adaptec 6 серии на процессорах IntelXeon v2

Система работающая под VMware ESXi 5.5 регулярно перестаёт отвечать или зависает. В логе кернеля vmkernel.log появляются сообщения:

LinSCSI: SCSILinuxAbortCommands: The driver failed to call done from itsabort handler and yet it returned SUCCESS
LinSCSI: SCSILinuxAbortCommands: Failed, Driver aacraid, for ControllerName

Знакомо ли данное поведение? Каким способом можно её решить?

Эта информация относится к следующей операционной системе:
- VMware ESXi 5.5
Между рейд-контроллерами 6. и 6Е. Серий, VMware ESXi 5.5 и процессорами Intel Xeon V2 был обнаружен конфликт в обработке прерываний. Система VMware использует стандартный метод обработки прерываний, но вместо того обработчик прерываний должен работать в режиме MSI (Message Signaled Interrupts).

Замечание: Этот конфликт наблюдается также с рейд-контроллерами Adaptec 2., 3. и 5. Серий, НО не наблюдается с рейд-контроллерами 7. и 8. Серий.

Воспользуетесь следующим методом, чтобы изменить режим работы обработчика прерываний на MSI:
  1. Сначало убедитесь о том, что драйвер рейд-контроллера имеет версию 1.2.1-40700:

    esxcli software vib list | grep aacraid
    Результат:
    scsi-aacraid 5.5.5.2.1.40700-1OEM.550.0.0.1331820 Adaptec_Inc VmwareCertified
    Если драйвер уже имеет версию 1.2.1-40700, то приступайте к шагу 7. Если драйвер имеет версию постарше, приступайте к выполению второго шага. 
  2. С сайта тех-поддержки загрузите драйвер 1.2.1-40700 http://www.adaptec.com/en-us/speed/raid/aac/linux/aacraid_vmware_drivers_1_2_1-40700_cert_tgz.php
  3. Разархивировайте скаченную папку драйвера и скопируете файл aacraid vib на хост с помощью SSH клиента.
  4. Копируете соответственный vib файл на ESXi хост, используя Secure Copy:
    Под Линукс:
    # scp ./vmware-esxi-drivers-scsi-aacraid-550.5.2.1.40700.-1.5.5.1331820.x86_64.vib root@<esxihost-ip>:/tmp/
    Под Windows воспользуетесь утилитой pscp.exe, чтобы в консоле скопировать vib файл на хост:
    c:> pscp c:\vmware-esxi-drivers-scsi-aacraid-550.5.2.1.40700.-1.5.5.1331820.x86_64.vib root@<esxihost-ip>:/tmp/
  5. С помощью SSH клиента обновите драйвер контроллера:
    SSHclient# esxcli software vib update -v /tmp/vmware-esxi-drivers-scsiaacraid-550.5.2.1.40700.-1.5.5.1331820.x86_64.vib
  6. Перезагрузите хост.
  7. Потом откройте консоль на хосте и переключите драйвер aacraid в режим MSI:
    SSHclient# system module parameters set -m aacraid --parameter-string "msi=1"
  8. Проверьте, установился ли параметр правильно:
    SSHclient# system module parameters list -m aacraid
    В отображённой таблице ищите параметр "msi". Его значение должно быть "1".
  9. Чтобы сохранить изменения, повторно перезагрузите хост.
  10. После перезагрузки системы ещё раз проверьте, включён ли режим MSI:
    ~ # lspci | grep Adap
    Пример результата в консоле:
    0000:04:00.0 Mass storage controller: Adaptec AACRAID [vmhba0]

    Потом:
    ~ # dmesg | grep MSI
    Пример результата в консоле:
    2014-11-17T14:07:04.222Z cpu2:33395)<6>igb 0000:02:00.1: Using MSI-X interrupts. 1 rx queue(s), 1 tx queue(s)
    2014-11-17T14:07:09.712Z cpu10:33502)Enabling MSI for dev 0000:04:00.0

Установленный режим работы не будет менятся даже после следующей обновлений драйвера. А вот при обновлении ESXi на другую версию, настройка слетит.
Иными словами после перехода на 6 версию ESXi возникла точно такая же ошибка, несмотря на новый драйвер адаптека выложенный на сайте vmware (VMware ESXi 6.0 aacraid driver version 6.2.1.40709). Снова выставил режим MSI и всё работает стабильно..

Комментариев нет:

Отправить комментарий