Лекция 2. Виртуализация_ KVM
Описание файла
PDF-файл из архива "Лекция 2. Виртуализация_ KVM", который расположен в категории "". Всё это находится в предмете "облачные вычисления и виртуализация (vcc)" из 11 семестр (3 семестр магистратуры), которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст из PDF
ВиртуализацияАнтоненко ВиталийВиртуализация «на пальцах»• Виртуализация компьютера означает, что можно заставитькомпьютер казаться сразу несколькими компьютерамиодновременно или совершенно другим компьютером.• Виртуализацией также называется ситуация, когда несколькокомпьютеров представляются как один отдельный компьютер.• Другое использование виртуализации заключается в симуляциипроцессора. Это, так называемая, P-code (или pseudo-code)машина. P-code – это машинный язык, который выполняется навиртуальной машине, а не на реальном оборудовании.Виртуализация и Облачные Вычисления, Лекция поВиртуализации2Основной аспект виртуализации• виртуальные команды переводятся (транслируются) нафизические команды основного оборудования.• Обычно это происходит динамически.Виртуализация и Облачные Вычисления, Лекция поВиртуализации3Виртуализация• Виртуализация относится к разделениюресурсов физической системы (такой какпроцессов, память, сеть и диск) нанесколько виртуальных ресурсов.• Ключевые облачные технологиипозволяют объединять разные типыресурсов в пулы.• В облаке ресурсы объединяются в пулыдля обслуживания несколькихпользователей (multi-tenancy).Виртуализация и Облачные Вычисления, Лекция поВиртуализации4Терминология• Симуляция• Эмуляция• Интерпретация• Двоичная трансляция• Виртуализация• Хозяйская система (Host)• Гостевая система (Guest)Виртуализация и Облачные Вычисления, Лекция поВиртуализации5Интерпретация на примере ЦП• Fetch — чтение машинного кода из памяти.• Decode — декодирование текущей функции,заключённой в инструкции, а также еёаргументов — операндов.• Execute — исполнение функции надаргументами.• Writeback — запись результатов память.• Advance PC — продвижения регистрауказателя инструкций (PC, program counter).Виртуализация и Облачные Вычисления, Лекция поВиртуализации6Интерпретация• Практически всегда первый тип модели, создаваемый для новойархитектуры процессора• Плюсы• Простота• Минусы• Низкая скорость работыВиртуализация и Облачные Вычисления, Лекция поВиртуализации7Динамическая трансляция• Повторяемость кода• Капсулы хозяйского кода• Блок трансляцииВиртуализация и Облачные Вычисления, Лекция поВиртуализации8Проблема динамической трансляции• Проблема обнаружения кода• В оперативной памяти данные (переменные, массивы, константы,строки и т.д.) и код программ хранятся вместе.
Двоичнаятрансляция блоков данных (рассматриваемых как код!)бесполезна: управление на них никогда не будет передано.• В архитектурах, допускающих переменную длину инструкций,очень важен адрес, с которого начинается их декодирование.Сдвиг даже на один байт приводит к полной смене смыслапоследовательности.• Результат декодирования зависит от режима процессора.Например, для архитектуры ARM есть фактически два набораинструкций — полный 32 битный и урезанный 16-битный Thumb,переход между которыми происходит с помощью команды BX• Самомодифицирующийся код• Устаревание транслированных блоков• Ограниченность оптимизацийВиртуализация и Облачные Вычисления, Лекция поВиртуализации9Прямое исполнение• Архитектуры гостя и хозяина совпадают (или почти совпадают)• Проблемы:• Доступы к памяти. Адресное пространство гостя занимает лишь часть памятисимулятора. Данные и код симулируемой системы не обязательно будут находитьсяпо тем же адресам, по которым они располагались в реальности.• Возврат управления.
Как можно «заставить» симулируемое приложение отдатьуправление обратно симулятору?• Привилегированные инструкции. Симулятор работает в непривилегированномрежиме пользовательского приложения, а гостевой код может содержатьинструкции системных режимов. Попытка их исполнения приведёт к аварийномузавершению симулятора.• Существуют программы двоичной инструментации, позволяющие«незаметно» для гостевого приложения подменять машинный кодвыбранных инструкций.Виртуализация и Облачные Вычисления, Лекция поВиртуализации10Типы виртуализации• Полная виртуализация (Динамическая трансляция)• При полной виртуализации гостевая операционная системы полностью отделяется от управленияинфраструктурой хоста.
Гостевая ОС не требует никаких изменений, и не подозревает, что оназапущена в виртуальном окружении. Полная виртуализация предоставляет возможность прямогоисполнения запросов пользователя, и бинарной трансляции запросов ОС.• Паравиртуализация• В паравиртуализации гостевая ОС модифицируется для коммуникации с гипервизором с цельюулучшения производительности и эффективности работы. В ядре гостевой ОС модифицируютсяневиртуализуемые инструкции на гипервызовы, которые напрямую отправляются в гипервизор.• Аппаратная виртуализация• Аппаратные средства поддержки виртуализации являются опциональным свойством производимогооборудования. Например, средства виртуализации копании Intel (VT-x) и AMD (AMD-V),встраиваемые в соответствующие оборудование.
При аппаратной виртуализации определённыйнабор вызов отлавливается на уровне оборудования и отправляется напрямую в гипервизор.Следовательно, отпадает необходимость в бинарной трансляции, или пара-виртуализации.Виртуализация и Облачные Вычисления, Лекция поВиртуализации11Гипервизор• Виртуализация представляется гипервизором илимонитором виртуальных машин (VMM).• Гипервизор представляет собой виртуальнуюплатформу управления гостевыми операционнымисистемами (ОС).Type-1 Hypervisor• Первый тип гипервизоров• Нативные гипервизоры, которые запускаются напрямую наоборудовании хоста, контролируют это оборудования, иосуществляют мониторинг гостевые операционные системы.• Второй тип гипервизоров• Гипервизоры, которые запускаются поверх операционнойсистемы хоста и осуществляют мониторинг гостевойоперационной системы.Виртуализация и Облачные Вычисления, Лекция поВиртуализацииType-2 Hypervisor12Гипервизор Xen• Гостевой гипервизор разработанный в2003 в Кембриджскомуниверситете.• Использует пять подходов для запуска гостевой ВМ:•••••Full virtualizationparavirtualizationFull virtualization with paravirtualization driversParavirtualization with full virtualization driversParavirtualization in a container• Первый и Второй типгипевизораВиртуализация и Облачные Вычисления, Лекция поВиртуализации13Гипервизор KVM• KVM ( Kernel-based Virtual Machine)• Linux host OS• Компонент ядра KVM включен в Linux, начиная с 2.6.20, 2007.• Требует аппаратной виртуализации ЦП (Intel VT-x, AMD-V)• Использует интерфейс /dev/kvm для:• Установки гостевой ВМ• Запуска симулятора I/O• Запуска симулятора видео дисплея на хосте• Второй тип гипервизора• KVM может создавать несколько гостевых ВМ• запускать не модифицированные Linux or Windows образы.Виртуализация и Облачные Вычисления, Лекция поВиртуализации14Гипервизор VirtualBox• Oracle VirtualBox, разработан компанией Innoteck в 2007, апосле поглощён компанией Sun microsystems.• Software и hardware техника виртуализации• Paravirtualization и full virtualization• ОС хоста: Linux, OSX, Windows• Гостевые ОС: Linux, OSX, Windows• Второй тип гипервизораВиртуализация и Облачные Вычисления, Лекция поВиртуализации15Преимущества виртуализации• Сокращение затрат на приобретение и поддержкуоборудования• Сокращение серверного парка• Сокращение штата IT-сотрудников• Простота в обслуживании• Клонирование и резервированиеВиртуализация и Облачные Вычисления, Лекция поВиртуализации16Проекты виртуализации для LinuxПроектТипЛицензияBochsЭмуляцияLGPLQEMUЭмуляцияLGPL/GPLVMwareПолная виртуализацияПроприетарноеz/VMПолная виртуализацияПроприетарноеXenПаравиртуализацияGPLUMLПаравиртуализацияGPLLinux-VServerВиртуализация уровня операционнойсистемыGPLOpenVZВиртуализация уровня операционнойсистемыGPLВиртуализация и Облачные Вычисления, Лекция поВиртуализации17Linux KVM (Kernel Virtual Machine)• KVM -- решение для полной виртуализации• Превращает ядро Linux в гипервизор, используямодуль ядра• Помимо режима ядра и режима пользователя,KVM представляет новый гостевой режим.Виртуализация и Облачные Вычисления, Лекция поВиртуализации18Подготовка к установке KVM• $ egrep -c '(vmx|svm)' /proc/cpuinfoВиртуализация и Облачные Вычисления, Лекция поВиртуализации19Скачивание и установка KVM• $ apt-get install qemu-kvm libvirt-bin• $apt-get install bridge-utils virt-manager python-virtinst• (опционально) $ apt-get install ubuntu-vm-builderВиртуализация и Облачные Вычисления, Лекция поВиртуализации20Использование VMM• При первом запуске программы вы увидите две категории, обене подключенные.
Это ссылки на стандартные модули KVM, покане работающие. Для их использования щелкните правойкнопкой мыши и выберите "connect".Виртуализация и Облачные Вычисления, Лекция поВиртуализации21Использование VMMВиртуализация и Облачные Вычисления, Лекция поВиртуализации22Использование VMMВиртуализация и Облачные Вычисления, Лекция поВиртуализации23Использование VMMВиртуализация и Облачные Вычисления, Лекция поВиртуализации24Использование VMMВиртуализация и Облачные Вычисления, Лекция поВиртуализации25Использование VMMВиртуализация и Облачные Вычисления, Лекция поВиртуализации26Создание виртуальной машиныВиртуализация и Облачные Вычисления, Лекция поВиртуализации27Создание виртуальной машиныВиртуализация и Облачные Вычисления, Лекция поВиртуализации28Создание виртуальной машиныВиртуализация и Облачные Вычисления, Лекция поВиртуализации29Создание виртуальной машиныВиртуализация и Облачные Вычисления, Лекция поВиртуализации30Создание виртуальной машиныВиртуализация и Облачные Вычисления, Лекция поВиртуализации31Клонирование виртуальной машиныВиртуализация и Облачные Вычисления, Лекция поВиртуализации32Миграция виртуальной машиныВиртуализация и Облачные Вычисления, Лекция поВиртуализации33Запуск виртуальной машиныВиртуализация и Облачные Вычисления, Лекция поВиртуализации34Контейнерная виртуализация (Лекция)• OS level virtualization method for running isolated Linux systemson a single host/kernel• Released in 2008.• CPU, Memory, I/O, network limitations and prioritization for each containerwithout the need of a VM hypervisor.• Focus:• Offer distribution and vendor neutral environments for• hosting Linux systems.• Offer environments similar to VMs hosted by VMMs, but without• the overhead of running separate kernels and/or simulating• hardware interfaces.Виртуализация и Облачные Вычисления, Лекция поВиртуализации35.