Обязательно к прочтению новичкам: реализация виртуализации Linux
Обязательно к прочтению новичкам: реализация виртуализации Linux
В начале статьи я должен представить вам босса открытого исходного кода GitHub.,да Сеньор из Tencent,Адрес склада:https://github.com/yifengyou,Содержит различные материалы для его изучения.,Включая режим ядра Linux, пользовательский режим, виртуализацию, облачный режим, язык программирования и другие категории.,Очень шокирует. Вы можете посмотреть таблицу вкладов,Почувствуй давление,Этот здоровяк все еще учится, когда ему исполнилось 30 лет!
Краткое обсуждение виртуализации
1. Полная виртуализация:
Полная виртуализация использует монитор виртуальной машины (VMM) или программный уровень, называемый гипервизором, для эмуляции базового оборудования. Гипервизор расположен между аппаратным обеспечением хоста и виртуальной машиной и отвечает за координацию запросов доступа виртуальной машины к оборудованию.
Полная с аппаратной поддержкой виртуализация: современная CPU расширение виртуализации (Intel VT-x или AMD-V), эти технологии предоставляют возможности контроля выполнения, которые позволяют hypervisor Эффективно управляйте и изолируйте инструкции, выполняемые в виртуальных средах, без необходимости программной эмуляции.
Двоичный перевод: для систем, в которых отсутствует аппаратная поддержка, гипервизор Необходимо использовать бинарный перевод (двоичный перевод) для обработки инструкций виртуализации, которые напрямую не поддерживаются центральным процессором. Этот метод реализуется путем преобразования инструкций виртуализации в инструкции хоста во время выполнения.
2. Паравиртуализация:
Паравиртуализация требует, чтобы гостевые операционные системы знали, что они работают в виртуальной среде, и вносили соответствующие изменения для взаимодействия с гипервизором. Это означает, что критические элементы гостевой операционной системы, такие как управление памятью и операции устройств ввода-вывода, необходимо оптимизировать для виртуализированной среды.
Гипервызовы: пополам виртуализация, модифицированная Операционная система через интерфейс гипервызова с hypervisor коммуникация. Это похоже на системный вызов applicationuse с Операционная. системакоммуникация。
3. Виртуализация на уровне операционной системы (контейнеризация):
Контейнеризация — это облегченная форма виртуализации, при которой виртуализация происходит на уровне операционной системы. Приложения внутри контейнера используют ядро операционной системы хоста, но выполняются в изолированном пользовательском пространстве.
Linux Containers (LXC):LXC давыполнить Операционная Технология, которая использует Linux Особенности ядра, такие как cgroups и namespace,来выполнить资源管理иизоляция。
Пространства имен: Thisда Linux Функция, предоставляемая ядром для изоляции и управления системными ресурсами. Пространства имен Разделите системные ресурсы на отдельные области (например, Пространства имен PID (идентификатор процесса), сеть namespaces、mount namespaces и т. д.), каждый контейнер в своем namespace При запуске вы не увидите и не затронете другие ресурсы контейнера.
Control Groups (cgroups):cgroups да Linux Еще одна функция ядра, которая используется для ограничения и записи физических ресурсов изолированных групп процессов (таких как Процессор, память, диск ввод-вывод, сеть и т. д.). проходить cgroups,Системные администраторы могут точно контролировать, сколько ресурсов может использовать каждый контейнер.,Обеспечить справедливость и эффективность распределения ресурсов.
Docker:Docker использовать LXC В качестве исходной среды выполнения контейнера позже была разработана собственная среда выполнения контейнера, а именно: Docker Engine。Docker контейнерпроходить Dockerfile настроен и может быть настроен через Docker Hub делиться.
KVM
KVM (виртуальная машина на основе ядра) — это решение виртуализации, которое может запускать несколько изолированных виртуальных машин в системе Linux. Каждая виртуальная машина имеет собственное оборудование виртуализации: ЦП, память, диск и т. д., поэтому они могут запускать свои собственные операционные системы.
KVM — это аппаратная технология виртуализации, которая использует преимущества расширений виртуализации в современных процессорах (таких как технология Intel VT-x или технология AMD-V от AMD) для обеспечения эффективной производительности виртуальных машин. KVM сам по себе является частью ядра Linux, а это означает, что он может использовать все функции и оптимизации ядра Linux.
KVM имеет открытый исходный код и лежит в основе многих платформ виртуализации и решений для облачных вычислений, таких как OpenStack и Proxmox VE. Пользователи могут управлять виртуальными машинами KVM с помощью инструментов и API, таких как libvirt, или использовать интерфейсы с графическим интерфейсом, такие как Virt-Manager, для создания, мониторинга и управления виртуальными машинами.
Основное различие между KVM, VMware и OpenStack заключается в их позиционировании, используемых технологиях и функциях.
Разница между KVM и VMware:
Открытый исходный код или проприетарный: KVM (на основе ядра) Virtual Machine) инфраструктура виртуализации с открытым исходным кодом, которая может быть интегрирована в ядро Linux, а также проприетарное решение виртуализации, предоставляемое VMware, основными продуктами которой являются VMware. vSphere/ESXida имеет закрытый исходный код.
Стоимость: KVM как программное обеспечение с открытым исходным кодом.,Прямых затрат обычно нет.,Но вам, возможно, придется потратить время на настройку и управление. Продукты VMware обычно требуют приобретения лицензии.,Особенно да для функциональности корпоративного уровня.
Инструменты управления: VMware предоставляет полный набор зрелых инструментов управления.,Такие как vCenter,Может обеспечить централизованное управление и богатые функции. KVM обычно полагается на другие проекты с открытым исходным кодом, такие как libvirt для управления.,или через сторонние инструменты, такие как Virt-Manager, Proxmox ВЕ и др.
Производительность и возможности: VMware известна своей хорошей производительностью и расширенными функциями (такими как vMotion, Storage ДРС и др.). KVM как часть Linux,Производительность тоже очень хорошая,Но для реализации некоторых расширенных функций могут потребоваться дополнительные инструменты и настройки.
Разница между KVM и OpenStack:
Уровень виртуализации и облачная платформа: уровень виртуализации KVM,Предоставляет аппаратные возможности OpenStack — платформа управления облачными вычислениями с открытым исходным кодом;,Его можно использовать для создания публичных и частных облачных сред и управления ими.
Область действия: КВМсосредоточиться на Использовать виртуализацию физического сервера для нескольких виртуальных машина。OpenStackОн охватывает больше компонентов облачных сервисов.,Такие как вычисления (Nova), хранилище (Cinder/Swift) и сеть (Neutron) и другие модули.,Он может использовать технологию KVM в качестве базового вычислительного узла.
сценарий использования: KVM обычно подходит для сценариев, требующих сервера виртуализации, а OpenStack подходит для сценариев, требующих создания всей среды облачных вычислений и управления ею.
Уровень интеграции: OpenStack предназначен для интеграции с различными технологиями виртуализации.,Не ограничивается KVM. Он также работает с решениями виртуализации, такими как VMware, XenиHyper-V и т. д.
В целом KVM — это в основном технология виртуализации, VMware — коммерческая компания, предоставляющая более широкий спектр решений по виртуализации, а OpenStack — это инфраструктура управления облачной платформой с KVM в качестве одного из вариантов.