Тера кэш

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

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

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

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

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

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

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

В общем - задача предельно ясна - большая файлопомойка с двумя гигабитными сетевухами, взрослым 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 Комментарии

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

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

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

Фильтры

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

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

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

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
  • Разрешённые HTML-теги: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <sub> <sup>
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.

Подробнее о форматировании текста

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