Загрузка
- http://github.com/cloudius-systems/osv (можно собрать самому)
- демо-образ: http://osv.io/community/downloads (можно запустить под управлением KVM)
Установка
1) Подготовка виртуального моста:$ sudo brctl addbr virbr0
$ sudo brctl addbr eth0
$ sudo ifconfig virbr0 up
#!/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, однако, как будет выполняться сохранение существующей конфигурации, пока непонятно.