Виртуальная машина несёт собственную гостевую операционную систему и виртуальное оборудование; контейнер делит ядро хоста и ограничивается пространствами имён и контрольными группами. Отсюда разная плотность и разная цена изоляции.
Виртуализация
Определение
Виртуализация — это запуск нескольких независимых операционных систем на одном физическом сервере: гипервизор делит между ними процессор, память, диски и сеть. Гостевые системы изолированы логически, но сервер и гипервизор у них общие — это одна область отказа.
Также ищут: Virtualization · серверная виртуализация · виртуализация серверов
Зачем это знать
Сегодня «сервер под задачу» почти всегда покупают под виртуализацию: одна платформа несёт десяток служб. Отсюда другие требования к железу — памяти нужно больше, чем сумме задач, сеть и хранилище становятся общими, а отказ одного узла задевает сразу всех его постояльцев. Понять это нужно до выбора модели, а не после первого отказа.
Карта понятия
Что подтверждено
При полной виртуализации одна или несколько операционных систем и их приложения работают с виртуальным оборудованием, а гипервизор управляет доступом гостей к физическим ресурсам.
Граница применимости: Серверные и настольные системы полной виртуализации по NIST SP 800-125; контейнеры уровня операционной системы используют другую модель изоляции.
Гостевые системы могут быть логически изолированы, но компрометация гипервизора создаёт общую угрозу для всех виртуальных машин этого хоста.
Граница применимости: Граница безопасности хоста полной виртуализации; степень изоляции зависит от реализации, настроек и возможностей оборудования.
Живая миграция переносит работающую машину между узлами без заметного простоя, но может работать и без кластера, поэтому сама по себе не доказывает автоматический перезапуск после отказа узла.
Граница применимости: Hyper-V в Windows Server: различие планового переноса и восстановления после отказа.
Контейнеры устроены иначе: они делят ядро операционной системы хоста и разграничиваются пространствами имён и контрольными группами, а не собственной гостевой системой.
Граница применимости: Сопоставление модели полной виртуализации NIST SP 800-125 с механизмами изоляции ядра Linux; сравнение не оценивает стойкость этих границ.
Не путать
Что проверить
- Сложить память всех запланированных машин и добавить запас на сам гипервизор — и только потом смотреть на число процессорных ядер.
- Проверить, из каких узлов будет состоять кластер: узел назначения должен подходить конкретной машине по конфигурации и свободным ресурсам.
- Решить заранее, где лежат диски машин — на локальном массиве узла или на общем хранилище: от этого зависят и сеть, и число отсеков.
- Посчитать, что произойдёт при отказе одного узла: сколько машин встанет и где они запустятся.
Первоисточники
- Guide to Security for Full Virtualization Technologies
Определяет full virtualization, VM/guest, hypervisor, bare-metal и hosted architectures, snapshot и isolation boundary.
- Live Migration Overview
Отделяет перенос работающей VM без воспринимаемого простоя от automatic failover и показывает, что live migration может работать без кластера.
- Failover Clustering in Windows Server and Azure Local
Описывает nodes, clustered roles, health monitoring, failover и quorum в failover cluster.
- namespaces(7) — Linux manual page
Описывает отдельные представления системных ресурсов в пространствах имён Linux и перечисляет изолируемые классы объектов.
- Control Group v2
Описывает иерархическое распределение ресурсов, контроллеры, ограничения, учёт потребления и пространство имён cgroup.
Связанные понятия
В каталоге
- Серверные платформы — Платформа под кластер виртуализации — то, с чего начинается расчёт.
- Оперативная память — Память упирается в потолок платформы раньше процессора.
- Процессоры — Однородность узлов кластера проверяют по модели процессора.
Следующий шаг
Сформулируйте задачу и уточните требования к своей системе.
Подготовить состав проектаОткроется черновик вопроса. Отправьте его, когда будете готовы.