Archive

Posts Tagged ‘FC’

RAID. Немного теории построения. Или…

… почему нельзя сочетать несочетаемое.

Иногда, при постороении очередного RAID-массива возникает неочевидный, как выяснилось, вопрос – можно ли использовать в одной RAID-группе диски с разной скоростью вращения дисков? Ответ, который для меня однозначно очевиден – НЕТ, нельзя. Попробую ниже изложить соображения, почему именно – нельзя.

Как пример ниже – я говорю про диски Fiber Channel 10K и 15K. Все сказанное однозначно подходит и для случая с SATA дисками, например (ну или SAS, или даже IDE). SSD не имеет прямого отношения к нашему разговору – НО к нему это тоже можно применить (да, да – и там есть ньюансы – “быстро” – не всегда однозначно хорошо)…

Решил подытожить. Никаких пруфов и ссылок не будет – эти вещи – происходящие от природы построения RAID-массивов, достаточно просто почитать просто описания вида “что такое RAID” в интернетах, ну и нам, как специалистам, глянуть документацию на конкретные чипы/реализации.

Вводная и немного терминов – прилагается.

Все довольно банально. RPM (обороты в минуту) – 10K/15K – это величина, от которой зависят внутренняя скорость переноса данных (internal data transfer speed, измеряется в мегабитах), время доступа (access time, измеряется в миллисекундах).

Чем выше обороты, тем выше внутренняя скорость передачи данных, тем ниже время доступа (время доступа).

А теперь – про наших “баранов”.

Рассмотрим зеркало: RAID1, два диска, 10K+15K. В общем случае – никаких проблем – работаем по медленному диску. Совсем плохо будет чуть ниже.

Рассмотрим ЛЮБОЙ страйп: RAID10/RAID5/RAID6 и сочетания. В общем случае продолжаем работать по более медленному диску. С рядом существенных оговорок. В случае со страйпом запись идет на всю “полоску”, состоящую из искомого количества дисков. В результате, при работе по медленному диску, наши быстрые диски будут постоянно “перелетать” через данные, совершая больше “пустых” (холостых оборотов). Поясню – каждое чтение – чтение всей полоски (случай с деградацией RAID5 я даже рассматривать не буду – все будет исключительно весело). Идем дальше – каждый “перелет” будет порождать увеличение времени доступа. Чем больше дисков – тем больше “перелетов” (пропорционально количеству дисков). Что имеем в результате – непредсказуемую деградацию производительности при чтении на страйпе. Которая в результате (в случае с ОС Solaris) будет приводить, во-первых, к непредсказуемому и слабо коллерируемому с нагрузкой параметров asvc_t/wsvc_t (команда iostat), ну и параметра r/s, w/s, Mr/s, Mw/s того же iostat. Во-вторых, из более далеко идущих последствий – снижается надежность всей дисковой подсистемы, причем прямопропорционально количеству медленных дисков внутри RAID группы – медленные диски могут (и будут!) содержать данные о, например, четности с других, более быстрых, своих соседей по группе (в случае с RAID-5). Тем самым – мы СУЩЕСТВЕННО увеличиваем нагрузку на наши более медленные диски, и, как ни странно, УВЕЛИЧИВАЕМ нагрузку в пересчете на количество обработанных (считанных/записанных) данных на наших более быстрых дисках в соотношении перенесенных данных к кол-ву совершенных оборотов – наш быстрый диск будет делать слишком много холостых оборотов, образно говоря, ничего не делая, а в нужный момент – тратя много времени на поиск искомых данных.

Вернемся к “простому” случаю: зеркалу RAID1. Образно – у нас вроде как все хорошо, работаем по медленному. Скажем прямо – не совсем. В обшем случае работает балансировка нагрузки – контроллеры нынче умные пошли
- читаем попеременно с обеих половинок зеркал. Если быстренько подумать – и рассмотреть ситуацию, близкую к пиковой нагрузке нашей пары дисков – мы получим в результате совсем нелицеприятную картину – нелинейную передачу данных и абсолютно бесподобную картину времени доступа.

Я могу еще немного подумать (нехарактерное занятие, ага) – и привести еще ряд примеров, почему не стоит использовать микшированные конфигурации.

Если после этих измышлений еще есть желание рекомендовать заказчику микшировать 10-ки и 15-ки – wellcome, я все-таки не умею писать по русски ;) А если серъезно – в длительной перспективе, рассматривая реальную пользовательскую нагрузку, а не сфеерических коней в вакууме и одним байтом записи в час на запись и 2-мя – на чтение – мы легко просматриваем слабо предсказуемое изменение (в ХУДШУЮ сторону) производительности, это раз, существенное и легко прогнозируемое снижение производительности в случае выхода из строя диска в RAID5 группе, и – общее снижение надежности системы в целом в длинной перспективе эксплуатации.

Если же Вы все-таки изъявляете желание перейти на микшированную – тестирование, тестирование и еще раз тестирование. Я готов допустить, что на дисковой подсистемы с приложением, для которого нормальные и приемлимые значения asvc_t – 10-20 ms, transfer rate – не более 50-100 Mb/s, на машине, которая в состоянии отдать много больше – например, таже 6180 в полной “набивке” – конфигурация с микшированием – допустима и приемлима. Только есть опасение, что ВСЕ варианты, возможные на площадки, оттестировать все равно не получиться – и мы получим очень неприятные последствия в САМЫЙ неподходящий момент.

UPDATE1: как меня правильно поправили, я веду разговор о проектировании (планировании) новой системы, а не о временной замене – вопрос подмены диска в случае полной безисходности – ну нет диска здесь и сейчас – я рассматривать не хочу. Все банально и просто – если нет нужного диска – а есть замена, похожая и подходящая за исключением, например, RPM и размера – в большую сторону – подмена, конечно, неизбежна – на время.

Sun Storage 7000 FC Targets via UBTec Demo

Довелось наконец-то потестировать FC на Sun Storage 7410 (1 x HBA Dual Port QLGC HBA, 11 x SATA, 1 x SSD). Ранее – проводил активные экспирименты с Opensolaris b134 + COMSTAR.

Для начала – картинки:
Screen shot 2010-06-09 at 14.22.34.JPG
Смена Initiator на Target требует перезагрузки, причем – система задаст один-единственный вопрос и сразу уйдет на перезагрузку – на “обожгитесь” на продуктивной системе, будет очень неприятно… Зато потом мы имеем порт FC в режиме target:
Screen shot 2010-06-09 at 14.22.34.JPG

Далее – все просто – добавляем линк до нашего сервера (это Sun Fire X4600M2 с 12Гб RAM и OS Windows 2008R2 Enterprise на борту, с установленным FC HBA Emulex 4GBs Single Port). Немного скриншотов:
Screen shot 2010-06-09 at 14.30.52.JPGScreen shot 2010-06-09 at 14.30.38.JPGScreen shot 2010-06-09 at 14.30.26.JPG

Из-за бешеных скачек по Москве (вот уж придумал причину!) не сделал скриншоты с аналитики системы :( НО результат меня вполне порадовал: при тестировании с помощью SQLIO Disk Subsystem Benchmark Tool – со стороны системы хранения загрузка по CPU приближается к 0% (сам удивился – аж в шелл полез смотреть vmstat), пропускная способность по аналитике на том ZFS (zvol, bsize 64kb, подключен одним путем к серверу, сверху Simple vol/GPT разметка + NTFS) составляет 200 МБ/с (+/- 5 мб). Также система потенциально показывает отличные возможности масштабирования.

Мораль – FC быть! Шикарная возможность подключения для систем Sun Storage 7000! iSCSI ему даже рядом не конкурент – с ним имеем очень неплохой результат на “чистой” синтетитке, но какой-то абсолютно невнятный результат при работе реального приложения (MS SQL Server 2008 / OLTP нагрузка – по крайней мере близкая к ней).

FC, multipath, Solaris и AX150 … чудеса :)

May 21st, 2009 No comments

Во дожился – думал, такое увидеть:
Вот один zfs-пул, а в нем один большой (нет, я серъезно – БОЛЬШОЙ) том размером около 2,6 Тб (это RAID5 из 7 дисков):

1
2
3
4
5
6
7
8
9
root@sun-backup # zpool status
pool: pool1
state: ONLINE
scrub: none requested
config:
NAME                                     STATE     READ WRITE CKSUM
pool1                                    ONLINE       0     0     0
c3t60060160E9A31901BCB15947A840DE11d0  ONLINE       0     0     0
errors: No known data errors

Далее детали и кусочки (вот такого) вывода:

1
2
3
4
5
6
7
8
9
10
11
12
/dev/rdsk/c3t60060160E9A31901BCB15947A840DE11d0s2
 /devices/scsi_vhci/disk@g60060160e9a31901bcb15947a840de11:c,raw
 Controller           /dev/cfg/c0
 Device Address              500601603a600daa,0
 Host controller port WWN    2100001b321206b7
  Class                       secondary
 State                       ONLINE
 Controller           /dev/cfg/c2
 Device Address              500601683a600daa,0
 Host controller port WWN    2101001b323206b7
Class
 State

Read more…

Common Array Manager 6.4.0

April 30th, 2009 No comments

Собственно , аннонс .
- поддержка 8 GB/s (и смешанных 8/4 GB/s) FC интерфейсов для массивов Sun StorageTek 6580 и 6780 (было обещано – сделано)
- поддержка до 448 дисков (сделано – опа , 448 тб на два шкафа “сырой” емкости)
- поддержка микширования дисков FC/SATA в одной полке (я так понимаю , теперь применимо и для 6140 , что спрашивалось неоднократно)
- ну собственно новая версия F/W 7.50 для 6140 , 6540 , 6580 , 6780)

Короче , ждем патчей (обещают в мае) , ставим на продукты , ибо проблемы с реконфигурацией этих полок (в частности 2540 и 6140) сильно портят жизнь администраторам на системах 365x7x24 .

Нельязя не напомнить и про новые полки 6580 / 6780 . Разница в ньюансах (по сравнению с 6540) , но она есть :
- контроллеры имеют выделенную память , отделенную от кеш-памяти (теперь весь заявленный максимальный объем памяти на системе отдается под кеширование данных – от не “откушен” кусок для исполнения микрокода)
- отдельный канал для зеркалирования кеш-памяти – ну что говорить , это типа круто
- максимальный доступный объем кеш-памяти – 32Гб (против 16 на 6540 – вроде так)
- хост-контроллеры (фронт-энд адаптера – теперь сменные , FRU , возможна замена 4 на 8 GB/s)
- USB-флешка внутри для сброса/сохранения кеш-памяти ?

Партиционирование кеша так и не появилось , 6540 для меня была железкой ни о чем (при наличии то 9985V) – так что смена продуктовой линейки на 6580/6780 (Katana-2 ?) – скорее всего в ближайшее время приведет к отмиранию 6540 – эволюционное обновление , однако , никаких революций . Про 6140 таких новостей не слышно – будем подождать ?

ЗЫ: качать где обычно ;) sun.com/download/
ЗЗЫ: ну и трэкбэк на блоги – http://blogs.sun.com/CAM/entry/sun_storagetek_common_array_manager . Также НАСТОЯТЕЛЬНО рекомендую пойти и почитать Release Notes – http://dlc.sun.com/pdf/820-7589-10/820-7589-10.pdf – регистрация для чтения вроде не нужна . Исключительно сильно это касается любителей создавать тома более двух терабайт – уже и не знаю , зачем нужны такие LUN’ы на хосте (ну ок , zfs , например , будет лихо “перемалывать” такие тома – но есть ведь и любители помудрить с UFS) – есть любопытные замечания .

Fiber Channel – немного на русском

July 10th, 2008 No comments

Технология Fibre Channel (FC) – стек протоколов для реализации сетей хранения данных (SAN, Storage Area Network) – разрабатывалась с 1988 года в качестве коммутируемой технологии с малыми задержками для магистральных IP сетей как замена FDDI и 100BaseT (IBM, HP, Sun). Однако, появление Gigabit Ethernet поставило крест на этих планах. В то же время, наработки по FC были использованы Seagate для противостояния с новым протоколом SSA (serial storage architecture) доступа к НЖМД фирмы IBM (ирония судьбы!). Таким, образом от “магистрального” проекта пришла коммутируемая топология, а от “дискового” – кольцевая (как более дешёвая). Принимается подкомитетом ANSI T11 (первая версия в 1994 году) в виде стандартов протокола FC (каждый стандарт описывает часть протокола, новая версия не отменяет легитимность предыдущей) и технических отчётов (описывается как обеспечить взаимодействие между различными реализациями).

Неплохая статья про технологии Fiber Channel (хоть и в конексте linux) .
- http://bog.pp.ru/hard/fibre-channel.html

OpenSolaris Project: COMSTAR: Common Multiprotocol SCSI Target

December 6th, 2007 No comments

OpenSolaris Project: COMSTAR: Common Multiprotocol SCSI Target

COMSTAR is the software framework to use a Solaris host as a SCSI Target platform. COMSTAR uses modular approach to break the huge task of handling all the different pieces in a SCSI target subsystem into independent functional modules which are glued together by the SCSI Target Mode Framework (STMF). The modules implementing functionality at SCSI level (disk, tape, medium changer etc.) are not required to know about the underlying transport. And the modules implementing the transport protocol (Fibre Channel, iSCSI etc.) are not aware of the SCSI level functionality of the packets they are transporting. The framework hides the details of allocation, providing execution context and cleanup of SCSI commands and associated resources and simplifies the task of writing the SCSI or transport modules.

К чему весь этот гон , да и еще и на английском ? Первая мысль , которая меня посетила , когда я увидел SunFire X4500 – “эх , такую бы железку да в FC хранилище превратить … ” . Ну вот собственно и решение подоспело (довольно давно) . Позволяет использовать хост под ОС Solaris как платформу SCSI-target (читай – хранилище DAS/SAN over FC/SCSI(?)) .
Что дает ? Завершает вполне себе так весьма иновационную идею создания полностью открытой платформы хранения данных на базе OpenSolaris , в будущем – и на Solaris .
Ссылочка – http://www.opensolaris.org/os/project/comstar/ .
Ждем развития темы !