Рубрики
Виртуализация

Виртуализация на рабочем месте

TODO: Составить план виртуализации, контейнеризации, изоляции.

  • Исторически так сложилось, что я не хочу выбирать операционную систему. Любая из них мне может предоставаить что-то уникальое. Так, что ради него не хочется отказываться, но и отказываться от других операционных систем ради него тоже нет желания и резона.
  • Представим себе, что хочется запустить некоторое приложение, но нет к нему доверия. Или запустить приложение Windows на Linux или Android на MacOS и т.п.

TODO:Подготовить тестовую платформу, сконфигурировать (WHPX), подобрать пакеты для бенчмаркинга и запустить. Можно два отдельных варианта с Intel и AMD.

TODO: А Docker+VNC заработает? https://stackoverflow.com/questions/16296753/can-you-run-gui-applications-in-a-docker-container. Может даже WSL. Возможно, стоит отдельно вынести обсуждение виртуализации и прицепиться к этой идее.

  • https://itnext.io/using-windows-10-as-a-desktop-environment-for-linux-7b2d8239f2f1
  • Идея абстракции в том, что для нас ОС может быть абстракцией. Нет желания разбираться с тонкостями тех или иных просто хочется запускать приложения и извлекать максимум из каждой из них.
  • В случае с WSL2 надо будет только разобраться со скоростью диска. И тогда можно разделить на серию статей, WSL -> Docker -> QEMU.

TODO: Скорее всего, надо искать способы отладки и профайлинга QEMU. В этом может быть его основное преимущество над остальными средствами виртуализации. Также посмотреть логи.

TODO: Попробовать QEMU 4?

TODO:Инсталляция виснет в самых разных моментах. И такое ощущение, что странно зависит от мыши.

TODO: Попробовать включить VNC, отключить мышь и прочие устройства. Пока мне этот способ нравится чуть больше с точки зрения SRP (пусть VNC-клиент делает то, что он умеет, а QEMU — своё) и с точки зрения глюков на удалённом десктопе (не теряется мышь, нет ненужного grab).

  • Хотя нет, глюки с мышью не ушли

TODO: Можно сделать образ установленной и подготовленной ОС (скажем, Windows) один раз, а потом клонировать qcow2.

TODO: Посмотреть исходники

TODO: Преимущества

Например, создание отдельных «рискованных» станций, защищённых. Шифрование, живая миграция и т.п. Отсутствие ограничения на операционный системы и платформы (Android, MacOS). Отсылка как размышлениями об абстракциях? Виртуализация, изоляция различных устройств и т.п.

  • Возможность отключать у виртуальных машин интернет, подключать диски из ISO и другим образом экспериментировать с оборудованием, что проблематично на физической машине.
  • Существенная экономия ресурсов (память, процессор) если целые группы приложений и сервисов запускать отдельно (запуская виртуалку).
  • Для разработчика. Например, используя QEMU-виртуализации можно тестировать самые разные эпик-фейлы, вроде тестов http://jepsen.io. В QEMU вроде куча всяких отладочных историй, трейсингов и прочих радостей.
  • QEMU поддерживает огромное количество архитектур и устройств. Можно создавать приложение, даже не имея устройства в наличии. Да и имея, разрабатывать и отлаживать всё равно проще.

TODO: QEMU и эксперименты на Windows

TODO:Почему QEMU. Хотя бы потому, что он — свободный и надо дать ему шанс. Плюс Windows/Linux, Android (как пример сложной эмуляции для разработчика) и т.п. И в целом для разработчика он может быть удобен, например https://javiermunhoz.com/blog/2016/01/24/windows-10-kernel-debugging-on-qemu.html (и наверняка есть более интересные устройства).

TODO: https://habr.com/ru/company/virtuozzo/blog/538680/ и https://libvirt.org/windows.html

TODO: Подопытный #1. Скачать ванильную инсталляцию Windows10 https://www.microsoft.com/en-gb/software-download/windows10

TODO: https://readthedocs.org/projects/qemu/downloads/pdf/latest/

TODO:Первая же загрузка Windows проходит медленно. Надо сравнить с Hyper-V.

TODO: Есть режим отладки?

TODO:Попробовать Linux ради любопытства.

TODO:Попробовать на Wintel. В том числе HAXM.

TODO: Посмотреть исходники QEMU

TODO: Посмотреть код

TODO:Основной диск

TODO:Решить вопрос либо с сетью, либо с прикреплением хостовых дисков, чтобы загрузить инструменты бенчмаркинга.

TODO: Провести бенчмаркинг и сравнить с хостовой системой, где проседает.

  • Хорошо бы отдельно подобрать программы для тестов и бенчмаркинга.
  • Кажется VHDX быстрее qcow2. Можно попробовать qemu-img bench.
  • Попробовать VHDX прикрепить как диск и QEMU пусть использует диск (-hda \\.\PhysicalDriveN, Get-PhysicalDisk).

TODO: Что использовать для анализа производительности? В целом скорость удручающая. Хотя нагрузки на процессор или другие подсистемы нет. Есть предположение, что проблемы с qcow2, поскольку менеджер задач визуализирует нагрузку 50% при достаточно скромных показателях чтения и записи.

TODO: Решить вопрос с сетью, попробовать другие варианты вместо qcow2 или изменить его настройки. Или сделать преаллокацию (fallocate?). https://qemu-project.gitlab.io/qemu/

TODO: Архитектура, HAXM/WHPX/KVM

TODO:QEMU может быть хорошим и простым интерфейсом (абстракцией) для Hyper-V, позволяя переносить навыки с одной платформы на другую.

TODO: В Windows диск виден как HDD, может его цеплять другим образом? Как блочное устройство?

TODO: Может ли QEMU работать со «слоёными» фаловыми системами. Скорее всего вряд ли, всё-таки она больше с блочными устройствами.

TODO: Процессор

TODO:Попробовать https://www.digitalfoundations.com.au/blog/qemu-5-on-windows-host-with-whpx/. С smp WHPX постоянно подвисает.

TODO: https://linustechtips.com/topic/1193802-qemu-on-windows-exits-with-error-whpx-failed-to-emulate-mmio-access-with-emulatorreturnstatus-2/

TODO: QEMU и эксперименты с Android

TODO: QEMU и эксперименты с MacOS

https://github.com/foxlet/macOS-Simple-KVM

TODO: QEMU может эмулировать интересные устройства?

https://blog.frankenmichl.de/2018/02/13/add-nvme-device-to-vm/

TODO: Другие виды виртуализации

https://stackoverflow.com/questions/40658095/how-to-open-ubuntu-gui-inside-a-docker-image

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *