Вопрос к разработчикам и не только

Автор: nickvgru Дата: 24.11.2005 13:44 Есть сервер с двухпроцессорной материнкой Intel L440GX+ Server board ,есть три scsi винчестера, есть корзина горячей замены дисков, есть PCI Intel Server RAID Controller U2-1.
Установить ASPLinux на этот контроллер не удается (как я понял нужен модуль i2o_block этого модуля я нигде не нашел). В форуме я нашел похожую проблему
[forum.asplinux.ru]
но действия описанные там не помогли.(Вернее мне ничего не удалось добавить в файл с помощью vi)
Ответьте кто знает на какие raid контроллеры точно устанавливается asplinux 10(Мне нужно создать RAID 5 уровня с возможностью горячей замены )
Где можно почитать про то как вообще устанавливается и используется RAID 5 на Linux?
Конкретно меня интересует последовательность действий по установке RAID 5 начиная с первого включения компа с установленным контроллером , а также последовательность действий по замене дисков (можно ли их менять ничего не делая а просто выдергивая и вставляя на ходу или их нужно как то парковать или еще что)?
Почему-то в интернете я не нашел информации такого плана
Re: вопрос к разработчикам и не только 28.11.2005 08:41nickvgru Странно, internet переполнен всякого рода новостями о том что Linux лидирует по уствновкам на серверах, а как доходит до конкретного случая так ничего не получается и никто ничего не может подсказать. Разработчики, может быть я должен купить ASPLinux server чтобы он установился на перечисленное выше оборудование? Или может быть выбрать другой дистрибутив? Неужели вы не заинтересованы чтобы ASPLinux работал не только на ПК но и на серверах?
Люди отзовитесь кто знает в каких дистрибутивах есть модуль i2o_block
Re: вопрос к разработчикам и не только 28.11.2005 23:11Woodoo i2o subsystem есть в дистрибутиве ASPL 10. Инсталлятор же знает о "старом" dpt_i2o.
Re: вопрос к разработчикам и не только 30.11.2005 08:55nickvgru Расскажите по-подробнее что делать?
Re: вопрос к разработчикам и не только 02.12.2005 12:32nickvgru Уважаемый Woodoo, спасибо вам огромное за такой подробный ответ на мой вопрос. Благодаря ему мне удалось продвинуться на несколько шагов вперед. Теперь утановка доходит до того места где создаются разделы на жестких дисках и после их успешного создания инсталятор говорит что он не может отформатировать разделы(или диски, не помню точно) и поэтому установка невозможна.
Наверное я что-то не так делаю согласно Вашей инструкции [forum.asplinux.ru]. Кое-что мне хотелось бы уточнить.
По пункту 4 вы пишете :
# mknod /dev/i2o/hda b 80 0
# mknod /dev/i2o/hda1 b 80 1
# mknod /dev/i2o/hda2 b 80 2
...
# mknod /dev/i2o/hdb b 80 16
# mknod /dev/i2o/hdb1 b 80 17
Вопрос: если у меня scsi диски то нужно писать sda ? Я делал и так и так.
Вопрос: если у меня 3 scsi диска установленные в корзину горячей замены, в BIOSe контроллера SCSI из них сформирован массив raid5 и на одном из них есть разделы, то как я понимаю мне нужно делать следующее?:
# mknod /dev/i2o/hda b 80 0
# mknod /dev/i2o/hdb b 80 1
#mknod /dev/i2o/hdc b 80 2
или
# mknod /dev/i2o/sda b 80 0
# mknod /dev/i2o/sdb b 80 1
#mknod /dev/i2o/sdc b 80 2
как правильно?

Далее по пункту 8:
строки
[raid.1]
...
driver=i2o_block
в файле /etc/devices есть, но я делаю raid 5 а не raid 1, что все равно надо оставить raid.1?
Строки
[disk.1]
device=/dev/i2o/hda
driver=i2o_block
нужно добавлять для трех дисков disk.1 disk.2 disk.3 или только один раз disk.1?
Наверное этого пока достаточно. Хотя мне еще не понятно что за команда detect probe и mkbiosdisks.
Команда detect probe выдает ответ
head: cannot open `/dev/sda` for reading: No such device or address
head: cannot open `/dev/sdb` for reading: No such device or address
head: cannot open `/dev/sdc` for reading: No such device or address
head: cannot open `/dev/sdd` for reading: No such device or address
head: cannot open `/dev/sde` for reading: No such device or address
head: cannot open `/dev/sdf` for reading: No such device or address
head: cannot open `/dev/sdh` for reading: No such device or address
Почему /dev/sd а не /dev/i2o/sd ??

Прошу Вас проявить понимание и ответить на эти вопросы ведь если не понимать что ты делаешь и для чего, то ничего и не получится. Заранее спасибо. Буду ждать ответа на e-mail nick_vgru@rambler.ru или в этой теме.
Re: вопрос к разработчикам и не только 06.12.2005 23:31Woodoo Приношу извинения за долгое молчание - отсутствовал.

nickvgru писал(а):

> По пункту 4 вы пишете :
> # mknod /dev/i2o/hda b 80 0
> # mknod /dev/i2o/hda1 b 80 1
> # mknod /dev/i2o/hda2 b 80 2
> ...
> # mknod /dev/i2o/hdb b 80 16
> # mknod /dev/i2o/hdb1 b 80 17
> Вопрос: если у меня scsi диски то нужно писать sda ? Я делал и
> так и так.

Нет. Система использует /dev/i2o/hd* для обращения к блочным устройствам посредством i2o_block.
Вполне возможно, можно попробовать работать и с другими символьными обозначениями (напр., симлинками); но в будущем (например, при обновлении ядра) может произойти сбой. Все-таки крайне желательно придерживаться документации и рассчитывать на объявленные возможности. Загрузка системы - достаточно критичное место и я не рискну дать гарантии, что драйвер [+система] в некий момент не начнет именовать их "по умолчанию".

> Вопрос: если у меня 3 scsi диска установленные в корзину
> горячей замены, в BIOSe контроллера SCSI из них сформирован
> массив raid5 и на одном из них есть разделы,

На аппаратном райде нет понятия "разделы на дисках". Контроллер отдает системе raid-X массив как одно виртуальное "блочное устройство" - например, как один ide-диск. Соответственно, разделы создаются на этом виртуальном устройстве, а как в действительности данные будут располагаться на физических дисках - задача контроллера (и драйвера).
В случае же с программным рейдом - да, действительно, пользователю предстоит спланировать и "обработать" разделы на *физических* дисках самстоятельно, и потом сконструировать из них массив. Т.е. задача более общая.

> то как я понимаю
> мне нужно делать следующее?:
> # mknod /dev/i2o/hda b 80 0
> # mknod /dev/i2o/hdb b 80 1
> #mknod /dev/i2o/hdc b 80 2

В качестве блочного устройства (диска, raid-массива) можно использовать как целый диск (одним куском), так и несколько разделов (в dos-терминологии - "логических дисков";-) на этом диске. Все зависит от желаемого конечного результата.
Пусть у нас есть дискета (блочное устройство) размером... в 32Gb. И неважно как называется потоковый файл - пусть /dev/aaa.
1. Необходимо пространство полностью для /home.
---
# mkfs.ext3 /dev/aaa
# mount -t ext3 /dev/aaa /home
---
2. Та же задача. Но теперь на устройстве /dev/aaa создаем 1 primary раздел /dev/aaa1. (манипуляции fdisk не привожу Улыбка. Этот раздел в свою очередь интерпретируется как блочное устройство:
---
# mkfs.ext3 /dev/aaa1
# mount -t ext3 /dev/aaa1 /home
---
Т.е. мы используем "структуру" /dev/aaa1 внутри "структуры" /dev/aaa. Обращаю внимание: речь шла о первичном разделе. Т.е. сейчас мы имеем
---
/dev/aaa:
/dev/aaa1 primary
---
3. Та же задача. Но теперь на устройстве /dev/aaa создаем 1 logical раздел /dev/aaa5. (манипуляции fdisk не привожу Улыбка. Особенность logical раздела в том, что он *всегда* находится в extended разделе, extended раздел в свою очередь является primary, только расширенным:
---
/dev/aaa
/dev/aaa1 extended
/dev/aaa5 logical
---
И уже /dev/aaa5 мы используем для файловой системы:
---
# mkfs.ext3 /dev/aaa5
# mount -t ext3 /dev/aaa5 /home
---

Всего primary разделов может быть 4, один из которых может быть extended.
До 4 разделов включительно можно сделать только primary.
Если нужно больше - от 0 до 3 - primary, 1 extended (обязательно), все остальное - в extended.

Принятая нумерация такая - если номер раздела от 1 до 4 - это primary или extended раздел, если от 5 и выше - это logical раздел.

Весь этот "сбивчивый бред" к этому:

> # mknod /dev/i2o/sda b 80 0
> # mknod /dev/i2o/sdb b 80 1
> #mknod /dev/i2o/sdc b 80 2
> как правильно?

Правильно для одного аппаратного райд-массива создать один потоковый файл:
# mknod /dev/i2o/hda b 80 0
При разбиении устройства инсталлятором на разделы потоковые файлы разделов будут созданы автоматически.
Но только в том случае, если raid чистый и там нет уже готовых разделов, которые должны использоваться в будущем без переразбиения (потери информации).

В таком случае потоковые файлы разделов нужно создать руками дополнительно и использовать их без форматирования (например, подключить раздел с файловой системой /home или /opt).
Последнее число в mknod - это "минор". Миноры распределяются так:
0 - все устройство 1.
1-15 - разделы (1-15) на устройстве 1.
16 - все устройство 2.
17-31 - разделы (1-15) на устройстве 2.
И т.д.
Под устройством в данном случае понимается целевая единица аппаратного raid-контроллера: raid-массив или не входящий в массив отдельный scsi-диск.
Нумерация устройств и разделов начинается с 1.
Таким образом для раздела X на устройстве Z минор будет:
=16*(Z-1)+X
В шестнадцатиричной системе это нагляднее Мозги набекрень

> Далее по пункту 8:
> строки
> [raid.1]
> ...
> driver=i2o_block
> в файле /etc/devices есть, но я делаю raid 5 а не raid 1, что
> все равно надо оставить raid.1?

Это не тип raid, порядковый номер контроллера, имхо.

> Строки
> [disk.1]
> device=/dev/i2o/hda
> driver=i2o_block
> нужно добавлять для трех дисков disk.1 disk.2 disk.3 или
> только один раз disk.1?

Аналогично с предыдущим замечанием. Если используется два и более raid (или raid+диск(и)).

> Наверное этого пока достаточно. Хотя мне еще не понятно что за
> команда detect probe и mkbiosdisks.
> Команда detect probe выдает ответ
> head: cannot open `/dev/sda` for reading: No such device or
> address
> head: cannot open `/dev/sdb` for reading: No such device or
> address
> head: cannot open `/dev/sdc` for reading: No such device or
> address
> head: cannot open `/dev/sdd` for reading: No such device or
> address
> head: cannot open `/dev/sde` for reading: No such device or
> address
> head: cannot open `/dev/sdf` for reading: No such device or
> address
> head: cannot open `/dev/sdh` for reading: No such device or
> address
> Почему /dev/sd а не /dev/i2o/sd ??

Инсталлятор не знает о существовании /dev/i2o/* и просматривает ранее известные возможные файлы.
Если бы знал - этого треда не было бы. Улыбка

ps Очень сложно угадывать, что "там может быть". Просто сколько всего райдов и как выглядит вывод команды
---
# fdisk -l /dev/i2o/????
---
Re: вопрос к разработчикам и не только 07.12.2005 15:49nickvgru Уважаемый Woodoo с установкой разобрался. Оказывается помимо модуля i2o_block нужно грузить еще и модули i2o_proc и i2o_config.
После этого установка прошла успешно. В инсталяторе я выбрал выборочный тип установки на весь диск /dev/i2o/hda вариант сервер.
Теперь проблемы с загрузкой :
Во время процесса инсталяции я выбрал пункт не устанавливать загрузчик. После окончания установки я загрузился с компакта в консоли восстановления и сделал все как написано в Вашей инструкции. Но начали появляться некоторые нюансы например команда fdisk -l /dev/i2o/hda выдает
---
Disk /dev/i2o/hda: 18,1GB , 18199085056 bytes
255 heads, 63 sectors/track , 2212 cylinders
Units = cylinders of 16065*512=8225280 bytes
Device Boot Start End Blocks Id System
/dev/i2o/hda1 1 258 2072353+ 82 Linux swap
/dev/i2o/hda2 * 259 2212 15695505 83 Linux
---
Как видно инсталятор использовал /dev/i2o/hda1 под swap поэтому мне пришлось делать не как Вы пишите mount -t ext3 /dev/i2o/hda1 /1
а
mount -t ext3 /dev/i2o/hda2 /1
Далее все идет нормально до команды
cat /etc/modprobe.conf
В моем файле присутствуют такие строки:
....
alias scsi_hostadapter aic7xxx
.....
alias scsi_hostadapter1 i2o_block

Дело в том что на материнке установлен интегрированный контроллер SCSI Adaptec AIC 7896N Но я в BIOSe его запретил.
В результате всех этих действий загрузчик у меня прописался. При включении я могу выбирать в нем варианты загрузки но все варианты приводят к Kernel panic а именно:
Creating root device
Mounting root filesystem
mount:error 6 mounting ext3
mount:error 2 mounting none
Switching to new root
switchroot: mount failed: 22
umount /initrd/dev failed: 2
Kernel panic - not syncing: Attempted to kill init!

Что это означает, что неправильно?
И еще я создавал новый initrd для vmlinuz smp так как у меня двухпроцессорная система. Это важно или нет?
Re: вопрос к разработчикам и не только 07.12.2005 20:27Woodoo nickvgru писал(а):

> Уважаемый Woodoo с установкой разобрался. Оказывается помимо
> модуля i2o_block нужно грузить еще и модули i2o_proc и
> i2o_config.
> После этого установка прошла успешно. В инсталяторе я выбрал
> выборочный тип установки на весь диск /dev/i2o/hda вариант
> сервер.

Ключевое сочетание: "на весь диск". В случае "выборочно" можно было бы самостоятельно спланировать разделы на массиве.

> Как видно инсталятор использовал /dev/i2o/hda1 под swap поэтому
> мне пришлось делать не как Вы пишите mount -t ext3
> /dev/i2o/hda1 /1
> а
> mount -t ext3 /dev/i2o/hda2 /1

Разумеется, *нужно* подставлять свои данные.

> Далее все идет нормально до команды
> cat /etc/modprobe.conf
> В моем файле присутствуют такие строки:
> ....
> alias scsi_hostadapter aic7xxx
> .....
> alias scsi_hostadapter1 i2o_block

Можно удалить все и оставить только
---
alias scsi_hostadapter i2o_block
---
Можно:
---
alias scsi_hostadapter off
alias scsi_hostadapter1 i2o_block
---

Также можно добавить в /etc/modprobe.conf.dist строку:
---
alias block-major-80-* i2o_block
---


> В результате всех этих действий загрузчик у меня прописался.

Какой загрузчик?
Можно увидеть файл конфигурации?
Можно увидеть /etc/fstab?

> Что это означает, что неправильно?

Как выглядела команда mkinitrd?

> И еще я создавал новый initrd для vmlinuz smp так как у меня
> двухпроцессорная система. Это важно или нет?

Может быть важно, но в более сложных случаях. Надеюсь, не сейчас.
Re: вопрос к разработчикам и не только 08.12.2005 10:36nickvgru 1)Загрузчик asploader
---
2)aspldr.conf
[1@raid_test1]
icon linux
kernel /boot/vmlinuz-2.6.9-1.667asp root=/dev/i2o/hda2
initrd /boot/raid_667.img

[SEPARATOR]

[2@raid_test2]
icon linux
kernel /boot/vmlinuz-2.6.9-1.667asp root=/dev/i2o/hda2
initrd /boot/initrd-2.6.9-1.667asp.img

[ACTIVATOR]
writembr on
writeboot off
mbrdev /dev/i2o/hda
---

3) /etc/fstab выглядит так:

---
#<file system> <mount point> <type> <options> <dump> <pass>
/dev/i2o/hda2 / ext3 defaults,errors=remount-ro 0 1
/dev/i2o/hda1 none swap sw 0 0
proc /proc defaults 0 0
none /dev/pts devpts gid=5,mode=620 0 0
---

4)команда mkinitrd выглядит так:
---
mkinitrd --with=i2o_block /boot/raid_667.img 2.6.9-1.667asp
---

При попытке загрузиться в нормальном режиме (не с компакта) я земетил следующие строки (я их уже писал сейчас привожу более полно)
---
iop0: Unable to set SysTab (status=0x6e)
I2O controller: probe of 0000:00:09.1 failed with error -110
Loading i2o_block.ko module
I2O Block Storage OSM v0.9
(c) Copyright 1999-2001 Red Hat Software.
block-osm: registered device at major 80
Loading jbd.ko module
Loading ext3.ko module
Creating root device
Mounting root filesystem
mount:error 6 mounting ext3
mount:error 2 mounting none
Switching to new root
switchroot: mount failed: 22
umount /initrd/dev failed: 2
Kernel panic - not syncing: Attempted to kill init!
---
Re: вопрос к разработчикам и не только 14.12.2005 12:08nickvgru Уважаемый Woodoo. Откликнитесь пожалуйста. Еще немного вашей помощи и все у меня заработает. Смотрите мое предыдущее сообщение в этой теме. Там я выложил всю информацию которую Вы просили. У меня такое ощущение что SCSI controller не может правильно инициализироваться во время загрузки системы и поэтому получается kernel panic. Но если система на него все-таки установилась и в консоли восстановления после описанных вами манипуляций можно его растолкать и увидеть содержимое RAID то наверное можно добиться того чтобы загрузка системы проходила без проблем.
Без посторонней помощи я этого сделать не смогу, поэтому вся надежда на сообщество и конкретно на Вас.
Буду ждать ответа в этой теме.
Re: вопрос к разработчикам и не только 16.12.2005 15:10Nomad Идем на сайт интеля, смотрим
Intel L440GX+ Server board
Там есть список совместимых о/систем. И Installation Guide с подробным описанием установки.
У меня была похожая проблема
[forum.ixbt.com]
Но с ASP придется попрощаться
Re: вопрос к разработчикам и не только 16.12.2005 15:12Woodoo Вот здесь уже сложно ответить - пытался получить результат от собственных экспериментов.
У меня была аналогичная проблема (наряду с другими аппаратными, не связанными с контроллером):
"Unable to set SysTab ..."
Отличие заключается в том, что в моем случае драйвер "отваливался" по таймауту.
Что делалось:
- вариации (апгрейд и даунгрейд) версий прошивок firmwire, bios и OSM контроллера и их сочетаний
- менялись версии bios материнской платы
- замена блока питания
- неоднократная реинициализация raid-массива с разными аппаратными настройками каналов scsi.

Точно сказать, не могу, но эта ошибка исчезла, имхо, после замены БП.

Кроме того:

> При попытке загрузиться в нормальном режиме

В каком из двух, указанных в aspldr.conf?
Можно попробовать в секцию [ACTIVATOR] добавить строку
---
biosnum 1
---

Возможно, это уже не связано с контроллером непосредственно:
[kerneltrap.org]
[www.linuxquestions.org]
[help.lockergnome.com]
[lists.debian.org]
Re: вопрос к разработчикам и не только 21.12.2005 09:41nickvgru Спасибо огромное Woodoo за вашу помощь. Буду пробовать подбирать варианты. Может что и получится. Хотя использовать в "боевых" условиях сервер на который систему нужно загонять пинками мне кажется неразумно. Тем не менее огромное спасибо за помощь.
В заключении темы хотелось бы обратиться ко всему сообществу. Очень мало информации в нете по установке и использованию Linux на аппаратных raid. Поисковики выдают кучу ссылок на Software raid howto либо на linux dpt hardware howto которое датируется 1997 годом, либо ссылки на такие-же вопросы в форумах. В связи с этим призываю сообщество (а также разработчиков дистрибутива) обратить внимание на эту тему и размещать в инете информацию об удачных и неудачных попытках установок linux на аппаратный raid. (Может быть разработчики напишут какое-то howto на эту тему). Со своей стороны собираюсь выложить на каком-нибудь сайте описание своих неудачных пока попыток установки.
RSS-материал