Тера кэш

Пришёл однажды ко мне один дядя и состоялся примерно такой диалог:

  • Мне нужна машина, на которой можно хранить много и долго, и при этом читать и писать быстро!
  • Задача понятна, нужно много денег и времени ;)
  • Денег дам разумно, а со временем совсем туго.
  • Вас понял, сделаем!

Постановка задачи

Постановка задачи более чем пространная, но в последствии её уточнили те, кто будут систему монтировать: нужен кэш, измеряемый терабайтами.

Есть две системы, каждая из которых генерирует туеву хучу трафика (в пике до гигабита каждая) и этот трафик нужно приземлять и хранить настолько долго, насколько хватит ёмкости системы.

На первом этапе ёмкость делаем оптимальную по цене, в последствии она должна быть способна к масштабированию на лету.

Ну и про отказоустойчивость не забываем. Важно чтобы данные жили в случае падения одного из винтов, но даунтайм на замену самого винта не критичен, комплекс без кэша может прожить до двух дней, так что всё делать на ХотСвопе - избыточно.

В общем - задача предельно ясна - большая файлопомойка с двумя гигабитными сетевухами, взрослым RAID-ом и скоростью чтения/записи не ниже 200Mb/sec.

Выбор компонентов

Chieftec BA-01B-B-SLРешено было строить RAID массив на 16 SATA дисков. Это та золотая середина, которая с одной стороны обеспечит достаточную ёмкость и производительность, а с другой её можно будет уместить в стоковый корпус.

В качестве корпуса был приобретён Chieftec BA-01B-B-SL, известный читателям моего блога по проекту Silent Giant. Он достаточно просторный, а это нам понадобится т.к. надо будет уместить полноразмерную ATX плату, большой RAID контроллер, большой блок питания и ворох проводов. В него, если докупить корзины, можно вместить 16х3.5" устройств.

Chieftech SNT-3141 SATAКорзины были выбраны Chieftech SNT-3141 SATA - занимают 3х5.25" отсека в корпусе и вмещают 4х3.5" SATA диска. Поддерживают HotSwap, содержат раздельную индикацию питания/активности/сбоя дисков, принудительный обдув и температурную защиту.

Areca ARC-1160В качестве контроллера был выбран Areca ARC-1160 (16 портов SATA, интерфейс PCI-X 133MHz). С контроллерами этой фирмы я уже не раз сталкивался и всегда оставался доволен, вот и в этот раз решил строить систему на Ареке.

ASUS M2N32 WS ProfessionalСистемная плата, которая будет всем этим рулить - ASUS M2N32 WS Professional. Это плата WorkStation класса, собранная на десктопном чипсете. Плату выбирал по двум критериям: наличие слота PCI-X 133MHz и надёжная качественная сборка. Процессор AMD Athlon x2 4600+. Оперативной памяти 2Gb.

HIPER 730W Type MБлок питания HIPER 730W Type M - эффективный (КПД >80%), производительный, с хорошим запасом прочности. Опять же блок питания выбирал исходя из положительного опыта общения с БП этой фирмы.

Накопители выбирал, исходя из удельной стоимости гигабайта и длиной гарантийного срока. Остановился на Samsung SATA 7200rpm 400Gb с гарантией 36 месяцев. На таких дисках можно собрать отказоустойчивый массив на 5Tb.

В качестве формата массива был выбран шестой RAID т.к. пятый уязвим в момент ребилда и на больших массивах это может стать причиной краха всей системы. Исходя из того что ёмкость системы для RAID-6 считается как c(n-2), где c - ёмкость одного диска а n - их количество, и того что для перевода десятичных гигабайт в двоичные объём нужно разделить на 1.074, подсчитаем объём нашего массива:

C=c/1.074*(n-2)=400/1.074*(16-2)=400/1.074*14=5214Gb=5.09Tb

Сборка

Сам процесс сборки не запечатлел, так что есть только фото результата.

Из того, что хотелось-бы подчеркнуть:

  • Корпус офигитительно удобен для таких монструозных систем.
  • На RAID контроллере есть выходы для светодиодов индикации обращения и ошибок по-дисково, но т.к. паять панель на 32 светодиода было влом, просто подключил светодиод HDD LED с передней панели корпуса на первый порт активности контроллера. По инструкции если подключен только один светодиод на первый порт, то контроллер будет на него выдавать суммарную активность - так и вышло, а учитывая что других дисков в системе не будет, то иначе этот индикатор просто бы простаивал.
  • Дисков много, причём половина в корзинах, половина внутри корпуса. Чтобы не запутаться - пронумеровал все интерфейсные кабели (распечатал и наклеил на каждый SATA кабель бирку с номером порта 1-16). Диски расположил по возрастанию номеров снизу вверх - внизу первый, вверху шестнадцатый.
  • При установке системы подключал IDE DVD привод и ложил его на корпус т.к. внутри места для него уже нет - все 6х5.25" отсека заняты корзинами. После установки системы привод снял и закрыл корпус.
  • Инсталлер WinXP пришлось пересобирать при помощи nLite и интегрировать в него драйвер контроллера т.к. иначе поставить систему на RAID не представлялось возможным (интим aka танцы с флоповодом не предлагать).
  • Везде где только можно поставил кулера а все отверстия заклеил пылевыми фильтрами.
  • Все провода зафиксировал стяжками. Всё уложено плотными жгутами и через каждые 5-10см стянуто. Всё должно сидеть плотно и не болтаться.

Массив разбил на 6 виртуальных устройств: 1 - это система (32Gb) а 2-6 - это "диски" по 1Tb. На каждом устройстве создал по одному разделу NTFS. Размер кластера под систему 4K а на остальных - 16K. Больший размер кластера не стал использовать т.к. некоторые дисковые утилиты "спотыкаются" на кластерах размером более чем 16K (были прецеденты).

Зачем бить по 1Tb? Система будет работать под M$ Windows XP x86, а т.к. она не поддерживает диски более 2Tb, то было решено побить всё по 1Tb - так и обслуживать систему проще, и обслуживать по-дисково (дефрагментация, чистка). Сам же софт, который будет крутиться, может оперировать любым количеством дисков, ему всё равно сколько их.

Из системных настроек отмечу обязательное отключение файла подкачки (а кто-то им ещё до сих пор пользуется?), всех режимов энергосбережения и установка программы Diskeeper для фоновой дефрагментации дисков в периоды простоя. Тоже проверенное решение на серверах с интенсивными дисковыми операциями.

System opened System front

Результат

Всё, систему собрали, софт поставили и настроили - всё работает! Запись с двух гигабитных сетевух при их 100% загруженности и параллельное локальное чтение данных показывает что требуемая производительность достигнута.

В случае, если потребуется нарастить массив, то потребуется менять диски на более ёмкие по одному, после каждого делать ребилд и после замены всех можно "растянуть" массив до нового размера, и на новом месте наплодить ещё несколько 1Tb устройств. Для системы это будет выглядеть просто как добавление ещё нескольких дисков.

Цена девайса вышла в $6000, т.е. удельный гиг получился немного менее $1.2. Взрослые NAS такого объёма доходят и до $2/Gb так что удельная стоимость тоже вроде как в порядке.

На всё про всё, от заказа комплектухи и до сдачи системы ушло две недели. Экзотические для наших краёв контроллер, корпус и корзины пришлось ждать.


UPD (21.01.2008): за год умер один винт, который поменяли и всё продолжило работать в том же духе.

UPD (01.02.2009): пока система работает с аптаймом >90%, деградации производительности не замечено, диски из строя больше не выходили.

2 Comments

> Везде где только можно

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

А можно подробнее что за фильтры такие, или что было использовано в качестве фильтров?

Фильтры

т.к. отвертия разношёрстные и искать какое-то готовое решение было бесполезно, а склад завален упаковками от всякого железа, в качестве фильтра использовал тонкий пористый материал, похожий на поролон, что кладут в упаковке под материнки.

У Akasa есть фильтры на 80/92/120мм отверстия и там использован похожий материал.

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

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <sub> <sup>
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.

More information about formatting options

By submitting this form, you accept the Mollom privacy policy.