dimaguru
@dimaguru

Какой нужно контейнер виртуализации?

Всем привет. Есть win сервер. На нем отключена аппаратная виртуализация. Те фичи vmx. Hyper threading и пр не работают. Каким образом можно развернуть виртуальную машину или контейнер чтобы все ядра процессора все работало чисто программно. Те в контейнере разворачивается программа или ОС и там уже работается. Спасибо
  • Вопрос задан
  • 130 просмотров
Пригласить эксперта
Ответы на вопрос 1
@rPman
Для windows платформы не так много вариантов, если нет поддержки виртуализации.

Самый универсальный но дико не эффективный вариант - программная виртуализация, есть у qemu и того же virtualbox. Использовать только если совсем плохо, так как падение производительности до 6-10 крат (напоминаю, что с поддержкой аппаратной виртуализации потери могут быть не больше 10%-30%), зато поддержка любой операционной системы на любом железе и OS.

Существуют программы песочницы типа sandboxie, но с вероятностью 99% они потребуют поддержку виртуализации либо будут являться очень ненадежной песочницей (не полностью изолированное окружение).

Только так вы сможете запускать windoows приложения, все остальные варианты - про linux.

Если у вас 32-битная ревизия windows (даже если winxp) и нужно виртуализовать linux, то воспользуйтесь colinux, этот проект к сожалению больше не поддерживается и не развивается (а жаль, x64 поддержка была бы кстати) но позволяет запускать приложения вообще без потери производительности, это аналог user mode linux, подменяет вызовы ядра и работает как обычное приложение, даже сеть. Фактически это почти полноценная headless (без монитора) виртуальная машина.

Есть у вас последние версии windows 10 (pro или ultimate ревизии) то вы можете воспользоваться штатной подсистемой linux for windows (добавляется компонента и устанавливается redhat/ubuntu из штатного магазина), это полная аналогия wine наоборот, позволяет запускать бинарники linux без виртуализации, максимальная производительность и поддержка x86/x64 архитектуры.

p.s. оба этих варианта не умеют графический режим, но можно поставить сторонний xserver (например из пакета cygwin или даже нативный linux xorg на соседней машине/виртуалке) и настроить подключение.

И конечно же вместо запуска бинарников linux можно установить полностью windows приложения, собранные из исходников linux и запускать свои приложения в нем (собирать, если нужны бинарники). Есть две независимых проекта - mingw (окружение msys) и cygwin. С точки зрения компиляции, это отдельные архитектуры, как linux-x86_64 или cygwin-x86_64 и даже mingw-x86_x64, взаимно не совместимы (нельзя подключать dll).

Mingw используется, когда нужно собрать приложение, использующее библиотеки из мира linux, но при этом нотация файловых путей должна быть как в windows, и не только, например проще добиться поддержки opengl/opencl или работать с чисто windows directx...

Cygwin используется, когда приложение почти не имеет поддержки для сборки под windows, в нем симулируется почти полностью linux окружение, даже пути файлов с обратными слешами и нет букв дисков - используется /cygdrive/c. Симуляция cygwin на порядок качественнее чем у mingw, т.е. можно вообще не тратить никаких усилий для портирования приложения, но скорость работы при использовании mingw выше, так как нет лишней прослойки системных вызовов.

Оба этих окружения позволят запускать приложения php/perl/python/nodejs и они почти наверняка будут работать как ожидается. У обоих есть пакетный менеджер с готовыми бинарниками (у cygwin полнее база) и вы можете установить (и поддерживать обновления) окружение в пару кликов мыши.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы