company_banner

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

    Для виртуальных машин в облаке Селектел была добавлена консоль. Она доступна в панели управления во вкладке «консоль».
    Консоль в облаке Селектел
    Вот ключевые отличия от примитивного «вот вам 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 сделаем чуть позже.
    Selectel
    164,22
    ИТ-инфраструктура для бизнеса
    Поделиться публикацией

    Похожие публикации

    Комментарии 98

      +6
      Сегодня поднял сервер у Вас и был приятно удивлен этой консолькой. Работает отлично. Спасибо.
        +8
        Молодцы, ваш хостинг не перестает радовать :)
          +2
          Молодцы, хорошая идея.
            +3
            Класс. Код этого счастья проприетарный?
              +5
              Ждите. Я сам в нетерпении жду, когда смогу рассказать как эта штука клёво работает.
                +1
                Ага… у меня тож есть некоторые идеи для емуляции консоли в броузере, и интересно было бы посмотреть (мож что и подкинуть).

                В целом жаль если такая чудесная работа по эмуляции консоли останется в проприетарном цартве :)

                Но в любом случае — крас-с-сота!
                • НЛО прилетело и опубликовало эту надпись здесь
                    0
                    Можно конечно, но, думаю, немного разные цели. Меня в основном интересует поддержка ANSI-цветов (в виде \0x27[21m для зеленого ), WebSockets и прокрутка (в termlib как я понимаю с этим сложно).

                    На данный момент мои наработки тупо переобразуют ANSI-цвета в соотвествующие CSS-классы и Socket.IO (+node.js на сервере) для коммуникаций.
                    • НЛО прилетело и опубликовало эту надпись здесь
                        0
                        ну в том то и дело что меня интересует скорее код клиенсткой либы (типа termlib), а выковыривать клиенский код из shellinbox мало смысла — там вроде и так не много функционала.

                        Сейчас интересно попробовать termlib как замена моей «кустарной» поделки, но history (т.е. прокруткой) и Socket.UI для коммуникаций.
                        • НЛО прилетело и опубликовало эту надпись здесь
                          • НЛО прилетело и опубликовало эту надпись здесь
                          +1
                          anyterm смотрели?
                    –4
                    Респект и уважуха, выложите в открытый доступ(исходники и мануал как прикрути)? Тоже думал написать себе подобную штуку для ксена, но свободного программиста под рукой не оказалось.
                      +12
                      Вам не хватит одного программиста. Если бы я знал, сколько времени на это уйдёт, я бы свернул работы по этому направлению. Но теперь, когда уже сделано, можно только радоваться.
                        0
                        расскажи, в какие затраты по времени вылилось?
                          +2
                          Около 7 человеко-месяцев работы, не считая несколько месяцев на изучение и раздумывание.
                            –1
                            «человекомесяц» — корявая единица измерения, имхо.
                            лучше привести данные в виде — группа из 10 человек работала над этой проблемой 3 недели.
                              +3
                              Группа из трёх человек потратила больше 2 месяцев с небольшими перерывами, плюс я пару месяцев думал.
                    • НЛО прилетело и опубликовало эту надпись здесь
                        0
                        А мне цены понравились. Как оно вообще? Кто пользуется?
                        • НЛО прилетело и опубликовало эту надпись здесь
                            0
                            Пользуюсь чуть больше месяца, в целом доволен.
                            Да, чуть дороже выходит чем дедик в Европе.
                            Но удобство пользования запредельное.

                            Главный минус: слабоконтролируемое расходование средств.
                            Есть возможность выключить машину после снижения баланса ниже установленной отметки, но баланс общий, а вируталок у меня 5. Гораздо удобнее было бы сделать автовыключение виртуалки после достижения каждой машиной максимальной стоимости ресурсов в сутки.

                            Еще чего очень жду так это внедрения услуги локалки, вроде обещают. Тогда еще пару проектов переведу к ним ;-)
                          0
                          Эм… Глупый вопрос, но как войти в эту консоль?
                          На вкладке описание отображается…
                            +2
                            1. IE выпилить и не юзать.
                            2. Включить вебсокеты (или, его эмулятор на флеше)
                            3. Если просит перезагрузить машину — перезагрузить.
                              0
                              Chrome 12.0.742.68 beta-m
                              Статус вебсокетов:
                              websocketstest.com/result/136348
                              Судя по всему, сокеты должны работать при заходе по https.
                                0
                                что тогда не работает?
                                  0
                                  вот у меня показывает буквы про «особенности и не забыйте сессии», но самого окна консоли нету — хром 10.0.648.205 (81283).
                                    +1
                                    да, а флеша у меня нету, потомучто… ну вобщем нету.
                                      0
                                      хром и нету флеша взаимоисключающие понятия.
                                        0
                                        >хром и нету флеша взаимоисключающие понятия.

                                        докопались, да. хорошо: хромиум.
                                          0
                                          Сейчас по-прежнему не работает? Попробуйте Ctrl(Cmd)+R
                                            0
                                            не работает. кеш чистил, ctrl-r нажимал.
                                              0
                                              Пробуйте разные браузеры. То есть мы стараемся, но если браузер что-то упорно не хочет делать, то что мы можем с этим сделать?
                                                0
                                                честно говоря, мне более интересно, почему оно не работает в моем хромиуме, чем реально нужно
                                  0
                                  (тут со стороны подсказывают) возможно, у вас кешированная страничка. Очистите кеш и перегрузите страницу.
                                    0
                                    Ответил в личку, засорять топик не дело.
                                    • НЛО прилетело и опубликовало эту надпись здесь
                              +5
                              Купил машину в облаке только для того, чтобы посмотреть на эту консоль :) Действительно, реализовано отлично.
                                +4
                                Достойно аплодисментов! Селектел — самый крутой хостинг провайдер в РФ, инфа 100%.
                                Месяца 3 являюсь клиентом, держу облачко с Ubuntu, очень доволен. Особенно шокировала техподдержка, она работает!

                                Я, наверно, не в ту ветку, меня только одна проблема беспокоит, из MySQL базы иногда мистическим образом пропадают записи. Никто не сталкивался?
                                  +3
                                  М… если при этом в dmesg комментариев про файловую систему нет, то я тут врят ли чем-то помогу. Моё дело инфраструктуру делать.
                                  +1
                                  А не планируется пускать консоль «наружу»?
                                  Скажем, мне нужно что-нибудь поднастроить, я даю специальный URL знакомому, он настаивает все, что надо (я за соседней консолью слежу — учусь что надо делать, сам что-то поднастрваиваю, пароли ввожу и т.д.), потом по истечении определенного срока ссылка перестает действовать (или я явно закрываю консоль по данному URLу) и знакомого «отрывает» от сеанса связи с консолью.
                                  Понятно, что такое можно и самому организовать, но такая штатная возможность была бы интересной.
                                    +1
                                    ssh + screen?

                                    Консоль, это как бы не штатное место работы, а таки recovery…
                                    +1
                                    Эх, консоль перезагрузку хочет. Вечерком попробую. Но вы реально крутые!
                                      0
                                      Мы могли открыть без перезагрузки, но нам нужно было отключать дефолтный vncterm в XCP, а он при миграции восстанавливается. Мы решили не воевать с штатным функционалом. Если же запустить их оба, будет смешно — часть данных будет уходить на vncterm, часть в selecon — получится битая картинка и там, и там.
                                      +3
                                      >аботает средствами html/ajax.

                                      офигительно — вы там все маньяки!
                                        +4
                                        А если нет вебсокетов, оно пробует через флеш…
                                          0
                                          а если нет флеша — молча дохнет.
                                          • НЛО прилетело и опубликовало эту надпись здесь
                                              0
                                              ну я выше написал — у меня почему-то молча не работает в хроме.
                                        +1
                                        Было бы неплохо писать, почему не работает в конкретном случае консоль.

                                        У меня на вкладке только строки «Особенности:» и «Не забывайте завершать сессию», больше ничего. Даже не понятно, где что должно быть, и что нужно делать. Если бы не картинка в тексте поста, я бы так и не понял, где искать эту консоль.

                                        Короче, браузер Chrome под Виндой, настроек про websockets не нашел, полагаю, что все из коробки включено. Компьютер за корпоративным роутером (NAT).
                                          +5
                                          Эх, не зря решил selctel выбрать, как облачный хостинг.
                                            +1
                                            selectel*
                                            +1
                                            С чем может быть связан такой глюк? Эти чёрные полоски. Пробовал в опере и в хроме, одинаково.
                                              0
                                              От шрифта зависит. Попробуйте изменить (Ctrl+, Ctrl- при фокусе вне консоли).
                                                0
                                                От этого ещё хуже стало :) Полоски вообще разной толщины теперь.
                                                –1
                                                CSS line-height вам не подходит. Судя по хинтингу, вы в Linux. Попробуйте другой браузер, и отпишите, в каких у вас это проявляется. Проблема крайне легко решаема, думаю вот-вот поправят.
                                                  0
                                                  Я в Windows 7. Скриншот из хрома. Проблема наблюдается в опере, хроме и файрфоксе. В IE 9 консоль тупо не работает.
                                                  0
                                                  А это уже из оперы скриншот. Размер шрифта — стандартный. Как я его ни уменьшал/увеличивал, картина лучше не становится.

                                                  Даже хуже.
                                                    +3
                                                    в конце концов это средство для экстренного ремонта, когда по случайности забыл стартануть ssh или ip не тот пробил, так ли там важно что бы все полосочки совпадали? восстановить работоспособность хватит и черно-белого ком-порта с терминалом vt100.
                                                      +1
                                                      Да я понимаю. Я сам один раз нечаянно убил SSH, после чего пришлось переустанавливать систему. Хотя, вряд ли даже такая консоль там помогла бы, слишком глобально я всё испортил :)
                                                      Полосочки, может быть, и не важны, однако я хочу донести до разработчиков информацию о появившихся проблемах.
                                                        0
                                                        проверил, у меня то же есть полоски в mc, каждая 2-3 строка подчеркнута, но в общем я считаю это ерунда, не стоит упоминания.
                                                          0
                                                          Там проблема с размером шрифтов, особенно, в сочетании жирного и обычного. В любом случае, внешний вид пилить будем, но неспешно.

                                                          PS У нас цвета появились недели две назад, до этого консолька была (в тесте) даже не ЧБ, а без атрибутов (даже инверсии не было).
                                                            0
                                                            те задачи, что сейчас стоят — оно и в чб режиме был решало отлично.
                                                            дальше его развивать, только или из-за хорошего перфекционизма, или для более широкого использования для других продуктов/решений.
                                                              0
                                                              М… я в начале тоже так думал. Но отсутствие атрибутов — это не отсутствие цвета. Нет инверсии и ч/б выделения, из-за этого куча софта неправильно показывается, включая yast и ncurses-приложения.

                                                              Я вернусь из отпуска (или прямо в отпуске?) напишу как это делалось и что получилось.
                                                  0
                                                  Ещё заметил одну вещь. Когда нажимаешь на стрелки или PgUp/PgDown, прокручивается содержимое консоли. Но если зажать одну из этих клавиш и не отпускать, то начинает прокручиваться вся страница.
                                                  • НЛО прилетело и опубликовало эту надпись здесь
                                                      0
                                                      Windows 7, Opera. В хроме всё нормально. Нигде больше не пробовал.
                                                        0
                                                        В FireFox ещё попробовал, там тоже всё хорошо. Значит, только в опере эта проблема.
                                                        • НЛО прилетело и опубликовало эту надпись здесь
                                                    • НЛО прилетело и опубликовало эту надпись здесь
                                                        +4
                                                        мы очень эконономный ДЦ.

                                                        (передал кому нужно).
                                                        0
                                                        >>консоль можно увидеть на выключенной машине (ввод не работает по понятным причинам — но можно увидеть как машина выключалась).

                                                        очень полезная вещь
                                                        с учетом того, что вывод храниться в MySQL наверное можно будет как-то посмотреть историю, допустим загрузки/выключения/внеплановой перезагрузки?
                                                          0
                                                          Тс… не палите наши фичи.
                                                            0
                                                            (наши будущие фичи)
                                                              0
                                                              смотри… то, что хранится в базе, может потенциально утечь, а там ведь могу оказаться и различные пароли, которые где-то в логах/конфигах мелькали. это уже такая опасная штука получается…
                                                                +1
                                                                Мы не глюпые, да.

                                                                Запустим — увидите.

                                                                PS как часто «содержимое конфигов» уползает за верх экрана?
                                                                  0
                                                                  а почему за верх? ты же все отображаемое в mysql запихиваешь?
                                                                  да, если не пользоваться mc, то все что ты делаешь за верх экрана уходит регулярно.
                                                                  плюс опять же иногда в логах встречается пароль в открытом виде от каких-то служб. less сделал — все тебе показал.
                                                                    0
                                                                    less как раз ничего за пределы экрана не уводит. Вот more — да. Ну так надо думать, чем пользуешься.

                                                                    Проблема, кстати, строго аналогичная IPMI'ю.
                                                                      0
                                                                      ipmi устройства не хранят у себя в базе что-либо из отображаемого. максимум в неком временном буфере, который при очистке экрана так же очищается.
                                                            0
                                                            Пользую несколько месяцев anyterm и ajaxterm, никак не выберу между ними. Оба без проблем в FF3.6 и FF4.0. Все символы управления, юникод, кнопки, шрифты, всё работает.

                                                            Недостатки:
                                                            — не удобно — cut'n'paste, очень уж геморройно
                                                            — размер окна меняется путём правки исходников с пересборкой

                                                            В остальном доволен. Здорово, если авторам удалось решить эти две проблемы.

                                                            Скрины:
                                                            habreffect.ru/files/d48/ca670375b/ajaxterm.png
                                                            habreffect.ru/files/07e/d464f36ef/anyterm.png
                                                              0
                                                              А можно словами, что не так? Полоска (верхний правый угол у MC) решена (тоже долго думали, в чём дело), а что не так на втором скрине (кроме отсутствия жирного шрифта) я не знаю.

                                                              Лично мне кажется, что сейчас консоль (за вычетом внешнего вида курсора — в работе) с тем, что linux показывает не отличается совсем.
                                                              • НЛО прилетело и опубликовало эту надпись здесь
                                                                  0
                                                                  Странно, только что ввёл в обеих продуктах «echo Привет» и оно отработало как ожидалось. В любом случае буду очень рад, если развитие проекта позволит сделать более удобное средство для работы ssh-over-browser.

                                                                  Спасибо!
                                                                  • НЛО прилетело и опубликовало эту надпись здесь
                                                                      0
                                                                      Скорее всего. Может и параметры сборки, давно собирал, уже не помню. В любом случае проблем с вводом/выводом русских букв у меня нет.
                                                                0
                                                                Когда можно ждать статистику не только в цифрах, но в графиках?
                                                                Милая консолька :)
                                                                  +1
                                                                  В работе. Думаю, в обозримое время, т.к. систему сбора статистики переписали на high load (предыдущая конструкция загнулась на трёх одновременно обсчитываемых счётчиках), данные уже собираются, дальше вопрос к веб-морде и их визуализации.
                                                                  0
                                                                  После (кажется) первого же выключения перестала отвечать. Перезагружал уже пару раз. Висит вот такая картина, на нажатия клавиш не реагирует.
                                                                    –1
                                                                    и ещё ой
                                                                      0
                                                                      такие вещи лучше не выкладывать сюда, а отправлять тикетом или на почту службы поддержки
                                                                      0
                                                                      Номер машины? Можно в приват или тикетом.

                                                                      • НЛО прилетело и опубликовало эту надпись здесь
                                                                        0
                                                                        Перезагружал уже пару раз
                                                                        0
                                                                        Отлично работает, НО! Не удалось выполнить Ctrl+C для завершения чего либо (пытается скопировать)
                                                                        Cmd+C пробовал и с Fn зажатой…
                                                                        Mac OS X 10.6.7 Chrome 12.0.742.68 beta
                                                                          0
                                                                          В макоси, насколько я помню, нужно нажимать ctrl-c. Именно ctrl, а не cmd.
                                                                            0
                                                                            Все перепробывал и альт и с шифтом и с коммандом — никак…

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

                                                                        Самое читаемое