Помогите с Infotrend EonStor A16F-R2221
Модераторы: Trinity admin`s, Free-lance moderator`s
-
- Junior member
- Сообщения: 9
- Зарегистрирован: 05 окт 2006, 06:24
Помогите с Infotrend EonStor A16F-R2221
Доброго времени суток, уважаемые !
Имеется следующая конфигурация :
1) RAID массив Infotrend EonStor A16F-R2221 (SATA диски, fiber channel подключение к хосту/хостам, встроенный FC hub на 4 выхода)
2) Два компа, каждый с Fiber channel host adapter Qlogic 2340, подключенны к вышеупомянутому RAID'у. На всех fiber channel устройствах (RAID и HBA) включен режим arbitrated loop (FC-AL).
3) В RAID массиве сконфигурирован один logical drive - это RAID 1 из двух дисков. Этот logical drive замаплен на LUN 0 первичного контроллера массива.
4) На хостах установлена SuSE SLES 9 SP3. Хосты видят вышеупомянутый logical drive как /dev/sdc. На этом диске есть два раздела (/dev/sdc1 и /dev/sdc2), которые замаплены на raw-devices /dev/raw/raw1 и /dev/raw/raw2 соответственно.
5) На одном из хостов выполняю команду
dd if=/dev/raw/raw1 of=/tmp/1.1 bs=1M count=1
(копирование 1Mb данных с /dev/raw/raw1 в файл /tmp/1.1) - выполняется прекрасно.
Однако если после этого выполнить точно такую-же команду на втором хосте, то она "зависает", при этом iostat показывает, что один из процессоров занят ожиданием ввода-вывода на 100%. Более того, этот зависший процесс невозможно "убить" даже по kill -9. При этом не важно, на каком из хостов выполнять dd сначала, а на каком потом. Зависание всегда происходит на том хосте, на котором dd выполняется вторым.
Я ожидал, что любой из хостов может обращаться в внешнему RAID'у всегда, когда другой хост не производит подобного обращения. Так ли это ? Если так, где искать ошибку конфигурации ? Заранее спасибо.
С наилучшими пожеланиями,
Алексей Иванов.
Имеется следующая конфигурация :
1) RAID массив Infotrend EonStor A16F-R2221 (SATA диски, fiber channel подключение к хосту/хостам, встроенный FC hub на 4 выхода)
2) Два компа, каждый с Fiber channel host adapter Qlogic 2340, подключенны к вышеупомянутому RAID'у. На всех fiber channel устройствах (RAID и HBA) включен режим arbitrated loop (FC-AL).
3) В RAID массиве сконфигурирован один logical drive - это RAID 1 из двух дисков. Этот logical drive замаплен на LUN 0 первичного контроллера массива.
4) На хостах установлена SuSE SLES 9 SP3. Хосты видят вышеупомянутый logical drive как /dev/sdc. На этом диске есть два раздела (/dev/sdc1 и /dev/sdc2), которые замаплены на raw-devices /dev/raw/raw1 и /dev/raw/raw2 соответственно.
5) На одном из хостов выполняю команду
dd if=/dev/raw/raw1 of=/tmp/1.1 bs=1M count=1
(копирование 1Mb данных с /dev/raw/raw1 в файл /tmp/1.1) - выполняется прекрасно.
Однако если после этого выполнить точно такую-же команду на втором хосте, то она "зависает", при этом iostat показывает, что один из процессоров занят ожиданием ввода-вывода на 100%. Более того, этот зависший процесс невозможно "убить" даже по kill -9. При этом не важно, на каком из хостов выполнять dd сначала, а на каком потом. Зависание всегда происходит на том хосте, на котором dd выполняется вторым.
Я ожидал, что любой из хостов может обращаться в внешнему RAID'у всегда, когда другой хост не производит подобного обращения. Так ли это ? Если так, где искать ошибку конфигурации ? Заранее спасибо.
С наилучшими пожеланиями,
Алексей Иванов.
-
- Junior member
- Сообщения: 9
- Зарегистрирован: 05 окт 2006, 06:24
Честно говоря я не знаю, что Вы имеете в виду под "томом". LUN mapping выполнен на RAID массиве таким образом, что LUN 0 соответствует первый logical drive (на данный момент единственный). Каждый хост видит LUN 0 как /dev/sdc. Кластерная файловая система не нужна, так как НЕ происходит ОДНОВРЕМЕННОГО обращения от хостов к RAID'у. Хосты в моём эксперименте обращаются в РАЗНЫЕ моменты времени (только когда я выполняю команды с консоли). Файловая система вообще не нужна, нужен только block device. Надеюсь мой комментарий немного прояснил ситуацию.
Один из узлов полностью сатурирует дисковый массив и его ресурсов не хватает для обслуживания запросов I/O с другого сервера. kill -9 не работает, потому что пока процесс ждёт ввода-вывода сигналы к нему не проходят.
Судя по тому что там фигурируют какие-то raw-тома, это значит что планировали использовать ящик под БД? Два сатадиска на FC-AL - ошибочный выбор для такого приложения.
Судя по тому что там фигурируют какие-то raw-тома, это значит что планировали использовать ящик под БД? Два сатадиска на FC-AL - ошибочный выбор для такого приложения.
-
- Junior member
- Сообщения: 9
- Зарегистрирован: 05 окт 2006, 06:24
-
- Junior member
- Сообщения: 9
- Зарегистрирован: 05 окт 2006, 06:24
Это верно. Однако в данном случае :gs писал(а):Так делать НЕЛЬЗЯ. Любая современная операционка кэширует файловую таблицу в оперативке. И если нет менеджера блокировок она понятия не имеет что туда понаписала вторая машина. Естественно виснет.
Менеджер блокировок может быть как в виде кластерной ФС, так и в софте типа оракл рак.
1) файловой системы нет
2) менеджером блокировок являюсь я сам, то бишь не допускаю одновременного обращения (я это ПОДЧЁРКИВАЮ в каждом сообщении)
-
- Junior member
- Сообщения: 9
- Зарегистрирован: 05 окт 2006, 06:24
Похоже проблема была в том, что использовался драйвер QLA2340 FC HBA из стандартного ядра linux (пробовал версии 2.6.17 и 2.6.18). После установки драйвера версии 8.01.06, скачанного отсюда http://support.qlogic.com/support/os_de ... 3&osid=125, проблема исчезла. Правда с этим драйвером пришлось помучаться ... Дело в том, что он использует функции межмодульного взаимодействия, которые были объявлены устаревшими ещё в 2.6.10. Однако эти функции доступны и в более новых ядрах. Как показал эксперимент, это драйвер компилируется с любыми ядрами от 2.6.9 до 2.6.18 включительно. Однако загружается в память (командой modprobe) до версии 2.6.15 включительно. Надеюсь эта информация поможет избежать подобных проблем.
Удачи всем,
Алексей Иванов.
Удачи всем,
Алексей Иванов.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 11 гостей