Показаны сообщения с ярлыком виртуализация. Показать все сообщения
Показаны сообщения с ярлыком виртуализация. Показать все сообщения

Установка VMware Workstation 12.5.9 Pro for Linux на Ubuntu 18.04 LTS "Bionic Beaver"


$ cd /tmp
$ wget https://download3.vmware.com/software/wkst/file/VMware-Workstation-Full-12.5.9-7535481.x86_64.bundle
$ chmod +x VMware-Workstation-Full-12.5.9-7535481.x86_64.bundle
$ sudo ./VMware-Workstation-Full-12.5.9-7535481.x86_64.bundle

Поддержка сети через 'host-only' адаптер в VirtualBox

Виртуальные машины смогут общаться между собой и хостом так как если бы они были соединены через физический ethernet switch. Виртуальные машины не смогут общаться с внешним миром.

Общение с внешним миром возможно при использовании NAT адаптера.

Можно добавить сразу оба адаптера к виртуальной машине; "host-only" для guest-host взаимодействия; "NAT" для выхода во внешний мир.


Как запустить приложение из Google Play на компьютере

Шаг № 1

Скачать и установить VirtualBox:

Шаг № 2

Скачать образ диска с установленной системой Android:

Android-x86 7.1-R1 Nougat
VirtualBox (VDI) 32bit
Size: 706MB
SHA256: 43ffcc6ebc26282d771f544d0dd3d957e57140d4e732a8d5cc29881cff05e810
https://drive.google.com/file/d/14-H6oXzB0LMVRY54015KVyrCobLScXhU/view?usp=sharing

Другие образы можно скачать здесь.

Как запустить Chromium в LXD контейнере

При установке я буду опираться на почти официальное руководство:
LXC 1.0: GUI in containers [9/10]

Создание контейнера

$ lxc image info ubuntu:

$ lxc launch ubuntu: chromium-container
или
$ lxc init ubuntu: chromium-container

$ lxc info chromium-container

OSv — легковесная ОС для гипервизора

Виртуализация используется для всего, начиная от запуска серверов и заканчивая тестированием приложений.

Гипервизор (Hypervisor) (или Монитор виртуальных машин) — (в компьютерах) программа или аппаратная схема, обеспечивающая или позволяющая одновременное, параллельное выполнение нескольких или даже многих операционных систем на одном и том же хост-компьютере. Гипервизор также обеспечивает изоляцию операционных систем друг от друга, защиту и безопасность, разделение ресурсов между различными запущенными ОС и управление ресурсами.

В случае запуска каждого сервиса в обособленной виртуальной машине возможности полноценной ОС оказываются избыточны: развитая файловая система не нужна, разделение времени в большинстве случаев тоже, многопользовательский режим не нужен, разделение процессов между режимом ядра и пользовательским бессмысленно, драйверы ни к чему, множество внутренних прослоек и дополнительных компонентов не нужны. Все это лишь замедляет ОС, делает ее слишком сложной и уязвимой.

OSv - ОС, созданная исключительно для работы в виртуальных окружениях.

В целом в ОС реализовано четыре простых идеи:
  • Одна память на всех. В OSv нет разделения памяти как между ядром и приложениями, так и между самими приложениями. Вся оперативная память — это одна большая страница, доступная для записи, чтения и исполнения всем, включая пользовательские процессы и процессы ядра. И те и другие здесь всего лишь нити, а понятия «режим ядра» и «пользовательский режим» вообще не существуют.
  • Максимально простой дизайн. Являясь операционной системой для виртуальных окружений, OSv не включает в себя драйверов и многочисленных прослоек, предназначенных для упрощения переноса ОС на другие архитектуры.
  • Автоматическая конфигурация. В системе нет ни одного конфигурационного файла. После запуска она просто работает.
  • Интегрированная Java-машина. OSv ориентирована в первую очередь на запуск Java-приложений, но может быть использована и для запуска серверов на Си (требуется портирование), а также на таких языках, как Ruby (jRuby), Python (Jython) и JavaScript (Rhino, Nashorn).

Производительность OSv — легковесной ОС для гипервизора

Инструменты:
  • SPECjvm2008 для тестирования Java-приложений;
  • memaslap для тестирования производительности Memcached 1.4.15 в стандартной конфигурации.

В качестве хоста выступал Intel Haswell i7-4770 с 16 Гб оперативной памяти и 64-битной Fedora 19 с установленным QEMU 1.4.2 и ядром Linux 3.10.5. В сравнении участвовали OSv версии 0.01 и 64-битная Fedora 18 с ядром Linux 3.9.9. Обе работали внутри одноядерной виртуальной машины с 3 Гб памяти и OpenJDK 1.7.0. Измерялась сетевая производительность и производительность ввода-вывода, а вот cpu intensive тесты проведены не были то ли в силу их провальности, то ли по причине молодости OSv, над оптимизацией которой пока практически не работали (это официальная причина).

Результаты тестов.
Суммарный прирост производительности Java-приложений составил меньше двух процентов, что сами разработчики объяснили использованием стандартной OpenJDK, так как оптимизированная для OSv Java-машина еще не была готова. А вот тест Memcached благодаря модели «одна память на всех», которая позволяет избежать лишних копирований буферов и переключений контекста, получился более наглядным. Memcached, запущенный в OSv, смог обслужить 286 550 запросов в секунду на канале 10 Гб, тогда как Linux-версия только 205 199 (разница составляет ~40%).

В общем-то, прирост налицо, однако было бы интересно посмотреть на результат работы Memcached, скомпилированного в виде Linux-модуля например. Другими словами, воссоздать условия запуска работы OSv внутри другой ОС.

SPECjvm2008: OSv против Linux

RUMP (NetBSD и Xen)

Несколько лет назад ребятам из проекта NetBSD, одержимым идеей создать самую портируемую ОС всех времен, пришла в голову мысль сделать на основе ядра NetBSD этакое мини-ядро, которое можно было бы запускать как обычный процесс в любой POSIX-совместимой ОС. Они взяли существующее ядро, вырезали из него драйверы, файловые системы, сетевой стек, механизм разделения памяти, планировщик процессов и вообще все, что только можно, а затем сделали так, чтобы ядро можно было запускать как обычный пользовательский процесс. В результате получилось минимальное ядро NetBSD, которое предоставляло API для драйверов, POSIX API и прочее (то есть лишь высокоуровневые абстракции, этакий слой совместимости).

Разработка получила имя RUMP (Runnable Userspace Meta-Programs — «работающие в пространстве пользователя метапрограммы») и позволила реализовать разные интересные вещи, такие, например, как запуск драйверов в пространстве пользователя (RUMP с интегрированным драйвером), запуск частей NetBSD в Linux (оформленное в виде Linux-модуля RUMP-ядро плюс нужные компоненты) или порт NetBSD в браузер (переписанное на JavaScript RUMP-ядро + автоматически конвертированные в тот же JS драйвера и другие
компоненты ОС).

RUMP-ядро

Портировав RUMP-ядро на гипервизор Xen, они получили этакую мини-ОС, способную запускать NetBSD-приложения (доступны порты приложений Memcached, Redis, nginx и MongoDB) в пространстве ядра, но при этом лишенную всего остального балласта. По сути, такой же фреймворк с POSIX API, как и OSv, но гораздо более гибкий в плане возможности формирования ядер с разной «начинкой».

Как и стандартное ядро NetBSD, RUMP-ядро можно скомпилировать, включив в него нужные компоненты, которые будут необходимы приложению. Нужен сетевой стек — правим конфиг и получаем его, не нужна файловая система — ОK, обойдемся tmpfs... В качестве примера разработчики подготовили образы с включенными в ядро библиотеками libc и libm для запуска стандартного POSIX-софта, а также образ с интегрированным интерпретатором Lua. Так же в ядро можно интегрировать виртуальную машину Java или интерпретатор Python, получив что-то вроде «Python поверх Xen/KVM».

Пока все эти разработки носят экспериментальный характер и не предназначены для повседневного использования, а в качестве гипервизора поддерживается только Xen, ну или ядро Linux, или браузер, если, конечно, тебя не смущает именование их гипервизорами.

Установка OSv

Загрузка

qcow2 - стандартный для QEMU/KVM образ.

Установка

1) Подготовка виртуального моста:
$ sudo brctl addbr virbr0
$ sudo brctl addbr eth0
$ sudo ifconfig virbr0 up

2) Скрипт, для автоматического подключения виртуального окружения к мосту:
#!/bin/sh
echo SCRIPT, $1
brctl addif virbr0 $1
ifconfig $1 up

3) Скрипт для запуска самой ОС (создает виртуальное окружение с 2 Гб памяти, двумя виртуальными процессорами и консолью):
#!/bin/sh
sudo qemu-system-x86_64 -vnc :1 \
    -gdb tcp::1234,server,nowait -m 2G -smp 2 \
    -chardev stdio,mux=on,id=stdio \
    -mon chardev=stdio,mode=readline,default \
    -device isa-serial,chardev=stdio \
    -drive file=osv-v0.02.qcow2,if=virtio,cache=unsafe \
    -netdev tap,id=hn0,script=qemu-ifup.sh,vhost=on \
    -device virtio-net-pci,netdev=hn0,id=nic1 \
    -enable-kvm -cpu host,+x2apic

Запуск

Шелл CRaSH какими-то серьезными особенностями, кроме возможности скриптинга на Clojure, он не отличается и включает в себя несколько стандартных UNIX-команд (cat, cd, ls, pwd, sleep, sort) и специфичных Java-инструментов.

Содержимое файловой системы также очень скудно: каталоги /dev (реализация devfs из FreeBSD), /etc, /tools, /usr/lib (минимальный набор библиотек, необходимых для запуска Java-машины) и /java, содержащий Java-компоненты и стандартную библиотеку классов. Сама машина Java располагается в разделяемой библиотеке /java.so (которую лучше назвать модулем ядра, хотя границы между этими понятиями в OSv стерты).

В комплекте есть веб-сервер и удаленная консоль управления, которые можно запустить так (порт 8080):
> java -jar /usr/mgmt/web-1.0.0.jar app prod

С его помощью можно выполнять мониторинг ОС, а также загружать Java-приложения. Кроме него, для удаленного управления OSv можно использовать REST API либо тот же shell, доступный по SSH. Никакого механизма обновления не предусмотрено, сами разработчики заявляют, что в будущем для этого достаточно будет просто загрузить новый образ OSv, однако, как будет выполняться сохранение существующей конфигурации, пока непонятно.