Сегодня я пошел на собеседование, и мне сказали, что в течение нескольких месяцев я буду заниматься виртуализацией серверов Linux. Я как бы знаю, что означает виртуализация, поскольку я использую Virtualbox, но я не совсем уверен, как это относится к серверам или как обычно используется в типичном сценарии работы. Могу я получить краткие пояснения по этому поводу? Обязательно будьте технически.
Спасибо!
Короче говоря, виртуализация - это создание чего-то виртуального (а не физического или фактического), такого как операционная система, запоминающее устройство, сервер или даже сетевое устройство (например, коммутатор).
Поскольку вы спрашиваете конкретно о виртуализации Linux, я предполагаю, что вы ссылаетесь на серверы и рабочие столы:
Виртуализация серверов - это маскирование серверных ресурсов (включая номера и идентификационные данные отдельных физических серверов, процессоров и операционных систем) от пользователей сервера.
Виртуализация рабочих столов - маскирование ресурсов рабочего стола (включая номер и идентификацию отдельных физических настольных компьютеров, процессоров и операционных систем) от пользователей настольных компьютеров.
С каждым - Намерение состоит в том, чтобы избавить пользователя от необходимости понимать и управлять сложными деталями ресурсов сервера / рабочего стола, одновременно увеличивая совместное использование и использование ресурсов и сохраняя возможности для дальнейшего расширения.
Существует множество различных подходов к виртуализации системы, каждый из которых имеет свои преимущества и недостатки.
Паравиртуализация:
Вкратце: для более эффективной работы ядро гостевой операционной системы заменено на ядро, которое хорошо работает в виртуализированной среде.
Xen, lguest и пользовательский режим Linux выполняют паравиртуализацию на x86.
Аппаратная виртуализация
Процессоры Intel VT и AMD-V могут выполнять все инструкции на непривилегированной виртуальной машине и обеспечивать их надлежащее поведение. В большинстве случаев большая часть ресурсов эмулируется (например, часы). Тем не менее, это позволяет реализовать более чистую реализацию полной виртуализации.
Xen и KVM обеспечивают полную виртуализацию с аппаратной поддержкой.
Виртуализация на уровне операционной системы - (Контейнеры)
Контейнеры вообще не запускают виртуальные машины, а просто отделяют несколько сред пользовательского пространства друг от друга, в то время как все работает под управлением одного ядра. (Одна из основных причин, по которой многие системные администраторы предпочитают это, заключается в том, что им нужно исправлять или поддерживать только одно ядро, а не много.) Контейнерные системы имеют тенденцию к низким накладным расходам и высокой плотности, но также к более низкой изоляции между различными контейнерами. Это, конечно, имеет свою цену - поскольку контейнерные системы позволяют запускать только одно ядро, - однако они поддерживают одновременно разные дистрибутивы Linux в разных контейнерах. Существует несколько различных контейнерных систем, таких как Solaris Zones, Linux-VServer и OpenVZ / Virtuozzo. OpenVZ имеет относительно полную изоляцию ресурсов между различными контейнерами, два других имеют немного меньший контроль. FreeBSD Jails можно рассматривать как предшественников контейнеров - однако Jails, конечно, или делают BSD не Linux.
Надеюсь, это поможет вам получить простое представление о виртуализации Linux.
Я бы посоветовал заглянуть в проект Proxmox http://www.proxmox.com/products/proxmox-ve Он имеет открытый исходный код и позволит вам одновременно тестировать не только KVM, но и виртуализацию на основе контейнеров в одной и той же системе.
Обязательно прокомментируйте эту рецензию и проголосуйте.
Глен дал вам техническое описание того, что такое виртуализация, но не много информации о преимуществах.
IME, основные моменты: