Железо для домашнего файлового сервера

У нас в уголке уютно устроилась черная коробочка средних размеров. Это домашний файловый сервер - полностью творение моих рук. В круг его обязанностей входит три основных основные задачи:

1. Хранение файлов в локальной сети. Выглядит это следующим образом: один большой (изначально терабайтный, теперь, после апгрейда, уже двухтерабайтный) раздел виден в сети как сетевой диск \\BFLY-SERVER\Shared, доступный на чтение и на запись. Для удобства на всех компьютерах в доме этот путь закреплен за буквой S: - то есть, доступен как обычный диск. На этом диске лежит все видео, аудио, софт, книжки, фотки, торренты и т.п. Кстати, торренты тоже качаются прямо на сервере.

2. Ежедневное (точнее, еженощное) создание резервных копий с моего и Юлькиного компов. Реализовано это на базе Акрониса, который каждую ночь запускается, собирает и складывает на еще одну сетевую шару (физически расположенную на другом двухтерабайтнике) инкрементные бекапы тех данных, которые считаются жизненно важными: копии системных разделов, личные данные, рабочие файлы, фотографии.

3. Предоставление доступа к отдельно взятому каталогу извне через Интернет. Для этого на диске S: существует специальный каталог www. Все, что туда складывается, можно скачать через Интернет по специальной ссылочке. URL ссылки состоит из нашего внешнего IP, порта, через который можно достучаться до сервера, и, собственно, пути относительно каталога www.

И надо заметить, что со всеми этими задачами, а также с рядом второстепенных задач эта железка успешно справляется. О том, как это все работает, я напишу в следующих постах, посвященных этому серверу. О том, почему я вообще решил пойти на геморрой со сборкой собственного сервера вместо того, чтобы купить готовый NAS или же по-старинке пользоваться внешним жестким диском - также в следующих выпусках. А пока просто расскажу о железной начинке, которая изнутри выглядит вот так:

Домашний файловый сервер - вид изнутри

Корпус: черный Middle Tower Krauler M4723-400-D. Основным критерием выбора была возможность вместить в себя большое количество салазок со съемными жесткими дисками. На этом корпусе есть место для трех (плюс DVD-привод), и все три места заняты. Кроме того, по отзывам, у него очень тихий вентилятор в блоке питания (на практике это подтвердилось). Ну и внешний вид, впрочем, тоже сыграл не последнюю роль в выборе :)

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

Неподвижная часть салазок представляет собой пятидюймовый блок, ставящийся по аналогии с CD/DVD-приводом. Внутренняя, съемная часть, внутрь которой помещается жесткий диск, вдвигается в нее одним плавным движением, защелкивается ручкой и запирается на ключ. Замок ключа также управляет подачей питания на диск - в момент поворота ключа "оживает" дисплейчик, показывающий температуру диска и скорость вращения вентиляторов.

Вентиляторов два: по одному на каждую часть: неподвижную и съемную. Учитывая стоимость всего комплекта, неудивительно, что качество этих вентиляторов невысокое: они быстро разбалансируются и начинают жужжать - от чего, впрочем, помогает старое доброе машинное масло. В совсем уж безнадежных случаях можно выкинуть салазки и отдать пару сотен за новые.

Кулеры. Учитывая, сколько всего движущегося должно быть в корпусе сервера, я постарался уделить особое внимание уровню шума. И, как мне кажется, мне это удалось - в конечном итоге вентиляторов не слышно на фоне жужжания вращающихся блинов жестких дисков. А их там (помимо тех, что в салазках) четыре штуки: на морде, на заднице, в блоке питания и на процессоре. И если последние два проблем не составили, то с первыми двумя пришлось немного помучиться с выбором. В итоге я остановился на следующих моделях:
На морде: тоненький Scythe Slip Stream Slim, SY1212SL12L - не слишком мощный, но абсолютно бесшумный.
На заднице: модный Zalman ZM-F1RL с красной подсветкой. Подсветка была безжалостно оторвана в первый же день, чтобы не нарушать строгую готичную красоту адским красным свечением. Кроме того, выяснилось, что на максимальных оборотах этот вентилятор очень мерзко подвывает где-то на границе ультразвука - но, по счастью, в комплект входил разъем с резистором, подключение через который снижает обороты раза в два и делает вентилятор совершенно бесшумным.

Материнка. С материнкой была целая эпопея. Сначала я решил ограничиться совсем недорогой MSI G31, но в процессе эксплуатации выяснилось, что она не поддерживает AHCI - следовательно, "горячая замена" жестких дисков, хоть и предусмотренная протоколом SATA, на этой материнке работать не будет. Соответственно, все то, ради чего я затевал всю эту возню с салазками, оказалось бесполезным. Поэтому, когда у меня через год эта материнка успешно сдохла, я сдал ее по гарантии и на вырученные деньги купил материнку посерьезнее: Intel DQ45CB. Эта, хоть и почти втрое дороже, умеет все, что нужно. На ней даже нашлось пять SATA-разъемов, чтобы разместить жесткий диск с операционной системой, трое салазок и DVD-привод. Впрочем, когда я ее поставил, вылезла проблема, которой я совсем не ждал: оказалось, что именно у моей версии линукса (Debian Lenny) именно для этой материнки не было драйвера для сетевой карты! В итоге линукс оказалось проще переставить, чем пропатчить, в результате чего родился пост про установку линукса по сети.

Процессор: Intel Dual Core 2.6GHz (E5300). Поскольку в процессорах я как свинья в апельсинах, выбирал я его по принципу "пол-палец-потолок", т.е. по трем критериям:
- производитель (раз уж у меня стояла материнка с интеловским чипсетом, то и процессор тоже должен быть Intel)
- отзывы (выбирал по рейтингу)
- цена (отдавать слишком уж много денег за процессор для файл-сервера казалось мне неразумным)

Память: DDR2, Kingston, KVR800D2N6K2. Выбирал еще более от балды, чем процессор. Решил не мелочиться и взять две плашки по гигабайту. Полагаю, для нужд файл-сервера этого хватит за глаза и за уши - разве что я когда-нибудь все-таки соберусь поставить туда парочку виртуальных Windows-машин с доступом через RemoteDesktop или что-то подобное :) По крайней мере, первую неделю Debian работал на сервере вообще без swap-раздела и не жаловался. Потом я ему все-таки выделил раздел под своп.

Жесткие диски. Вот уже который год я традиционно пользуюсь Western Digital. Покупается та модель из серии Caviar Green, которая на данный момент времени оптимальна в соотношении цена/объем. На текущий момент это два терабайта. Не могу сказать, что это самая надежная модель - на мой взгляд, они сыплются не чаще и не реже своих собратьев по ценовой категории. Я знаю только то, что они сравнительно недорогие и тихие. И также то, что они (как, впрочем, и почти любые другие жесткие диски для домашнего/офисного использования) достаточно надежны, если в процессе эксплуатации соблюдать ряд простых правил:
- следить за температурой;
- важные данные бэкапить;
- первые две недели эксплуатации не заливать ничего жизненно важного и мониторить показания SMART;
- через три года выводить из эксплуатации и апгрейдить вне зависимости от субъективных ощущений и тех же показаний SMART.

Помимо всего вышеперечисленного, наше железо питается от двух бесперебойников от Powercom на 800 вольт-ампер каждый. Один целиком обслуживает Юлькин комп, второй отвечает за сервер и роутер. С учетом того, что электричество у нас время от времени прыгает и пропадает, мера совсем не лишняя. Моему же ноутбуку скачки напряжения и вовсе не страшны :)

Комментарии

Изображение ksch

Ты гик прямо :)
Я вот не могу представить себе какие-то данные, потеря которых будет мало-мальски важна.
Фотки меня мало волнуют - тем более они все давно в пикасе, все рабочие файлы хранятся на DropBox Ж)

Изображение myx

Это ты гик - все фотки в пикасу заливать :) У нас фотки десяти- и более летней давности хранятся, тогда еще пикасы на свете не было :) Да и места там всего гигабайт, если мне память не изменяет.

И, кстати, именно своевременный бэкап позволил более-менее безболезненно пережить потерю ноутбука в далеком 2009 году :)

А что до рабочих файлов - у Юльки их побольше, чем дает DropBox. Где-то на пару порядков :)

У меня такое все до недавнего времени на самой первой атомной (intel atom) плате работало. С двумя хардами в зеркале и бубунтой на борту :-)

Организовано почти так же, но не так немного.

А скачки напряжения довольно опасная штука, особенно, когда вверх скачок. Проседания - да, неприятно )), УПС переварит без проблем. А вот бросок вверх может пагубно сказаться на всем.

Кстати, сделай красивую укладку шнурочков в корпусе, это благоприятно скажется на воздушных потоках в корпусе

Изображение myx

"Почти так же, но не так немного" - это как? :) Можно поподробнее? А то мне вспоминается "День Выборов":
- Точно такой же миной, только меньше, и другой, дельфины, воевавшие на нашей стороне, потопили немецкий крейсер «Гюнтер Нетцер»!

А что, разве от скачков вверх хороший бесперебойник не защищает? Да, понятно, что он может сам "пасть на боевом посту", но вроде как стоящее за ним железо он должен спасти.

Хотя все-таки скачки вверх случаются крайне редко, чаще все же проседания, а то и полные отключения (блин, насколько все же проще в английском, там на каждый термин есть отдельное слово: spikes, brownouts и blackouts) :)

Укладку сделаю, спасибо за совет! О воздушных потоках я не подумал :)

1. Хранение файлов в локальной сети.
Тоже храню. Но, не маплю в винду как отдельный диск. Потому что не всегда включен. Не нужен он мне постоянно, когда надо включаю (скачать торрент, или еще чего).

2. Ежедневное копироавиние. В 20.00, включается автоматом, из программы, которая делает бекап. Включается на основе WOL.

3. Доступ издалека по ftp, ssh.

Ну, и периодически на нем разные тести тестирую. Какие-то сервисы сетевые можно поизучать. Например, сейчас терзаю DNS.

Изображение myx

А что за программа резервного копирования? Я в Акронисе потихоньку разочаровываюсь, планирую перебраться на cwRsync. Акронис останется только для копирования системных разделов (раз уж все равно уплочено).

Cobian Backup
http://www.educ.umu.se/~cobian/cobianbackup.htm

Очень простая, бесплатная. С задачей копирования справляется очень хорошо. Рекомендую :-)

Изображение myx

Спасибо, выглядит вполне достойной бесплатной альтернативой зажравшемуся Акронису!

Но мне все же хочется попробовать идеологию rsync + бэкап на жестких ссылках. Пока вроде получается :) Плюс ко всему, с учетом того, что бэкап делается по сети (а часть - еще и по Wi-Fi), скорость синхронизации и удаления устаревших копий является пожалуй, ключевым фактором.

В КобианБекап тоже есть функция инкрементального создания копий. Соответственно, копировать он будет только новые и обновленные версии файлов. Думаю, что скорость будет сравнительной с rsync.

Изображение myx

Не, не думаю. RSync выгодно отличается от любого другого механизма создания инкрементного бэкапа тем, что он присутствует с обеих сторон, и это позволяет выяснять изменения более "интеллектуально", что ли, по сравнению с тупым опросом удаленной файловой системы. Собственно, в этом его изначальное предназначение, отсюда и буква r в названии :)

Но главное преимущество даже не в использовании rsync, а в использовании жестких ссылок. Тут два преимущества:
1. Каждый бэкап представляет собой обычный каталог в файловой системе - т.е. для навигации по нему не нужно запускать программу, создававшую бэкап, распаковывать и т.д.
2. Для того, чтобы удалить одну из устаревших копий (например, я хочу иметь бэкап глубиной в месяц), достаточно просто удалить соответствующий каталог. Это очень быстро. Операция же объединения инкрементных копий требует загрузки всех бэкапов начиная с начального, а по сети это чертовски долго.

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

Собсно, все эти идеи я вычитал в блоге одного чувака :) Правда, я не стал наворачивать всех тех сложностей, что чувак описывает в статье, поскольку у меня и задача попроще. Фактически, я реализовал рекомендации из статьи на ЛинСовете, только с использованием cwrsync на виндовой стороне :)

Надо попробовать почитать чего там пишут :) Не уверен, что буду переделывать то, что у меня уже работает (не тронь то, что хорошо работает!), но в целях "повышения образованности", как говорил почтальон Печкин, ознакомлюсь :-)

TLDR...

А чем Git не подходит?

Скачки напряжения штука сложная. Если вверх скаканет, то фигово. Скорее всего, сам он помрет, но что дальше спасет :-)
Опять же, полное отключение - сколько он сможет питать УПС 800 ватт комп? Минут 10? Значит, надо настраивать сервис, на компе, который будет дружить с УПСом, и выключать комп по сигналу полного отключения электричества.

У меня APC робит... Там есть ограничитель напряжения в обе стороны.