Pull to refresh
Selectel
IT-инфраструктура для бизнеса

Консоль виртуальных машин

Reading time 2 min
Views 14K
Для виртуальных машин в облаке Селектел была добавлена консоль. Она доступна в панели управления во вкладке «консоль».
Консоль в облаке Селектел
Вот ключевые отличия от примитивного «вот вам VNCterm, разбирайтесь сами»:
  • текстовая консоль — малый трафик
  • никаких плагинов (flash/java и т.д.) — работает средствами html/ajax.
  • консоль можно смотреть одновременно с нескольких браузеров.
  • консоль переживает перезагрузку и миграцию
  • консоль можно увидеть на выключенной машине (ввод не работает по понятным причинам — но можно увидеть как машина выключалась).
  • Копипейст — выделить мышкой и скопировать, вставка Shift-Ins или Cmd-V для маков.
  • Переживает миграцию виртуальной машины без разрывов и неприятностей.
  • Автоматическая регуляция скорости работы — при интерактивной работе скорость увеличивается, на простаивающей машине — снижается.
  • Практически 100% поддержка linux_console — цвета, скроллинг и т.д. Проверены на работоспособность все основные программы — ncurses-based, mc, vim, emacs, nano, пачка консольных игрушек — adom, nethack, тетрис и т.д. Не поддерживается только экзотика вида «загрузить шрифты», «управление VESA-режимами и т.д.».
  • Поддержка большинства комбинаций клавиш (зависит от браузера) — Ctrl-комбинации, Alt-комбинации, функциональные кнопки и т.д.
  • Полная поддержка unicode (настолько, насколько его поддерживает ваш браузер), как минмум, псевдографика и русский язык работают без каких-либо проблем.

Чего не сделано:
  • глюки с копипейстом в опере (разбираемся). Должно нормально работать в хроме, сафари и FF (3.6, 4.0). Теперь работает в опере, FF и chrome
  • IE… ну вы поняли. С ходу оно не взлетело, а тратить времени на него не захотелось.
  • Возможность посмотреть history — в работе, появится в ближайшее время.
  • Виртуальная клавиатура — прямо сейчас пишем.
  • Поддержка G0/G1/G2 (буковки qqqjk вместо рамочек в инсталлерах centos/suse) — в ближайших апдейтах будет починили

Как оно устроено внутри? Мы отказались от всех готовых решений и написали правильную консоль для xen'а самостоятельно. Называется она 'selecon' (selectel console), состоит из… кажется 5 или 6 компонент. Мы самостоятельно парсим консольные коды, рисуем виртуальный дисплей, храним его в базе данных (!), отдаём его по http браузеру.

Для того, чтобы увидеть всё самое вкусное вам нужно во-первых выставить правильную локаль в виртуальной машине (dpkg-reconfigure locales для debian), во-вторых включить WebSockets (будет работать и без них, но не так шустро).

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

PS А ещё оно работает на IPhone'ах, Maemo и (наверное, не тестили) на андроиде. Пока в RO, RW сделаем чуть позже.
Tags:
Hubs:
+93
Comments 98
Comments Comments 98

Articles

Information

Website
selectel.ru
Registered
Founded
Employees
501–1,000 employees
Location
Россия
Representative
Влад Ефименко