Виртуализация для домашнего использования?

Возникла мысль завести на компе несколько виртуальных машин. Условно: для работы (*nix), для инета и развлечений (win), для операций с платежными системами и онлайн-банками (паранойя моде он) и еще парочка. Кажется удобным быстрое переключение между ними, обслуживание, возможность делать снепшоты и т.д. Начал изучать вопрос, но вопросов стало только больше. Надеюсь на компетентных людей.



1. Intel vs AMD. В википедии говорится о преимуществе amd в аппаратной виртуализации, но инфа за 2006 год, как дела обстоят сейчас?

2. Как сильно падает производительность при виртуализации (с разными VMM, полагаю)? Вроде и искать умею, но гугл ничего не хочет выдавать кроме словоблудия, где таблицы с замерами? Есть, правда, пара статей, но там жаркие дебаты насчет методики тестирования.

3. Что лучше — хост-ОС + vmm из-под нее, или только VMM + виртуалки? (Я слышал, что как минимум xen и virtualbox так умеют). Лучше — это два критерия: удобство использования и производительность, применительно к моим запросам.

4. Можно ли играть под виртуалкой? Речь, конечно, не о косынке. Если видеокарт несколько, они пробросятся? Как насчет SLI/Crossfire?

5. Есть ли какие-нибудь рекомендации по железу?

6. Какие есть способы коммуникации между машинами кроме сети. Может ли VMM обеспечить, например, copy-paste между VM? Хотя бы текста. А общие диски? Понятно, что можно юзать сетевые, но это лишние затраты, вдруг VMM позволяет реализовать шары лучше.

7. Какая VMM предпочтительна для моих запросов? Несколько холиварный вопрос, да.
  • Вопрос задан
  • 12893 просмотра
Решения вопроса 1
@valdiks
Был такой же вопрос у меня.
Железо: Intel Xeon E-1245V2, 32GB Ram, Asrock Z77 Fatal1ty Professional (можно было Z77 Performance), пока 2 харда по 1TB, две видеокарты Gigabyte Radeon HD 7770.
Почему Asrock Z77 Fatal1ty Professional — изначально планировал для каждой виртуалки свой ssd. Но чтобы он работал правильно (TRIM), необходимо выделять весь SATA контроллер. У Asrock его 3. SSD пока не поставил, думаю поставить для web-сервера.
Так же есть поддержка VT-d, которая необходима для проброса видеокарт гостевой операционке.
Софт виртуализации: Xen Cloud Platform 1.6.

Про железо: сначала выбрал материнку Gigabyte GA-Z77X-UD5H, но при включенном VT-d не работают оба Marvell SATA контроллера.
Проц во встроенным видео — в итоге у меня 3 видеокарты, 2 для гостевых операционок, одна (встроенная) для гипервизора. Вроде как её можно пробросить в гостевую ось, но я не пробовал (и, возможно даже не буду).

В итоге: пока 2 гостевые операционки (пока 8GB ram) со своей видеокартой, и своим хардом по 1TB (сделаны виртуальные диски, возможно, надо было пробрасывать в госевую ось, и уже там делить его), каждая показывает одинаковый встроенный рейтинг: проц 7.7, память 7.7, видео 7.5, игровая графика 7.5, диск 5.9.
Проц нагружен на процентов 10%-20% во время обычной работы, во время игры (с нормальными настройками, зависит от игры) на одной виртуалке — 2-3 ядра из 8 (threads?) работают в диапазоне 40-90%.
У меня одно рабочее место находится в соседней комнате (:, туда протянут 10м HDMI, 10м USB 2.0 (активный), и там установлен USB HUB с отдельным питанием для подключения клавиатуры, мышки, флешек и прочей ерунды, звук через HDMI->выход в мониторе.
При пробросе USB контроллера есть нюанс — 0000:00:1d контроллер не подключал USB устройсва через 10м кабель по 2.0, только 1.1. Поменял на 0000:00:1a — всё заработало. Без 10м удлинителя всё работает без проблем.

В планах: поставить веб-сервер на SSD (с пробросом отдельного SATA контроллера), ещё пару хардов для бекапов и файлового сервера.
Под вопросом: Перенести гипервизор на CF через контроллер IDE-CF, чтобы небыл привязан к харду.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 5
azretik
@azretik
web, xen, vlan, cisco, wiki
не посчитайте за трупоеда, что старые темы поднимаю, но как вижу подписчики еще в строю, может понадобится информация.

полностью согласен с valdiks на счет XCP виртуализации. Ровно так же поступил и я сам. Для начала нужно подготовить платформу для всего этого дела. У меня 2 ssd жестких диска и 4шт обычных на отдельном контроллере. Есть желание сделать одну мышку для обоих систем, общий доступ к тем же файлам, да и вообще, чтобы было ощущение работы за одним компьютером. Операционные системы интересующие меня это Windows 7 и Mint. Для каждой системы желательно выделить отдельную видео карту, у меня для этого была припасена материнская плата с 2 PCIE16 и интегрированной в Intel процессор. Ставим именно Intel видеокарту в приоритете в BIOS, но не выключаем остальные. Для USB тоже желательно несколько отдельных контроллеров. Ровно так же поступил, поставил 2 дополнительных. Со звуком проще, можно вынимать из HDMI.

Скачиваем и устанавливаем сперва XCP 1.6 на 1 ssd диск и указываю его в качестве основного жесткого диска для работы виртуализации. На контроллере для гипервизора оставляю этот ssd и жесткий диск на 1тб (под общие файлы для операционок). Дальше нужно расшарить для остальных систем 1тб жесткий диск в качестве корневого носителя. Для этого нужно доставить в centos пакеты с samba. Чтобы иметь возможность устаналивать дополнительные пакеты в систему нужно включить конфигурацию yum.
nano /etc/yum.repos.d/CentOS-Base.repo
nano /etc/yum.repos.d/CentOS-Vault.repo

Сам я поставил MC, samba. Подключите, примонтируйте в fstab жесткий диск на 1тб и расшарьте его в sabma. После чего благополучно можно переходить к следующим манипуляциям. Для адекватной настройки ВМ в XCP я пользуюсь XenCenter, а для его адкватной работы нужно произвести некоторые манипуляции по настройке самого гипервизора.
cd /opt/xensource/bin
  /etc/init.d/xapi stop
  cp -vp xapi xapi.original
  sed -i 's/1\.4\.90/6.0.99/g' xapi
  /etc/init.d/xapi start

А так же нужно установить пакет отвечающий за трансфер ВМ. Если вдруг оно вам понадобится, для этого нужно скачать с сайта Citrix XenServer образ и примонтировав к системе установить пакет packages.transfer-vm/xenserver-transfer-vm-6.1.0*
rpm -i xenserver-transfer-vm-6*

На этом месте я создаю 2 ВМ, место под установку Mint я забираю на ssd для гипервизора, а вот для windows будет использован отдельный жесткий диск, на отдельном контроллере, так что созданный образ виртуального жесткого диска можно удалить и сперва пробросить наш контроллер в систему или пробросить все жесткие диски в win как блочные устройства.

Подключения хардов без проброса контроллера, а в виде блочных устройств.
Создаем папку для линков
mkdir /srv/hdds
Создаем SR
xe sr-create name-label="HDDS" name-description="Блочные устройства" type=udev content-type=disk device-config:location=/srv/hdds

ну и линкуем наши харды из системы
ln -s /dev/md0 /srv/hdds/md0
ну и теперь можно сходить в xencenter, пересканировать SR хранилище и подключить оттуда жесткие диски к нашей системе. Больше 4 жестких дисков таким методом не пробросить. Но можно снять ограничение и увеличить до 16.

для проброса устрйоств в ВМ делаем lspci - для того чтобы узнать как называются у нас наши контроллеры.
xe vm-param-set other-config:pci=0/0000:01:00.0,0/0000:01:00.1 uuid=d103a91d-5c38-844f-14d5-64b3c495eb08
К примеру для проброса usb и видео контроллера. Но в моем случае, такой подход к Mint, а для win прокидываем еще и контроллер с жесткими дисками. По желанию можно прокинуть и звуковую карту. Теперь остается запустить наши новые ВМ и поставить на них операционные системы и драйверы. Для общих файлов в windows я расшариваю остальные жесткие диски. Для того чтобы "интегрировать" системы друг в друга, я подключаю в качестве папок с окружением и на win и на mint (рабочий стол, мои документы, моя музыка и прочее) папки с шары с жесткого диска из гипервизора. Побочный эффект - это link файлы из mint на рабочем столе для windows и ярлыки от win на столе mint. Ну и для удобства работы с системами, я рекомендую поставить программу проброса мыши и клавиатуры Synergy. Программа умеет перемещать и клавиатуру вслед за мышью, общий копипаст и даже перетаскивать файлы. Весьма удобно в нашем случае. Так же является кросс платформенной. Рекомендую подключить и пробрасывать управление с той системы которая будет главной. Ну и на будущее можно попытаться объединить для Nix все мониторы. Для этого хочу поставить на win xserver и подключить к xorg как дополнительный монитор.

Заранее извиняюсь если кому-то написал непонятно и сумбурно. С утра в четверг хочется помочь людям, но качественно не можется =)

Уоу, чуть не забыл =) автостарт операционных систем в гипервизоре.
xe vm-param-set uuid=... other-config:auto_poweron=true

ну не вручную же запускать нам операционки. По статьям на хабре можно заметить, что особого падения производительности нет,
Ответ написан
nazarpc
@nazarpc
Open Source enthusiast
2. При аппаратной виртуализации минимально
3. Да, можно на ultra включать 3D игрушки с проброшенной видеокартой, сам так делаю

У меня процессор AMD, видеокарты тоже. Использую Xen, в Dom0 Ubuntu x64, в DomU Windows 8 x64 (иногда для тестов запускаю Windows XP без отдельной видеокарты, доступ по vnc).
На счёт остальных пунктов ничего авторитетного посоветовать не могу, так как не большой специалист в этой сфере.
Ответ написан
Qubes OS Вам в помощь.) Правда, она, вроде, пока в beta, но принцип у нее — то, что вам надо, как я понял
Ответ написан
Комментировать
А по вопросам:
1,2,5: Intel/AMD — разницы не почувствуете, главное, чтобы железо имело аппаратную поддержку виртуализации
Из вики:
Аппаратная виртуализация обеспечивает производительность, сравнимую с производительностью невиртуализованной машины, что дает виртуализации возможность практического использования и влечет её широкое распространение. Наиболее распространены технологии виртуализации Intel-VT и AMD-V.

3,6: copy/paste текста позволяет только хостовая ОС, вроде, но без нее секурнее.
Ответ написан
fear86
@fear86
Developer
Воспользуюсь возможностью и поинтересуюсь. Каким образом можно организовать работу мыши + клавиатуры одновременно в двух и более виртуалках? (хотя бы с возможностью переключения). Ведь пробросив видео карту для игр, хотелось бы пробросить единственную мышь, а потом как то вернуться назад.

ps: про kvm switch я знаю.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы