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

Когда возможности штатного роутера с «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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Итоги

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

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

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

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


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

Облако в подвале

Канадский ИТ-специалист Алан Бодро (Alain Boudreault) имеет в своём арсенале оборудование корпоративного класса от таких производителей, как Dell, HP, Sun, Juniper, IBM и IBM BladeCenter. Стойки с этим оборудованием он разместил в подвале своего дома. Его веб-сайт содержит подробный обзор установки, в том числе и диаграммы всех компонентов . Дата-центр включает в себя облако Open Stack MAAS (Metal as a Service) и несколько систем хранения данных (ISCSI и Fiber Channel).

«Моим первым шагом была установка электроподстанции, позволяющей обеспечить силу тока в 40 ампер при напряжении 240 вольт, т.е. способной справиться при необходимости с нагрузкой 9,6 кВт/час», - рассказывает Алан. Он преподаёт разработку приложений и использует свой ДЦ для тестирования. «Серверы редко запущены все сразу, таким образом средний расход составляет 1-2 кВт в час»,- говорит он. Стоимость электричества в Quebec составляет около 7 центов за кВт. Бодро пишет, что этот тип ДЦ является занятием не для слабонервных.

Центр обработки данных - звезда YouTube

Некоторые владельцы домашних ДЦ размещают видео про них на YouTube. Самым популярным из них является Home Center Data Project , еще один проект в Канаде, разработка которого началась в 2005 году в виде двух компьютеров в шкафу и выросла к 2013 году до более чем 60 серверов. Проект был задокументирован в серии видео, которые набрали более 500 000 просмотров на YouTube. В роликах и на веб-сайте также задокументированы обширные кабельные соединения, охлаждение и процесс усовершенствования сетевой инфраструктуры.

«Данный проект был разработан не для прибыли», - пишет разработчик Этьен Валле (Etienne Vailleux) из Hyperweb Technologies. «Данная установка была собрана в качестве хобби, но через некоторое время она быстро переросла в страсть».

В 2013 году проект мигрировал из одного дома в другой. «Часть фундамента была специально разработана для размещения серверов и кондиционеров»,- рассказал Валле. «В настоящее время проект содержит 15 серверов, емкость соединения которых составляет 60 Мбит/с ».

Удивляем своего провайдера

Иногда люди устанавливают целые хранилища данных. Например, в 2012 году ИТ-специалист, известный как houkouonchi, опубликовал видео своей стойки, которое набрало более 220 000 просмотров на YouTube.

«Установка, на самом деле, производилась не в центре обработки данных. Не многие имеют полноразмерную стойку, способную хранить более 150TB данных»,- писал он. «Стойка крепится через деревянный пол в цементный фундамент дома. Полностью укомплектованная стойка использует всего 1 кВт мощности, но её пропускная способность - это совсем другое дело».

В 2013 году houkouonchi сказал, что с ним связался с Verizon, который был удивлен, увидев пользователя домашнего интернета, генерирующего более 50 терабайт трафика в месяц. Размещение сервера со столь большой генерацией трафика нарушало условия обслуживания для услуги домашнего интернета, и он вынужден был перейти на бизнес-план.

Вот тур по стойке houkouonchi, размещённый в YouTube

Стойки из IKEA

Зачем использовать стандартные стойки для центров обработки данных в Вашем доме, если Вы можете разместить оборудование в стильном столике от IKEA? В одной из домашних реализаций центра обработки данных люди, увлеченные своим хобби, адаптировали шведский приставной стол LACK для комфортного размещения серверов и сетевого оборудования, создав LACKRack. Оказалось, что пространство между ножками составляет 19 дюймов. Такой же является и ширина стандартного слота в специализированных серверных стойках. Импровизированные юниты создавались с помощью уголков, прикрученных шурупами к ножкам стола.

Отсутствие стоек стимулировало появление множества дизайнерских новинок. Франк Деннемен (Frank Dennemen), технологический евангелист PernixData, адаптировал начальную спецификацию LACKRack, чтобы создать переносную 19-дюймовую стойку.

«Мой домашний офис разработан таким образом, чтобы быть всё же офисом, а не центром обработки данных», - пишет Деннемен. «Поэтому я старался разместить 19-дюймовые серверные стойки, не разрушая эстетику домашнего офиса». Разместить такую стойку Вы можете где угодно в доме.

Как должна выглядеть правильная мини-серверная

Итак, Вы - руководитель фирмы и решили организовать серверную в офисе, или же просто энтузиаст, решивший попробовать в жизни всё и построить серверную дома, подвале или гараже. Не столь важно, для чего Вам нужна серверная, если Вы уже решили создать такое чудо, необходимо знать как она должна выглядеть. В идеале серверная должна соответствовать стандарту TIA-569. Список требований к комнате, выделенной под серверную, выглядит приблизительно так:
  • минимальная площадь должна составлять 12 кв.м, а высота потолка - не менее 2.44 м;
  • комната не должна быть отделана легковоспламеняющимися материалами;
  • в комнате должна быть как минимум одна двойная заземлённая розетка, а если строго следовать стандарту, в комнате с площадью 12 кв.м таких розеток должно быть 4;
  • серверная должна размещаться вдали от сильных источников электромагнитного излучения (серверная на расстоянии 2 м от трансформаторной будки - это плохая затея);
  • для освещения в комнате рекомендуется использовать галогеновые лампы, подойдут также и «экономные лампы», которые обеспечат минимальное выделение тепла, хорошее освещение и высокий срок службы;
  • влажность в помещении должна быть на уровне 30-55 % при температуре от 18 до 24 градусов Цельсия.
Требования к самой стойке:
  • ширина стойки должна быть 19 дюймов (482,6 мм);
  • глубина подбирается в зависимости от используемого оборудования: 60, 80 или 90 см;
  • крепежные отверстия располагаются на вертикальных элементах стойки каждые 1.75 дюйма (4.4 см);
  • высота стандартных стоек составляет 6,12, 20, 42 U и т.д.
Оптимальная температура для работы сервера - 20 градусов по Цельсию. Это не значит, что во всей комнате должна быть именно такая температура, она должна быть хотя бы в стойке с серверами. И если Вам не по карману купить серверный шкаф с охлаждением или кондиционер, то Вы можете решить данную проблему с помощью обычных домашних вентиляторов, проявив смекалку и собрав из них стойку, которая будет выполнять ту же функцию, что и охлаждающая дверь в серверном шкафу.

Для минимизации возможных проблем с питанием стоит использовать источник бесперебойного питания. Лучше всего подойдёт ИБП мощностью 5-6 кВА, но если Ваш бюджет ограничен, или Вы не планируете использовать мощное оборудование в больших объёмах, а хотите, к примеру, всего 3 или 4 машины, Вы можете использовать и более слабый ИБП на свой страх и риск. Продавцы-консультанты могут предложить Вам ИБП с различной топологией: Line-Interactive UPS, Passive Standby (Off-Line) UPS и Double-Conversion (On-Line) UPS. Производители утверждают, что наилучшим вариантом для домашних серверов будет Line-Interactive UPS, но это не совсем так. Всё же лучший вариант - это ИБП с топологией On-Line UPS (непрерывного действия), к примеру, APC Smart-UPS RT 5000VA.

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

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

Аптайма даже близкого к 5 минутам в год не будет по причине человеческого фактора. Вот, что было в моей практике и приводило к такому низкому аптайму:
  • забыл заплатить за инет;
  • сдох винт в серваке, raid"а не было;
  • забился пылью - надо почистить;
  • сдох вентилятор - надо менять;
  • задели провод;
  • сервак использовался как файлопомойка, закончилось место, потому что записали несколько фильмов;
  • ядро линуха недообновилось, комп не вышел из ребута;
  • провайдер резко сменил настройки dns"ов;
  • мигнул свет;
  • родители решили помыть полы;
  • вывалился из разъема sata-кабель;
  • wi-fi карта, которая раздавала инет, резко зависла и ввела комп в ступор и т.д.

Также необходимо помнить, что:

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

10 признаков того, что Вы - серверофил

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

Как известно, наиболее надёжный, удобный и дешевый хостинг – это 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 – адрес сервера.

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

Для чего нужен домашний web сервер?

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

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

Домашний сервер - это дорого.

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

Будут огромные счета за электричество.

Тоже распространённое заблуждение. Тут всё зависит от того, на каких комплектующих Вы собираете свой сервер. Если в основу положено использование материнской платы на базе процессора Intel Atom или ему подобного, то энергопотребление (с двумя sata дисками) будет порядка 50 ватт. В пересчёте на деньги это 60 рублей в месяц. Добавим стоимость статического IP адреса + доступ в интернет (в моём случае это 580 рублей в месяц). Итого получается: 640 рублей в месяц или 7680 рублей в год. Для сравнения… Если Вы будете арендовать в датацентре выделенный сервер с теми же техническими параметрами, то Вам придётся ежемесячно отдавать за него от 1300 рублей.

От сервера много шума, и в комнате его не поставишь

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

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

Настроить сервер под силу лишь программисту с большим опытом.

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

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

Для сервера нужен канал как минимум 100 мегабит

Серьёзное заблуждение. Для сайтов на домашнем хостинге с посещаемостью в 3 - 6 тысяч хостов достаточно и 10 - 15 мегабитного канала.

Ну а если Ваши проекты перерастут эту посещаемость, можно купить канал пошире или переехать на сервер, расположенный в датацентре.

Домашний сервер уязвим, и его сразу взломают

Очень распространённое заблуждение. Я уже писал, что безопасность зависит не от местоположения сервера, а от уровня знаний его администратора. Зачастую домашние сервера имеют защиту серьёзнее, чем шаред хостинг или VDS. К примеру, на большинстве шаредхостингов нет даже элементарной защиты от DoS атак, и в случае атаки Ваш аккаунт просто заблокируют (есть личный опыт). Бывает, что в случае заражения одного сайта на хостинге есть вероятность инфицирования всего сервера. Еще на хостингах редко обновляют или вообще не делают обновлений софта до последних версий, а в старых версиях могут быть дыры... Короче говоря, если грамотно настроить домашний сервер, Вы получите надёжно защищённый веб-сервер, по сравнению с которым любой коммерческий хостинг будет выглядеть дырявым ведром.

С чего начать

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

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

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

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

Установить на сервер хостинг панель ISPConfig 3 . Затем настроить в этой панели все необходимые службы.

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



Просмотров