Обязательно к прочтению новичкам: реализация виртуализации 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:

  1. Открытый исходный код или проприетарный: KVM (на основе ядра) Virtual Machine) инфраструктура виртуализации с открытым исходным кодом, которая может быть интегрирована в ядро ​​Linux, а также проприетарное решение виртуализации, предоставляемое VMware, основными продуктами которой являются VMware. vSphere/ESXida имеет закрытый исходный код.
  2. Стоимость: KVM как программное обеспечение с открытым исходным кодом.,Прямых затрат обычно нет.,Но вам, возможно, придется потратить время на настройку и управление. Продукты VMware обычно требуют приобретения лицензии.,Особенно да для функциональности корпоративного уровня.
  3. Инструменты управления: VMware предоставляет полный набор зрелых инструментов управления.,Такие как vCenter,Может обеспечить централизованное управление и богатые функции. KVM обычно полагается на другие проекты с открытым исходным кодом, такие как libvirt для управления.,или через сторонние инструменты, такие как Virt-Manager, Proxmox ВЕ и др.
  4. Производительность и возможности: VMware известна своей хорошей производительностью и расширенными функциями (такими как vMotion, Storage ДРС и др.). KVM как часть Linux,Производительность тоже очень хорошая,Но для реализации некоторых расширенных функций могут потребоваться дополнительные инструменты и настройки.

Разница между KVM и OpenStack:

  1. Уровень виртуализации и облачная платформа: уровень виртуализации KVM,Предоставляет аппаратные возможности OpenStack — платформа управления облачными вычислениями с открытым исходным кодом;,Его можно использовать для создания публичных и частных облачных сред и управления ими.
  2. Область действия: КВМсосредоточиться на Использовать виртуализацию физического сервера для нескольких виртуальных машина。OpenStackОн охватывает больше компонентов облачных сервисов.,Такие как вычисления (Nova), хранилище (Cinder/Swift) и сеть (Neutron) и другие модули.,Он может использовать технологию KVM в качестве базового вычислительного узла.
  3. сценарий использования: KVM обычно подходит для сценариев, требующих сервера виртуализации, а OpenStack подходит для сценариев, требующих создания всей среды облачных вычислений и управления ею.
  4. Уровень интеграции: OpenStack предназначен для интеграции с различными технологиями виртуализации.,Не ограничивается KVM. Он также работает с решениями виртуализации, такими как VMware, XenиHyper-V и т. д.

В целом KVM — это в основном технология виртуализации, VMware — коммерческая компания, предоставляющая более широкий спектр решений по виртуализации, а OpenStack — это инфраструктура управления облачной платформой с KVM в качестве одного из вариантов.

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose