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

31.05.2019

Здравствуйте, мои дорогие читатели! Мы с вами много говорили о . Думаю, пришла пора поговорить о том, как создать свой сервер для сайта.

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

Забегая немного наперед, должен предупредить вас, что эта задача не одна из легких.

Что представляет собой домашний сервер?

Локальный сервер – это специализированное программное обеспечение, позволяющее управлять (создавать и размещать) персональными сайтами на домашнем оборудовании (локальном компьютере).

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

Что делать?

Отвечу на вопрос достаточно лаконично: скачать и установить необходимый программный набор компонентов. Но прежде чем это сделать, нужно оценить свои возможности, а точнее возможности вашего ПК. Для этого вам необходимо проверить его характеристики: объем оперативной памяти, показатели процессора и т.д.

Кроме того, вам нужен:

  • Активный статистический IP-адрес (чаще всего эта услуга у провайдеров платная, но, к сожалению, без него никак)
  • Бесперебойная высокая скорость приема данных и их передачи. У вас должен быть проверенный и надежный провайдер с минимально допустимой скоростью в 10 Мбит\сек. Идеальный показатель скорости – 100 Мбит\сек.

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

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

Инструкция

Устанавливаем многопользовательскую операционную систему Unix. К примеру, Apple Mac OS X или Линукс (кстати говоря, в этом вопросе и Виндовс не так уж плох, но я бы настоятельно рекомендовал установить все-таки Unix-систему).

Скачиваем архив с программным обеспечением Apache и через командную строку выполняем установку. Пошагово описывать данный процесс, думаю, не имеет смысла, так как в сети достаточно много качественных материалов на данную тематику, как говориться гугл вам в помощь.

Заходим в настройки программы (конфигурация Apache) и прописываем в разделе listen 80: ваш айпи-адресс.

Открываем порт №80 и вуаля — пользуемся сервером дома.

Теперь, прописав в адресной строке ваш IP-адрес, компьютер должен открыть конфигуратор Апаче. Поменять корневую директорию интернет-сайта можно через httpd.conf. Ну а если в планах открыть доступ к серверу не только через IP, но и через , тогда вам потребуется поднять DNS.

Внимание ! Не забудьте о том, что теперь ваш ПК (сервер) нельзя выключать. Если это сделать, ваши сайты в Глобальной сети станут недоступными для пользователей.

Я думаю, данного материала вполне достаточно, чтобы решить для себя: хотите ли вы по-прежнему сделать из своего ПК сервер или нет.

C уважением! Абдуллин Руслан

Свой первый домашний сервер я собрал в 2008 году: Celeron E1400 на mATX платформе ASUS и всё это в прекрасном корпусе Antec NSK 1380. Корпус действительно хорош за исключением двух моментов: 1. Нестандартный формат блока питания (и как следствие возможность поставить только низкопрофильное охлаждение на процессор) 2. Малое число посадочных мест под накопители и плохое их охлаждение (поэтому я никогда не ставил туда больше одного диска - и так было тесно и жарко).

С ролью маршрутизатора эта машина справлялась прекрасно. Но организация на ней файлопомойки уже создавала неудобства: место вечно кончается -> приходится менять диск на новый большего размера (ну не чистить же его в самом деле!) -> для этого надо перенести на новый диск систему -> уж если переносишь, то не обновить ли ее заодно, а то пакеты с новыми часовыми поясами под текущую приходится искать чуть ли не собаками (пламенный привет Федоре) -> … И так каждый раз.

Захотелось собрать новый сервер, который позволил бы организовать RAID или хотя бы просто установить несколько дисков, чтобы решить проблему с местом радикально и надолго. А еще поднять несколько виртуальных машин для производственных нужд. А еще…

Но самый главный аргумент - это, конечно, желание пощупать новые железки! Поэтому я определился с требованиями и отправился в магазин гуглить.

Требования:

  • бесшумность
  • компактность
  • возможность удобной установки/замены дисков и достаточное количество посадочных мест (от 4)
  • универсальность (больше разъемов/интерфейсов, всяких и разных, мало ли что захочется прикрутить)

Форм-фактор Mini-ITX не был обязательным критерием, но логично вытекал из второго пункта. Поэтому я решил для себя, что попытаюсь выжать из него максимум и только в крайнем случае начну смотреть в сторону mATX.

Disclaimer

Выбор железа

1. Корпус

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

Подходящие для домашнего сервера/NAS варианты можно пересчитать по пальцам:

Fractal Design Array R2 CFI-A7879
Chenbro ES34069 Chenbro SR30169

и пара других.

Причем большинство из них непросто или невозможно купить в России. В итоге я выбрал Chenbro SR30169. Его главные плюсы: удобная установка четырех 3.5″ дисков (с поддержкой HotSwap), продуманное охлаждение с использованием 120мм вентиляторов, стандартный блок питания (в абсолютном большинстве прочих корпусов используются Flex ATX либо нестандартные форм-факторы), удобство монтажа.

Видео о внутреннем устройстве:

2. Материнская плата

Критерии:
современная платформа с поддержкой процессоров Ivy Bridge, 2 встроенных сетевых карты, PCI-E разъем (для установки WiFi), не меньше четырех разъемов SATA (но в идеале не меньше пяти - 4 в рейд + 1 под систему), miniPCI-E на всякий случай, достаточное количество портов USB (желательно 3.0), несколько видео-интерфейсов (я не знал, к какому именно интерфейсу придется подключаться, поэтому минимум хотелось HDMI и D-Sub)

Intel® Server Board S1200KP Intel® Server Board S1200KPR
ZOTAC Z77ITX-A-E Jetway NF9E-Q77

Первые две довольно специфичны. С одной стороны, они поддерживают процессоры Xeon и память ECC, с другой стороны возможности расширения весьма ограничены: всего четыре USB (и только 2.0), всего четыре SATA, нет встроенного звука, один видеовыход, только один слот расширения. Разумеется для сервера организации эти моменты неактуальны, но для домашнего применения хочется большей гибкости. К тому же, плата с индексом KP не поддерживает 22нм процессоры, а KPR на момент сбора машины (июль-август 2012) не было в продаже.
Также не было в продаже и ZOTAC Z77ITX-A-E, хотя плата конечно очень интересная. Модуль WiFi в комплекте, две гигабитные сетевые карты - красота!
Еще несколько плат готовились на тот момент к выходу, вышли или нет не знаю, поэтому здесь про них подробно не пишу.

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

В конечном итоге я остановился на плате Jetway NF9E-Q77. Удивительно, сколько всего компании Jetway удалось уместить в плате формата Mini-ITX! Поддержка 3го поколения процессоров Intel (LGA1155), 6 портов SATA (2xSATA3 + 4xSATA2), 2хUSB3.0 + 4xUSB2.0 (+ по паре портов каждого типа разъемами на плате), PCI-E + miniPCI-E, 2 гигабитных сетевых адаптера Intel, 3 видео-выхода (HDMI, DVI-D, D-Sub) не считая LVDS. Также есть два порта RS232, RS422/485 с разъема на плате, GPIO, Watchdog, поддержка iAMT, vPro и т.п.
Тип используемой памяти DDR3 SODIMM.

Найти эту плату в продаже в России мне не удалось, но к счастью она обнаружилась в немецком магазине minipc.de . Доставили курьерской службой. За вычетом VAT и со стоимостью доставки вышло ровно 200$. Цена за такую плату на мой взгляд более чем разумная. Кстати, плата производится по стандартам, подразумевающим в том числе промышленное применение, а значит повышенную живучесть (по информации с сайта jetway, автор статьи гарантий не дает =)).

3. Жесткие диски

Все последние лет 10-15 я пользуюсь только продукцией IBM/Hitachi. Поэтому я выбрал модель с максимальным объемом при адекватной цене (на момент сборки это была HITACHI Deskstar 7K3000 HDS723020BLA642, 2Тб) и приобрел две штуки с мыслью докупить еще две, когда определюсь с софтом (у меня были сомнения в том, что это случится быстро - так оно и вышло). Так как в выбранном корпусе в дополнение к четырем HotSwap дискам штатно могут быть установлены только 2,5” диски, я решил туда поставить диск из ноутбука, который все равно планировал заменить на SSD.
Этой зимой были докуплены два диска HITACHI Deskstar 5K3000 HDS5C3020ALA632.

4. Блок питания

БП я просто выбрал как самый маломощный (а значит дешевый) из приличных и тихих, которые были в наличии ближайшем гипермаркете.
Таковым стал AeroCool VP-450 .
Конечно, в таком компактном корпусе лучше было бы взять БП со съемными кабелями, но стоят они значительно дороже, и встречались отзывы, что в данном корпусе разъемы кабелей могу начать конфликтовать с процессорным охлаждением.

5. Процессор

От процессора мне нужно было больше ядер, меньше тепла и разумная цена. Хотя нет, еще нужен был встроенный видео-чип. Выбрал Intel Core i5 3550 .

6. Охлаждение на процессор
Здесь хотелось получить тишину, хорошее охлаждение и при этом не прогадать с габаритами. Из подходящего в ближайших магазинах оказался Arctic Cooling Alpine 11 Plus .

Ну что ж, железо закуплено, приступим к сборке!

Сборка

Автор застал еще те времена, когда маркировка разъемов/переключателей на материнской плате считалась дурным тоном, инструкции писали для трусов и поэтому в страну медведей не завозили, а развернув процессор не той стороной можно было быстро и очень дорого получить прикольный брелок на свой мобильный связку ключей. Не говоря уже об обряде окропления каждой собранной машины собственной кровью, для чего заботливые китайцы обязательно оставляли кромки кропуса острыми на случай, если сборщик забыл прихватить специальный жертвенный нож или по неопытности вовсе не знает о таковой необходимости. К сожалению, современным производителям в погоне за прибылью плевать на традиции и на заботу о досуге сборщика. Тех, кто надеялся пролить над статьей скупую слезу ностальгии, дальнейший материал лишь разочарует.

Корпус выполнен из стали SGCC толщиной 0.8мм и производит впечатление монолитности, никаких зазоров и люфтов не наблюдается, все кромки аккуратно развальцованы. Боковые стенки зафиксированы винтами с накаткой. Большую часть задней стенки занимает основание для крепления блока питания. Оставшееся место отдано под вентиляционную решетку и панель разъемов материнской платы. Имеется выдвижное ушко, позволяющее закрыть корпус на амбарный замок (правда только с одной стороны, что в данном случае имеет мало пользы) или посадить его на привязь. Есть разъем для замка Kensington.

Внутри пространство корпуса разделено на две части: задняя половина предназначена для материнской платы и блока питания, переднюю же практически целиком занимает корзина жестких дисков и ее охлаждение.

Корзина поддерживает железные RAID-контроллеры и рассчитана на 4 3,5”/2,5” SATA/SAS диска с возможностью горячей замены. Для удобства таковой установка дисков производится с фронтальной стороны корпуса.

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

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

Материнская плата вызвала у меня подлинное восхищение! К сожалению, фотографии не позволяют передать ощущение качественно сделанного продукта, которое чувствуешь, когда держишь эту плату в руках. Как производитель смог столько всего уместить в этой крохе, при этом не забыв соблюсти все стандарты на расположение компонентов? Дабы не повторяться я не буду перечислять заново все ее возможности, желающие могут обратиться к первой части статьи или к спецификации на сайте Jetway.

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

AC Alpine 11 Plus устанавливается на пластиковые планки, предварительно закрепленные на плате. И хотя эти планки встали впритык к окружающим компонентам, единственное, что мне пришлось дополнительно сделать - это снять пластиковый фиксатор с разъема PCI-E x16 и слегка отогнуть хвост разъема.

Для установки блока питания необходимо снять специальную корзину в верхней части корпуса. Затем она крепится к БП, маленький удлинитель подключается в разъем питания, после чего конструкция в сборе устанавливается обратно в корпус. Таким образом производитель избавляет нас от провода питания, торчащего из верхней крышки корпуса.

У БП в наличии целый ворох разъемов, половина которых нам не понадобится.

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

Теперь можно установить материнскую плату. Охлаждение процессора вошло под БП с солидным запасом в несколько миллиметров. На время установки платы пришлось снять воздуховод дисковой корзины, но делается это элементарно.

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

Других нюансов во время сборки машины обнаружено не было. В частности, когда позже я решил добавить еще одну планку памяти, я легко смог это сделать без каких-либо проблем. Таким образом, единственный критичный момент в процессе сборки - высота охлаждения процессора и разводка кабелей БП.

Эффективность охлаждения и шум

На данный момент у меня в корзине стоят четыре 2TB диска Hitachi, их температура не превышает 37 градусов (в простое 34). Температура 2,5” системного диска обычно 31-33 градуса. Процессор в простое - 40 градусов.

Шум от системы главным образом состоит из шуршания воздуха. Но для этого пришлось поставить регулятор оборотов на вентилятор корзины. На штатных оборотах тихим его никак не назовешь (хотя производитель в рекламном буклете утверждает обратное). В перспективе планирую его заменить на что-то более бесшумное.

Заключение

Когда я собирал сервер, я еще не знал, какой софт на него поставить и планировал в том числе поднять статьей обсуждение этого вопроса. Несмотря на то, что в итоге (да простят меня почитатели *nix) я остановился на Windows Server 2012, для многих этот вопрос остается открытым, комментарии на эту тему приветствуются.

P.S. Цена системы без жестких дисков получилась в районе 22 килорублей.

UPD: хочу обратить внимание на то, что мне нужно нечто большее чем просто NAS. Эта же машина должна быть и тестовой средой, и средой разработки. Естественно лучше было бы развести эти роли на разные машины, но моя квартира не настолько большая. Именно поэтому выбрано железо, избыточное для обычного NAS и именно поэтому устройства типа Synology не подходят.

Задача: собрать малогабаритный домашний сервер с четырьмя 3,5-дюймовыми HDD, по возможности тихий. Служить будет в качестве NAS, backup-сервера и торрентокачалки.

Решение :
Во-первых необходимо было выбрать материнскую плату. Стандарные варианты - это mATX и Mini-ITX, оба из которых я пробовал ранее.

Форм-фактор mATX был отвергнут сразу, малыми усилиями сделать компактно с ним не получится. Существующие корпуса для mATX плат не рассчитаны на 4 диска, в них обычно ставят плохие и шумные блоки питания. Сделать компактный и тихий блок питания для такой системы трудно и дорого, т. к. потребляемая мощность будет больше 150 Ватт.

Форм-фактор Mini-ITX дает большую свободу выбора, тут и тихоходные процессоры Atom, Celeron, бодрые «середнячки» Athlon и мощные Core 2 Duo/Quad. Цена разнится сильно, но для моих задач хватит и Atom. Такие платы потребляют мало мощности, занимают мало места и обычно не сильно уступают mATX платам по кол-ву функций. Есть здесь и свои минусы: высокие цены, чуть меньшее кол-во разъемов, небольшой выбор.

К сожалению, на российском рынке выбор Mini-ITX плат меньше, чем за рубежом, но этому не стоит удивляться, учитывая их невысокую популярность. Хороший ассортимент представлен на Яндекс-Маркете и в некоторых специализирущихся на малых форм-факторах компаниях. Здесть стоит отметить Антекс и Оникс (он же dont.ru). На зарубежных сайтах (linitx.com , mini-itx.com , idotpc.com) выбор куда шире.

Подходящей маломощной платы с 4-мя SATA-разъемами я не нашел, а покупать с двумя и отдельно sata-контроллер не хотелось, единственный PCI-слот может еще пригодиться для чего-нибудь более полезного, например Wi-Fi адаптера.

Я хотел еще сделать из компьютера домашний роутер, поэтому искал плату с двумя ethernet-разъемами.

Выбор был, хоть и не большой, но, погуглив, я нашел отличную плату с двухъядерным процессором Atom, PCI-слотом, двумя ethernet-раземами и, о чудо, четырьмя SATA-разъемами. Отличный вариант: маломощный, но не совсем слабый процессор, полный набор необходимых разъемов и всего одним вентилятор.

Теперь предстояло выбрать корпус. Для 4-х жестких дисков нашелся один-единственный корпус, Chenbro ES34069 , на вид такой же отличный, как и найденная плата, но достаточно дорогой. После чтения форумов выяснилось, что тишиной он не отличается.

Хорошо, поехали дальше, можно купить другой корпус и в нем сделать место под 4 диска. Как разместить диски на тот момент я представлял лишь примерно, но это меня не пугало. После тщательных поисков было найдено два небольших подходящих по вместительности корпуса: AOpen S180 и CFI GROUP CBI-A8989TG . Оба напоминали корпуса первых bareborn-систем. По расчетам подходили оба, но я решил взять корпус от Aopen, который был немного выше, чтобы было место про запас. Впоследствии это решение оказалось единственно верным, так как во второй корпус все бы так хорошо не упаковалось. Но обо всем по порядку.

Блок питания в купленном корпусе оказался на редкость шумным и я решил искать альтернативу. Блоки питания для Mini-ITX систем обычно состоят из двух компонент - адаптера питания от сети, как у ноутбуков и платы-конвертера. Плата конвертирует напряжение, выдаваемое блоком, обычно 12 Вольт в необходимые 3,3, 5, 12, -12 Вольт. По расчетам, система должна была потреблять до 100 Ватт в пике. Ассортимент таких безвентиляторных блоков питания оказался очень маленьким. В Москве найти плату и адаптер с выходной мощностью больше 80 Ватт оказалось невозможно. Адаптеры 220 - 12 Вольт мощностью от 100 Ватт в Москве являются штучным товаром, поездки по рынкам и поиски в сети почти ничего не дали. Лишь одна фирма предлагала привезти блок питания на 120 Ватт, но в непонятные сроки. Нашлась также и одна-единственная плата на 120 Ватт, тоже на заказ и в непонятные сроки. Пришлось искать в зарубежных интернетах. Немецкие и американские магазины предлагали такие комплекты, даже был хороший выбор, но по цене около 200$ с доставкой. Тогда я обратил внимание на автомобильные конвертеры, по сути такие же платы, только рассчитанные на плавающие автомобильные 12-24 Вольт, а не на стабильные 12. Для таких плат гораздо проще найти блок питания, ведь подойтет любой от ноутбука мощностью 100-120 Ватт. Блок питания у меня был, и я нашел сходный по цене вариант на eBay. Отлично, оставалось дождаться его по почте.

Жесткие диски были выбраны серии Barracuda LP, они подешевле и меньше греются, чем взрослые 7002.11 и подобные. Однако, при тестах выяснилось, что при нагрузках они все-таки сильно греются и им не мешало бы принудительное охлаждение. Между дисками надо было сделать зазоры для свободного прохождения воздуха.

В купленном корпусе была железная каретка для крепления одного 5-дюймового и двух 3,5-дюймовых устройств. Хорошо закрепить 4 диска на ней не представлялось возможным. Зато с такой задачей отлично справлялась металлическая каретка, предназначенная для установки четырех дисков в три 5-дюймовых отсека, которая была мне подарена другом. На ней было место для крепления вентилятора, при установке дисков между ними оставались щели, достаточные для продувания.

В Леруа Мерлене нашлись подходящие для закрепления каретки в корпусе железные уголки и винты. Плата адаптера была закреплена на специально припаянных металлических стойках. Блок питания, идущий в комплекте с корпусом был снят, на задней стенке корпуса, в месте где выл вентилятор блока питания и разъем 220 В. образовалось внушительное пустое место, которое надо было как-то закрыть. Ножницами по металлу я аккуратно вырезал заплатку из листа алюминия и прикрепил к корпусу. Теперь предстояло сделать хитрый шлейф питания MOLEX-4 SATA, так как у блока питания был только один разъем molex. 20-контактный шлейф питания, соединяющий мат. плату и конвертер питания я спаял из шлейфа от старого блока питания.

Материнская плата поддерживала PWM-контроль скорости вентилятора, и для продувки жестких дисков нужно было купить тихий вентилятор, пришлось поездить по магазинам и купить один PWM-вентилятор и один тихий со специальным резистором, еще более замедляющим его небыстрое вращение. Штатный вентилятор на радиаторе материнской платы я убрал, решив, что вентилятора на корпусе хватит. Получалось, один кулер дует на диски, второй этот воздух гонит из корпуса, попутно остужая процессор и чипсет. В процессе тестов процессор перегревался и я придумал соорудить подобие воздуховода из листа пластика. Чертеж несколько дней доводился, макетировался из бумаги и в итоге с помощью ножниц и клея был превращен в пластиковый кожух для радиатора на мат. плате.

Самой простой задачей оказалась покупка памяти. :) Для системного раздела я купил флешку на 8 Гб и спаял к ней адаптер для подключения к внутреннему разъему на мат. плате. ОС была поставлена на флешку, компьютер собран. В итоге я собрал тихий компьютер, где все получилось достаточно компактно, свободного места внутри было действительно мало.

Сейчас он работает под управлением Ubuntu 9.10, бекапы производятся с помощью snapback2+rsync.

Итоговая смета

Небольшой тест

Привожу результаты unixbench и, для сравнения, результаты тестов настольного компьютера (Athlon X2, 2 ядра, 2,5 Ггц, 2 Гб RAM) и сервера на базе Xeon 5500 (8 ядер, 2,5 Ггц, 48 Гб RAM).

Итоги

Самый дешевый NAS на 4 диска я нашел на Яндекс-Маркете за 14000 рублей (без дисков). Мой компьютер вышел на тысячу рублей дешевле и уж точно мощнее и функциональнее. Из минусов - потрачено много времени, найти детали в моем случае было не просто, и, добавим сюда риски покупки товаров из-за рубежа по почте.

Спасибо за внимание!

Зачем, собственно, нужен сабж? Что он может дать?

Если Вы хотите всего-навсего разместить домашнюю страницу или блог, обмениваться с друзьями файлами по ftp, получить e-mail на своем домене, вероятно,
Вам будет проще воспользоваться услугами виртуального хостинга, в крайнем случае, заказать виртуальный выделенный сервер.

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

Сразу оговорюсь, что речь о сервере, который предназначен, в первую очередь, для доступа из внешней сети.
К серверу, который раздает контент/предоставляет web(irc и пр.) сервисы на несколько машин подъезда, предъявляются совсем другие требования:)

Не у всех есть финансовая возможность поставить свой сервер в Дата-Центр, зато, с проникновением широкополосных технологий доступа во всемирную Сеть, появляется возможность использовать сервер под web и другие задачи прямо из дома.
Сейчас это с высокой вероятностью доступно для каждого отдельно взятого жителя для Москвы и Санкт-Петербурга, но я уверена, что не смотря ни на какие кризисы, домашний канал, подходящий по характеристикам, очень скоро появится в каждом крупном Российском городе.

Какой нужен канал?

Прежде всего, он должен быть:

1. Широким, симметричным и безлимитным.
2. Провайдер должен выдавать статические IP
3. Не должно быть никакой фильтрации портов, как входящих, на сервер, так и исходящих, во внешний мир.
4. Желательно, что бы не было никаких VPN.
5. Если провайдер готов поправить Вам DNS-PTR запись, то это сразу снимет ряд проблем с исходящей с Вашего сервера почтой.

Теперь подробнее по каждому пункту.

1.а Симметричность

Большая часть домашних интернет-каналов обладают одной особенностью, которая не имеет почти никакого значения для пользователя, в основном занимающегося серфингом: их ширина (еще, говорят, скорость) различна в разных направлениях. Типовой домашний пользователь больше скачивает из интернета, чем "загружает" что-то на какой-то ресурс.

Например, такие московские провайдеры как Акадо и Стрим готовы дать очень широкую полосу down ("вниз", на закачку) но ширина полосы up ("вверх", на загрузку) даже на самых дорогих тарифных планах незначительно отличается от самых дешевых.

Несиммитричный канал ужасен для домашнего публичного сервера тем, что подавляющая часть трафика сервера будет идти вверх , и какой бы дорогой и крутой не был Ваш интернет-канал, он будет, фактически, простаивать. Ваши десятки мегабит down никто не заметит, зато все обратят внимание на тормоза при загрузке файлов с Вашего сервера.
Для сервера, можно сказать, меняется местами важность down и up.

Поэтому, например, каналы в Дата-Центрах, и тарифы для размещения серверов рассчитаны на то, что трафик up будет больше чем трафик down в несколько раз. В России в большинстве Дата-центров даже берут деньги за нарушения соотношения по трафику (обычно, входящий:исходящий 1:4, и часто есть ограничение на соотношение по зарубежному трафику).

Я ни разу не слышала, что интернет-провайдер может как-то наказать за нарушение соотношения (то есть, за то, что Вы больше будете отдавать трафика, чем скачивать), наоборот, думаю, ситуация будет меняться в нужную для нас сторону.

Очень многие домашние пользователи обмегиваются файлами с помощью p2p сетей , а в этих сетях для того, что бы хорошо качать, нужно иметь высокий рейтинг, который можно получить только раздавая контент. Уже сейчас почти все "продвинутые" пользователи за новым mp3-альбомом любимой группы пойдут, скореe в торренты, чем в магазин.
Провайдеры понимают тенденции и подстраиваются. Хотя, конечно, провайдеров могут ограничивать различные факторы: характеристики своего канала, технологии "последней мили"(у ADSL - операторов просто нет технической возможности сделать канал симметричным), и т.д.

1.б Безлимитность

По поводу безлимитности канала, очевидно, что если трафик будет оплачиваться, неожиданное резкое увеличение трафика может оказаться очень неприятным для Вашего кошелька.
Если Вы предоставляете какой-то публичный сервис, вряд ли у Вас получиться контролировать посетителей Вашего сервиса их трафик, за который Вы будете платить.
Даже если по Вашему тарифному плану , как это бывает обычно на лимитных тарифах, исходящий трафик бесплатен, даже если Вы запретите загружать пользователям сервиса файлы, входящий трафик будет всегда , к каким бы ухищрениям Вы не прибегали. Он будет составлять, примерно, седьмую-пятую часть от исходящего для web-сервера.

1.в Ширина

.
У Вас есть дешевый безлимитный симметричный канал? Отлично! Что? У него ширина 128kb/s? Поверьте, в этом случае Ваш сервис не будет никому нужен.

Всю вашу полосу забьет один пользователь сервиса с широкополосным доступом, который будет очень раздражен тем, что "кортинке медленна грузяццо". Который уйдет, и больше не вернется.
Мне жаль Вас огорчать, но, наверное, не стоит организовывать домашний сервер, если Ваш up всего 128kbs.
Я бы поставила минимальное значение в 512kbs.

Но 20 мегабит от Ethernet-провайдера были бы самым верным решением. В этом случае, посетители вряд ли бы заметили разницу в скорости работы сервиса, размещенного дома, и сервиса, размещенного в Дата-Центре.
В регионах таких каналов пока нет, но в Москве подключают уже и с большей полосой.

Отдельно хотела бы сказать про сетевую связность.
Во всемирной Сети иногда возникают так называемые "черные дыры", в которых пропадает трафик. К сожалению, хостинг-провайдеры, предоставляющий место для сервера в ДЦ, обычно борятся за связность активнее, чем интернет-провайдеры.

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

2. Статический IP-адрес

Некоторые провайдеры, например, Стрим, просто не выдают домашним пользователям статический IP-адрес.
Если у сервера постоянно меняется IP-адрес, пользователи Ваших сервисов просто не смогут на них попасть.
Вы можете попробовать выкрутиться с помощью DynDNS сервисов и даже разместить сайт таким примерно образом:

host h.shaggy-cat.ru
h.shaggy-cat.ru is an alias for shaggy-cat.dyndns.org.
shaggy-cat.dyndns.org has address 91.77.252.108

Здесь домен третьего уровня является CNAME записью , ссылающейся на хост бесплатного сервиса динамического DNS.
Ваш сервер время от времени подключается с помощью специальной программы на сервис DynDNS, который обновляет для Вашего домена значение А-записи.

Cервис dyndns.org бесплатно поддерживает только домены третьего уровня, поддомены доменов, принадлежащих сервису.
Если Вы готовы заплатить, сервис может предоставить Вам поддержку Вашего домена.

Когда у меня не было канала со статическим IP, я поступила проще:) Просто создала DNS CNAME запись.

Про настройку DynDNS в Redhat-like системах можно почитать .
Обычно, dyndns умеют ADSL-модемы и домашние дешевые хардварные роутеры.

Однако, поверьте, Вы сможете избежать огромного количества проблем, бессоных ночей, и граблей, на которые Вы наступите, если просто подключите стический IP адрес.
Любым способом: заплатив за него как за опцию тарифного плана, напившись с одмином Вашего провайдера, в конце концов, переспав с ним, если Вы девушка:)))
Все усилия, которые Вы предпримите для получения статического IP, себя окупят.
Мой личный опыт свидетельствует только о постоянных глюках DynDNS сервисов:(

Мне статический IP достался проще: я ушла к другому интернет-провайдеру. Стрим пока оставила как резервный линк, перейдя на самый дешевый тарифный план.

3. Фильтрация портов

Некоторые интернет-провайдеры, устав от жалоб завирусованных клиентов, просто отключают входящие порты для своих клиентов, через которые сетевые черви и злоумышленники могут поломать компьютер их клиента.
Часто в список портов попадают и порты, через которые Windows-системы обычно не троянят. Например, Стрим блокирует входящие порты: 80 (прощай веб-сервер!), 21(прощай ftp!), 25(прощай, почтовый mx-сервер!)

Понятно, что пользователи врядли оценят красоту URL Вашего сайта, если на него придется заходить каким-то таким образом:

http://pupkin.ru:8888

Что касается фильтрации исходящих портов, обычно, применяется фильтрация 25 порта, что бы массовый завирусованный Win-пользователь не спамил.
Это может доставить определенные неудобства, если Вы, например, хотите, что бы пользователи Ваших сервисов получали уведомления по почте.
В этом случае, Вы можете попробовать настроить локальный SMTP-сервер релеить почту через другой SMTP по такой, например, инструкции: тЫц .
Использовать провайдерский SMTP совсем не обязательно, Вы можете использовать свой обычный бесплатный ящик.

4. VPN и *nix системы.

Как много боли, страдания, отчаяния и полного разочарования кроется за этой фразой!!
Настройка VPN для стабильной работы, достаточной для сервера, была и остается огромной проблемой для новичка.
Даже при оптимальной настройке следуют учитывать то, что Ваше VPN-соединение будет падать время от времени, и нужно писать скрипты, которые будут опеределять падение канала, и передергивать соединение.

Даже если Вы собираетесь использовать сервер под Windows, Вас ждут те же самые проблемы со стабильностью канала, если не большие, связанные с фичами устройства сетевой подсистемы
этой операционки (я сама не использовала такой сервер, но один очень хороший человечек рассказывал жуткие вещи)

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

В Москве Корбина Телеком переходит на L2TP VPN-соединение, говорят, что оно гораздо стабильнее.

Если сможете, подключайтесь к каналу, использующему авторизацию по MAC-адресу сетевой карты.
В Москве это, например, Су-29 Телеком, Qwerty, Акадо.
Впрочем, VPN не на столько плох, на сколько плох динамический IP-адрес. Если VPN не избежать, имейте ввиду, что poptop, вероятно, самый нестабильный.

5. Фильтрация портов

Если провайдер не фильтрует исходящие порты, то почта, напрямую отправленная с Вашего сервера, с высокой вероятностью попадет в spam-папку ящика назначения.
Это связано с тем, что практически весь спам в современном мире рассылается с затрояненных компьютеров домашних пользователей под управлением Windows. IP-адреса, выдаваемые таким пользователям, обычно имеют характерную DNS PTR-запись вида:

host 91.77.252.108
108.252.77.91.in-addr.arpa domain name pointer ppp91-77-252-108.pppoe.mtu-net.ru.

Достаточно просто пишется регулярное выражение(можете поискать примеры в Google), которое выделяет такие хосты среди "законных" SMTP-релеев.

Если Ваш провайдер исправит для Вашего IP PTR-запись, почта с Вашего сервера перестанет фильтроваться по этому критерию.

7. Железо сервера

Тут я затрудняюсь дать какие-то подробные и профессиональные советы, так как просто-напросто очень плохо разбираюсь в hardware, которое мне никогда не было интересно.

Чем больше ядер у процессора, тем лучше. Вообще, чем он быстрее, тем это правильнее. Только не стоит разгонять систему до космических скоростей, и тюнить сотней куллеров, вам ведь еще и спать ночью рядом с этим монстром придется...
Если Вы используете такие технологии виртуализации как Xen, KVM, VmWare, обратите внимание на процессоры с поддержкой технологий Intel VT или AMD Pacifica

Чем больше ОЗУ, тем лучше. Особенно в случае использования Виртуализации .

Навороченная видео-карта, как и вообще звуковая система Вам не нужны. Лучше брать материнскую плату с интегрированной видео, что бы свободный PCI-слот занять под, например, сетевую карту.

UPS. Очень и очень желателен. Так же, как мне подсказал один хороший человечек, стоит активировать в BIOS опцию включения при подаче питания.

- "Стойка" засуньте сервер куда-нибудь далеко, что бы не мешал гудением, Вы его случайно не залили жидкостью, не уронили, и так далее.
Лучше на антресоль или в кладовку. Только учтите, что: а) пыль это плохо; б) Летом, в связи с глобальным потеплением;) в маленькой, душной конуре он может просто перегреться и выключиться:(
Впрочем, проблемы с перегревом возможны и в Дата-центрах. .masterhost вот чуть не наградили Антипримией Рунета за оригинальную технологию охлаждения серверов сухим льдом:)))

8. Софт

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

Я использую на своем HomeServer промышленную технологию виртуализации OpenVZ. О ней можно почитать и

Использую из-за легкости эксперементов (новый контейнер с почти любым Linux-дистрибутивом создается за две-три секунды), отсуствии потерь на виртуализацию, и по тому, что считаю технологию очень прогрессивной.

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

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

Используя виртуализацию на домашнем сервере, Вы получите ту самую консолидацию, и дом, в конце концов, не превратится в филиал дата-центра.
Вам хватит одного, максимум, двух мощных компьюетеров для решения любых задач на виртуальных машинах, размещенных на сервере.

Советую обратить внимание на следующие технологии:

а) Xen
б) KVM
в) OpenVZ
г) _серверные_ варианты VmWare

Подробное описание этих технологий так же выходит за рамки статьи, выскажу только общие соображения.

Наиболее "модным" решением для виртуализации сейчас является VmWare. Популярность обсуловлена простотой настройки, и администрирования.
Однако, VmWare не лишина недостатков. Главный из которых заключается в том, что наиболее мощный вариант VMware ESX Server стоит денег (бесплатный VMware Server смотрится очень тускло рядом Xen или OpenVZ), так же, я бы отметила не самую лучшую поддержку оборудования, и большие потери производительности при виртуализации.
Думаю, VmWare можно назвать попсовым решением, если Вы хотите "все сразу", и согласны мириться с некоторой негибкостью решения, наверное, лучше VmWare для Вас нет ничего.

KVM является, возможно, самой перспективной технологией из всех перечисленных, учитывая то, какое внимание ему уделяет RedHat(тЫц) и динамику самого RedHat . Однако, сейчас технология явно остает по числу фич от своих конкурентов.

Xen Очень интересная и мощная технология. Существует сайт с большим числом русских статей про Xen . Когда я выбирала программную платформу, долго колебалась между Xen и OpenVZ. Выбрала, как уже писала выше, OpenVZ

OpenVZ Главные плюсы в том, что технология, как я уже писала выше, работает практически без потерь производительности, что существуют десятки шаблонов VPS с самым разным ПО и разными дистрибутивами, которые могут быть развернуты за мгновения.
Очень удобно для эксперементов:)
Самый главный минус заключается в том, что виртуализируются только Linux-дистрибутивы

Этот абзац не отражает и доли того, чем для меня стала OpenVZ. Очень-очень надеюсь, что соберусь и напишу статью по использованию этой системы.

Если Вы планируете использовать несколько виртуальных серверов, а внешний IP-адрес всего один(так скорей всего и будет в случае с домашним сервером), Вы можете давать виртуальным машинам IP-адреса из диапазонов, предназначенных для локальных сетей , и пробрасывать на виртуальные машины порты с внешнего IP (Iptables DNAT в Linux).

Если Вы планируете больше одного web-сервера, то проброс портов не поможет. Я выкрутилась с помощью акселерирующего http-реверс-прокси nginx на отдельной VPS.
Этот nginx проксирует http-соединения к одной, либо другой VPS. Может быть, и об этом когда-нибудь расскажу:))

З.Ы. Перепечатка разрешена только с указанием ссылки на оригинал этой заметки.

Удачной настройки домашнего сервера, и... меньше возитесь с компьюетрами, чаще гуляйте, ходите в музей/театр/кино/в гости/ездийте в путешествия!

Еще никогда проблема хранения файлов не стояла так остро, как сегодня.

Появление жестких дисков объемом в 3 и даже 4ТБ, Blu-Ray дисков емкостью от 25 до 50ГБ, облачных хранилищ - не решает проблему. Вокруг нас становится все больше устройств, порождающих тяжеловесный контент вокруг: фото и видео-камеры, смартфоны, HD-телевидение и видео, игровые консоли и т.п. Мы генерируем и потребляем (в основном из интернета) сотни и тысячи гигабайт.

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

Это все нужно не просто хранить, но и уберечь от сбоев и прочих угроз.

Псевдо-решения проблемы

Можно оснастить свой компьютер емким жестким диском. Но в этом случае встает вопрос: как и куда архивировать, скажем, данные с 3-терабайтного диска?!

Можно поставить два диска и использовать их в режиме RAID «зеркало» или просто регулярно выполнять резервное копирование с одного на другой. Это тоже не лучший вариант. Предположим, компьютер атакован вирусами: скорее всего, они заразят данные на обеих дисках.

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

Сетевое хранилище - решение проблемы! Отчасти…

Network attached storage (NAS) - сетевое файловое хранилище. Но можно объяснить еще проще:

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

В результате этого - NAS может хранить какие-либо Ваши данные, а вы можете получать к нему доступ с любого домашнего ПК или ноутбука. Забегая вперед, стоит сказать, что локальная сеть должна быть достаточно современной для того, чтобы вы могли быстро и без проблем «прокачивать» по ней десятки и сотни гигабайт между сервером и компьютерами. Но об этом - позже.

Где взять NAS?

Способ первый: покупка. Более-менее приличный NAS на 2 или 4 жестких диска можно купить за 500-800 долларов. Такой сервер будет упакован в небольшой корпус и готов к работе, что называется, «из коробки».

Однако, ПЛЮС к этим 500-800 долларов добавляется еще стоимость жестких дисков! Так как обычно NAS продаются без них.

Плюсы: вы получаете готовое устройство и тратите минимум времени.

Минусы такого решения: NAS стоит как настольный компьютер, но при этом обладает несравнимо меньшими возможностями. Фактически это просто сетевой внешний диск за большие деньги. За довольно большие деньги вы получаете ограниченный, невыгодный набор возможностей.

Мое решение: самостоятельная сборка!

Это намного дешевле покупки отдельного NAS, хоть и чуть дольше ведь вы собираете машину самостоятельно). Однако, вы получаете полноценный домашний сервер, который при желании можно использовать во всем спектре его возможностей.

ВНИМАНИЕ! Я настоятельно не рекомендую собирать домашний сервер, используя старый компьютер или старые, отработавшие свое комплектующие. Не забывайте, что файловый сервер - это хранилище ваших данных. Не поскупитесь сделать его максимально надежным, чтобы в один прекрасный день все ваши файлы не «сгорели» вместе с жесткими дисками, например, из-за сбоя в цепи питания системной платы…

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

Идеальным решением исходя из этого является системная плата со встроенным в нее процессором и пассивным охлаждением, компактных размеров.

Я выбрал системную плату ASUS С-60M1-I . Она была куплена в интернет-магазине dostavka.ru:

В комплекте поставки качественное руководство пользователя, диск с драйверами, наклейка на корпус, 2 кабеля SATA и задняя панель для корпуса:

ASUS, как впрочем и всегда, укомплектовал плату очень щедро. Полные спецификации платы вы можете узнать здесь: http://www.asus.com/Motherboard/C60M1I/#specifications . Я скажу лишь о некоторых важных моментах.

При стоимости всего в 3300 рублей - она обеспечивает 80% всего того, что нам нужно для сервера.

На борту платы находится двухъядерный процессор AMD C-60 со встроенным графическим чипом. Процессор имеет частоту 1 ГГц (автоматически может увеличиваться до 1,3 ГГц). На сегодня он устанавливается в некоторые нетбуки и даже ноутбуки. Процессор класса Intel Atom D2700. Но всем известно, что Atom имеет проблемы с параллельными вычислениями, что часто сводит его производительность на «нет». А вот C-60 - лишен этого недостатка, и в добавок оснащен довольно мощной для этого класса графикой.

В наличии два слота для памяти DDR3-1066 , с возможностью установки до 8 ГБ памяти.

Плата содержит на борту 6 портов SATA 6 Гбит . Что позволяет подключить к системе целых 6 дисков(!), а не только 4, как в обычном NAS для дома.

Что САМОЕ важное - плата построена на базе UEFI , а не привычного нам BIOS. Это значит, что система сможет нормально работать с жесткими дисками более 2,2 ТБ. Она «увидит» весь их объем. Системные платы на BIOS не могут работать с жесткими дисками более 2,2 ГБ без специальных «утилит-костылей». Разумеется, использование такого рода утилит недопустимо, если мы ведем речь о надежности хранения данных и о серверах.

С-60 довольно холодный процессор, поэтому он охлаждается с помощью одного только алюминиевого радиатора. Этого достаточно, чтобы даже в момент полной загрузки температура процессора не повышалась более 50-55 градусов. Что является нормой.

Набор портов вполне стандартный, огорчает только отсутствие нового USB 3.0. А особо хочется ответить наличие полноценного гигабитного сетевого порта:

На эту плату я установил 2 модуля по 2 ГБ DDR3-1333 от Patriot:

Система Windows 7 Ultimate устанавливалась на жесткий диск WD 500GB Green, а для данных я приобрел HDD Hitachi-Toshiba на 3 ТБ:

Все это оборудование у меня питается от БП FSP на 400 Ватт, что, разумеется - с запасом.

Финальным этапом была сборка всего этого оборудования в корпус mini-ATX.

Сразу после сборки я установил на компьютер Windows 7 Ultimate (установка заняла порядка 2 часов, что нормально, учитывая низкое быстродействие процессора).

После всего этого я отключил от компьютера клавиатуру, мышь и монитор. Фактически, остался один системный блок подключенный к локальной сети по кабелю.

Достаточно запомнить локальный IP этого ПК в сети, чтобы подключатся к нему с любой машины через стандартную Windows-утилиту «Подключение к удаленному рабочему столу»:

Я намеренно не стал устанавливать специализированные операционные системы для организации файлового хранилища, типа FreeNAS. Ведь в таком случае, не было бы особого смысла собирать отдельный ПК под эти нужды. Можно было бы просто купить NAS.

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

Итого общая стоимость домашнего сервера БЕЗ жестких дисков составила 6 000 рублей.

Важное дополнение

При использовании любого сетевого хранилища очень важна пропускная способность сети. Причем, даже обычная 100 Мегабитная кабельная сеть не приводит в восторг, когда вы, скажем, выполняете архивацию со своего компьютера на домашний сервер. Передать 100 ГБ по 100 Мегабитной сети - это уже несколько часов.

Что уж говорить о Wi-Fi. Хорошо, если вы используете Wi-Fi 802.11n - в этом случае скорость сети держится в районе 100 Мегабит. А если стандарт 802.11g, где скорость редко бывает больше 30 Мегабит? Это очень, очень мало.

Идеальный вариант, когда взаимодействие с сервером происходит по кабельной сети Gigabit Ethernet . В этом случае - это действительно быстро.

Но о том, как создать такую сеть быстро и с минимальными затратами - я расскажу в отдельной статье.