Ответы пользователя по тегу Виртуализация
  • Как исправить "лагание" 3ds Max при удалённой работе на виртуальной машине?

    @rPman
    Не лагающие протоколы передачи экрана (для работы с графикой), требуют минимум гигабитные сети и алгоритмы, кодирующие изображение видеокодеками.

    Простейший vnc не подойдет.

    Хорошую скорость могут дать к примеру майкрософтовский rdpx (только с серверными ревизиями windows, только с прямым доступом к серверным видеокартам), или что то типа teamviewer/anydesk, попробуй parsec, так же мне очень понравилась работа steam link remote play (бесплатно, win/linux, заточена на realtime игры, и клиенты могут работать на очень старом железе, например планшетниках android, т.е. поддержка очень качественная, хотя что то я не уверен что какая-нибудь малинка тут справится).

    Открытые решения - например sunshine+moonlight (говорят лучшая замена steam link), rustdesk

    Но главное, виртуальные машины практически все не умеют предоставлять полноценный доступ к графическому ускорителю, за исключением специализированных серверных nvidia ускорителей и серверных ОС. Это сделано искусственно, на уровне драйверов (для linux есть попытки типа протокола spice). Это значит, что сами приложения будут медленно работать, используя только генерацию изображения на процессоре, либо использовать gpu не полностью (например для старых windows с virtualbox шли экспериментальные драйвера, позволяющие в некоторых пределах запускать в т.ч. cad приложения достаточно быстро, но уже начиная с windows 10 что то сломалось, и поддержка 3d ускорения прекратилась)

    p.s. ваша видеокарта кажется серверная, а значит если установить windows server то с помощью протокола rdpx можно работать достаточно эффективно (клиенты должны быть тоже windows, вроде бы linux remmina поддерживает rdpx но мне негде было проверить)

    p.p.s. если вам нужно в пределах одного помещения (десятки метров, в крайнем случае сотня, но за расстояние придется доплачивать за железо 10-20т.р. на рабочее место) вместо передачи по сети, рекомендую прямое подключение, т.е. к одной машине подключаете нужное количество мониторов (можно на одной видеокарте можно на нескольких), клавиатур и мышек, собрав несколько рабочих мест, устанавливаете на машину windows 10 (не серверную) и приложение ibik aster (лицензия на одно рабочее место примерно в 30 раз дешевле windows) и пользуетесь компьютером нативно, без тормозов и лагов сетевой передачи (один раз попробовав, никогда ни на какие rdp/vnc/anydesk/.. не вернетесь), единственная проблема - софт, многие просто не готовы одновременно быть запущенным на одной машине. Чаще всего проблем в принципе нет (каждое рабочее место свой аккаунт windows), во многих случаях приходится слегка по шаманить (например пару телодвижений для запуска steam, или к примеру некоторые игры требуют установку приложения для каждого рабочего места в разные места на диске и т.п.) и очень редко приложения не работают (например запрещено лицензионным соглашением, т.е. проверка сколько экземпляров приложения запущено), в каких то случаях решается кряками, а где то хватает той же песочницы sandbox.
    Ответ написан
    Комментировать
  • Можно ли использовать виртуальную машину для отображения программы на втором мониторе вместо покупки второго ПК для отдельного по?

    @rPman
    Если операционная система windows 7..11 то можно установить приложение ibik aster (лицензия копеечная) и создать полностью независимое рабочее место (можно даже для него подключить дополнительную клавиатуру/мышку)...
    spoiler
    формально можно настроить так больше десятка рабочих мест, максимум потребуется купить usb-hub, чтобы можно было подключить больше клавиатур и мышек, а так же видеокарты с необходимым количеством видеовыходов

    Этим заниматься имеет смысл, если приложение требует активный фокус (в windows только одно окно из всех может быть активным) для работы (иначе хватило бы просто подключения нескольких мониторов).

    p.s. в linux подобный функционал доступен изначально с помощью loginctl (только xserver варианты DE, не wayland) но без рукошевелений доступно только по 1 рабочему месту на каждую физическую видеокарту (можно убрать это требование через xephyr но не просто).
    Ответ написан
    2 комментария
  • Где можно создать виртуальную машину чтобы использовать андроид студио на ней?

    @rPman
    С вероятностью 99.(9)% облачные сервисы, позволяющие запускать приложения android не предоставляют возможности отладки.

    Поэтому - арендуешь сервер поближе (не рекомендую виртуальный, за исключением случаев, когда там используется паравиртуализация, выявлять тестами), настраиваешь что то типа rustdesk (они транслируют консоль как видеопоток, что дает минимальный лаг в счет понижения качества изображения, обычно динамически подстраивается) и работаешь.

    При наличии хорошего канала (либо сервер прямо в твоем городе) можно так работать почти без лагов, я рекомендую linux машину с x2go сервером (клиенты есть по до все) это очень дешево (но не будет поддержки видеоускорителя ни в каком виде, но тут с эмулятором android и так проблемы)
    Ответ написан
    3 комментария
  • Создание существующей ОС как виртуалки. Какие самые удобные способы?

    @rPman
    Фактически все гипервизоры позволяют подключать физический диск или раздел как диск гостевой системы. Некоторые позволяют пробрасывать целый контроллер внутрь.
    Инструкции зависят от выбранного гипервизора виртуализации.
    Ответ написан
    Комментировать
  • Есть ли возможность установить сервер репликации proxmox на уже готовую VPS?

    @rPman
    Конечно же нет.

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

    upd. пишут что можно с ограничениями функционала, т.е. если внутри vps поставить VirtualBox, и уже внутри него запустить proxmox... то это извращение может даже заработает.
    Ответ написан
    2 комментария
  • Как создать виртуальную сеть на уровне IP?

    @rPman
    У virtualbox есть понятие internal network, когда внутренняя сеть никак в хост систему не выходит и остается внутри (можно создать несколько таких сетей), для подключения к этой сети одну из виртуальных машин в этой внутренней сети можно выбрать роутером, добавив ей интерфейс, связанный бриджем уже с хостовым.

    Про qemu. Сам я это не пробовал но если я верно понимаю, VDE это то что нужно (весь этот функционал плюс еще куча всего). Как я понимаю VDE в qemu уже включен. Например можно объединить снаружи виртуалки через сокет (ключи -unix control-socket и vde-plug [-p port] [socketname] ), в т.ч. с соседней на основе другой технологии (в документации речь идет про User Mode Linux)
    Ответ написан
    Комментировать
  • Как работает виртуальная сеть?

    @rPman
    Два способа:
    1. сетевой мост/bridge
    на хост машине создается tap устройство - виртуальный сетевой адаптер, пакеты с которого которого принимает и отправляет приложение - гипервизор, все пакеты, отправленные на это устройство 'снаружи', будут продублированы как исходящие внутри виртуальной машины и наоборот
    Чтобы виртуальная машина получила доступ к внешней сети, необходимо этот виртуальный адаптер и реальный сетевой интерфейс хост машины объединить в бридж (ip адрес сети уже назначается этому мосту), это действие равнозначно подключению двух проводов ethernet (в данном случае второй - виртуальный) в простой сетевой коммутатор - свитч.
    Сетевой мост можно собрать из более чем двух сетевых адаптеров, например можно объединить сетевой адаптер виртуальной машины + настоящий сетевой адаптер + устройство vpn, и получится что все они объединены в одну локальную сеть.
    2. специальный драйвер, который симулирует прием и передачу пакетов прямо на выбранное сетевое устройство (так делает к примеру virtualbox на windows), в отличии от сетевого моста, так можно сделать только с одним устройством.
    3. на самом деле способов больше, у qemu можно соединить гостевое сетевое устройство с приложением на хост системе напрямую (не нужны драйвера), так же можно ни с чем не соединять, но можно пробросить порт снаружи внутрь гостевой (или соединить только с другой виртуальной машиной, получится приватная внутренняя сеть, к которой имеют доступ только виртуалки) и прочие странные конфиги.

    Если используется NAT то внутри гипервизора поднимается виртуальный роутер, доступа к которому у пользователя обычно нет, внешний сетевой интерфейс этого виртуального роутера так же по одному из вышеописанным способов подключается к хост системе.
    Ответ написан
    2 комментария
  • Как реализовать взаимодействие виртуальной ОС с переферией для прошивки?

    @rPman
    Проброс устройств в виртуальную машину бывает разный, в зависимости от вида подключения, самого устройства, действия могут отличаться от 'вставил и работает' (очень и очень редко) до 'работает только если звезда сойдутся и если запускать заранее подготовленный непростой набор команд перед вставкой устройства и после'.

    Причина - нет адекватной поддержки проброса устройств, чаще всего она ограничена либо работает только при опредленных условиях и по разному на разных устройствах (в смысле компьютер), зависит от производителя процессора intel/amd, возможностей материнки и кучи других мелких нюансов (например десктопные материнки чаще всего ограничивают функционал в биосе). С момента активного использованиея EFI биосов, это еще сильнее усложнилось.

    * Итак - проброс всего pci(-e) устройства вместе с контроллерами и соответственно устройствами, через него подключаемыми. Это самый удобный с точки зрения использования способ (потому как после запуска виртуальной машины контроллер уже доступен внутри и чаще всего без дополнительных движений видит устройство 'как родное'.

    В linux мне известно что это поддерживает только qemu/kvm и поддержка требует соответствующие аппаратные возможности (IOMMU/VT-d плюс в принципе аппаратная виртуализация), даже некоторые gpu могут быть так проброшены внутрь виртуалки, производители видеокарт об этом знают и старательно ставят палки в колеса, так как такой функционал они хотят чтобы пользователи использовали только с их 10х дороже серверными вариантами видеокарт). Требует хорошего прогружения в настройки linux, хотя бы чтобы исключить инициализацию устройство самим linux (некоторые устройства не любят включаться два раза подряд без железной перезагрузки).

    * Промежуточный вариант - проброс USB устройств. Это установка в гостевой операционной системе специального драйвера USB который по сети или каким-либо другим способом (например virtualbox usb при установке проприетарного guest additions) транслирует весь трафик, включая управляющий с хост машины для выбранного usb устройства или контроллера. Точно помню отдельные приложения для трансляции usb по сети между машинами даже без виртуализации, но лично сам не пользовался, гуглите решения обычно платные.

    * Проброс 'блочного устройства' (читай дисков или отдельных разделов, и даже файлов), в этом случае гостевая ос не имеет доступа к самому устройству, но только к данным на нем. Формально это просто подключение диска из файла (потому как даже в windows диск и раздел это буквально файл, который можно открыть fopen по специальному имени). Разные системы виртуализации дают разный интерфейс и удобство. qemu с тем же libvirt - удобнее чем к примеру virtualbox (там нужно в консоли специальную 'скрытую' команду использовать)

    p.s. Проброс видеоускорителя - есть еще протоколы spice но на сколько я знаю они не достаточно функциональны
    Ну и проброс всякой мелочовки типа клавиатура, мышь, планшет/сенсорный экран, мониторы. Это все виртуальные сущности, реальное железо тут не пробрасывается.

    p.p.s. драйвера windows для гостевых систем с каждым разом становятся все хуже и хуже, если я верно понял палки в колеса вставляет сама майкрософт, например windows 10 адекватно в virtualbox уже не работает gpu без глюков (я обхожу большинство проблем только с помощью rdp подключения)
    Ответ написан
    Комментировать
  • Почему виртуальная машина не получает ип хоста?

    @rPman
    В настройках сетевого устройства VirtualBox выбери тип сети - сетевой мост (bridge) и выбери сетевое устройство хоста, которое подключено к провайдеру (там где стоит dhcp сервер, раздающий нужный тебе ip)

    там же настраивается mac адрес, так как провайдер выдает ip адреса соответственно этому mac.
    Ответ написан
    2 комментария
  • Как использовать GNU GRUB в виртуальных машинах?

    @rPman
    однозначно причина в том что на реальной машине у тебя используется efi а в виртуалке legacy mbr (ну или наоборот но это странно), они используют разные процедуры загрузки.

    у тебя случайно там не два разных загрузчика типа grub и selinux (который только для legacy существует)?

    но вот почему именно у тебя по разному отрабатывает настройка пункта по умолчанию, хз, показал бы конфиг что ли
    Ответ написан
    Комментировать
  • Как копировать/переносить виртуальную машину с Linux без правки загрузчика?

    @rPman
    при инициализации диска, создании и форматировании раздела можно задать свой uuid, тебе где из этого надо?

    вот например так я это делаю с lvm
    pvcreate --norestorefile -u xxx-xxx-xxx-xxx-xx-xxxx /dev/sda2

    а так с файловой системой
    mkfs.xfs -m uuid=xxx-xxx-xxx-xxx-xx-xxxx /dev/sda1
    Ответ написан
    Комментировать
  • Процесс загрузки ОС на виртуальную машину не работает застряв на установке. Что делать чтобы продолжить?

    @rPman
    У меня все работает.
    Захожу на сайт Parrot OS, выбираю загрузки, Security Edition, Torrents, версия для VirtualBox,.. скачивается .ova файл, выбираю в интерфейсе VirtualBox в меню импорт машины, выбираю скачанный файл, импортирую, запускаю... все работает, все дополнения уже установлены...

    На каком шаге у тебя не так?
    Хост система linux, версия virtualbox 7.0
    Ответ написан
    1 комментарий
  • Тонкий клиент для всего на свете?

    @rPman
    Можно и в каком то смысле даже нужно.

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

    - Так же ширина канала определит дополнительный лаг, наверное самый значительный...

    - Плюс тип приложений и динамика изменения экрана так же повлияет на этот лаг (например нативные win32 приложения при использовании rdp без большого количества изображений и canvas работают очень хорошо даже на слабом канале, но таких приложений почти не осталось, всем нужно рисовать UI самостоятельно)

    - Плюс разрешение (в пикселах) экрана, чем больше тем хуже (не линейно).

    - В довесок там есть еще лаг используемого софта на серверной стороне, причем значительно отличающийся от того какими приложениями ты управляешь удаленно (x2go/rdp/rdpx/vnc/teamviewer/anydesk/steamremote/rustdesk).

    В итоге, в каких то частных случаях (частых) этот подход очень удачен а в каких то превращает работу в мучение и желание купить нормальный компьютер и не париться.

    p.s. есть еще момент, серверный софт по лицензионным соглашениям часто лимитирует красивые решения для многих привычных комбинаций (например rdpx при использовании GPU) на очень дорогое железо (10х к цене по сравнению с десктопным) и стоимость владения таким удаленным терминалом становится выгодной только при маленьком количестве часов.

    Настоятельно советую попробовать всю свою типовую работу и развлечения и как следует посчитать итоговую стоимость. Так может получиться что по хорошей цене и с часовой оплатой сервера находятся на другой стороне планеты (а значит с лагами), а сервер в твоем городе можно взять в аренду только на full time и это будет стоить за год дороже своего домашнего компьютера.

    p.p.s. мое мнение, будущее за региональными или даже в пределах дома мини датацентрами. Существующие технологии позволяют без лагов транслировать изображение на 100-200 метров, дальше начинаются нюансы. Это как вместо того чтобы каждый в доме уродовал стены и ставил дорогие сплит системы для личных кондеционеров, просто покупать централизовано большие чилеры на крышу и сделать нормальную климат-систему на весь дом еще при строительстве (это уже используется).

    Буквально домовое товарищество покупает/арендует готовый кластер и все жильцы дома пользуются аппаратными тонкими клиентами, так же арендуя время и мощности. Сейчас есть для проблемы организационного характера, такие как налоги и лицензии на софт (они могу добавлять от 30% до сотен процентов к стоимости владения)
    Ответ написан
    1 комментарий
  • Как соединить виртуальную машину с сетью основной, чтобы другие компьютеры в локальной сети могли соединяться с ним?

    @rPman
    В настройках сетевых устройств сменить тип NAT на Сетевой мост, в этом случае машина будет получать ip адрес по тем же правилам что и любая другая машина в твоей сети
    Ответ написан
    Комментировать
  • Как запустить exe с сетевого диска?

    @rPman
    Точно помню что запуск .net (точнее clr) приложения с сетевого диска работает в особом контексте прав и для этого нужно очень глубого ковырять права доступа, понижая защиту всей машины значительно
    * для начала поковыряйся в настройках internet explorer! дада, свойства браузера в панели управления, безопасность, выбрать местная интрасеть, кнопка другое, там будет что то про .net, поэкспериментируй), точно помню что в gpedit были политики связанные с сетью и .net их тоже нужно ковырять
    Извини делал я это во времена winxp, уже не помню, кстати один из способов, в свойствах приложения можно включить режим совместимости (будет запрос на превышение прав, это обходится другим способом, через планировщик задач)
    * еще советуют включить поддержку smb1, не уверен что это актуально но тут пишут что какраз для win10 это помогает.

    Настоятельно не рекомендую так делать! это значительное понижение безопасности машины. Лучше копируй приложение на локальный диск, но при запуске делай текущим сетевой каталог. Будут сложности с .dll но это другой вопрос (поместить их в PATH, кстати так же на локальном диске)

    p.s. еще есть вариант, не подходит для многопользовательского доступа к приложению, только монопольный, в сети размещай не сами файлы а файл образа диска .vhd (создается в управление мой компьютер - Управление дисками), этот файл можно с помощью diskpart монтировать из батника, и файлы на этом диске будут уже считаться локальными (может поплохеть, если во время записи оборвется связь, ищи способ отключить кеширование записи в свойствах этого диска)
    Ответ написан
    Комментировать
  • Как создать одну виртуальную машину использующую несколько серверов?

    @rPman
    Виртуализация не позволяет объединять мощности!

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

    Когда то давно для linux были такие технологии, когда оперативная память процесса на лету синхронизировалась между нодами кластера и процесс, изначально не адаптированный к работе в кластере, использовал сразу несколько физических компьютеров для работы. Эффективность результата была очень низкой, высокие требования к пропускной способности сети (гигабитной сети недостаточно) и очень слабое масштабирование, свело на нет смысл ее использования... я даже не могу найти названия этой технологии, по крайней мере не гуглится.

    Для того чтобы эффективно использовать одновременно нескольких компьютеров, процесс должен быть изначально разработан с этой целью, самостоятельно должен рулить распределением задач и памяти.
    Ответ написан
    9 комментариев
  • Xen. Как задать права доступа пользователей к виртуальным машинам в ubuntu для xen?

    @rPman
    через sudo, либо пропиши все используемые пользователями команды либо заверни все в скрипт и его разреши запускать только определенным пользователячм
    Ответ написан
  • Почему не удается подключиться к виртуалке по SSH?

    @rPman
    с сетью NAT
    зачем создал себе проблем?
    настрой сеть как сетевой мост между своей сетевой картой, тогда для всей твоей локальной сети (если она есть) виртуальная машина будет еще одна, с полным доступом.

    если локальной сети нет, то ее придется создать, например добавив loopback драйвер фиктивной сети на хост системе и настроить уже к нему сетевой мост.
    Ответ написан
    Комментировать
  • Как перенаправить звонок в виртуальную машину?

    @rPman
    Попробуй установить приложение на реальном железе, завершить регистрацию, а затем перенести в виртуальное окружение через backup/restore (к сожалению доступно только гугловское), при наличии root файлы приложения можно будет тупо скопировать
    Ответ написан
    Комментировать
  • Чем загрузчик в виртуальных процессорах отличается от реального? Какой жизненный цикл запущенной ОС на виртулальном?

    @rPman
    Виртуальная машина jvm и виртуальный процессор того же qemu это очень разные вещи.

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

    Память в qemu виртуальной машины может быть полностью эмулированой, например помню были патчи, шифрующие и расшифровывающие страницы памяти по мере доступа к ним.

    По умолчанию вся память выделенная вм будет использована (на самом деле до первого доступа вм к ней) поэтому если внутри вм выделить и освободить память, обратно на хост системе она не освободится, но можно установить драйвера внутри вм , которые будут об этом сообщать в хост там она будет освобождаться, позволяя нескольким вм 'использовать' больше памяти чем доступно, в.т.ч. используя своп файл подкачки.
    Ответ написан
    Комментировать