Как Дима сервер домашний поднимал…
Следующая часть: Коробочки-коробочки
Весь цикл: Домашний сервер
Как я и обещал, запускаю небольшой цикл постов о моём маленьком проекте: “Домашняя виртуализация на базе мини-ПК”
Пока я вижу сам цикл так:
1) Базовые знания (Что такое виртуализация, Proxmox и зачем оно вообще надо?)
2) Настройка и первый контейнер
3) А как работать не с домашнего ПК? (Всё, про удаленный доступ и с чем его едят)
4) Настройка git-сервера
5) Настройка NAS
6) Машинка для ботов
Начнём с базы, которая нам в будущем поможет чуть лучше понимать друг друга)
Виртуализация
Представьте себе сервер, что первое приходит в голову? Наверное, огромные серверные стойки, большое количество данных, шумное помещение и ещё, может быть, невыносимый холод (надо ж охлаждать эту лабудень…)
В целом, всё верно, но тут стоит пояснить - сервером, по факту, можно назвать и компьютер, который стоит у вас дома, на работе или на учебе.
Сервер - это тот же комьютер, но нацеленный на круглосуточную работу, на нем не работает обычный пользователь (ну, точнее, может, но об этом в другой раз), на нем “крутятся” десятки, а то и сотни сервисов. Ну и главным отличием сервера от обычного ПК можно назвать “избыточность” - два блока питания, много плашек оперативной памяти, несколько процессоров (хотя тут спорно), т.е. всё работает на то, чтоб сервер не отвалился, если какая-то из комплектующих решит почить.
С сервером разобрались, просто очень мощный круглосуточно работающий и неломающийся (условно) компьютер, круто, классно, вопрос: “Почему мы не можем просто запускать на нём нужные нам программы, как мы это делаем обычно, они будут работать параллельно, как при классическом использовании?”
Вопрос, сам по себе, очень логичный, но ответ из него вытащить сложно, тут нужно понимание того, а что вообще из себя представляют программы.
Сильно углубляться не будем, сойдемся на том, что программа (== сервис) - это рабочий, которому нужен определенный набор инструментов. Притом, разным рабочим нужны разные инструменты, но вот дилемма, одному рабочему удобно записывать планы в блокнот, а другом в заметки на телефоне. Суть одна, а вот версии “инструментария” разные. Ну, ещё программы могут очень ловко забирать друг у друга ресурсы, а это тоже плохо.
Мы можем, конечно, физически разносить программы, т.е. у нас один сервер крутит почту, например, второй - какой-нибудь сайт (типа телеграмма, почему нет), а третий пусть следит за этим всем (мониторинг). Проблема в том, что, например, мониторинг не так много ресурсов требует, а мы для него выделили целый отдельный сервер (от которого он кушает дай б-г 2% мощностей).
И вот тут на арену влетает магическое слово - виртуализация. Фактически, мы просто говорим серверу, что он теперь не просто комьютер, а множество комьютеров, объединенных физически. Мы четко делим сервер на отдельные - изолированные ПК, с разделением мощностей и инструментария. На каждую из таких ВМ (виртуальная машина - виртуальный ПК на сервере) мы ставим свою ОС (операционная система), свои инструменты, и разворачиваем приложение - победа!
На этом я закончу первый пост, он получился весьма объемным.
Следующим шагом для нас будет рассказ про конкретные виды виртуализаций, а пока, вам вопрос - “Как называется программа, которая управляет виртуализацией и виртуальными машинами?”