Pull to refresh

Comments 53

Если найдется все в репозитории с нужными пакетами (свежачок) в других дистрибутивах, то хоть консервативный Centos.
В статье главное идея, а где ее делать без разницы
Пробовал как-то (на i5-2400 3.1GHz) под ubuntu 12.04 + qemu-kvm (/usr/bin/kvm-spice), две «рабочие» виндовые виртуалки, и одна линуксовая в фоне как сервер (svn/git/http и т.д.). Давольно шустро все бегало кстати. Правда со spice, потому что виндовые vm через VNC (по крайней мере на этом ubuntu) тупят страшно.
У меня на рабочей машинке с ubuntu каким-то чудом 13 виртуалок одновременно работают:
По сути — целый провайдер с биллингом, bras, nas, dpi, netflow-collector, внешним и локальным ресурсом, парой юзеров + стенд для испытания патчей ядра.

вот бы под каждую из этих машинок да по монитору-то! :D

P.S: попробуйте вместо vnc для доступа к вендам юзать reminna. (или другой рдп клиент), гораздо шустрее работает, по крайней мере с win xp.
Да не я нативный доступ из под хоста имел ввиду (и spice очень шустрый кстати).
А по части rdp, для винды — стандартный remote desktop, для линуксов nomashine nxclient. Быстрее ничего не видел.
Половина статьи — краткая справка как ставить Gentoo.
Я делал такую установку с Xen под Ubuntu — всё нужное в стоковых репозиториях есть.
Интересно было бы сравнить производительность.
У вас работало в стоковых VFIO c libvirt и видеокартой?
Я не большой специалист, но по скольку не припоминаю, чтобы с упомянутыми вещами я что-то делал — да, в стоковых.
Видеокарты пробовал HD6570, HD6870, HD7770 — работали отлично.
Два и более рабочих места на одном компьютере — бесплатное решение
А как быть с лицензией на небесплатных ОС? Вторую винду всё равно придётся покупать?
тру гентушники винду не покупают

;)
потому что не используют, да.
они ее компилят из сорцов))
Если ставить тот же Астер, то вы нарушите лицензию. А если поставить вторую виртуалку, то да нужно покупать винду! Именно по этому я недавно, к примеру, жену перевел на Linux ;-)) Скажу честно… месяц выноса мозга по различным мелочам. Зато сейчас тишина (тьфу-тьфу-тьфу). Вроде привыкла и все устраивает. Только всякие finereader удобны под Windows. Аналоги в линуксе — очень грусны. Когда нужно распознать текст, то запускается виртуалка windows и пока все. Больше винда не нужна, так как я в игры не играю.
Игры в стиме и вайне же. Сейчас потребность в винде ради игр постепенно снижается, а для казуальных игроков так вообще винда не нужна.
Согласен. За последний год стим обзавелся огромным количеством игр под линукс.
Тру-гентушники играют в одну игру:
emerge -eva system
Меж тем на заглавном скриншоте нечто похожее на игру :)
Мне лично очень интересно как будут распределятся ресурсы видеокарты в данной реализации?
Если взять тот же индекс производительности, то падение происходит не на видео системе. Узкое место диск. Если конечно SSD поставить… Есть еще подозрения, что конфигурация с эмуляцией q35 хуже работает с памятью, такое я читал в англоязычных форумах. По этому и кинул статью, чтобы народ потестил и что-то добавил. В конце-концов чем больше народа попробует, тем более вылизанной будет конфигурация.
как быть, если карта 1 — а машин надо несколько? В (уж простите) Microsoft решает проблему производитель карты, который дает multi GPU (или как оно там правильно сейчас называется) Правда цена за карту вырастает на глазах.
Купить вторую и вставить в 2-3 свободных PCI-E. ATI6450 стоит в районе 1100 руб, можно попробывать более простую карту с пасивным охлаждением. Я не пробывал.
Multi-GPU, если мы говорим о серверах — позволяет сэкономить место.
Чтобы Астер не нарушал лицензию, нужно купить столько лицензий Windows, на сколько рабочих мест вы комп распараллелили.
Не правда! я звонил в Майкрософт совсем недавно как раз за этим вопросом. Долго разговаривали, вкратце ответ таков: 1 лицензия Windows = 1 физический компьютер. и НИКАК иначе. совсем вообще. Так что если Астер где-то пишет что можно «докупить лиценизии» — наживете себе проблем, если решили сэкономить в офисе.
Однако, если очень хочется официально иметь на одной тачке несколько «виртуальных» компов, Майкрософт предлагает свой собственный (унылый и дорогой) продукт (не терминалка, что-то попроще). Именно поэтому и не запомнил его названия.
А как же тогда на один сервер vmware/KVM/XEN народ ставит те же windows-7? И тонкими клиентами раздает. Тоже нарушение?
Насколько я слышал, проверяющие имеют инструкцию, считать лицензии по количеству мониторов/рабочих мест. Т.е. их не парит, сколько у вас системников. Кроме того, те пункты лицензии, которые противоречат законодательству РФ можно игнорировать.

Раньше в суде была разобрана ситуация, когда один пользователь запустил музыку в своей учётке, а другой, войдя после него, используя смену пользователя без выхода, запустил другую программу. Таким образом, согласно лицензии, было засчитано нарушение* использования, что и было продемонстрировано в суде. После этого лицензию изменили.
* Нарушение в данном случае из-за того, что два пользователя одновременно использовали одну копию виндовс.
А говорить они могут то, что вам выгодно, зачем им говорить что-то иначе? Только разобравшись в лицензии и соответствии её пунктов нашему законодательству можно выяснить истину. Но вы звоните, потому что это легче и они дают ответ, который им выгоднее.
И пример выше от stas630 тоже в тему.
Да нет, проблем купить вторую лицензию нет, просто в заголовке написано «бесплатно», а когда я разбирался с лицензионным соглашенияе винды, то вычитал, что даже две инсталляции одной и той винды на одном и том же компе в разных папках или на разных разделах, к примеру — уже нарушение лицензии.
Да и я лучше жену пожалею, чем деньги на лицензию винды, плюс всё ещё иногда требуется кое-какой софт, который есть только под винду, или маковская версия которого работает глючно, а стоит больше, чем лицензия того же софта под винду + стоимость самой винды :)
Тут идея в том, что вы можете создать несколько виртуалок. Может быть вам ДОС, или FreeBSD ближе или вы адепт МакОС, а сосед ваш может оставаться любителем Гейца.
От себя замечу, что windows и без virtio показывает нормальную производительность системы. Для обычных смертых точно хватит, а проблем снизится в разы. VNC можно заменить на spice.
От себя скажу, что написанно все как то сумбурно и по сути все это виртуализация. Интересно просто почитать про multiseat :)
В системнике две видеокарты. Три USB контроллера. Пропрасывай вторую видеокарту и USB-root во вторую виртуалку. Ставь это все в автозагрузку. При включении компа будет у Вас как раз два рабочих места. Можно пробрасывать отдельные устройства, а не Корневой USB. Но тогда проблема будет для пользователя подключить свой любимый Айфон. Если все выходят из виртуалок, завершают работу, то ком отключается.
Без virtio производительность хуже. Проперьте на тестах. Да spice даже лучше, но vnc все знают ;-)
А может кто объяснить, как одна физическая видеокарта пробрасывается на две виртуалки? Я как-то думал это невозможно :/
А нет, все в порядке — две видеокарты просто. Блин. Ну ладно, значит ничего не изменилось.
тут стоит как раз две карты. Автор умолчал об этом, но!
Вообще то есть технология которая позволяет делить карту. Это активно используется в microsoft VDI.
UFO just landed and posted this here
UFO just landed and posted this here
Попробуйте Calculate. Установка проще и быстрее, а если переключить профиль на не бинарный отличий от Gentoo будет немного.
Хотя как уже выше сказал автор разницы все равно нет — дело личных предпочтений.
Ставте ваш любимы дистрибутив. Установка gentoo не так страшна, как видно из этой статьи. Если нужно, то можно все записать в скрипт. К примеру, в продакшене gentoo у меня массово не стоит (использую debian), так как муторно было продумывать систему обновления (хотя можно сделать). Просто для тестов, анализа, эксперементов gentoo — превосходная система, позволяющая быстро откатится или наооборот накатить требуемое ПО, не таща за собой кучу ненужных зависимостей определенных чьим-то разумом ;-))))
А ext2 зачем? Вроде ext4 давно стабильная, как и XFS, JFS, reiser3, даже btrfs вроде стабилизировалась.
А зачем журнал на бутовом разделе или tmp? На всех остальных ext4
В данной статье рассматривается идея и практическое руководство по создания многопользовательской рабочей станции (multiseat) с использованием виртуализации KVM, с возможностью удаленного управления через libvirt. С помощью этого руководства возможно создать два и более рабочих мест как в офисе, так и дома, которым может потребоваться возможность полного использования графической подсистемы компьютера. Причем можно на одном системном блоке реализовать одновременно работу различных операционных систем Windows, Linux, Mac OS X, остальное по вкусу.


Прямое введение читателя в заблуждение. Звучит так, будто что-то сильно поменялось в технологическом мире, и можно одну видеокарту делить на несколько виртуалок, причем средствами KVM. Ведь под видеоподсистемой «домашнего или офисного компьютера» автоматически подразумевается 1 физическая видеокарта — причем в случае офиса это встроенное в проц видеоядро, а под словами «бесплатное решение» в заголовке подразумевается, что не придется дозакупать в офисную машину по видяхе на виртуалку.

Автор, почему бы прямо не уточнить этот момент?
Да две видео карты нужны, если два рабочих места. Бесплатно — на софте деньги тратить не нужно. Я имел ввиду бесплатное софновое решение. Карты за штукарь можно купить. Вполне доступно. Софт обычно дороже стоит. А что вы внутри гостей поставите — ваша фантазия.
Напоминает старое стихотворение о жадине, который хотел из одной овечьей шкуры сшить семь шапок, и сшил, но таких размеров, что каждая едва налезала на палец.

Физические ограничения «узких мест» ИМХО никакой виртуализацией не обойти, разве что за счёт ювелирной работы с железом (незадокументированые команды и пр.).

Впрочем, я рад буду ошибиться.
В презентации RedHat за 2013-ый год озвучивается цифра в 12% (то есть 88% производительности конфигурации работающей без виртуализации). Для кого-то с ростом производительности процессоров и удешевления SSD может быть приемлимой жертвой ;-)
Во многих биосах есть еще отдельная включалка IOMMU, без включения которой vfio-проброс устройств работать не будет.

А по поводу «настоящего» мультисита, в котором одну видеокарту можно использовать для двух мест — это тоже возможно.
Есть старый патч от airlied , для ядра и libdrm, для карточек radeon, суть которого в том что в /dev/dri создаются отдельные render-устройства. Которые, благодаря пропатченному libdrm, можно использовать для запуска 2-х копий X-сервера на одной видеокарточке. Патч очень древний и там многое захардкожено, но при желании его можно доработать.
Получалось запускать до 8 рабочих мест в рамках одного системного блока (3 дискретных видеокарты + встроенное видео).
Интересно в технологическом плане. Скажите, а сколько у Вас занял весь процесс от начала и до возможности наблюдать счастливых юзеров?
Добавлю некоторые моменты в копилку:
— при изменениях/созданиях виртуалок можно и без рестарта демона libvirtd обойтись:
# если нужно (мягко) выключить:
  virsh shutdown wks1
# если нужно (жестко) выключить:
  virsh destroy wks1
# обновить vm из xml
virsh define /etc/libvirt/qemu/wks1.xml
# старт vm 
virsh start wks1

— если хост десктопный, для почти всех дистрибутивов есть неплохой менаджер виртуалок «virt-manager», который управляет libvirt и даже позволяет изменять некоторые параметры на лету;
Соответстующий xml файл в "/etc/libvirt/qemu" тоже меняется, также как и при вызове например «virsh define /home/wks1.xml», файл wks1.xml в /etc/libvirt/qemu перепишется сверху.

— если кто-то будет пробовать на виндовом госте virt-овый balloon-драйвер (что-бы делить свободную память, т.к. windows как известно путем «зануления» забирает ее всю и без драйвера уже не отдаст хосту), готовтесь к проблемам: у меня на debian (и убунте) и у друзей на других дистрибутивах балон надувался (его размер можно было даже на лету из хоста virsh-ем или virt-manager-ом изменять), но вместо того чтобы брать свободную память из него, лобо виндовс уходил в глубокий своп, либо программа завершалась (нет памяти). Хотя, по слухам более менее сносно работало на fedore. В общем для себя понял чтобы гонять N kvm-виртуалок с windows c M памяти нужно N*M физической памяти, благо это сейчас не проблема.

— другие паравиртуальные virtio драйвера (iso из fedora) работали отлично.
если кто-то будет пробовать на виндовом госте virt-овый balloon-драйвер

Если мои данные не устарели, то оно всё равно не работает одновременно с пробросом PCI устройств.
Спасибо за интересную статью.
Может быть вам пригодится.
На многоядерных системах можно ускорить сборку пакетов в Gentoo.
В make.conf помимо параметра для make MAKEOPTS="-j" есть опция которая позволяет собирать и устанавливать одновременно несколько пакетов если они не зависят друг от друга.
EMERGE_DEFAULT_OPTS="--jobs=3"
Соответствует 3 пакетам. Следует учесть что MAKEOPTS="-j" действует для каждого из 3х собираемый пакетов.
Так же не стоит забывать что ОЗУ не бесконечная…
>> Проверяем, что в BIOS VT-d включён
По-моему вы забыли указать весьма важное требование к системе. Насколько мне известно, далеко не везде есть VT-d.
Статью, к сожалению редактировали. И тут было написано поболее (обзор софта запрещен правилами). Короче VT-d должен быть. НА сегодняшний момент платы с VT-d по цене не отличаются от таких же без. Я лично тестил на Asrock, Asus, MSI на Z77 и Z87. Больше всего понравилась Asrock (это не реклама, я ничего с этого не имею). Что самое забавное: в спеке на z87 и z77 отсутствует поддержка VT-d, но у этих производителей VT-d есть! Так же в оригинальной статье была информация, что если организовывать проброс через pci-stub, то почему-то такая конфигурация приводила иногда к полному зависанию всей системы, когда нужно было перегрузить виртуалку. Еще были какие-то странные лаги с вводом-вывода на одной из виртуалок… pci-stub работал у нас с 2012 года, но когда появилась возможность сделать через VFIO — появилась статья, так как сейчас проблем никаких нет.
Sign up to leave a comment.

Articles