mysurik.ru

Как я поставил Proxmox на старый системник и не пожалел

Gemini Generated Image wmijtlwmijtlwmij

Как всё начиналось

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

Нового сервера за сто тысяч я себе позволить не мог, да и зачем. Я пошёл по пути, который советуют почти все опытные самохостинщики: взял старый системник, который валялся без дела у знакомых, и решил превратить его в домашний сервер. Внутри оказался обычный Core i3 третьего поколения, 8 гигабайт оперативки и пара старых дисков. По сегодняшним меркам — древность, но для виртуализации с парой-тройкой лёгких VM и десятком LXC-контейнеров этого хватало с запасом.

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

Почему именно Proxmox

Выбор гипервизора для меня не был случайным. Я перепробовал разное: сначала крутил VirtualBox прямо на десктопе — он прощал ошибки, но каждая перезагрузка хост-системы убивала все мои виртуалки. Потом попробовал ESXi — мощная штука, но бесплатная версия наотрез отказалась видеть мои старые диски и сетевую карту, да и управление лицензиями меня напрягало. А потом я наткнулся на Proxmox VE, и меня подкупило сразу три вещи: он бесплатный, он работает прямо из браузера и он построен на Debian, который я уже знал.

Самое приятное, что Proxmox умеет делать снимки (snapshots) и бекапы виртуальных машин — и всё это через простой веб-интерфейс. Мне не нужно было запоминать кучу команд для ежедневной работы, хотя и из командной строки там доступно всё. И я решил: ставлю, экспериментирую, а если что-то пойдёт не так — просто переустановлю, благо установка занимает минут пятнадцать.

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

Установка: по шагам

Установка Proxmox оказалась проще, чем я боялся. Я скачал ISO-образ с официального сайта, записал его на флешку и загрузился с неё. Мастер установки оказался на удивление дружелюбным: я указал диск для системы, часовой пояс, пароль root, сетевые настройки — и через четверть часа получил работающий гипервизор. Никаких танцев с драйверами, как у меня было с ESXi, — всё железо определилось с первого раза.

Единственная сложность поджидала меня уже после установки: я подключился к веб-интерфейсу по https, а браузер ругался на самоподписанный сертификат. Это нормально для первого входа — я добавил исключение и попал в дашборд. Дальше — залил ISO-образ Ubuntu на локальное хранилище и пошёл создавать первую виртуальную машину.

Важный момент, который я не сразу понял: ISO-образ нужно сначала загрузить в хранилище гипервизора, а уже оттуда монтировать его в виртуалку. Сначала я долго искал, почему у меня нет возможности выбрать образ при создании VM, и только потом заметил кнопку «Загрузить» в разделе хранилища. Мелочь, но на старте такие мелочи съедают кучу времени. Ещё мне понадобилось настроить правильный тип хранилища — я выбрал LVM-thin для дисков виртуалок, чтобы можно было делать снимки. Для ZFS тоже можно, но на старом железе без ECC-памяти я решил не рисковать и остановился на проверенном LVM.

Первые грабли

Без граблей не обошлось, конечно. Во-первых, я попытался засунуть в виртуалку всю оперативку, что была в системнике, и гипервизор начал тормозить так, что страшно было смотреть на график нагрузки. Пришлось пересчитать ресурсы: для домашних задач 2-3 гигабайта на VM — это потолок, а остальное лучше оставить хосту.

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

Ну и в-третьих — тот самый старый жёсткий диск, на который я поставил систему. Он оказался настолько медленным, что установка Ubuntu в виртуалку заняла у меня почти час вместо обычных десяти минут. Я понял, что для нормальной работы нужен SSD, и вскоре докупил бэушный SSD на 240 гигабайт за копейки. После этого всё полетело: и сама система, и виртуалки. Разница между HDD и SSD в виртуализации настолько огромна, что это вообще первое, что я теперь советую проверить у себя.

Ещё одна вещь, о которой я забыл на старте, — аппаратная виртуализация в BIOS. На старых системниках она часто выключена по умолчанию, и Proxmox с удивлением пишет, что KVM недоступен. В моём случае помогла простейшая настройка в BIOS: включил Intel VT-x — и виртуалки заработали в разы быстрее. Если у вас VM еле шевелится, в первую очередь проверьте именно это, а не докупайте железо.

Что я кручу на этом сервере

Сейчас на этом старом системнике живёт целая инфраструктура. Я поднял несколько LXC-контейнеров: в одном работает мой DNS-сервер AdGuard Home, в другом — сетевой диск для хранения файлов, в третьем — умный дом Home Assistant. Отдельные виртуальные машины я использую для экспериментов: например, чтобы попробовать новый дистрибутив, не трогая основную систему, или чтобы протестировать какой-нибудь сервис перед тем, как ставить его на боевой сервер.

Отдельная радость — снимки. Перед каждым крупным обновлением я делаю снапшот виртуалки, и если что-то ломается, откатываюсь одним кликом. Раньше, когда я всё крутил на ноутбуке, подобные эксперименты заканчивались переустановкой системы и потерей данных. Теперь я могу хоть ядро пересобрать — и всегда есть точка возврата. Я даже перестал бояться ставить бета-версии сервисов: снял снапшот, поставил, посмотрел, не понравилось — откатился. Это даёт ощущение безопасности, которое нельзя купить никакими деньгами.

Со временем список сервисов рос, и старый системник начал задыхаться. Тогда я понял, что Proxmox легко мигрирует на новое железо: достаточно снять бекапы, развернуть их на новой машине — и вся инфраструктура переезжает за вечер. Именно это меня окончательно подкупило: вложенный труд не пропадает, когда меняется «коробка».

Если вкратце

Если у вас завалялся старый компьютер — не выбрасывайте его. Поставьте Proxmox и получите полноценный домашний сервер бесплатно. Мой план для ленивых:

  1. Найдите любой системник или ноутбук с 4+ гигабайтами RAM и любым диском — обязательно SSD, если есть возможность.
  2. Скачайте ISO Proxmox с официального сайта и запишите на флешку.
  3. Установите, указав свой диск под систему и настроив сеть с DHCP или статикой.
  4. Включите в BIOS аппаратную виртуализацию (Intel VT-x или AMD-V).
  5. Зайдите в веб-интерфейс по https и добавьте исключение для сертификата.
  6. Загрузите ISO-образ в хранилище и создайте первую виртуалку, подключив её к мосту vmbr0.
  7. Включите снапшоты и бекапы — они спасают, поверьте.

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

Про бекапы, которые я настроил на третий день

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

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

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

Плюс ко всему, Proxmox умеет снимать бекапы прямо во время работы виртуалок, без остановки. Раньше я думал, что для нормальной копии нужно гасить систему, но нет — механизм работает иначе. Просто пометьте опцию «Режим снимка» в настройках задачи и забудьте про остановку сервисов. Это особенно удобно для сервисов, которые должны работать 24/7.

Почему я не жалею

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

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

Так что если вы сомневаетесь, стоит ли начинать — начинайте. Старый системник, свободный вечер и немного терпения — этого достаточно, чтобы у вас появился свой маленький сервер. А дальше всё пойдёт само.

Ваш комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *