The OpenNET Project
 
Поиск (ключи):    ПРОГРАММЫ СТАТЬИ СОВЕТЫ ФОРУМ
  WIKI НОВОСТИ (+) MAN'ы ДОКУМЕНТАЦИЯ

Как подружить Linux-ядро 3.x и утилиту LSI MegaCli
С переходом на ядро Linux 3.x.x владельцы LSI RAID могут столкнуться с
неприятным явлением - утилита MegaCli или MegaCli64 перестаёт обнаруживать
RAID-контроллер. Ядро правильно определяет и корректно работает, а утилита
упорно показывает, что никакого RAID-контроллера нет. Не помогает исправить
проблему и обновление MegaCli до последней версии - 8.02.16.

Если мониторинг состояния RAID построен на этой утилите, то ситуация становится
совсем неприятной, так как. можно пропустить вышедший из строя жесткий диск или
пришедшую в негодность батарейку кэша.

Попробуем разобраться в ситуации и найти временное решение, до выхода новой версии MegaCli.

Посмотрим версию ядра, наличие LSI MegaRAID и вывод утилиты MegaCli:

   [root@farm2:1 ~]# uname -a
   Linux farm2.localdomain 3.2.5-3.fc16.x86_64 #1 SMP Thu Feb 9 01:24:38 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux
   
   [root@farm2:1 ~]# lspci | grep -i raid
   10:00.0 RAID bus controller: LSI Logic / Symbios Logic MegaRAID SAS 2108 [Liberator] (rev 05)
   
   [root@farm2:1 ~]# /opt/MegaRAID/MegaCli/MegaCli64 -adpCount
   
   Controller Count: 0.
   
   [root@farm2:1 ~]# /opt/MegaRAID/MegaCli/MegaCli64 -v
   
   MegaCLI SAS RAID Management Tool Ver 8.02.16 July 01, 2011

   (c)Copyright 2011, LSI Corporation, All Rights Reserved.

Мы видим, что работаем под управлением linux-ядра 3.2.5, есть установленный LSI
MegaRAID и  утилита MegaCli64 его не видит. До обновления использовалось ядро
2.6.39, и утилита MegaCli64 обнаруживала контроллер.

Для понимания разницы в поведении MegaCli на ядрах версий 2.6 и 3.х я
использовал gdb и strace. Оказалось, что если загружено любое ядро с номером
версии 2.6.x - используется актуальный набор системных вызовов, иначе
используются устаревшие системные вызовы ядра 2.4.x и, соответственно,
контроллер не находится. Первая мысль, которая приходит в голову: подменить
системный вызов uname для утилиты MegaCli.  Воспользуемся помощью LD_PRELOAD
и несколькими строчками кода на C:

   #define _GNU_SOURCE
   #include <unistd.h>
   #include <sys/utsname.h>
   #include <sys/syscall.h>
   #include <sys/types.h>
   #include <string.h>
   
   int uname(struct utsname *buf)
   {
      int ret = syscall(SYS_uname, buf);
      strcpy(buf->release, "2.6.40");
      return ret;
   }

Компилируем:

   mkdir fakeuname
   cd fakeuname
   wget http://supportex.net/files/fakeuname/fakeuname.c
   gcc -Wall -fPIC -c fakeuname.c
   gcc -Wall -shared -o libfakeuname.so fakeuname.o

Проверим, как будет работать утилита. При запуске будет сообщаться "фейковый"
номер версии ядра - 2.6.40, вместо 3.2.5:

   [root@farm2:1 ~]# /opt/MegaRAID/MegaCli/MegaCli64 -adpCount
   
   Controller Count: 1.
   
   [root@farm2:1 fakeuname]# LD_PRELOAD=./libfakeuname.so /opt/MegaRAID/MegaCli/MegaCli64 -AdpAllInfo -aALL
   
   Adapter #0

   ================================
   Versions
   ================
   Product Name :
   Serial No : SV12345678
   FW Package Build: 12.12.0-0065
   ...

Небольшая победа - контроллер определился!
Теперь можно с ним работать, как и раньше. А libfakeuname.so скопировать в
более удобное место (например /usr/local/lib64) и использовать в своих скриптах
совместно с LD_PRELOAD=/usr/local/lib64/libfakeuname.so.

Ссылки:
    LSI MegaCLI Emergency Cheat Sheet
    LSI Documents and Downloads
    Debugging code with strace
    Debugging with gdb
    Creating and using shared libraries in Linux
    Modifying a Dynamic Library Without Changing the Source Code
 
18.02.2012 , Автор: Andrew Okhmat , Источник: http://supportex.net/ru/2012/02/how...
Раздел:    Корень / Администратору / Система / Поддержка аппаратного обеспечения

Обсуждение [ Линейный режим | Показать все | RSS ]
 
  • 1.1, Аноним, 23:24, 19/02/2012 [ответить] [смотреть все]
  • +/
    setarch --uname-2 6 для слабоков ... весь текст скрыт [показать]
     
     
  • 2.2, Аноним, 23:28, 19/02/2012 [^] [ответить] [смотреть все] [показать ветку]  
  • –1 +/
    setarch --uname-2 6 Unrecognized architecture ... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.3, animechaos, 02:43, 20/02/2012 [^] [ответить] [смотреть все]  
  • +/
    setarch arch options program program arguments setarch x86_64 --una... весь текст скрыт [показать]
     
  • 3.6, Michael Shigorin, 11:44, 20/02/2012 [^] [ответить] [смотреть все]  
  • +/
    В 2 20 1 есть Автору спасибо ... весь текст скрыт [показать]
     
  • 2.4, andysp, 07:19, 20/02/2012 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Не знал, что появился такой параметр Тогда все проще setarch x86_64 --uname-2 ... весь текст скрыт [показать] [показать ветку]
     
  • 1.10, Аноним, 17:21, 29/02/2012 [ответить] [смотреть все]  
  • +/
    Просто нужно использовать правильные дистрибутивы И никакого бубна не надо, всё... весь текст скрыт [показать]
     
     
  • 2.11, Andrey Mitrofanov, 18:24, 29/02/2012 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    А чё не правильные RAID-контроллеры ... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.12, iCat, 14:36, 01/03/2012 [^] [ответить] [смотреть все]  
  • +/
    А потому, что сами по себе этии RAID-controllers - отживающее свой век явление ... весь текст скрыт [показать]
     
     
  • 4.13, muon, 04:18, 02/03/2012 [^] [ответить] [смотреть все]  
  • +/
    А parity на CPU считать Ну-ну ... весь текст скрыт [показать]
     
     
  • 5.14, iCat, 05:35, 02/03/2012 [^] [ответить] [смотреть все]  
  • +/
    А вопрос тоже странный Похоже не диалог - Вот это - будущеее автопрома Электр... весь текст скрыт [показать]
     
     
  • 6.15, Michael Shigorin, 13:46, 02/03/2012 [^] [ответить] [смотреть все]  
  • +/
    Как Вам сказать одна каменотёсная компания на пять букв в своё время попытала... весь текст скрыт [показать]
     
     
  • 7.17, iCat, 11:24, 04/03/2012 [^] [ответить] [смотреть все]  
  • +/
    >...Годится в случаях выделенных сторадж-серверов...

    Так и RAID на рабочей станции - явление весьма себе редкое.
    А с точки зрения "денег", то тут тоже ещё не совсем понятно что окажется разумнее: отдельный i7 с 16GB RAM под выделенный "сторадж-сервер" или "настоящий RAID-controller" с набором "настоящих" HDD.

    В первом случае имеем ещё и "фору" по части "взаимозаменяемости"

     
     
  • 8.18, Michael Shigorin, 15:52, 04/03/2012 [^] [ответить] [смотреть все]  
  • +/
    На десктопе -- да, на workstation встречались DAC960 как-то стоял Не могу п... весь текст скрыт [показать]
     
     
  • 9.19, iCat, 14:26, 05/03/2012 [^] [ответить] [смотреть все]  
  • +/
    Честно говоря, я надеюсь увидеть что-нибудь типа "ZFS-controller" или, там, "BTRFS-controller", или "PAROHOD-FS-on-chip".
    То есть нечто "железо-независимое на железе".

     
  • 4.20, Аноним, 09:49, 07/03/2012 [^] [ответить] [смотреть все]  
  • +/
    Это только в ваших фантазиях Никуда железные рейды не денутся ... весь текст скрыт [показать]
     
  • 2.16, Дядя_Федор, 11:48, 03/03/2012 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    У меня почему-то никаких проблем не возникло. Gentoo. Ставил сервак недавно взамен умирающего. Обычно использую 3Ware, а тут пришлось на LSI построить зеркало с одним spare.
    1. uname -a
    Linux mail 3.2.1-gentoo-r2 #2 SMP Tue Feb 28 15:57:32 MSK 2012 i686 Intel(R) Xeon(R) CPU E5405 @ 2.00GHz GenuineIntel GNU/Linux
    2. lspci | grep -i raid
    03:00.0 RAID bus controller: LSI Logic / Symbios Logic LSI MegaSAS 9260 (rev 05)
    3.  MegaCli -v


          MegaCLI SAS RAID Management Tool  Ver 8.02.16 July 01, 2011

        (c)Copyright 2011, LSI Corporation, All Rights Reserved.
    4.  megacli -adpCount


    Controller Count: 1.

    Ставил все из портеджей. Хотя какая-то утилитка с офсайта лежит - пока ее не прилаживал.

     
     
  • 3.21, XoRe, 00:18, 09/03/2012 [^] [ответить] [смотреть все]  
  • +/
    > Ставил все из портеджей.

    А вы посмотрите содержимое порта на предмет какого-нибудь патчика на тему 2.6)

     
     
  • 4.22, Дядя_Федор, 11:39, 12/03/2012 [^] [ответить] [смотреть все]  
  • +/
    > А вы посмотрите содержимое порта на предмет какого-нибудь патчика на тему 2.6)

    Посмотрел. Нетути. :) Да и чтобы установить эту утилитку надо скачать бинарник с сайта LSI.com. Так что - если кто и патчил, то сами LSI.


     

    Ваш комментарий
    Имя:         
    E-Mail:      
    Заголовок:
    Текст:

     Добавить заметку
     Версия для печати
     
     Поиск заметки:
     

    Последние заметки
    - 12.05 Организация шифрованного бэкапа с помощью rdiff-backup, encfs и Dropbox
    - 11.05 Настройка беспроводного соединения в Debian GNU/Linux
    - 07.05 Использование Google Drive в Linux
    - 18.04 Использование нескольких сетевых стеков в Linux
    - 15.04 Восстановление стандартного KDE меню после его удаления (например, wine)
    - 11.04 Настройка gmirror при использовании GPT во FreeBSD 9
    - 09.04 Маршрутизатор на базе FreeBSD с приоритизация трафика средствами PF и ALTQ
    - 02.04 Частичное восстановление данных MySQL из бэкапа, созданного с использованием LVM
    - 21.03 Настройка DNSSEC в BIND 9.9
    - 17.03 Набор номера на Cisco IP Phone 7960/7940 из скрипта
    RSS | Следующие 15 записей >>


    ПОДПИШИСЬ НА ЖУРНАЛ Linux Format 2012!

    Журнал "Linux Format" (Линукс Формат)- Единственный в России и странах СНГ журнал на русском языке, посвящённый Linux и свободному ПО. Журнал для IT-директоров, IT-менеджеров, программистов, системных администраторов, учителей школ и преподавателей ВУЗов и всех пользователей ПК. В каждом выпуске: Новости индустрии OpenSource, обзоры новинок свободного ПО, обучающие и методические статьи.

    Каждый, кто оформит подписку, получает бонусы и подарки- объёмные наклейки на системный блок, диск с архивом номеров за 2005-2011 г.г. и ежемесячно электронную версию журнала в pdf-формате.

    Оформить подписку на год


      Закладки на сайте
      Проследить за страницей
    Created 1996-2012 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    RUNNet TopList