Сайт о телевидении

Сайт о телевидении

» » Файловый сервер для дома. Делаем из старого пк домашнее хранилище данных

Файловый сервер для дома. Делаем из старого пк домашнее хранилище данных

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

Появление жестких дисков объемом в 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 . В этом случае - это действительно быстро.

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

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

Как не странно, но если вы читали статью о , то вы уже умете хостить сайты на своем домашнем компьютере. Оказывается, все что нужно для того, чтобы сайт грузился не с какого-то сервера хостинг-провайдера, а со своего знакомого родного домашнего компьютера – это описанным в статье образом настроить связку apache+php+mysql и связать доменное имя с IP-адресом вашего домашнего компьютера.

Повторюсь:

  • О том как настраивать Apache + PHP + MySQL я писал .
  • О том, как связать IP-адрес и доменное имя я записал .

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

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

Но, обычное дело, когда компьютер, который будет выполнять роль сервера, расположен либо в локальной подсети, либо перед ним стоит какой-нибудь АДСЛ-модем и внешний IP-адрес (который вы можете узнать воспользовавшись сервисом myip.ru) – это адрес роутера либо адрес АДСЛ-модема. IP-адрес компьютера имеет при этом локальный вид (либо 192.168.0.ХХХ, либо 10.0.0.Х). Здесь уже сложнее, но все равно можно реализовать поставленную цель и сделать у себя дома филиал хостинг-провайдера.

Необходимо реализовать так называемый проброс портов . Т.е. настроить роутер или АДСЛ-модем следующим образом:

  • Пользователь набрал адрес сайта сайт.
  • Name-сервер сообщил IP-адрес. Этот IP-адрес является внешним статическим адресом либо роутера, либо АДСЛ-модема, либо шлюза, через который компьютер-сервер выходит в интернет.
  • Запрос пришел к роутеру на 80-й порт (именно через 80-й порт осуществляется http-соединение).
  • Роутер настроен таким образом, что все запросы, приходящие на 80-й порт, перенаправляет компьютеру локальной подсети с определенным IP, например 192.168.0.200.
  • Запрос пошел на локальный компьютер-сервер, а там его уже с радостью встречает Apache и выдает нужный сайт.

Но с пробросом портов мы разберемся чуть позже. Пока поковыряем сам компьютер-сервер.

Характеристики компьютера-сервера

Здесь очень сложно говорить о каких-либо точных параметрах.

Если вы собираетесь поиграть в хостинг-провайдера, то сервер должен быть четырехъядерным компьютером с 4-мя Гигабайтами оперативки, и несколькими жесткими дисками, объединенными в RAID-массив . Такой компьютер делится на несколько виртуальных серверов, управление которыми дается клиентам.

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

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

Скорость чтения с жесткого диска и его надежность можно повысить все теми же RAID-массивами .

Но неоспоримым оказывается тот факт, что ОС Windows, из-за огромного количества дыр в безопасности, множества вирусов, нестабильности работы – на сервере не место.

Поэтому на серверах бал правят операционные системы семейства Linux. Но не пугайтесь, принципы работы в Linux не так и сложны, как кажется, а настройка Apache + PHP + MySQL практически ничем не отличается от настройки в Windows.

Установка ArchLinux

Давайте-ка, уважаемый читатель, я познакомлю вас с установкой операционной системы ArchLinux.

Существует множество операционных систем, разработанных на основе Linux . Это и всем известная Ubuntu и openSUSE и многие другие. Одним из завоевавших популярность дистрибутивов является ArchLinux. С ним-то мы и будем знакомиться.

Почему именно ArchLinux:

  • На мой взгляд, оптимально подходящий дистрибутив для сервера. В нем нет никакой лишней тяжести, все настраивает и устанавливает сам пользователь (оставляя только то, что действительно необходимо).
  • Мощная система установки обновлений Pacman .

Теперь я подробно опишу процесс установки ArchLinux на будущий сервер.

В случае обычного домашнего компьютера, из которого мы планируем сделать сервер, подойдет дистрибутив Core ISOs: i686 , Torrent-ссылку на который можно получить на этой странице .

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

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

Для начала запускаю из TCUP Torrent-клиент и примерно через час дистрибутив у меня на жестком диске.

Теперь, как вы, наверное, догадались, нужно нарезать дистрибутив на диск. Идеальным окажется обычный CD, но где его в наше прогрессивное время взять, поэтому я использую чистую DVD (ради такого дела не жаль).

Нарезать будем плагином все того же TCUP.

Запускаем плагин Прожиг CD/DVD . Далее выбираем пункт Проект: Образ ISO/CUE и, прямо в открывшееся содержимое пункта, копируем скачанный дистрибутив ArcLinux-а (при помощи всем знакомой кнопки F5).

Запись начинаем, естественно, кликом на пункт Запись диска .

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

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

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

Грузимся с CD.

Выбираем пункт Boot Arch Linux Live CD . После чего наблюдаем процесс загрузки операционной системы.

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

В установочном режиме учетная запись root-пользователя не имеет пароля. Пароль мы создадим на одном из последних шагов установки ОС Arch Linux.

Если обратить внимание на появившуюся, после авторизации, красиво оформленную надпись, то станет понятно – установку нужно начитать с ввода команды / arc/ setup и подтверждаю ввод нажатием, вы не поверите, Enter.

Все, приступаем непосредственно к установке.

Последовательно будем выполнять каждый из пунктов установочного меню.

1. Select Source

На данном этапе нам предлагается выбрать между установкой с CD или из интернета. Т.к. мы скачали полный дистрибутив, то выбираем пункт CD-ROM or OTHER SOURCE и нажимаем Enter.

2. Set clock

Select region and timezone. Здесь необходимо выбрать временной регион. Я выбираю Europe и после Kiev (т.к. территориально я нахожусь в Украине).

Set time and date Здесь без лишних пояснений выбираю UTC. В режиме manuale редактирую дату. После корректировки возвращаюсь в подменю установки даты и времени, выбрав пункт return.

Настройку времени и даты я закончил, выбираю 3-й пункт Return to Main Menu.

Теперь самая интересная и сложная часть – разбивка жесткого диска. Но мы эту науку быстро одолеем.

Выбираю пункт

3. Prepare Hard Drive(s)

Разбивать будем в ручном режиме. Поэтому в подменю выбираем пункт 2. Manually Partition Hard Drives.


Я имею диск в 18 Гбайт, о чем с радостью меня информирует программа разбивки диска.

На данном этапе хочу пояснить принципы работы с оборудованием и файловой иерархией Arch Linux:

В Linux нет дисков С:, D: и т.д., как мы привыкли видеть в Windows. Здесь вся иерархия начинается от корня, обозначаемого / Все находится внутри этого слеша и распределено по папкам.

Удивительно для пользователя Windows, но все оборудование хранится в папке /dev. Мой единственный жесткий диск обозначается как sda. Именно поэтому я вижу надпись /dev/sda: 18GiB, которая говорит о том, что на компьютере есть одно устройство, распознанное как жесткий диск размером в 18 ГигаБайт и оно, как и все устройства, засунуто в папку dev.

А теперь мы приступим непосредственно к созданию разделов на жестком диске.

Выбираю диск /dev/sda и нажимаю Enter. После этого запускается программа cfdisk, при помощи которой мы и будем делить диск на разделы. Убираем приветственное окно программы cfdisk, нажав Enter и наблюдаем интерфейс программы cfdisk.

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

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

Создадим три раздела:

  • Загрузочный раздел, который будет содержать ядро системы (для него нам достаточно отвести 50 Мбайт).
  • Раздел подкачки или swap. Он используется для хранения данных из оперативной памяти, когда они уже там не умещаются (512 Мбайт).
  • Раздел для всего остального, корневой раздел /. Для него задействуем все что осталось.

Итак, выбираю пункт New и создаю загрузочный раздел. На следующей развилке я вбираю пункт Primary. Далее выбираю размер раздела, в моем случае достаточно 50 МегаБайт. Выбор подтверждаю пунктом Beginning.

После создания раздела указываю его тип (пункт Type) как 83 (Linux).

Первый раздел создан. Теперь я перемещаюсь на пункт, символизирующий оставшееся свободное место на диске и снова нажимаю New.

Теперь я буду создавать раздел подкачки swap.

Используем вышеописанный алгоритм. Размер данного раздела будет равен 512 Мегабайт.

В качестве типа данного раздела (Type) необходимо указать 82.

Все остальное помечаем как sda3, туда мы будем монтировать корень /.

Размеченный жесткий диск sda имеет следующий вид:

Настал этап указать один из дисков, как загрузочный. Для этого мы перемещаемся на sda1 и помечаем его пунктом Bootable.

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

После сохранения можно выйти (пункт Quit).

Мы снова попадаем в знакомое нам меню установки Arch, где выбираем пункт DONE.

После выбора DONE, мы окажемся в подменю работы с диском, где будет заботливо выбран пункт 3. Manually Configure block devices, filesystems and mounpoints

Нажимаем Enter и переходим к монтированию разделов жесткого диска.

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

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

Как и договаривались, монтируем на sda1 загрузочный раздел /boot.

Никаких дополнительных опций указывать не будем, нажимаем Enter.

Аналогично вышеописанному создаем файловую систему и точку монтирования для sda2. Файловая система – swap. Это собственно все, что нужно было указать для sda2.

Sda3 будет иметь файловую систему ext3 монтировать туда будем, как и договаривались, все остальное, т.е. /.

Вот результат:

Остается лишь выбрать done и все, что мы наворотили, применится.

Вот теперь уж с настройкой жесткого диска действительно все. Arch заботливо выбирает пятый пункт в меню установки 5 Return to Main Menu.

Продолжаем устанавливать наш замечательный Linux.

В главном меню установки выбран пункт 4. Select Packages . В нем нам нужно выбрать ничто иное как base.

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

Попадаем на 5-й пункт меню Install Packages , которым запускается установка пакетов. Если вы видите вот это

и CD старательно шуршит, значит все нормально, ждите окончания установки.

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

6. Configure System

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

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

Основной конфигурационный файл – /etc/rc.conf

Выбираем соответствующий пункт и нажимаем Enter.

Редактор nano загружает содержимое текстового файла rc.conf, расположенного в папке файлов конфигурации etc.

Для начала мы настроим сеть. Переходим к разделу NETWORKING в файле и внимательно впиваемся взглядом в строчки

#eth0="eth0 192.168.0.2 netmask 255.255.255.0 broadcast 192.168.0.255" eth0="dhcp" INTERFACES=(eth0) gateway="default gw 192.168.0.1" ROUTES=(!gateway)

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

Eth0="eth0 192.168.0.2 netmask 255.255.255.0 broadcast 192.168.0.255" #eth0="dhcp"

Теперь развлекаемся с первой строкой. Вместо 192.168.0.2 прописываем IP-адрес сервера. Мой сервак находится в локальной сети и имеет адрес 192.168.0.200 (именно его я и указываю).

netmask 255.255.255.0 Это нас устраивает. Данный формат маски говорит о том, что в подсети могут находится 254 компьютера (первые три составляющие IP-адреса у них фиксированы, а последняя изменяется от 1 до 254). Ну и ладно.

broadcast 192.168.0.255 – это IP-адрес для широковещательных пакетов. Если на данный IP будет отправлен пакет, то его получат все компьютеры подсети. Ну и хорошо, нас это устраивает.

В результате имеем следующее вместо первой строки:

Eth0="eth0 192.168.0.200 netmask 255.255.255.0 broadcast 192.168.0.255"

Крутим ниже, к строке

Gateway="default gw 192.168.0.1" ROUTES=(!gateway)

Первая строка указывает шлюз. Моя локальная сеть организована таким образом, что перед сервером расположен роутер, имеющий адрес 192.168.0.1, его я и указываю в качестве шлюза. Если в вашем случае, никакого роутера нет, то администратор сети должен сообщить вам IP-адрес шлюза, его здесь и укажете.

Во второй строке нам нужно, всего на всего, убрать восклицательный знак:

ROUTES=(gateway)

С этим файлов все. Жмем ctrl+o для записи и ctrl+x для выхода.

Следующим конфигурационным файлом, к которому мы проявим интерес, будет /etc/resolv.conf

Здесь все очень просто. В формате nameserver ip необходимо указать DNS.

Прямо под строкой #nameserver дописываем следующее

nameserver 192.168.0.1

nameserver 8.8.8.8

Кто такой 192.168.0.1 вы, уважаемый читатель, уже знаете.

8.8.8.8 – это DNS от Google. Указываю его, в качестве альтернативного.

Следующий интересный файл – /etc/hosts.deny

По умолчанию в этом файле запрещаются все соединения. Поправить это можно закомментировав строку ALL: ALL: DENY, т.е. поставить # перед фразой решетку, вот так:

# ALL: ALL: DENY

Сохраняем файл и выходим.

Следующим шагом мы подкорректируем зеркала для обновления, содержащиеся в файле /etc/pacman.d/mirrirlist

Прокручиваем файл к разделу Russia и раскомметируем строчки с адресом yandex.ru

Сохраняем, закрываем.

Последняя операция – установка пароля для супермощного пользователя root. Задайте его, и не забудьте.

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

Жмем Done в самом конце.

Изменения применяются.

Последнее, что нам нужно будет сделать – это выбрать загрузчика. Пункт 7 Install Bootloader .

Здесь все просто, не парим мозг, выбираем Grub. После его выбора мы увидим содержимое файла конфигурации загрузчика. Он нас не интересует, сразу выходим оттуда.

Теперь нам нужно выбрать, куда устанавливать загрузчик. Выбираем пункт /dev/sda

Все, уважаемый читатель, 8 Exit Install .

Поздравляю, Arch Linux стоит, вводите команду reboot и не забудьте вынуть загрузочный диск из СДРОМА. Кстати, СДРОМ не откроется, пока не начнется перезагрузка, потому что диск примонтирован, вот такие особенности Linux.

Все, Linux загрузился и приглашает начать работу с ввода логина и пароля. А вы что ожидали?

Логинимся как root (пароль от рута вы сами завали, так что вводите, если не забыли).

Поздравляю, вы залогинились как root (по крайней мере, я точно залогинился).

Теперь проверим работоспособность сетевого соединения. Я надеюсь, вы подключили компьютер к локальной сети обычным сетевым проводом.

Тогда все должно работать, пишем команду ping google. com и наблюдаем веселую картину удачных пингов.

Когда картина пинга наскучит, нажмите ctrl+c.

Если ping у вас не проходит, то убедитесь в том, что вы получали в детстве достаточно витаминов.

Наконец-то теперь мы можем установить программу для удаленного SSH доступа через Putty. Помните я об этом ?

Теперь мы узнаем как это все настраивается на стороне сервера.

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

У Arch есть такая замечательная штуковина, как менеджер пакетов. Называется он pacman. Назначение pacman-а – установка необходимых программ, их обновление, обновление всех имеющихся программ, установка необходимых компонентов для вновь устанавливаемых программ. В общем, замечательная вещь. Подробнее о pacman можно читать .

А пока введем команду pacman - Syu , которая синхронизует данные о пакетах на серверах Яндекса.

После завершения синхронизации мы установим программу для SSH доступа. Называется она openssh. Установка происходит командой pacman -Sv openssh

Pacman скачает и установит программу и все недостающие компоненты. Почему-то с первого раза у меня обновился только лишь pacman, а openssh не установился. Поэтому я повторяю команду pacman -Sv openssh

На этот раз попытка увенчалась удачной установкой программы.

Вот где расположен файл запуска /etc/rc.d/sshd

Для того, чтобы запустить openssh, необходимо ввести следующую команду:

/ etc/ rc. d/ sshd start

После чего будет возможен SSH-доступ к серверу.

Для доступа к серверу мы будем использовать программу Putty. Скачать ее можно либо с официального сайта , либо с Deposit Files (*.zip, 243 КБайта).

Вводим IP-адрес сервера (в моем случае 192.168.0.200) и подключаемся по SSH.

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

Напоследок мы обновим нашу систему замечательной командой pacman – Syu

В моем случае потребовалось загрузить обновлений на 100 Мбайт, так что мужайтесь, дело это не быстрое.

Пока на этом все. До следующей встречи предлагаю вам, уважаемый читатель, потыкать в google вопросами типа «основные команды linux» много всего забавного найдете.

Свой первый домашний сервер я собрал в 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 не подходят.

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

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

Зачем нужен домашний сервер

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

Слово «сервер» у многих людей ассоциируется со сверхмощным компьютером, который из-за внушительных размеров и высокого уровня шума устанавливается в отдельной комнате. Но это верно лишь в отношении вычислительных систем крупных предприятий и научных лабораторий, тогда как домашний сервер являет собой полную противоположность — компактное, энергоэффективное и почти бесшумное устройство. Небольшие размеры мини-сервера позволяют установить его в укромном месте: на полке, под столом или за телевизором, чтобы не портить интерьер комнаты. Минимальное энергопотребление позволит не опасаться разорительных счетов за электричество, а низкий уровень шума или его полное отсутствие не помешает сну.

Как использовать мини-сервер

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

  • Сетевое хранилище . Одной из самых частых ролей, которые берет на себя домашний сервер, является сетевое хранилище (Network Attached Storage, NAS). Такой подход позволяет предоставить доступ к фильмам и музыке всем сетевым устройствам. Кроме того, с помощью NAS удобно обмениваться только что снятыми смартфоном фотографиями и видеороликами: их нужно лишь загрузить в сетевое хранилище и можно просматривать на компьютере или телевизоре. При желании доступ к файлам из хранилища можно предоставить по протоколу FTP, благодаря чему они станут доступны но вводу пароля еще и пользователям, находящимся за рамками домашней сети.
  • Медиасервер . Унифицированный стандарт DLNA позволяет электронным устройствам обмениваться друг с другом мультимедийным контентом. Мини-сервер, поддерживающий этот стандарт, может транслировать видеопоток на телевизор с поддержкой DLNA, планшетный компьютер или смартфон.
  • Узел пиринговой сети . Процесс загрузки файлов по протоколу BitTorrent на высокой скорости и последующая их раздача ощутимо нагружают жесткий диск и замедляют обмен данными в сети. Поэтому разумно перепоручить выполнение этой задачи домашнему серверу, обладающему собственным жестким диском или даже несколькими. Клиент BitTorrent, как правило, входит в стандартный набор приложений мини-серверов, если же предустановленного приложения в меню не оказалось, его можно установить вручную.
  • Веб-сервер . По правде говоря, аренда вебхостинга сейчас стоит сущие копейки, так что устанавливать дома мини-сервер лишь для запуска на нем веб-сайта вряд ли оправданно. Но если вы уже обзавелись домашним сервером для выполнения других задач, почему бы не использовать его еще и в качестве веб-сервера, к примеру для персонального блога?
  • Видеонаблюдение . Чтобы следить за домом и приусадебным участком во время пребывания на работе, нужна система видеонаблюдения. Установить обычные веб-камеры или беспроводные IP-камеры по периметру дома не составит труда, а храниться сделанные ими фотографии и видеозаписи будут на мини-сервере. Если на территорию проникнут посторонние липа, специальное программное обеспечение мгновенно отправит на мобильный телефон-сигнал SOS. А в случае чрезвычайного происшествия наблюдать за обстановкой в доме можно будет удаленно, с ноутбука или планшета.
  • Обработка видео . Если вам нужно перекодировать видеоролик или отрендерить смонтированный фильм, приготовьтесь подождать от нескольких часов до суток, причем ПК в это время не будет пригоден для иной деятельности. Так что лучше отдать эту работу на откуп серверу.
  • Игровой сервер . Чтобы играть с друзьями в многопользовательские шутеры, один из компьютеров должен исполнить роль сервера.

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

Системный блок для сервера

В зависимости от потребностей домашний сервер может представлять собой устройство разного размера и форм-фактора. Простейший мини-сервер состоит из беспроводного маршрутизатора и внешнего жесткого диска с интерфейсом USB. Такое решение сгодится на роль сетевого хранилища, а после установки на маршрутизатор альтернативной прошивки, к примеру OpenWrt или DD-WRT, — еще и на роли веб-сервера и клиента BitTorrent.
Если понадобится более емкий и быстрый сетевой накопитель, рекомендуем выбрать NAS-систему. Такое устройство оснащается двумя или четырьмя жесткими дисками, объединенными в RAID-массив, парой гигабитных адаптеров Ethernet и, как правило, предустановленным клиентом BitTorrent.
Если нужен компактный домашний сервер, который в то же время обладал бы возможностями полноценного компьютера, стоит присмотреться к неттопам — миниатюрным системным блокам, построенным на базе экономичных процессоров Intel или AMD. При желании мини-компьютер можно собрать собственноручно на основе материнской платы Mini-ITX или Barebone-системы — почти готового к использованию компьютера, в который нужно установить лишь модули оперативной памяти и жесткий диск, после чего можно заняться вопросом размещение серверов в датацентре . Такие решения, как правило, могут похвастаться более производительным, чем у неттонов, процессором, а значит, подойдут для обработки видео и запуска игрового сервера.

Конфигурации домашнего сервера

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

  • Компактность . Мини-сервер необязательно должен быть под рукой: ничто не мешает убрать его в кладовку или даже на балкон. Тем не менее собирать его в полноразмерном tower нерационально, обычная городская квартира отнюдь не резиновая, и место в ней весьма и весьма ограниченно. Потому есть смысл использовать малогабаритный баребон или компактный корпус формата Mini-ITX.
  • Быстрый сетевой адаптер . Ни монитора, ни клавиатуры с мышью у уважающего себя сервера нет, всякий обмен данными с внешним миром он получает исключительно по сети. Потому без гигабитного сетевого адаптера (а то и двух) не обойтись. Как бы ни было велико искушение избавиться от сетевой инфраструктуры с помощью адаптера Wi-Fi или Powerline (HomePlug), подключать сервер придется витой парой категории 5е или 6, только она сможет обеспечить пропускную способность, необходимую для многих сетевых сервисов.
  • Емкая, быстрая и надежная дисковая подсистема . Одним из наиболее востребованных сетевых сервисов является хранение данных. В самом деле, зачем искать интересующий вас фильм или дистрибутив нужной программы среди нескольких сетевых компьютеров, если можно приспособить для хранения сервер? Разумеется, емкость дисковой системы должна быть достаточной, чтобы вместить все то, что члены семьи сочтут нужным сохранить: видеофильмы и видео, фотоархивы, полезные программы и т.д. Также важна скорость доступа к этим материалам: кто захочет ждать по 30-40 минут, пока с сервера загрузится нужный файл. С надежностью, в общем-то, и так все ясно — при потере 3-4 Тб информации восстановление может занять много Бремени, а кое-что и вовсе реанимировать не удастся. Всем этим условиям удовлетворяет RAID-массив из нескольких жестких дисков.
  • Низкий уровень шума и эффективное охлаждение . Если вы так и не собрались перенести сервер на балкон, вам может мешать шум его вентиляторов, особенно ночью. Поэтому следует позаботиться о том, чтобы сервер не сильно грелся и его система охлаждения имела тихие низкооборотные вентиляторы. Тут важно не переборщить с мощностью: тоновый восьмиядерный процессор домашнему мини-серверу чаще всего ни к чему, вполне можно обойтись экономичной моделью невысокого уровня.
  • Производительность . В какой-то степени это требование находится в противоречии с предыдущим, и вам придется искать компромисс между ними. Ключевое значение имеет круг задач, которые предполагается возложить на мини-сервер. Если, скажем, вы собираетесь использовать его для «тяжелых» вычислений, таких как кодирование и рендеринг видео, волей-неволей придется установить что-нибудь вроде Intel Core i5-2500k и мириться с шумной системой охлаждения. Если же сервер в основном будет использоваться как хранилище, можно смело экономить на процессоре и ограничиться чем-нибудь бюджетным.
  • Надежность . В последнюю очередь упомянем надежность самого сервера. Увы, домашним мини-серверам не доступны практически все серверные технологии повышения надежности, поэтому следует сделать акцент на компонентах от зарекомендовавших себя производителей и на качественной сборке системы. Также стабильности добавит источник бесперебойного питания: он обеспечит непрерывную работу мини-сервера при кратковременных сбоях питания и защитит оборудование при серьезных проблемах в электросети.

Комплектуем свой мини-сервер

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

  • Системная плата ASUS P8H67-I . Из богатейшего набора системных плат Mini-ITX, имеющихся на рынке, мы выбрали плату, оборудованную сокетом LGA1155, с прицелом на достаточно мощный универсальный минисервер. Также нас интересовал встроенный RAID-контроллер, с помощью которого можно построить по-настоящему производительное и надежное сетевое хранилище.

  • Процессор Intel Core 13-2100 . С одной стороны, способен обеспечить высокое быстродействие, а с другой — хорошо вписался в наш ограниченный энергобюджет (65 Вт из 180 Вт).
  • Память Apacer 2×1 Гб DDR3-1333 . Большой объем памяти нашему серверу ни к чему: кодировать видео мы на нем не собирались, а потому сочли возможным сэкономить на ОЗУ.
  • Четыре однотерабайтных жестких диска Western Digital WD10EZRX . Эти HDD относятся к серии Caviar Green и обладают пониженной скоростью вращения шпинделя; как следствие — возрастают надежность и долговечность, а также снижаются энергопотребление и тепловыделение. Все эти параметры имеют первостепенное значение для домашнего мини-сервера. Жесткие диски мы объединили в массив RAID по схеме 1+0, то есть зеркало из двух пар с чередованием (stripe). С одной стороны, такая схема обеспечивает высокую производительность дисковой подсистемы, с другой — достаточно высокую надежность за счет дублирования. Пришлось, конечно, пожертвовать емкостью: общий объем хранения системы составил 2 Тб.
  • Корпус Chenbro ES34069 . Компания Chenbro хорошо известна своими не слишком изящными, зато надежными и грамотно сконструированными корпусами. ES34069 это компактный корпус для системной платы формата Mini-ITXc внешним блоком питания. Немаловажным для нас было наличие четырех внешних отсеков для жестких дисков, двух 70-миллиметровых вентиляторов и еще двух посадочных мест для вентиляторов размером 60 мм. Внешний блок питания ограничивал нас в мощности достаточно скромной величиной в 180 Вт.
  • Операционная система FreeNAS . Устроила нас больше других. Во-первых, она бесплатна, что снижает итоговую стоимость мини-сервера, а во-вторых — обладает многими возможностями, присущими дорогим серверным ОС. Кроме того, нас прельстила простота ее установки и настройки.

Таким образом, мы получили достаточно мощный, надежный, компактный и тихий сервер, способный обеспечить работу практически всех сетевых сервисов, которые могут понадобиться дома. При этом его в любой момент можно превратить в обычный ПК, подключив монитор, клавиатуру и мышь. Разве что поиграть не удастся: на системной плате есть свободный слот PCI Express х 16, но вот мощности блока питания на игровую видеокарту явно не хватит.

Будущее домашних серверов

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

Когда возможности штатного роутера с «openwrt» на борту были окончательно истощены и загрузка процессора начала влиять на стабильность работы сети, было решено разгрузить трудягу переносом функционала на домашний сервер. В виду того, что железка будет на несколько порядков мощнее, было решено снабдить ее кучей дополнительных возможностей, которые старичку даже и не снились. Корпус также было решено делать самостоятельно.

Список задач, которые выполняет домашний сервер:

  1. Сервер виртуализации на базе virtualbox c WebGUI;
  2. Межсетевой экран;
  3. Торрент-качалка на базе transmission и файловый сервер;
  4. Сервер телефонии на базе Asterisk;
  5. TFTP сервер для загрузки по сети и настройки различного оборудования;
  6. Частное облако для хранения файлов на базе «owncloud»;
  7. HTTP прокси Ace Stream для просмотра TorrentTV;
  8. Хостинг для домашнего сайта c доступом по https;
Фото для привлечения внимания:

Глава 1. Создание корпуса, сборка

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

После долгих размышлений и пары тестов были куплены следующие комплектующие:

  1. Материнская плата msi j1800i формата Mini-ITX;
  2. 2 планки памяти DDR3 по 2 Гб;
  3. Блок питания на 230 Вт;
  4. 2 жестких диска 2.5’ на 320 Гб, были в наличии;
  5. Роутер tp-link 1043ND был в наличии (Было жалко выкидывать);

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

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

В итоге получилось следующие

Глава II. Настройка

С железной частью разобрались, теперь пора приступить к настройке функционала. В качестве ОС была выбрана 64 разрядная «Debian 7 netinstall», в процессе установки диски были объединены в программный RAID0. Предугадывая холивар, на тему отказоустойчивости все важные данные лежат в облаках, так что при отказе диска развернуть систему из резервной копии можно довольно быстро.

Система установлена, приступаем к реализации вышеуказанного плана.

2.1 Сервер виртуализации на базе virtualbox c WebGUI

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

Установка virtualbox + phpvirtualbox

Устанавливаем сервер виртуализации virtualbox, на наш сервер, для начала добавим репозитарий и ключи к нему:

Deb http://download.virtualbox.org/virtualbox/debian wheezy contrib non-free wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc -O- | apt-key add –

Обновляем репозитарий и запускаем установку virtualbox:

Aptitude update aptitude install virtualbox-4.3
Устанавливаем расширение для virtualbox:

Wget http://download.virtualbox.org/virtualbox/4.3.14/Oracle_VM_VirtualBox_Extension_Pack-4.3.14.vbox-extpack VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-4.3.12.vbox-extpack
Перезагружаем сервис vboxweb-service командами:

/etc/init.d/vboxweb-service stop /etc/init.d/vboxweb-service start
Для работы Virtualbox необходимо создать пользователя, под которым будут работать виртуальные машины.

Добавляем пользователя vbox:

Adduser vbox

Установка phpvirtualbox

Для начала установим apache и php:

Apt-get install apache php
Скачиваем phpvirtualbox:

Wget -c -t0 http://optimate.dl.sourceforge.net/project/phpvirtualbox/phpvirtualbox-4.3-2.zip
Распаковываем содержимое архива phpvirtualbox-4.3-2.zip в папку веб сервера:

Unzip phpvirtualbox-4.3-2.zip
Перегружаем веб сервер:

/etc/init.d/apache2 restart
Переходим в директорию phpvirtualbox в папке веб сервера и создаем конфигурационный файл:

Mv config.php-example config.php
Вносим некоторые правки:

Nano config.php var $username = "vbox"; var $password = "Пароль при создании учетной записи vbox"; var $location = "http://IP Адрес данной машины:18083/"; var $consoleHost = ‘IP Адрес данной машины’;
Редактируем конфигурационный фаил virtualbox:

Echo "VBOXWEB_USER=vbox VBOXWEB_HOST= IP Адрес данной машины VBOXWEB_PORT=18083 " > /etc/default/virtualbox
Перезапустим virtualbox:

/etc/init.d/vboxweb-service restart
Открываем в браузере адрес нашего сервера:

Http://IP Адрес данной машины /phpvirtualbox/
логин: admin
пароль: admin
Веб интерфейс практически ничем не отличается от настольной версии Virtualbox.

2.2 Межсетевой экран

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

Придется немного переконфигурировать роутер. В настройках «openwrt» Заводим необходимое количество VLAN и распределяем по ним порты, так как на данной материнской плате имеется лишь один ethernet порт, то делаем его транковым и все VLAN заводим с тегами на него.

Перенастраиваем сетевые адаптеры на нашем сервере, перед этим необходимо поставить пакет для поддержки vlan: apt-get install vlan .

Настройка сети на сервере

# The loopback network interface auto lo iface lo inet loopback #NATIVE VLAN NETWORK auto eth0.1 iface eth0.1 inet static address 192.168.1.3 netmask 255.255.255.0 gateway 192.168.1.1 vlan_raw_device eth0 up ifconfig eth0.1 up #PROVIDER1 VLAN auto eth0.2 iface eth0.2 inet manual vlan_raw_device eth0 up ifconfig eth0.2 up #PROVIDER2 VLAN auto eth0.3 iface eth0.3 inet manual vlan_raw_device eth0 up ifconfig eth0.3 up #SIP VLAN auto eth0.4 iface eth0.4 inet manual vlan_raw_device eth0 up ifconfig eth0.4 up # GUEST NETWORK auto eth0.10 iface eth0.10 inet manual vlan_raw_device eth0 up ifconfig eth0.10 up


В качестве межсетевого экрана я выбрал реализацию «cisco ASA» на виртуальной машине. Не буду спорить: решение странное, невероятно костыльное, но обусловлено необходимостью соединения с рабочими сетями нескольких компаний по «IPsec site to site vpn» c аналогичными железками, но уже в нормальном исполнении.

Сразу же хотелось заметить работает стабильно уже 4 месяца, проблем нет линк стабильный, скорость соединения при данной реализации получилась ~ 20 Мбит/сек, что вполне неплохо, учитывая то, что объем передаваемых данных невелик. В моей реализации данная виртуальная машина управляет всеми входящими и исходящими соединениями во всех VLAN домашней сети, итоговая загрузка системы не превышает 12%.

Скачиваем образ виртуальной машины «Cisco ASA 8.4 for vmware», ссылки давать не буду в виду того что первая ссылка в поисковике вероятнее всего приведет Вас на него. Загружаем на наш сервер, и импортируем нашу машину в virtualbox. Попутно меняем все адаптеры на «PCnet-PCI II» и после импорта распределяем из в режиме моста по созданным VLAN. Также в настройках последовательного порта создаем pipe /tmp/tts0 по средствам которого будем проводить первоначальную настройку нашей недоcisco .

Дальнейшая настройка довольно специфична и зависит от ваших задач, приводить конфигурационный файл ASA, на мой взгляд, бессмысленно, так как настройки интерфейсов, списков доступа, NAT, VPN и прочего лучше прочитать отдельно так, так как это тема не одной и даже не десятка статей. Опишу лишь базовые вещи, которые использую я. Во-первых маршрутизация, так как все сети заведены в нее, и она же является шлюзом по умолчанию для домашней сети, и для гостевой сети. Во-вторых, на ней развернут «anyconnect» для доступа в домашнюю сеть по VPN. Базовые настройки «Cisco ASA» можно прочитать в статье хабраюзера , остальное по необходимости можно найти в сети.

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

2.3 Торрент-качалка на базе transmission и файловый сервер

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

Конечно, конфигурация Samba у Вас будет своя, но приведу для примера свою.

Для начала установим Samba сервер командой:

Apt-get install samba
И отредактируем конфигурационный файл /etc/samba/smb.conf:

Workgroup = WORKGROUP netbios name = NAS server string = NAS File Server log level = 1 security = share unix charset = UTF-8 dos charset = cp1251 store dos attributes = yes max log size = 10 comment = NAS SERVER FOLDER path = /home/NAS create mask = 0777 directory mask = 0777 public = yes writable = yes printable = no guest ok = yes read only = no comment = NAS SHARE FOLDER path = /home/NAS/Share create mask = 0777 directory mask = 0777 public = yes writable = yes printable = no guest ok = yes read only = no comment = OWNCLOUD FOLDER path = /home/NAS/owncloud/ create mask = 0777 directory mask = 0777 public = yes writable = yes printable = no guest ok = yes read only = no comment = TORRENTS FOLDER path = /home/NAS/torrents create mask = 0777 directory mask = 0777 public = yes writable = yes printable = no guest ok = yes read only = no comment = VIRTUAL MACHINES FOLDER path = /home/NAS/VM create mask = 0777 directory mask = 0777 public = yes writable = yes printable = no guest ok = yes read only = no comment = MEDIA FOLDER path = /home/NAS/media create mask = 0777 directory mask = 0777 public = yes writable = yes printable = no guest ok = yes read only = no


После настройки samba можно приступить к установке рабочей лошадки по загрузке торрентов.

Настало время заняться Transmission

Устанавливаем:
apt-get install transmission-daemon
Настраиваем transmission-daemon /etc/transmission-daemon/settings.json:
{ "alt-speed-down": 50, "alt-speed-enabled": false, "alt-speed-time-begin": 540, "alt-speed-time-day": 127, "alt-speed-time-enabled": false, "alt-speed-time-end": 1020, "alt-speed-up": 50, "bind-address-ipv4": "0.0.0.0", "bind-address-ipv6": "::", "blocklist-enabled": true, "blocklist-url": "", "cache-size-mb": 2, "dht-enabled": true, "download-dir": "/home/NAS/torrents/Downloads", "download-limit": 100, "download-limit-enabled": 0, "encryption": 1, "idle-seeding-limit": 30, "idle-seeding-limit-enabled": false, "incomplete-dir": "/home/NAS/torrents/Downloading", "incomplete-dir-enabled": false, "lazy-bitfield-enabled": true, "lpd-enabled": true, "max-peers-global": 200, "message-level": 2, "open-file-limit": 32, "peer-limit-global": 200, "peer-limit-per-torrent": 60, "peer-port": 11523, "peer-port-random-high": 65535, "peer-port-random-low": 49152, "peer-port-random-on-start": false, "peer-socket-tos": 0, "pex-enabled": true, "port-forwarding-enabled": true, "preallocation": 2, "ratio-limit": 1, "ratio-limit-enabled": true, "rename-partial-files": true, "rpc-authentication-required": true, "rpc-bind-address": "0.0.0.0", "rpc-enabled": true, "rpc-password": "**********", "rpc-port": 9091, "rpc-username": "transmission", "rpc-whitelist": "127.0.0.1,192.168.0.100", "rpc-whitelist-enabled": false, "script-torrent-done-enabled": false, "script-torrent-done-filename": "", "speed-limit-down": 900, "speed-limit-down-enabled": true, "speed-limit-up": 100, "speed-limit-up-enabled": false, "start-added-torrents": true, "trash-original-torrent-files": true, "umask": 0, "upload-limit": 100, "upload-limit-enabled": 0, "upload-slots-per-torrent": 14 }

2.4 Сервер телефонии на базе Asterisk + FreePBX

Звонки - дело не дешевое, особенно когда по работе часто и в разные страны, при том что имеется vpn-туннели до работы - не развернуть сервер телефонии, было бы мягко сказать, странно. Исходя из выше указанной схемы поднимаем новую виртуальную машину и заводим ее сетевые интерфейсы в нужные нам VLAN. Саму установку asterisk + freepbx описывать не буду так как, до меня с этой задачей прекрасно справился и описал все в публикации .

После установки заводим необходимые транки в интерфейсе FreePBX, настраиваем dial plan, создаем пользователя и радуемся жизни. По чудесному истечению обстоятельств мой основной провайдер предоставляет городской номер по sip, что собственно и стало основной причиной развертывания данного сервера.

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

В ближайших планах прикупить несколько USB модемов, поддерживающих функцию передачи голоса и настроить выход в мобильные сети. Экономить так по полной.

2.5 TFTP сервер для загрузки по сети и настройки различного оборудования;

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

2.6 Частное облако для хранения файлов на базе «owncloud»

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

В качестве платформы был выбран «owncloud», а в качестве внешних облачных провайдеров я использую box.com, dropbox, google drive, yandex disk, onedrive. Список обширный, но идея проста. Для начала ставим клиенты на машину и натравливаем их на синхронизацию в предварительно созданную под каждое облако директорию, затем поверх всего этого хозяйства ставим «owncloud».

Руководство по установке клиентов переписывать смысла нет, их можно найти на профильных сайтах. А все что касается установки «owncloud» описано в публикации . Нам же остается продумать что и куда синхронизировать, чтобы спать спокойно, имея у себя сервер с RAID 0.

2.7 HTTP прокси Ace Stream для просмотра TorrentTV

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

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

Единственный минус - довольно медленное переключение каналов.

Установка

Для начала установим vlc:

Apt-get install vlc
Скачаем aceproxy и acestream и поместим их в одну директорию:

Wget https://github.com/ValdikSS/aceproxy/archive/master.zip wget http://dl.acestream.org/debian/7/acestream_3.0.5.1_debian_7.4_x86_64.tar.gz
Создадим рядом несколько директорий:

Mkdir logs mkdir scripts
В директории./scripts создадим несколько скриптов:

Cd ./scripts nano aceproxy.sh #!/bin/sh python ./aceproxy/acehttp.py > ./logs/acehttp.log 2>&1 & nano acestream.sh #!/bin/sh ./acestream/acestreamengine --lib-path ./acestream --client-console > ./logs/acestream.log 2>&1 & nano vlc.sh #!/bin/sh vlc -I telnet --clock-jitter -1 --network-caching -1 --sout-mux-caching 2000 --telnet-password admin > ./logs/acevlc.log 2>&1 &

Перейдем в директорию выше и создадим скрипты для запуска и остановки трансляции:
cd ../ nano start.sh #!/bin/bash /bin/kill -9 `/bin/ps ax |/bin/grep acestream |/usr/bin/awk {"print $1"}` ./scripts/acestream.sh echo "Start acestream" sleep 1 /bin/kill -9 `/bin/ps ax |/bin/grep vlc |/usr/bin/awk {"print $1"}` ./scripts/vlc.sh echo "Start VLC" sleep 1 /bin/kill -9 `/bin/ps ax |/bin/grep acehttp |/usr/bin/awk {"print $1"}` ./scripts/aceproxy.sh echo "Start aceproxy" nano stop.sh #!/bin/bash /bin/kill -9 `/bin/ps ax |/bin/grep acestream |/usr/bin/awk {"print $1"}` echo "Stop acestream" sleep 1 /bin/kill -9 `/bin/ps ax |/bin/grep vlc |/usr/bin/awk {"print $1"}` echo "Stop VLC" sleep 1 /bin/kill -9 `/bin/ps ax |/bin/grep acehttp |/usr/bin/awk {"print $1"}` echo "Stop aceproxy"

Отредактируем конфигурацию aceproxy согласно wiki