Домашний сервер для линукс

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

Вводная часть

Ребенок подрос и появилась желание собрать дома свой сервер с виртуализацией для экспериментов и повседневного использования. Повысить скилл в Linux, продуктах Citrix, python. Посмотреть внутрянку Elastic Search и других интересных продуктов.

Цены указаны на февраль 2021 г. К концу мая 2021 г. цены выросли существенно.

Выбор оборудования

Кроме желания необходима финансовая составляющая и выбор оборудования.

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

В первую очередь необходим процессор — выбор пал все таки на б/у Xeon E5 2678 v3 с хорошо известной китайского market place стоимость

7300 р. и ждать недели 3. Но делать нечего — берем.

Пока ехал целевой процессор взял на всеми известной российской барахолке бюджетный Xeon E5 2630L v3. — 2 000 р.

E5-2630L v3

Следующий важный компонент — материнская плата. Покупать китайскую плату без гарантии на той же площадке побоялся. Цена такой материнки с хорошим VRM которую можно брать в районе 8500 р. В нашем интернет-магазине нашел новые материнки под данный сокет и с гарантией. Долго выбирал между ASUS SABERTOOTH X99 и ASUS X99-DELUXE II. Комплектация последней была богаче, цена была плюс-минус одинаковая. В итоге выбор пал на ASUS SABERTOOTH X99 — 5 лет гарантии, дополнительный вентилятор для охлаждения VRM, заглушки под не используемые разъемы, доп охлаждение, защита всей материнской платы и другие плюшки. Итого потрачено с учетом использования подарочных бонусов — 17 654 р. Спустя 3 месяца она стала стоить 27000 р.

Далее выбор правильного питания для сборки — тут выбор огромный и отзывы как всегда противоречивые. Кто-то хвалит одни и ругает другие. Выбор пал на bequiet! System Power 9 700 Вт ATX BN248 — 5490 р. Чего-то особенного не ждал. Тихий блок питания, аккуратные провода в оплетке.

Для охлаждения взял Cooler Master Hyper H412R 120W RR-H412-20PK-R2 за 1600 р. Как показали тесты справляется на ура. Пока менять не планирую.

В качестве планок памяти выбор пал на MICRON (Crucial) DDR4 16Gb 3200MHz pc-25600 ECC, Reg (MTA18ASF2G72PDZ-3G2E1) for server. С учетом подарочных бонусов к праздникам и бонусов за предыдущие покупки вышли пока так — две планки по 5570 р. и одна планка за 5010 р. На китайском маркет плейсе планка на 16 ГБ стоит 3800-4000р. Решено было доплатить около 1700 за каждую планку — в итоге имеем якобы 10 лет гарантии. Эти планки видимо пользуются популярностью и они периодически пропадают из продажи либо стоят

8000 р. Пока будет 3 планки и жду следующих скидок и акций 🙂

Далее корпус, важны были следующие критерии:

цена — не более 4000 р.

нижнее расположение блока питания

кожух для блока питания

место для кабель-менеджмента

возможность установить 3 hdd и хотя бы один ssd

установить несколько 140 мм вентиляторов на вдув и выдув

В итоге выбрал Deepcool MATREXX 55 MESH за 3490 р. Многие скажут, что в него можно установить всего 2 3,5 hdd. Да это так, но отзывы по нему хорошие и цена приятная. Ну а третий hdd будет лежать на кожухе.

К корпусу купил 5 вентиляторов ID-Cooling White (WF-14025) и один ID-Cooling White 120mm 4-Pin 800-1800 RPM (WF-12025) обошлись в 2950 р.

От старого компьютера осталось 3 hdd WD. Два на 500 Гб и один на 1 Тб. Но на них есть данные которые надо оставить. Под систему и VM купил Western Digital Black SN750 M.2 500 Gb PCIe Gen3x4 TLC (WDS500G3X0C) — 6590 р. Выбирал между этим и таким же только с радиатором. Разница в цене была в тысячу. Из-за особенностей материнской платы с радиатором мог не влезть и взял такой.

Читайте также:  Ethernet controller для windows server

В планах купить ASUS HYPER M.2 X16 CARD V2 и еще парочку таких же ssd и перенести систему на sata ssd.

Провел тесты nvme накопителя встроенными средствами разным размером и количеством :

Для сервера все комплектующие куплены и можно собирать. Так стоп, а видеокарта где. Вот с ней большая проблема. Во время бума майнинга купить по адекватной цена видеокарту не так просто, а если учесть что она должна поддерживать 4к монитор еще сложнее. Пока будем использовать старую и без поддержки 4к — Radeon HD 4670.

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

Операционная система

Пока решил остановиться на Linux с KVM. В качестве дистрибутива выбрал Fedora далее устанавливать KVM и обвязкой.

Установка ОС

В использовании Linux можно сказать новичок и это вызывает некоторые трудности из-за древней видеокарты. Установка заработала в режиме загрузки UEFI и с упрощенной графикой.

Разбиваем диск на разделы с использованием LVM.

Установка на nvme накопитель прошла достаточно быстро.

После установки система запускает в максимальном разрешении HD 1280×1024.

Исправляем это путем редактирования файла — /etc/default/grub удаляем nomodeset

и обновляем загрузчик

Ребутаемся и получаем интересный эффект — проблема со стартом gdm — видеосигнал не идет на монитор и он уходит в спячку.

Перехожу в консольный режим Alt + Ctrl + F3

Быстрого решения не нашел и в итоге ставлю lightdm и включаю его. Если подскажите решение буду благодарен.

После ребута все работает как часы — появилась графика и разрешение хотя бы FullHD. На 4K мониторе не очень комфортно.

Первым делом установка обновлений и установка минимального набора пакетов ОС

Дальше настало время установи kvm для возможности запуска виртуальным VM. Для этого устанавливаем kvm, необходимых пакетов и утилит для мониторинга системы:

Дальше в планах развернуть схему Citrix Virtual Desktop. В качестве контроллера AD использовать Debian c SAMBA 4.

Источник

Сборка недорогой домашней NAS-системы на Linux

Я, как и многие другие пользователи MacBook Pro, столкнулся с проблемой недостачи внутренней памяти. Если говорить точнее, то используемый мной ежедневно rMBP был оснащен SSD объемом всего 256GB, чего, естественно, надолго не хватало.

А когда я плюс ко всему стал записывать видео во время своих полетов, ситуация только усугубилась. Объем заснятых материалов после таких полетов составлял 50+ GB, и мой несчастный SSD на 256GB очень скоро заполнился, вынудив меня приобрести внешний диск на 1TB. Тем не менее, спустя один год, и он перестал справляться с генерируемыми мной объемами данных, не говоря уже о том, что недостаток избыточности и резервного копирования делали его неподходящим для размещения важной информации.

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

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

Быть может проще купить?

Итак, нам известно, что мы хотим получить, остается вопрос как?

Сначала я ознакомился с коммерческими решениями и рассмотрел, в частности, компанию Synology, которая, как предполагалось, предоставляет лучшие NAS-системы потребительского уровня на рынке. Однако стоимость этого сервиса оказалась достаточно высока. Самая дешевая система с 4-мя отсеками стоит $300+, и при этом жесткие диски в комплект не входят. Кроме того, сама внутренняя начинка такого комплекта не особо впечатляюща, что ставит под вопрос ее реальную производительность.

Читайте также:  Sudo nano ������� mac os

Тогда я и подумал: а почему бы не собрать NAS-сервер самому?

Поиск подходящего сервера

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

Свои поиски я начал с eBay. Несмотря на то, что там я нашел много подержанных Dell PowerEdge R410/R210 стоимостью менее $100, имея опыт работы в серверном помещении, я знал, что эти блоки 1U издают слишком много шума и для домашнего использования не подойдут. Как правило, сервера формата tower чаще менее шумны, но, к сожалению, на eBay их было выставлено немного, и все они были либо дорогие, либо маломощные.

Следующим местом для поиска стал сайт Craiglist, где я нашел человека, продававшего подержанный HP ProLiant N40L всего за $75! Я был знаком с этими серверами, которые даже в подержанном виде обычно стоят в районе $300, так что я отправил продавцу письмо в надежде, что объявление еще актуально. Узнав, что так оно и есть, я, недолго думая, направился в Сан Матео, чтобы забрать этот сервер, который уже с первого взгляда меня однозначно порадовал. У него был минимальный износ и, за исключением небольшого налета пыли, все остальное было отлично.

Фото сервера, сразу после покупки

А вот спецификация приобретенного мной комплекта:

  • CPU: AMD Turion(tm) II Neo N40L Dual-Core Processor (64-bit)
  • RAM: 8 GB non-ECC RAM (установлен предыдущим владельцем)
  • Flash: 4 GB USB Drive
  • SATA Connectors: 4 + 1
  • NIC: 1 Gbps on-board NIC

Стоит ли говорить, что несмотря на возраст в несколько лет, спецификация этого сервера по-прежнему превосходит большинство вариантов систем NAS, предлагаемых на рынке, особенно по оперативной памяти. Несколько позже я даже сделал апгрейд до 16 GB ECC с увеличенным объемом буфера и повышенной защитой данных.

Выбор жестких дисков

Теперь у нас есть отличная работоспособная система и осталось подобрать для нее жесткие диски. Очевидно, что за те $75 я получил только сам сервер без HDD, что меня не удовлетворило.

Проведя небольшое исследование, я выяснил, что для работы с NAS-системами в круглосуточном режиме 24/7 лучше всего подходят HDD WD Red. Для их покупки я обратился на Amazon, где приобрел 4 экземпляра объемом по 3 TB. По сути, вы можете подключить любой предпочтительный HDD, но обратите внимание, чтобы они были одинакового объема и скорости. Это поможет вам избежать возможных проблем с производительности RAID в перспективе.

Настройка системы

Думаю, что многие будут использовать для своих NAS-сборок систему FreeNAS, и в этом нет ничего плохого. Однако, несмотря на возможность установки этой системы на своем сервере, я предпочел использовать CentOS, поскольку система ZFS on Linux изначально подготовлена к продакшен-среде, и вообще управление Linux-сервером мне более знакомо. Кроме того, меня не интересовал модный интерфейс и функции, предоставляемые FreeNAS – мне было достаточно массива RAIDZ и совместного использования AFP.

Установить CentOS на USB достаточно просто – достаточно указать USB в качестве источника загрузки, и при запуске мастер установки проведет вас по всем ее этапам.

Сборка RAID

После успешной установки CentOS я также установил ZFS on Linux, следуя перечисленным здесь шагам.

По завершении этого процесса я загрузил модуль ZFS Kernel:

И создал массив RAIDZ1 при помощи команды zpool :

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

Читайте также:  Киностудия windows 2012 что это

Я также добавил ZIL и кэш L2ARC, выполняющиеся на отдельном SSD, разбив этот SSD на два раздела: 5GB под ZIL и остаток под L2ARC.

Что касается RAIDZ1, то он может выдержать отказ 1 диска. Многие утверждают, что данный вариант пула не следует использовать из-за вероятности выхода из строя второго диска в процессе пересборки RAID, что чревато потерей данных. Я же пренебрег этой рекомендацией, поскольку регулярно делал резервные копии важных данных на удаленном устройстве, и выход из строя даже всего массива может повлиять лишь на доступность данных, но не их сохранность. Если у вас нет возможности делать резервные копии, то лучше будет использовать решения, наподобие RAIDZ2 или RAID10.

Убедиться в успешности создания пула можно, выполнив:

По умолчанию ZFS монтирует только что созданный пул прямо в / , что, как правило, нежелательно. Изменить это можно, выполнив:

Отсюда вы можете выбрать создать один или несколько датасетов для хранения данных. Я создал два, один для бэкапа Time Machine и второй для общего хранилища файлов. Объем датасета Time Machine я ограничил квотой в 512 GB, чтобы предупредить его бесконечный рост.

Оптимизация

Эта команда включает поддержку сжатия ZFS. Сжатие задействует минимум мощности CPU, но может существенно улучшить пропускную способность I/O, поэтому всегда рекомендуется к использованию.

С помощью этой команды мы уменьшаем количество обновлений до atime , чтобы уменьшить генерацию IOPS при обращении к файлам.

По умолчанию ZFS on Linux использует для ARC 50% физической памяти. В моем случае, когда общее число файлов невелико, этот объем можно безопасно увеличить до 90%, так как другие приложения на сервере выполняться не будут.

Затем при помощи arc_summary.py можно убедиться, что изменения вступили в силу:

Настройка повторяющихся задач

Я использовал systemd-zpool-scrub для настройки systemd-таймеров на выполнение очистки раз в неделю и zfs-auto-snapshot для автоматического создания снимков состояния каждые 15 минут, 1 час и 1 день.

Установка Netatalk

Netatalk – это открытая реализация AFP (Apple Filing Protocol). Следуя официальной инструкции по установке для CentOS, я буквально за пару минут получил собранный и установленный пакет RPM.

Настройка конфигурации

Обратите внимание, что vol dbnest является в моем случае серьезным улучшением, так как по умолчанию Netatalk пишет базу данных CNID в корень файловой системы, что было совсем нежелательно, поскольку моя основная файловая система выполняется на USB, в связи с чем работает относительно медленно. Включение же vol dbnest приводит к сохранению базы данных в корне Volume, который в этом случае относится к пулу ZFS и уже на порядок производительнее.

Включение портов в Firewall

sudo firewall-cmd —permanent —zone=public —add-port=afpovertcp/tcp
Если все было настроено верно, то ваша машина должна отображаться в Finder, и Time Machine тоже должна работать.

Дополнительные установки
S.M.A.R.T мониторинг

Рекомендуется отслеживать статус ваших дисков с целью предупреждения их отказа.

Демон для ИБП

Мониторит заряд ИБП APC и выключает систему, когда заряд становится критически мал.

Аппаратный апгрейд

Спустя неделю после настройки системы, я начал все больше беспокоиться о том, что в сервере установлена память без ECC. К тому же в случае с ZFS дополнительная память для буферизации будет весьма кстати. Поэтому я снова обратился к Amazon, где приобрел 2x Kingston DDR3 8GB ECC RAM за $80 каждый и заменил десктопный RAM, установленный предыдущим владельцем. Система с первого раза загрузилась без каких-либо проблем, и я убедился в том, что поддержка ECC была активирована:

Результат

Результат меня очень порадовал. Теперь я могу постоянно загружать 1Gbps LAN соединение сервера копированием файлов, и Time Machine работает безупречно. Так что, в общем и целом, настройкой я доволен.

  1. 1 * HP ProLiant N40L = $75
  2. 2 * 8 GB ECC RAM = $174
  3. 4 * WD Red 3 TB HDD = $440

Итого = $689

Вот теперь я могу сказать, что цена того стоила.

Источник

Оцените статью