Одна машина, много серверов
VPS (Virtual Private Server) — виртуальный сервер, который ведёт себя как отдельный компьютер: у него своя операционная система, свои процессы, собственные права администратора и сетевые настройки. При этом физически он делит железо с другими такими же серверами.
Для клиента VPS — это компромисс между общим хостингом, где ресурсы и права очень ограничены, и выделенным сервером, где вся машина принадлежит одному арендатору.
Технически виртуальная машина — это набор файлов и записей в гипервизоре, что позволяет клиенту перенести сервер, создать снимок или клонировать его при необходимости.
Отсюда и название: слово private подчёркивает, что содержимое сервера закрыто от соседей, хотя оборудование общее.
Как обеспечивается изоляция
Способов два. При аппаратной виртуализации гипервизор, например KVM, запускает полноценные виртуальные машины с собственным ядром. Гость не знает о соседях и видит виртуальное оборудование. При контейнерной виртуализации, как в OpenVZ или LXC, все гости используют ядро хозяина, а отделяются пространствами имён и лимитами ресурсов.
Первый вариант даёт более строгую изоляцию и позволяет установить любую систему и своё ядро. Второй легче и экономичнее для провайдера, но накладывает ограничения на модули ядра.
Ресурсы: что выделено
Параметры VPS включают число виртуальных ядер, объём памяти, диска и ширину канала. Важно понимать, что vCPU — это доля процессорного времени, а не выделенное физическое ядро. Провайдеры могут допускать переподписку: суммарно продаётся больше ресурсов, чем есть физически, в расчёте на то, что не все используют максимум одновременно.
Признак перегрузки соседями — параметр steal в утилитах вроде top: это время, когда гостю не хватило процессора, потому что его занял хозяин.
Другой признак ограничений — дисковая подсистема: диски бывают сетевыми или локальными, и задержки ввода-вывода у них различаются, что заметно для баз данных и почтовых серверов.
Где применяют
На VPS размещают сайты, почтовые службы, боты, средства мониторинга, тестовые среды, прокси и другие сетевые службы, которым нужен постоянный внешний IP-адрес и работа круглые сутки. Поскольку доступ через SSH, администратор сам отвечает за обновления и защиту, а провайдер отвечает только за платформу.
Из-за этого обычная ошибка новичков — оставленный открытый вход по паролю и устаревшие пакеты. Основные меры: ключи SSH, файрвол и регулярные обновления.
Полезное правило: не запускайте на одном небольшом VPS всё подряд, а разделяйте роли и следите за тем, чтобы у каждой службы были свои лимиты и понятные журналы.
Заблуждения и проверка: VPS
Заблуждение: VPS полностью защищён от соседей. Изоляция сильна, но уязвимости гипервизора хоть и редки, но известны. Ещё заблуждение — что vCPU равно ядру. Проверить тип виртуализации можно командой systemd-detect-virt на Linux, а лимиты и нагрузку — через lscpu, free и top.
Если сервис требует стабильной производительности и особых аппаратных функций, стоит рассмотреть выделенный сервер, описанный на соседней странице.
При появлении необъяснимых тормозов сначала посмотрите на загрузку диска и параметр steal, а затем на процессы: часто причина в самом приложении, а не в соседях.
Полезно также знать, что при переезде на другой VPS достаточно перенести данные и конфигурацию, а сам IP-адрес меняется, что нужно учесть в DNS-записях и настройках доверенных адресов.
Безопасная первичная настройка
Новый VPS сразу становится целью автоматических сканеров: уже через минуты в журнале появляются попытки подбора паролей. Поэтому первые действия стандартны: создать отдельного пользователя вместо постоянной работы под root, настроить вход по ключам SSH и отключить парольную аутентификацию.
Затем обновите систему, включите файрвол и оставьте открытыми только нужные порты. Полезны дополнительные меры: ограничение попыток входа, автоматические обновления безопасности и мониторинг диска и памяти, чтобы вовремя заметить, что ресурсы заканчиваются.
Резервные копии провайдера, если они предусмотрены, стоит дополнить собственными, потому что снимок всего диска не всегда согласован с состоянием базы данных.