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

Я уже рассказывал о недорогом способе реализации NAS для домашней сети , но сборки у всех могут получиться разные: кто-то будет недоволен габаритами NAS из старого ПК, а другой будет жаловаться на шум. В качестве альтернативы эта статья будет посвящена сборке маленького компьютера на основе Intel Atom или AMD. На данный момент очень много материнских плат с пассивным охлаждением встроенного процессора Intel Atom, да и огромный выбор компактных корпусов со встроенными блоками питания позволяют не задумываться над выбором комплектующих. Конечно же, проще купить готовый продукт от Synology, Qnap или Thecus, но не каждый готов вложиться в покупку такого решения, тем более, что сборка NAS сервера достаточно проста и занимает гораздо меньше времени, нежели укомплектовать полноценный десктоп.

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

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

Подбор компонентов для NAS

1. Корпус.

IN WIN BP655 200W

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

Thermaltake Element Q VL52021N2E 200W

Отличный корпус в плане комфорта внутреннего размещения комплектующих. Особенно радует дизайн и качество исполнения. Использую его сам, но не в качестве сетевого хранилища . Радует возможность установить 2.5″ диски. Недостатком могу назвать лишь возможность размещения до 2-х жестких дисков 3.5″.

SilverStone SG01B-F Black

Данный вариант дороже предыдущих (≈3000 руб.), но его явным преимуществом является установка до 4-х жестких дисков 3.5″, продуманная система охлаждения и возможность установки блока питания форм-фактора ATX.

Lian Li PC-Q08 Silver

Самый дорогой вариант из представленных корпусов для домашних серверов (≈3500 руб.). Отличительной особенностью данного экземпляра является установка до 7 жестких дисков 3.5″ и один 2.5″ HDD или SSD, небольшие размеры, отличное штатное охлаждение. Возможность установки БП форм-фактора ATX. Недостаток: тяжеловат доступ к внутренним комплектующим. Если вы рассматриваете для покупки корпус для NAS с возможностью добавления HDD в будущем, то это идеальный вариант.

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

Обзор материнских плат для NAS формата Mini-ITX. Именно такой форм-фактор материнских плат используется для сборки современных NAS серверов и HTPC. В данный момент в интернет-магазинах огромный выбор «материнок» любых производителей: Asrock, Asus, Zotac, MSI и др. Давайте рассмотрим несколько удачных вариантов.

ASUS AT5NM10T-I

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

В этой плате от Asus есть все необходимое: предустановленный 2-х ядерный процессор Intel Atom D525, пассивное охлаждение, поддержка памяти DDR3 SO-DIMM и встроенный видеоадаптер Intel GMA 3150. А четыре SATA порта для подключения HDD делают ASUS AT5NM10T-I идеальным вариантом для домашнего NAS, возможно, кто-то пожелает большего, но я считаю 4 диска по 2 Тб или 3 Тб оптимальным решением для дома. Кому объема в 8-12 Тб мало, можно использовать контроллер SATA c интерфейсом PCI-e x1, так как он на материнской плате остается не задействован. При сборке компактного HTPC я туда устанавливаю аппаратный HD-видео декодер.

ASRock E350M1

Данная материнская плата станет отличным вариантом для производительного NAS сервера с возможностью использования его как . Думаю, всегда найдутся сторонники универсальности в технике, поэтому ASRock E350M1 должна присутствовать в обзоре. Преимущества этого компонента NAS в 2-x ядерном процессоре AMD E-350, интегрированной графике ATI Radeon HD 6310, возможности установки памяти обычных DDR3 DIMM до 8 Гб, а также HDMI интерфейсе. Все перечисленное несомненно устроит желающих собрать HTPC или реализовать потоковое видео. Для реализации NAS: на борту платы 4 SATA порта, низкое энергопотребление и достаточно тихий кулер на радиаторе процессора. Собирал связку NAS + HTPC своему другу, «клиент» остался несказанно доволен. До этого момента не раз использовал эту «материнку» как основу для сборки портативных домашних кинотеатров. Стоит отметить и материнские платы на базе ION 2, которые неплохо зарекомендовали себя в качестве компонента бюджетного HTPC.

Zotac FUSION350-A-E

Третий вариант материнской платы будет под брендом ZOTAC. Мне очень симпатизируют их Mini-ITX решения, по причине высокой интеграции современных интерфейсов. Данная «материнка» обладает низким энергопотреблением и приличной графикой AMD Radeon HD 6310, как у предшественницы. Повторюсь, что для реализации NAS такая видеокарта не нужна, но в совокупности с портом HDMI и оптическим S/PDIF-выходом, плата превращается в неплохого кандидата на «должность» мультимедийного ПК. Не будет лишним и модуль WiFi 802.11n, работающий со скоростью до 150 Мбит/с и конечно же 4 порта USB 3.0 + eSATA. А для установки HDD мы имеем 4 порта SATA 6 Гбит/с.

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

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

  • достаточно производительный процессор (2 ядра), так как никогда точно не знаешь как его «нагрузишь» в будущем. Я, например, использую NAS и для конвертации видео под мобильные устройства.
  • встроенное видео ядро. Оно конечно необходимо лишь тем, кто хотел бы добавить к функциональности NAS еще и НTPC, но и для тех кто не имеет в загашнике старенькой PCI-e видеокарты для редкого обращения к интерфейсу своего хранилища не помешает. Хотя, можно воспользоваться видеокартой от другого ПК или подключаться по удаленному рабочему столу.
  • обращайте внимание на модули памяти DIMM (десктоп) или SO DIMM (ноутбук), так как возможно поставить планки от старого ПК или ноутбука
  • старайтесь покупать платы с пассивным охлаждением процессора. Иногда приходится менять дешевый дребезжащий кулер. Тем более, что решения с радиатором, практически всегда экономно расходуют электроэнергию и избавляют от головной боли с выбором вентилятора.
  • выбирайте материнские платы с интегрированным процессором - это сделает вашу покупку оптимальной по цене.

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

HDD — один из самых важных компонентов нашего будущего NAS сервера. Универсальным решением в качестве носителя для сетевого хранилища я считаю жесткие диски серии Caviar Blue от Western Digital, хотя многие, в том числе и я, ради экономии используют Western Digital GreenPower, но есть и противники данной линейки HDD из-за проблемы парковки головок, поэтому их не рекомендуют как носители для частого обращения к данным. Правда, моя практика этого не подтверждает. Еще хорошо зарекомендовали себя жесткие диски от Hitachi и Samsung, что не могу сказать о Seagate. Необходимый объем вы можете выбрать сами, наиболее оптимальным выбором будет - 2Гб (2 или 4 диска). По желанию вы можете использовать один «ноутбучный» диск. Помните, какой бы быстрый диск вы ни купили, скорость передачи данных у NAS-устройств ограничена пропускными возможностями гигабитной сети. Приобретайте модели, рассчитанные на длительную эксплуатацию, от Hitachi и Western Digital, ориентированные на серверное использование.

4. Оперативная память

Выбор огромен. Я предпочитаю использовать модули памяти от Samsung и Kingston. Файловый сервер не очень требователен к оперативной памяти, поэтому слоты в материнской плате можно занять любыми планками от известного производителя. Пара модулей по 1-2 Гб сейчас очень доступны по цене.

При выборе комплектующих для NAS необходимо опираться на две противоречивых тенденции:

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

5. Операционные системы для NAS-сервера

  • FreeNAS (аналоги: Openfiler (основана на Linux), NexentaStor (основана на Solaris), openmediavault (Linux), Pulsar-OS, Open-E, Zentyal). В ссылке 2 образа: для 32 и 64-битных систем.
  • Windows Home Server 2011
  • Windows Server 2008 R2
  • Ubuntu Server (для 32 и 64 битных систем)

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

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

Предложу вариант для пользователей мало знакомым с Linux, которым отлично подойдет операционная система Windows Home Server 2011 со своей простотой установки и настройки. Тем более, что данный вариант бесперебойно справляется с восстановлением и архивацией данных на компьютере, а также обеспечивает потоковую передачу мультимедиа контента по домашней сети. В представленном ниже видео вы сможете ознакомиться с интерфейсом и функционалом WHS 2011. Кстати говоря, функционал этой ОС можно расширить специальными дополнениями, а ознакомиться с ними вы можете .

FmnFoI8iqC8&gl

Управлять таким сервером можно с других домашних компьютеров с установленным клиентским ПО, которое можно установить, набрав в браузере: \\имя_сервера , но и получить доступ к серверу удаленно через внешний IP. Плюс ко всему вы сможете быстро и просто организовать свой web-сервер, легко расшарить свои файлы на телевизор Smart TV, Xbox 360, смартфон и на любой компьютер под управлением Windows XP, Windows Vista и Windows 7. В Windows Home Server работают все привычные приложения, которые вы использовали на Windows Vista и Windows 7.

Собрав и запустив свое сетевое хранилище (NAS), вы будете обладать следующими преимуществами перед готовыми решениями:

  • возможность расширения дискового пространства добавлением жёстких дисков SATA. Дополнительные диски могут быть подключены через порт USB, eSATA и дополнительный контроллер
  • использование материнской платы не только с Ethernet 1 Гбит/с, а также с модулем WLAN
  • диски для расширения не ограниченные по объему
  • расширяемая функциональность сервера (любой софт, HTPC).

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

Как известно, наиболее надёжный, удобный и дешевый хостинг – это http://127.0.0.1.

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

Так что же лучше использовать. Есть много оболочек для web–разработки. Они представляют собой портированные версии программ для Linux- и Unix-подобных систем. В их состав входят PHP, MySQL, Perl, Sendmail, Apache и многое другое. Только недостатки часто встречаются, среди которых неработающие части комплекса, отсутствие возможности перезапуска сервисов, нестабильная работа и дыры в безопасности. Как тестовую площадку, в принципе, можно использовать. Но не более того.

Веб сервер на ubuntu для локальной сети

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

Итак, предположим, что есть роутер с выходом в интернет. Также имеется тестовый сервер на Ubuntu Server 16 с именем webs. Необходимо установить web-сервер для тестирования проектов и их дальнейшей миграции на хостинг.

Установка LAMP

Будем использовать связку Apache + PHP + MySQL.

Перед установкой обновим систему.

sudo apt-get update

sudo apt-get upgrade

Установим Apache + PHP + MySQL.

sudo apt-get install apache2 php libapache2-mod-php php-mcrypt php-mysql mysql-server mysql-client php-gd

При установке обязательно указать пароль пользователя для MySQL.

В файл /etc/apache2/apache2.conf в самый конец добавим переменную ServerName. Это должно быть имя домена или .

К примеру

ServerName 192.168.0.160

Домашний web сервер своими руками

Основная конфигурация установлена. Проверим работоспособность. Для этого перейдём по адресу http://192.168.0.160 и увидим приветственную страницу apache.

Проверяем работу PHP. По умолчанию корневая папка web-сервера находится в /var/www/html. Удаляем из неё файл index.html и создаём файл index.php.

rm /var/www/html/index.html|echo ‘’>/var/www/html/index.php

Если в браузере отображаются сведения о PHP, значит, всё работает.

Настройка Samba

Теперь надо настроить доступ к файлам web – сервера и доступ к web – серверу по имени. Без наличия настроенного в сети сервер будет пинговаться исключительно по IP адресу. Поэтому надо установить и настроить Samba.

sudo apt-get install samba

Редактируем файл /etc/samba/smb.conf.


netbios name = webs
security = user
map to guest = bad user

Создаём секцию для доступа к файлам.


comment = html
path = /var/www
browseable = yes
read only = no
guest ok = yes
directory mask = 0777
create mask = 0777

Перезагружаем службу.

sudo service smbd restart

После перезапуска файлы WEB – сервера будут доступны по ссылке \\webs\html

Имеем готовую площадку для экспериментов.

Доступ к локальному серверу из интернета

Теперь нужен доступ из интернета. Регистрируем бесплатное доменное имя в зоне.GA (Габона). Для этого идём на сайт http://www.freenom.com. Регистрируемся, ищем и регистрируем свободное имя. При регистрации указываем свой внешний IP – адрес. Этот сервис позволяет воспользоваться своим DNS, поэтому регистрировать имя на бесплатном DNS–сервере заранее нет необходимости. Через некоторое время имя будет реплицировано на сервера DNS и станет доступно.

В файле /etc/apache2/apache2.conf надо изменить переменную ServerName на зарегистрированное имя.

В настройках маршрутизатора необходимо № 80 на локальный IP – адрес сервера.

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

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

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

Когда возможности штатного роутера с «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» можно прочитать в статье «Руки дошли: продолжаем про ASA» хабраюзера Fedia , остальное по необходимости можно найти в сети.

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

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 описывать не буду так как, до меня с этой задачей прекрасно справился siv237 и описал все в публикации Простая установка Asterisk + FreePBX для начинающих .

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

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

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

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

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

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

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

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

Руководство по установке клиентов переписывать смысла нет, их можно найти на профильных сайтах. А все что касается установки «owncloud» описано BlackIce13 в публикации «Опыт установки ownCloud 6 на Debian 7 wheezy» . Нам же остается продумать что и куда синхронизировать, чтобы спать спокойно, имея у себя сервер с 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