что нужно для создания сервера
Домашний веб-сервер, или сам себе хостинг-провайдер
Для того, чтобы сделать свой веб-сервер дома, нам понадобится компьютер и постоянный доступ в интернет с внешним IP-адресом, как это проверить описано дальше.
Делать сервер буду из старого нетбука Samsung N102SP со сломанной клавиатурой, для небольших нагрузок его вполне достаточно, к тому же он маленький и совсем не шумит. Интернет дома у меня раздаётся wifi роутером tp-link TL-WR840N, через него и буду подключать свой сервер.
Ставить буду Centos 7, качаем отсюда минимальный образ (Minimal ISO), образ записываю на флешку с помощью программы Rufus. Теперь надо загрузить нетбук с флешки, и тут возникает первая проблема, так как клавиатура не работает, не могу войти в биос, внешнюю usb клавиатуру он не видит, сброс биоса решает проблему (в нетбуке Samsung N102SP биос сбрасывается замыканием контактов rtc reset под крышкой memory, замыкать надо на 30 секунд), выбираем в биосе приотритетную загрузку с флешки и начинаем установку, даже при минимальной версии Centos 7 устанавливается в графическом режиме. Никаких сложностей с установкой возникнуть не должно, удаляем все старые разделы на диске и отдаём все под Centos, устанавливаем пароль root и прописываем настройки сети, в моем случае подключаемся к домашней сети wifi (это можно сделать и потом с помощью команды nmtui), несколько минут и Centos 7 установлен.
Заходим под root. Останавливем firewall командой «systemctl stop firewalld», отключаем firewall из автозагрузки командой «systemctl disable firewalld». Пока он нам не нужен, настроим firewall позже. Еще надо обязательно отключить спящий режим при закрытии крышки нетбука, для этого надо в файле /etc/systemd/logind.conf заменить строку «#HandleLidSwitch=suspend» на строку «HandleLidSwitch=ignore», затем перезапустить командой «systemctl restart systemd-logind».
Теперь можно мой нетбук поставить в удаленный угол и забыть про его физическое существование, все дальнейшие действия со своим домашним веб-сервером можно произвоить через ssh.
Теперь нужно настроить wifi роутер, в случае с tplink открываем tplinkwifi.net логин и пароль по умолчанию admin, в разделе «Состояние» смотрим состояние WAN, IP адрес должен быть статическим и не должен начинаться с 192.168.х.х, 172.х.х.х, 10.х.х.х, в противном случае свяжитесь с провайдером и попросите предоставить внешний IP, скорее всего это можно сделать и через личный кабинет, мой провайдер предоставил мне IP за 90 рублей в месяц. Все новые настройки нужно прописать в разделе «Сеть/WAN». Теперь нужно зарезервировать внутренний IP адрес на роутере для нашего сервера, заходим в раздел «DHCP/Список клиентов DHCP» и находим там наш сервер (чтобы узнать IP на сервере наберите команду ifconfig), после копируем MAC-адрес и переходим в раздел «DHCP/Резервирование адресов» и добавляем там MAC-адрес нашего сервера и его IP. Всё, теперь роутер всегда будет выделять для нашего сервера этот IP. Теперь надо пробросить порты, чтобы при обращении из интернета роутер отправлял запросы на домашний веб-сервер, заходим в раздел «Переадресация/Виртуальный сервер» и добавляем 80 порт. Также добавляем 22 порт, чтобы можно было подключаться к серверу через ssh. У меня при добавлении 80 порта возникала ошибка «Порт удалённого управления веб-интерфейсом конфликтует с портом виртуального сервера». Чтобы этого избежать предварительно изменим порт удалённого управления на 8080, для этого откроем вкладку «Защита/Удалённое управление». Теперь управление роутером доступно по адресу tplinkwifi.net:8080/
Для удалённого управления веб-сервером качает утили Putty с www.chiark.greenend.org.uk/
Теперь для полнофункционнальной работы веб-сервера установим необходимые компоненты, первым делом подключим репозиторий Epel, там есть практически всё необходимое для автоматической установки, вводим команду «yum install epel-release». Затем для отслеживания состояния сервера устанавливаем htop командой «yum install htop», для удобной работы с файлами усталавливаем midnight commander, командой «yum install mc», теперь ставим Apache, для этого вводим «yum install httpd», запускаем и ставим в автозагрузку командами «systemctl start httpd» и «systemctl enable httpd», теперь установим MariaDB командой «yum install mariadb-server», аналогично запускаем и ставим в автозагрузку «systemctl start mariadb» и «systemctl enable mariadb», производим первичные настройки при помощи команды «mysql_secure_installation», устанавливаем root пароль, удаляем анонимного пользователя и тестовую базу, затем нужно устанавить PHP с необходимыми модулями «yum install php php-mysql php-common php-mbstring php-mcrypt php-devel php-xml php-gd», перезагружаем httpd командой «systemctl restart httpd». Теперь при вводе в браузере IP адреса видим приветственную страницу Apache. Корневой каталог находится в «/var/www/html/». Вот теперь наш домашний веб-сервер доступен с любой точки планеты.
Как создать свой первый безопасный веб-сервер, готовый к продуктиву
В этом руководстве мы рассмотрим некоторые из лучших методик создания своего первого безопасного сервера. Мы пошагово разберём весь процесс, и в результате получим сервер, полностью готовый к использованию в продуктиве для вашего приложения. Конечно, это не исчерпывающее руководство. Безопасный сервер — это постоянный поиск новых ресурсов и бесконечные улучшения. Но с этим материалом вы можете начать создавать собственную инфраструктуру.
Для прогона тестов мы будем использовать Amazon EC2, но можно взять и Amazon LightSail, Digital Ocean, Vultr или другой сервис. Все они конфигурируются одинаково, так что выбирайте тот, который вам по душе.
Создаём публичный и приватный SSH-ключи
Сначала создадим пару ключей, которые понадобятся некоторым хостам при установке сервера. Этот и некоторые другие шаги можно пропустить, если вы решите создать свою пару ключей при запуске сервера на Amazon.
SSH-ключи мы будем создавать с помощью ssh-keygen.
В результате получим два файла: id_rsa и id_rsa.pub (приватный и публичный ключи). Никогда и никому не передавайте свой приватный ключ.
Подробную инструкцию по созданию ключей вы найдёте здесь.
Импорт публичного ключа в Amazon
Импортируем только что созданный публичный ключ в платформу Amazon.
Создаём свою виртуальную машину
Установим в Amazon EC2 виртуальную машину под управлением Ubuntu. Настройка подробно описана здесь:
Подключаемся к новому серверу
Обращаемся к виртуальной машине по SSH.
: это можно пропустить, если вы добавили ключ в свой SSH-агент.
Даём доступ новому пользователю
Создадим новый аккаунт пользователя по имени “wizard”:
Дадим “wizard” разрешение выполнять sudo. Откроем файл:
И зададим содержимое:
Скопируем публичный ключ (PATH-TO-PUBLIC-KEY) и вставим в удалённый экземпляр /home/wizard/.ssh/authorized_keys. Настроим разрешения:
Обеспечиваем безопасность
Обновляем все установленные пакеты.
Меняем SSH-порт с 22 на 2201. Для конфигурирования файрвола (ufw, Uncomplicated Firewall, незатейливый файрвол) открываем файл /etc/ssh/sshd_config:
и меняем эти данные:
Конфигурируем Uncomplicated Firewall (UFW) так, чтобы пропускались только входящие подключения SSH (порт 2201), HTTP (порт 80) и NTP (порт 123).
Конфигурируем серверные часы
Устанавливаем в качестве локального часового пояса UTC:
Выбираем опцию ‘None of the Above’ и снова UTC.
Отключаемся и добавляем наш ключ в SSH-агент
Для отключения вводим:
а потом добавляем ключ.
Добавляем в Amazon разрешения по порту
Это необходимо сделать в Amazon. Зададим SSH-порт, который будем использовать также на Amazon.
Подключаемся с новыми данными
Теперь вы можете подключиться к серверу по новому порту как новый пользователь:
Теперь у вас есть сервер, готовый обслуживать ваше приложение.
Сборка сервера: от заказа комплектующих до тестирования
Что происходит, когда наш клиент заказывает сервер произвольной конфигурации? Насколько надежны серверы, собранные по индивидуальному заказу? Эти и другие вопросы мы сегодня подробно обсудим в новой статье.
Заказ сервера
Несмотря на то, что в разделе доступных для заказа серверов присутствует несколько десятков различных конфигураций, некоторым клиентам требуются серверы специальной конфигурации. Чаще всего такое необходимо для создания сервера с очень высокой производительностью либо с большим количеством дисковых накопителей.
Чтобы удовлетворить такую потребность, была предусмотрена услуга «Выделенный сервер произвольной конфигурации». Конфигуратор на сайте позволяет за пару минут самостоятельно создать сервер любой сложности и арендовать его. Однако мало кто задумывается, как именно собираются эти серверы.
После того как клиент определился с нужной конфигурацией, сделал заказ и оплатил его, система автоматически создает тикет в панели управления. Такой тикет поступает в отдел сборки, и специалисты приступают к проверке заказа и, собственно, самой сборке сервера.
Процесс сборки
Проверка заказа
Конфигуратор на сайте чаще всего выбирает «правильный» вариант комплектующих, но в некоторых случаях клиенты могут выбрать не самый оптимальный вариант сочетания аппаратных компонентов. Например, RAID-контроллер, который не сможет выдать максимальную производительность в такой конфигурации, или нечетное количество планок оперативной памяти в многопроцессорных системах. Поэтому инженеры вначале проверяют заказ и в случае выявления потенциальных проблем обязательно предупреждают клиента в тикете.
В случае, если клиент согласен, что конфигурация не оптимальна, можно без проблем аннулировать заказ и создать новый. Денежные средства при аннулировании возвращаются на баланс панели управления в полном объеме. После того, как заказ проверен, мы приступаем к подготовке комплектующих и сборке сервера.
Комплектующие
Каждый сервер состоит из следующих комплектующих:
Подготовка корпуса
Мы обычно используем корпусы Supermicrо, которые следует подготовить к установке материнской платы с помощью идущих в комплекте метизов. В разных моделях материнских плат разные точки крепления, поэтому следует определить количество метизов и болтов для каждой конкретной сборки.
Пока количество заказов было небольшим, мы просто брали предназначенный для корпуса комплект крепежа, а неиспользованный крепеж откладывали. В определенный момент стало ясно, что тратится очень большое время на поиск нужного болта и мы решили расфасовать весь крепеж, имеющийся на складе.
Расфасованный крепеж
После того как последний пакет с крепежом был расфасован, стало ясно, что мы не зря проделали эту работу. Теперь каждый болт и каждый метиз лежит в строго отведенном для этого месте и это экономит огромное количество времени.
Для того, чтобы контакты материнской платы не соприкасались с металлическим корпусом и не произошло короткого замыкания, используется специальная пластиковая прослойка. Без нее сборка запрещена. Помимо этого, необходимо аккуратно выломать (да-да, это предусмотрено производителем) отверстия для портов в заглушке с задней части сервера. Выполняется элементарно с помощью плоской отвертки.
После этого на корпус наносятся наклейки с идентификатором заказа, а также серийный номер будущего сервера. Для удобства работы помимо буквенно-числового идентификатора на наклейках содержатся штрих-коды, позволяющие оперативно считать информацию с помощью сканера.
Установка материнской платы
Непосредственно перед установкой материнской платы инженеры выполняют некоторые подготовительные действия:
После того как материнскую плату поставили на место, закручиваются крепежные болты. При этом следует помнить, что текстолит достаточно хрупок, и не прилагать излишних усилий. Для экономии времени инженеры используют аккумуляторные отвертки.
Теперь к материнской плате подключаются кабели питания, а также вентиляторы системы охлаждения. Здесь важно то, что порой длина кабелей больше, чем необходимо, поэтому их аккуратно стягивают при помощи тонких нейлоновых стяжек. При отсутствии возможности закрепить стяжки к корпусу, производитель поставляет удобные крепежные площадки на двустороннем скотче. Концы аккуратно откусывают бокорезами.
Затем выполняется подключение лицевой панели и бэкплейна с помощью соответствующих кабелей. Теперь можно приступать к установке процессоров и прочих элементов.
Установка процессоров
Эта операция, пожалуй, самая тонкая и требующая внимательности. Еще 10 лет назад процессоры имели удобные «ножки», а сокеты представляли собой пластиковую матрицу с отверстиями. Благодаря этому достаточно было всего лишь аккуратно вставить процессор в сокет и закрыть защелку. Начиная с сокета LGA 775 процессоры лишились «ножек», остались только ровные контактные площадки. Сокеты, наоборот, теперь имеют контакты, однако они настолько маленькие и хрупкие, что любая операция с установкой процессора должна быть максимально точной.
Современный сокет FCLGA3647
Процессор линейки Intel Xeon Scalable
После того, как процессоры установлены на свои места приходит черед установки радиаторов охлаждения. Как правило, используются пассивные радиаторы, однако перед этим наносится термопаста — слой теплопроводящего материала, разделяющий процессор и радиатор. Чаще всего для этого используют кремнийорганическую пасту, такую как КПТ-8.
Здесь следует помнить, что основная задача термопасты — закрыть микроскопические дефекты как на поверхности процессора, так и на поверхности радиатора, обеспечивая максимально большую площадь соприкосновения. Поэтому ее наносят очень тонким и ровным слоем. Для этого используют либо специальную лопаточку, либо по старинке ненужную пластиковую карточку. Излишки убираются с помощью ватных палочек.
Установка оперативной памяти
Каждый производитель материнских плат самостоятельно определяет верный порядок установки модулей оперативной памяти, в зависимости от ее типа и скорости. Для Supermicro этот порядок установки прописан в инструкциях к каждой модели материнской платы. Тем не менее есть несколько достаточно универсальных правил, которые работают в большинстве случаев:
Установка накопителей
Тут все просто. Дисковые накопители закрепляются в штатных салазках, после чего вставляются в сервер. Если были заказаны дисковые контроллеры или дополнительные сетевые карты, то они устанавливаются в соответствующие PCI-E слоты и закрепляются винтами. После того, как все установлено на свои места, инженер отдела сборки еще раз проверяет соответствие всех комплектующих заказу и отправляет сервер на стенд для прошивки и тестирования.
Укладка кабелей
Коснемся такой темы, как укладка кабелей внутри сервера. Тут тоже есть свои нюансы, главным из которых является ограниченность пространства. Большинство серверов спроектированы таким образом, чтобы занимать минимум места в стойке. Высота одного монтажного юнита составляет 43,7 мм. Из-за этого места для кабелей после установки материнской платы и прочей периферии остается достаточно мало.
Забавный факт: один монтажный юнит по высоте в точности равен одному вершку (древнерусская единица длины).
Всегда следует учитывать, что сквозь сервер воздух должен проходить беспрепятственно для эффективного охлаждения компонентов. Любые препятствия на его пути будут ухудшать отвод тепла, а следовательно, увеличивать расход электроэнергии из-за увеличенной нагрузки на систему охлаждения. Это особенно важно для серверов с несколькими GPU, температура которых под нагрузкой доходит до 80 градусов.
Воздушный поток разделяется поровну между всеми GPU
Поэтому все кабели укладываются таким образом, чтобы не перекрывать путь прохождения воздуха. Излишки при помощи стяжек закрепляются к штатным проушинам, а в случае их отсутствия к пластиковым площадкам с двусторонним скотчем.
Кабели уложены так, чтобы не мешать прохождению воздушного потока
Прошивка комплектующих
Для начала ответим на достаточно часто задаваемый вопрос — зачем же это нужно? Ответ прост — эта процедура необходима для того, чтобы все компоненты сервера работали без ошибок, а также, чтобы повысить уровень безопасности.
Большинство компонентов сервера построены с расчетом на то, чтобы их можно было перепрограммировать. После выхода с конвеера в процессе тестирования и эксплуатации в большинстве случаев обнаруживаются ошибки и уязвимости программного обеспечения. Если бы возможности перепрограммирования компонентов не было предусмотрено, то для ликвидации этих программных проблем пришлось бы отзывать всю продукцию. Гораздо дешевле было создать возможность замены микропрограммы.
Перепрошивка IPMI
Модуль удаленного управления (IPMI / iLO / iDrac) — один из важнейших элементов сервера. Он представляет из себя независимый микрокомпьютер, работающий всегда, когда на материнской плате присутствует рабочее напряжение.
Даже когда в сервере нет комплектующих, этот микрокомпьютер работает, выполняя задачу интерпретации и корректировки данных с датчиков сервера. Модуль тесно связан со всеми подсистемами управления питанием и позволяет выполнять практически любые операции удаленно. Поэтому вопрос безопасности при доступе к такому устройству стоит очень остро. Своевременное обновление прошивки позволяет уберечь модуль от взлома.
Установка прошивки обычно производится непосредственно из веб-интерфейса, однако в некоторых случаях ее можно произвести по сети, отправив на модуль прошивку с соответствующим программным обеспечением.
Перепрошивка BIOS
Базовая система ввода-вывода помимо уже перечисленной причины безопасности требует обновления еще для одного важного момента. В прошивке BIOS имеются микрокоды процессоров, поддерживаемых материнской платой, а также микрокоды сетевых интерфейсов и чипсетов. Когда выходит новая версия процессора, производители материнских плат выпускают новые версии прошивок, которые содержат требуемый микрокод. Без этого новый процессор просто не сможет запуститься.
Помимо этого, выпуск новых прошивок предотвращает конфликты, возникающие при взаимодействии различных комплектующих (как встроенных в материнскую плату, так и сторонних устройств). Вместе с прошивкой BIOS зачастую обновляются и связанные модули, например, Intel ME (Management Engine).
Дабы не быть голословными, приведем пример. Возьмем материнские платы Supermicro X10SRi/X10DRi/X10DRW, которые поддерживают процессоры Intel Xeon E5-XXXXv3. Если поставить туда процессор следующей версии E5-XXXXv4 плата стартует, однако будет выдавать странные ошибки сбоя оперативной памяти «Failing DIMM» в разных слотах. И проблема тут вовсе не в памяти, а в том, что контроллер памяти находится в процессоре. Следовательно, неверное опознавание процессора материнской платой ведет к тому, что возникают подобные проблемы. Перепрошивка с помощью поддерживаемого процессора полностью решает эту ситуацию.
В некоторых случаях производители оборудования искусственно прекращают поддержку новыми моделями материнских плат более старого оборудования. Ярким примером может служить материнская плата Supermicro X11DPi, которая с любой версией прошивки BIOS не будет работать с HBA-контроллерами Adaptec 7-ой серии. Дисковый контроллер просто не инициализируется, вызывая полное зависание сервера. И на данный момент эта проблема не имеет решения.
Перепрошивка дисковых контроллеров
Ошибки в программном обеспечении таких важных устройств, как дисковые контроллеры могут не просто доставить неприятности, но и стать источником очень крупных проблем. В большинстве случаев процесс очень простой, перепрошивка происходит с помощью родной утилиты, встроенной непосредственно в сам контроллер.
Следует помнить, что старая прошивка дискового контроллера может не только исправлять ошибки, но и кардинально менять способ хранения метаданных. Чтобы избежать неприятных ситуаций и сохранить данные в целости, перед выполнением перепрошивки следует обязательно прочитать список внесенных изменений в функционал. Эта информация всегда присутствует на сайте производителя оборудования и чаще всего дублируется в архиве с самой прошивкой.
Перепрошивка сетевых карт
Не менее серьезные проблемы, крайне сложные в диагностике, могут доставить сетевые карты с ошибками на уровне встроенного программного обеспечения. Помимо устранения ошибок, программное обеспечение сетевых карт напрямую может влиять на производительность. Так что это еще один обязательный пункт для инженеров, выполняющих сборку серверов.
Важно
Хотелось бы отдельно отметить, что все операции по перепрошивке компонентов потенциально опасны для оборудования, поэтому их допустимо производить только квалифицированным специалистам. Если вы уже являетесь нашим клиентом и обнаружили необходимость перепрошить какой-либо компонент сервера, то ни в коем случае не пытайтесь это делать самостоятельно. Просто напишите нам в тикете, какой компонент следует перепрошить, и это будет выполнено со всеми мерами предосторожности.
Тестирование
Покончив с обновлением программного обеспечения, инженер сборки приступает к нагрузочному тестированию собранного сервера. Такое тестирование позволяет выявить большинство проблем еще до того, как сервер будет сдан клиенту.
Тест оперативной памяти
Для того, чтобы проверить работоспособность всех установленных в сервер модулей оперативной памяти, запускается весьма популярный инструмент под названием memtester. Непосредственно перед выполнением тестирования, инженер сборки проверяет, чтобы все установленные в сервер модули памяти корректно отображались в BIOS.
При запуске тестирования происходит процесс чтения и записи данных в оперативную память, используя разную последовательность данных и порядок заполнения ячеек. Скорость выполнения всех тестов напрямую зависит от объема. Наши минимальные требования — это один полный цикл проверки.
Если в процессе тестирования выявлены ошибки, то мы ищем сбойный модуль оперативной памяти и исключаем его из конфигурации, заменяя на аналогичный. Затем процесс тестирования повторяется целиком. Только когда все итерации тестов будут пройдены без ошибок, сервер отправляется на стресс-тестирование.
Тест процессора и дисков
Нагрузочный тест имитирует максимальную нагрузку на сервер в течение минимум 6 часов для сервера с магнитными накопителями. В случае с твердотельными накопителями столь длительное тестирование может резко увеличить износ накопителя, поэтому для них проводится аналогичное тестирование с меньшим временем исполнения.
Нагрузочное тестирование для процессоров Intel проводится с помощью оригинальной утилиты Intel IPDT (Processor Diagnostic Tool). Этот процесс вызывает повышение температуры процессора до максимально допустимой эксплуатационной температуры, и система охлаждения должна эффективно отводить все это тепло. Инженеры сборочной постоянно следят за тем, чтобы сервер прошел это испытание, и температура всех компонентов не превышала заявленных эксплуатационных пределов.
После завершения тестирования проверяются параметры S.M.A.R.T. всех установленных дисков. Если хотя бы один параметр, заявленный производителем как повод для замены накопителя, имеет ненулевое значение, диск заменяется на другой и также тестируется для исключения вероятности возникновения проблем в «боевом режиме».
Заключение
Каждый сервер произвольной конфигурации, сдаваемый нами в аренду, множество раз проверяется и тестируется, поэтому их можно смело использовать для любых проектов сразу, не тратя время на повторные тестирования и проверки. На каждом заказанном сервере будет самая актуальная версия микропрограммного обеспечения каждого компонента, что дает хорошую защиту от существующих уязвимостей и ошибок.
Расскажите нам о своем опыте сборки или тестирования серверов. С какими интересными особенностями вы сталкивались? Ждем ваших историй в комментариях.
Домашний сервер, или приключение длиной в 6 лет. Часть первая
Здравствуй, Хабр, давно не виделись.
Сегодня я хотел бы рассказать про свой домашний сервер: какие ошибки допустил, на какой конфигурации сейчас остановился, да и вообще — зачем я это делал.
Дисклеймер: некоторая часть ПО, о котором ведется речь в статье, может быть использована на бесплатной основе только в ознакомительных целях или с ограничениями по функциональности, пожалуйста, перед использованием изучите сайт разработчика на предмет лицензирования и возможности использования ПО для вашего дома.
История началась в уже далеком 2014 году, ходят мифы, что когда-то доллар был по 32 рубля за одного зелёного, трава была зеленее, небо чище, а энтузиазма было столько, что я занялся вещами о которых расскажу ниже в статье, сейчас я бы на такое уже не отважился.
В один прекрасный день, разбирая свои провода и коробки на шкафу, и раскладывая оставшееся железо от ремонта старых ПК друзей, родственников и знакомых, я вдруг решил создать центральное хранилище резервных копий для семейных фотографий, домашний CCTV, сделать медиа-сервер для удобного просмотра кино и сериалов, да и лаба для всевозможных экспериментов тоже не помешала бы, такой домашний NAS с расширенным функционалом. Подобная идея уже некоторое время мелькала у меня в голове, но все было не до нее — либо чего-то из железа не хватало, либо времени, а тут все как раз сошлось.
Собственно началось все с нескольких жестких дисков разного объема, в качестве процессора я взял старенький Intel i3-2120 3.3Ghz и 4GB RAM DDR3 (2 планки по 2GB), какого-то старого очень китайского корпуса, который, как видно на фото, был доработан в прямом смысле напильником, хотя на самом деле там побывали и кусачки, и молоток, да и ножовкой по металлу я что-то пилил. В качестве материнской платы была взята списанная из офиса MSI B75MA-E31 (списали ее потому, что после каждого ребута в ней слетали настройки биоса и она постоянно просила настроить время и прочие параметры), как оказалось уже позже, когда я ее таки забрал, в ней косячил разъем под батарейку CR2032, вооружившись мультиметром, паяльником и парой других мертвых материнок, мне удалось перепаять целиком посадочное гнездо с контактами батарейки и восстановить нормальную работу материнской платы.
В Итоге получилось что-то такое:
На самом деле на фото вариант уже с интегрированными корзинами под HDD, чуть ранее “сервер” был собран без них просто в рамках посадочных мест корпуса под HDD, но фотографии того варианта я не нашел, хотя, как помню, первый вариант довольно быстро был модернизирован корзинами до состояния как на фото, так что суть оно передает очень точно, так сяк и продакшн.
Что же по софту спросите вы, так вот изначально в качестве операционной системы была выбрана Windows 10…
Собственно этот выбор позже принес огромное количество неудобств, т.к. некоторый софт переставал работать при автоматической установке обновлений и прочих ситуациях, характерных пользовательским версиям Windows работающим без длительных перезагрузок.
Но первичный опыт был получен и некоторое время я пользовался расшаренными папками с этой машины, сделал ту самую заветную копию семейных фотографий, начал собирать домашнюю медиатеку.
Для домашнего CCTV (видеонаблюдения) я купил на Avito несколько камер D-Link dcs-2130, для начала камеры были очень даже неплохие, но большим минусом данных камер была необходимость использования блока питания с довольно коротким проводом, провод в итоге я удлинял с помощью витой пары — получилось вполне сносно.
Позже у меня появилось пара камер с ночным режимом записи (съемка с инфракрасной подсветкой), которые также использовались некоторое время.
По программному обеспечению я перепробовал множество вариантов: сначала родной софт от D-link, который на тот момент был просто ужасен, потом я пробовал “Линия IP”, “Trassir” и “iSpy”, насколько знающий читатель поймет, “Линия IP” и “Trassir” накладывали множественные ограничения в триальных режимах, да и опять же ни одно из решений я не мог для себя оценить как идеальное, в итоге на длительный срок я остановился на открытом бесплатном ПО для организации видеонаблюдения — “iSpy”.
iSpy уже в то время позволял использовать сценарии записи по движению, экспорт видео, удобный поиск по зонам и т.п. В рамках данной статьи я не хотел бы подробно останавливаться на этом программном обеспечении, но основное, что стоит сказать — оно меня тогда устроило и позволило решить стоящую передо мной задачу, хотя интерфейс сложно было назвать удобным и понятным для пользователя.
Спустя полгода или чуть больше, намучившись с Windows, я решил, что надо попробовать в качестве основной операционной системы что-то стабильное, не требующее постоянных перезагрузок и обновлений, основанное на Unix/Linux.
В итоге выбор пал на FreeNas. Я довольно долго жил с ним и не тужил, используя плагины для расширения базового функционала и шары с поддержкой Windows ACL, Emby в jail для DLNA вполне справлялись со своими задачами, диски разного объема спокойно склеивались в отказоустойчивые RAID-массивы.
Я перепробовал все доступные конфигурации RAID, провел огромное множество тестов на скорость записи и чтения, тесты на IOPS, изучил теорию по массивам и типам файловых систем, в общем провел время с пользой.
Точно уже и не вспомню, но freenas радовал меня около года, если не больше, но было 2 основные причины, почему я снова решил сменить операционную систему моего сервера.
Первой было то, что я никак не мог подобрать удовлетворяющее меня решение для домашнего CCTV, которое работало бы на FreeNas, извиняюсь перед читателями, я достоверно не помню какие варианты я пробовал использовать и с чем экспериментировал на FreeNas в плане CCTV, но точно помню, что хорошего решения тогда я не нашел.
И второй причиной было отсутствие гибкости для экспериментов. В частности с виртуальными машинами Windows и Linux, а тут еще и на работе решили попробовать Windows Hyper-V и дабы расширить свой кругозор и принудительно получить некоторые навыки я снова вернулся к Windows, только теперь уже Windows Server 2012.
Кстати к этому времени у меня высвободилась оперативная память с основного ПК — 2 планки по 4GB DDR3, соответственно у меня уже было 8GB для моих лихих затей.
А еще я приобрел с рук (все там же на Авито) RAID контроллер LSI 8888ELP за 4500 рублей, абсолютно новый, в коробке и пленке.
Я конечно тут же получил несколько неприятных напоминаний, что Windows системный администратор должен страдать по определению — создание виртуальных машин с Linux оказывается требует отключения secure boot в гипервизоре и еще некоторых плясок с бубном, и если сейчас ни одной машины не запущено, то Windows Server опять же норовит поставить обновление и перезагрузиться, либо по утру я обнаруживал синий экран, т.к. что-то винде там в очередной раз не понравилось и прочие радости жизни с продукцией Microsoft.
Но цель изучить Microsoft Hyper-V, базовый функционал виртуализации от Microsoft, была достигнута.
По софту для решения первоначальных задач все оставалось примерно так же:
Но под конец 2016 года на меня свалились даром около 15-17 замученных, но вполне рабочих дисков по 1 ТБ, без BAD блоков. Собственно грех было не приспособить их в домашний сервер, но была проблема — на материнской плате всего 3 слота SATA II и один SATA III, также был RAID-контроллер LSI 8888ELP — это еще 8 портов SATA, и даже купленная мной в какой-то момент плата расширения Espada PCIe-4 x SATA III не позволяли собрать в данном корпусе что-то вменяемое.
Я стал изучать рынок Б\у серверов supermicro на предмет покупки 3U-4U сервера с hotswap-корзинами, CPU, RAM и т.п. Также очень хотелось уже получить наличие IPMI (iLO в терминах HP), то есть KVM over IP, дабы была возможность подключаться к серверу по IP в веб или java приложении. Хотя сервер до этого времени жил в тумбочке под телевизором (где у нормальных людей обычно обитают Playstation и Xbox) и был подключен по HDMI к тому самому телевизору, но каждый раз для управления мне приходилось переключать клавиатуру со своего ПК (пока Windows Server работал штатно, ничего не обновляя и не зависая в синий экран, естественно я подключался по RDP) — соответственно IPMI был бы очень кстати, да и вроде подарок на день рождения я себе так и не купил.
Картинку резал из видео, поэтому за качество извиняюсь, но как видно “сервер” живет на нижней полке, и особо никому не мешает.
Но изучив цены, я очень быстро поубавил свои хотелки, как по процессору, по объему оперативной памяти, так и по наличию IPMI, тем не менее всё, что я находил, было для меня всё ещё дорого. Через неделю, устав бороться с жабой и рыться в барахолках, я решил купить дисковую полку Dell PowerVault MD1000 (DAS) с кабелем для Raid-контроллера (SFF8088-SFF8470), которым я собственно и планировал подключить полку к своему серверу через внешний порт на RAID-карте. Полка обошлась мне в 23 800 руб., а кабель еще в 3000.
Приехал мой подарок из славного города Санкт-Петербурга, доставленный логистической компанией, бережно упакованный в деревянный паллет, в пленке и защитной упаковке:
Фото паллета уже после того как я извлёк из него дисковую полку, разбирал я его ножом и отверткой, на все про все ушло примерно 40 минут.
Я знал, что полка будет тяжелая, но то что я буду проклинать все и вся включая себя за эту идею — я даже представить не мог! Еще даже не достав дисковую полку из паллета (а она была там забита гвоздями намертво), я уже понял, что это будет то еще приключение.
Удивительно, но я не смог найти у себя ни одной фотографии дисковой полки отдельно, поэтому приложу фото из интернета:
А на фото ниже можно наблюдать уже сервер с полкой в сборе, в тумбочке на балконе.
Тумбочку делал конечно же сам, всё как положено — сначала спроектировал в какой-то онлайн-программе и распечатал раскрой материала на листочке, затем в ОБИ, куда я поехал за материалом, как водится не оказалось в наличии той щитовой доски с сайта, для которой я распечатал раскрой, поэтому я взял вариант в наличии на 2мм толще, предупредил там на распиле, но естественно один принимает заказы на распил, другой носит, третий пилит, где-то там в коммуникации эти 2 мм потерялись. Тумбочку я конечно же собрал, но 2 мм “погрешности” — это огромная разница при сборке мебели.
Статья вышла куда длиннее чем я изначально рассчитывал, а мы дошли только до середины повествования, да и супруга уже требует внимания.
И да, сервер реально оказался на балконе, и летом, и зимой. Почему же так произошло? Те, кто хоть раз включал дисковую полку enterprise-уровня, уже догадались, а для остальных я опишу ощущения (в том числе и не только свои) во второй части!