1) Схема включения dual-loop
Суть dual-loop в том, что каждый JBOD подсоединяется двумя путями к двум разным каналам контроллера. Если контроллер увидел, что на обоих каналах видны устройства с одинаковыми ID, он понимает, что это dual-loop. Если один из патчкордов, каналов, GBIC и пр. выйдет из строя, то ID всех устройств прозрачно для всех подхватываются оставшимся каналом. Infortrend утверждает, что dual-loop, помимо отказоустойчивости, еще и удваивает пропускную способность.
Способов подключения JBOD много, важно, чтобы петля нигде не разрывалась, т.е. патч-корды надо втыкать правильно, помнить о джамперах loop close/open. Если контроллер при включении не увидел dual-loop, но она образовалась потом - он примет это к сведению и тут же назначит дискам запасной канал.
Внимание: Помните, что джамперы loop close/open, JBOD-ID, HUB en/dis на дисковой полке недостаточно переключить, нужно еще и выкл./вкл. JBOD.
Если вы не сделаете это сразу же, то даже запланированное выключение питания через 3-4 месяца может принести неожиданные результаты!
Если двойная петля настроена правильно, то два канала с типом Drive будут отмечены номером парного канала в (). У меня это каналы 2(4) и 4(2).
Код: Выделить всё
┌──────┬───────┬───┬───┬─────────┬──────┬─┬────┬─────────┬──────┐
│Chl │Mode │PID│SID│DefSynClk│DefWid│S│Term│CurSynClk│CurWid│
├──────┼───────┼───┼───┼─────────┼──────┼─┼────┼─────────┼──────┤
│0 │Host │112│113│ AUTO │Serial│F│ NA│ 2 GHz │Serial│
├──────┼───────┼───┼───┼─────────┼──────┼─┼────┼─────────┼──────┤
│1 │Host │114│115│ AUTO │Serial│F│ NA│ 2 GHz │Serial│
├──────┼───────┼───┼───┼─────────┼──────┼─┼────┼─────────┼──────┤
│2(4) │Drive │124│125│ AUTO │Serial│F│ NA│ 2 GHz │Serial│
├──────┼───────┼───┼───┼─────────┼──────┼─┼────┼─────────┼──────┤
│3(C) │DRV+RCC│119│120│ AUTO │Serial│F│ NA│ 2 GHz │Serial│
├──────┼───────┼───┼───┼─────────┼──────┼─┼────┼─────────┼──────┤
│4(2) │Drive │124│125│ AUTO │Serial│F│ NA│ 2 GHz │Serial│
├──────┼───────┼───┼───┼─────────┼──────┼─┼────┼─────────┼──────┤
│5(C) │RCCOM │ NA│ NA│ AUTO │Serial│F│ NA│ 2 GHz │Serial│
└──────┴───────┴───┴───┴─────────┴──────┴─┴────┴─────────┴──────┘
На этом примере диск на канале 2 имеет запасной ID 4-го канала (Redundant Loop ID =4). Если диск не в dual-loop, то Redundant Loop ID = "NA"
Код: Выделить всё
┌────────────────────────┬────────────────────────┐
│ Revision Number │0003 │
│ Serial Number │3KP0ZQ9W00007602 │
│ Disk Capacity (blocks) │143374743 │
│ Node Name(WWNN) │20 00 00 14 C3 06 6C 98 │
│ Redundant Loop ID │4 │
└────────────────────────┴────────────────────────┘
Первая схема включения dual-loop. Так ее обычно рисует Infortrend в доступных мне мануалах, только IN от OUT там не отличить:

Этот способ не очень хорош.
Действительно, при отказе любого из соединений (один патч-корд или GBIC) dual-loop разрывается, хотя и сохраняется штатная работа по single-loop. То же самое происходит, если переключатели loop-close-open установлены неправильно. Если на JBOD_0 поставить loop-close и отключить встроенный HUB, то JBOD_1 вообще отомрет при одном оторванном патчкорде между контролером и JBOD_0.
Отключение 2х патчкордов или отказ любых двух элементов приводит к отключению обоих JBOD.
Если JBOD_0 выключить или отсоединить, то JBOD_1 вообще потеряет связь с контроллером!
Внимание: Иногда, чтобы восстановить dual-loop, нужно переключить loop-close-open, а для этого нужно выключать питание JBOD. Не делайте это на JBOD_0, при включении по такой схеме!
Вторая схема включения dual-loop - так обычно рисует Xyratex

Это уже значительно лучше.
При отказе любого из соединений dual-loop разрывается (штатная работа по single-loop), зато каждый из JBOD можно включать, выключать. Оставшийся будет виден.
Включение в цепь еще одной дисковой полки требует остановки контроллера, либо отказа от dual-loop.
Но мы же затем и покупали FC систему, чтобы расширять ее без перерыва в работе и без потных от страха ручонок?
Третья схема включения dual-loop

Не смею приписывать себе открытие, но на картинках в документации такого не видел, суровые адепты тоже бездушно склоняли либо к схеме Infortrend, либо Xyratex.
Такая схема позволяет отключить совсем один из JBOD, не нарушая dual-loop на соседнем! В первой схеме, это можно было делать лишь на одном JBOD, во второй схеме на обоих, но dual-loop тут же нарушался.
В этой схеме любые два вытащенных патчкорда или два неисправных GBIC в худшем случае либо отключат только один из JBOD, либо оставят single-loop на обоих. Теоретически, суммарная пропускная способность тоже выше.
Если у вас более 3х JBOD, то можно разделить две цепи:
цепь1 Ch2_A -JBOD_0 -Ch4B
цепь2 Ch2_B -JBOD_1-....-JBOD_N -Ch4A
Оставьте самую важную полку (например RAID10 для баз данных) на персональной цепи1 и прибейте патчкорды гвоздями.
Теперь резвитесь как угодно на второй цепи, база данных не пострадает.
Установка умышленно совпадающего ID во второй цепи может частично отключить вторую цепь, но JBOD_0 это не затронет. Проверено. Система отстреливает самозванца, остальные в полном порядке.
Внимание! в обоих цепях должны быть разные ID у всех JBOD!
Это же по сути общая петля, несмотря на включение в разные GBIC. Все видят всех.
Полезно: даже если у вас более 2х Drive Channel и JDOD'ы сидят в персональных каналах (счастливчик!), лучше заранее поставить всем JBOD несовпадающие ID. Патчкорд, вставленный по ошибке в соседний канал не вспугнет соседей.
Если же у вас более 7(14) JBOD, то не слушайте этого совета. Вы уже опытнее меня.
2)Как будто бы Infortrend не поддерживает LUN mapping?
Я конечно не совсем понимаю, что это такое, но на Infortrend изолировать видимость серверами разных LUN не просто, а очень просто.
Я начну описание с того, как давать имена WWN серверных адаптеров.
Это необязательно для LUN mapping, но полезно если вы с трудом запоминаете 16-ти байтовые последовательности.
- подключайте сервера к контроллеру по одному и смотрите новые WWN на соответствующем канале. Почему по одному? Потому что все WWN похожи, легко перепутать серверы.
view & edit channel, view channel-host id
Код: Выделить всё
┌──────┬───────┬───┬───┬─────────┬──────┬─┬────┬─────────┬──────┐
│Chl │Mode │PID│SID│DefSynClk│DefWid│S│Term│CurSynClk│CurWid│
├──────┼───────┼───┼───┼─────────┼──────┼─┼────┼─────────┼──────┤
│0 │Host │112│113│ AUTO │Serial│F│ NA│ 2 GHz │Serial│
├──────┼───────┼───┼───┼─────────┼──────┼─┼────┼─────────┼──────┤
│1 │Host │114│115│ AUTO │Serial│F│ NA│ 2 GHz │Serial│
├──┌─────────────────────────────────┐──┼─┼────┼─────────┼──────┤
│2(│ WWPN:0x210000E08B82DF33 (imap) │al│F│ NA│ 2 GHz │Serial│
├──│ WWPN:0x210000E08B8F74FA (black) │──┼─┼────┼─────────┼──────┤
│3(└─────────────────────────────────┘al│F│ NA│ 2 GHz │Serial│
├──────┼───────┼───┼───┼─────────┼──────┼─┼────┼─────────┼──────┤
│4(2) │Drive │124│125│ AUTO │Serial│F│ NA│ 2 GHz │Serial│
├──────┼───────┼───┼───┼─────────┼──────┼─┼────┼─────────┼──────┤
│5(C) │RCCOM │ NA│ NA│ AUTO │Serial│F│ NA│ 2 GHz │Serial│
└──────┴───────┴───┴───┴─────────┴──────┴─┴────┴─────────┴──────┘
- идем в "view & edit host LUN", "Edit host-id/WWN list", жмем ENTER на любом WWN из списка:
Код: Выделить всё
┌────────────────┬────────────────┐
│ Host-ID/WWN │ Name List │
├────────────────┼────────────────┤
│210000E08B823F04│fat │
├────────────────┼────────────────┤
│210000E08B8F74FA│black │
├────────────────┼────────────────┤
│0000000000000002│wwn2 │
├────────────────┼────────────────┤
│21┌──────────────────────────────┐
├──│ Add Host-ID/WWN Name List │
│21│ Delete Host-ID/WWN Name List │
├──└──────────────────────────────┘
│0000000000000001│wwn1 │
└────────────────┴────────────────┘
- вставляем WWN из буфера обмена (без 0х префикса) и даем ему имя.
- теперь можно вставлять в канал новый сервер, снова появится безымянный WWN и т.д.
Теперь все сервера красиво поименованы (обратите внимание на скрытую рекламу в этом списке).
Код: Выделить всё
┌────────────────┬────────────────┐
│ Host-ID/WWN │ Name List │
├────────────────┼────────────────┤
│210000E08B823F04│fat │
├────────────────┼────────────────┤
│210000E08B8F74FA│black │
├────────────────┼────────────────┤
│0000000000000002│wwn2 │
├────────────────┼────────────────┤
│210000E08B82DF33│imap │
├────────────────┼────────────────┤
│210000E08B842AE7│trinity │
├────────────────┼────────────────┤
│0000000000000001│wwn1 │
└────────────────┴────────────────┘
Важно! если LD уже присвоен LUN, то сделать WWN фильтр не получится, придется LUN отмапить, а серверы отвалятся.
Заранее планируйте совместный доступ к LUN!
Код: Выделить всё
┌───┬─────┬───┬─────────┬──────────┬─────┐
│LUN│LV/LD│DRV│Partition│ Size(MB) │ RAID│
├───┼─────┼───┼─────────┼──────────┼─────┤
│M 0│ *│ *│ │ │ │
├──┌─────────────────────────────────────────┐
│ │ Host-ID/WWN - 0x210000E08B823F04(fat) │
├──│ H┌──────────────────────────────┐black) │
│ └──│ View Host Filter Information │───────┘
├───┼┌──────────────────────────────────────┐
│ 3││ Logical Drive 1 Partition 0 │
├───┼│ Host-ID/WWN - 0x210000E08B823F04 │
│ 4││ Host-ID/WWN Mask- 0xFFFFFFFFFFFFFFFF │
├───┼│ Filter Type - Include │
│ 5││ Access Mode - Read/Write │
├───┼│ Name - 750x4_fat │
│ 6│└──────────────────────────────────────┘
├───┼─────┼───┼─────────┼──────────┼─────┤
│ 7│ │ │ │ │ │
└───┴─────┴───┴─────────┴──────────┴─────┘
Полезно: можно указывать для конкретного хоста права только на чтение. Очень удобно в паре с командой dd под UNIX.
Например, для клонирования или аварийного копирования разделов.
Так, если очень припрет, можно делать корявые копии живых разделов с работающего сервера. Мой опыт показывает, что UFS, UFS2, NTFS оказываются вполне работоспособны после fsck / chkdsk.
Это не production решение. Зато можно протестировать на стенде миграцию или upgrade WINDOWS системы, не дожидаясь downtime боевого сервера.
Стоит ли говорить, что скорость
Код: Выделить всё
dd if=/dev/da3 of=/dev/da4 bs=20m
Код: Выделить всё
dd if=/dev/da3 bs=20m| ssh -c blowfish root@192.168.47.1 dd of=/dev/da4 bs=20m
Примечания:
- если какой-то LD отдан более чем одному хосту, то он в списке будет указан ** в столбцах LD/LV и DRV
- windows терпеть не может разделов read-only, и маркирует их как неизвестные, даже если они были до этого отформатированы и на них записана метка тома. Посылаем БГ луч ненависти.
3) смена режима RCC -> RCC+Drive на Infortrend
- никогда не переключайте разом два канала! только по очереди и делайте reset. Если с когеррентностью будет проблема, то потом больше времени потеряете.
- при переключении PID и SID не будут присвоены автоматом, назначайте их руками. впочем, об этом в FAQ пишут.
- после каждого изменения делайте reset, как вас об этом и просит контроллер.
- если доигрались до потери когеррентности, то контроллеры могут поменяться местами после перезагрузки. Не удивляейтесь, если не пингуется. Вы забыли присоединить оба контроллера к сети Ethernet? Так присоедините, чтобы не скакать через весь город ночью.
- контроллеры с потерянной когеррентостью неистово дуют в лога сообщения о мифических аппаратных проблемах:
"power supply0 failure!"
"power supply0 restored!"
"cooler fan 3 failure!"
"power supply1 failure!"
"power supply1 restored!"
и т.д.
При этом все индикаторы на контроллере в полном порядке.
Не верьте этим крикам. Восстановите когеррентность и все будет хорошо.
Важно!Не исключено, что у вас что-то сломалось по настоящему, отсюда и потеря когеррентности!
Так что будьте внимательны. Если после восстановления когеррентности ошибки еще появляются - у вас действительно проблемы с железом.
4) смена ID хост каналов
- отключает, естественно, LUN mapping, т.е. ваши сервера не смогут загрузиться. Либо верните как было (рисуйте на стене), либо придется лезть в BIOS адаптера, перестроить список устройств и назначит новый BOOT LUN
- если вам захотелось перенумеровать ID каналов, например было PID=14, SID=13, а вы хотите наоборот, то сделать это можно за 4 перезагрузки: 1(14=14, 13->12), 2(14->13, 12=12), 3(13=13,12=14), 4(13=13,14=14)
Если назначить одинаковый ID PID и SID, слетят оба и вам потребуется лишь 3 перезагрузки -)
5) рабиение LD на partition
Полезнейшая процедура, особенно радует, что удаление одного из partition прибавляет место к предыдущему. Если у вас LVM под linux, GEOM под FreeBSD или динамический диск по WINDOWS, то раздел можно расширить на ходу.
Удаляем раздел N+1, у раздела N появляется неразмеченное место в хвосте, на которое OS может расширить файловую систему.
Можно сделать и наоборот: средствами операционной системы уменьшить раздел с файловой системой, освободив место в конце. Затем - отрезать от partition кусок в настройках LD.
Вот это уже не шуточная операция!
Я так и не сумел с точностью до сектора получить искомые размеры.
В OS это не проблема, но контроллер рубит разделы большими числами в целых Мб и округляет как брюнет, торгующий арбузами.
Тут надо ужать с большим запасом раздел с файловой системой, например 200Gb -> 100Gb, затем отрезать средствами контроллера до 120Gb и расширить из под OS 100Gb -> 120Gb.
Контроллер всегда предупреждает, что любые операции над partition удаляют данные, даже когда вы просто заходите в это меню.
Реально но это не так, данные никто не тронет, но самому ошибиться можно очень легко!
Полезно: если partition удалены и созданы в том же порядке и с тем же размером, то OS смонтируют все как было.
Важно! если данные вам дороги, то делайте backup и записывайте ВСЕ параметры разделов, на какие каналы были подключены LD и пр..
Важно! неприятная неожиданность подстерегает тех, кто пожил вместе со SCSI RAID Mylex. Вы привыкли, что можно тыкать диски туда-сюда между каналами, а контроллер сам безропотно разберется?
Так вот: перестановка дисков на другой канал приводит к отсутствию LD! Пока не вернете полку с тем же JBOD_ID на тот же канал контроллера с теми же SID & PID вы не увидите свой логический диск.
Данный FAQ создан постоянным участником данного форума art.