Цель: недорого собрать систему поддерживающую проброс PCI-устройств в виртуальную машину (c IOMMU). Создать полноценное рабочее место, поднять виртуальный маршрутизатор и еще полезные мелочи.
Комплектующие:
- Процессор AMD FX-8320 Vishera — 4800 руб.
- Материнская плата Gigabyte 970A-UD3 — 3000 руб.
- Модули памяти Kingston по 4GB 1100x4 руб.
- Видеокарта Nvidia GT440 — 1800 руб.
- Видеокарта AMD Radeon HD 7750 — 2800 руб.
- Сетевая карта PCIEx1 TP-LINK TG-3468 — 340 руб.
- USB-контроллер PCIEx1 ST-LAB U-750 — 500 руб.
- Жесткий диск Western Digital WD5000AAKX — 1800 руб.
- USB-накопитель Kingston DataTraveler SE9 — 250 руб.
Модули памяти, GT440, жесткий диск у меня уже были.
Гипервизор
Я не хочу и не люблю, чтобы все службы крутились внутри одной операционной системы. А так как у меня уже есть
В биосе предварительно включаем IOMMU, горячую замену SATA-дисков.
VMware ESXi 5.1.0 был установлен на USB-флешку, локальная виртуальная сеть настроена. Это совсем просто, описание процесса не требуется.
Для проброса USB-контроллера пришлось установить патч ESXi510-201303001.
Найти его можно на официальном сайте: www.vmware.com/patchmgr/findPatch.portal
Для установки патча придется включить SSH-сервер в настройках ESXi и в консоли выполнить команду:
# esxcli software vib install -d "/vmfs/volumes/datastore_name/ESXi510-201303001.zip"
Сеть
Создаем виртуальную машину, которая будет маршрутизатором, 1 vCPU, 256 vRAM и диска на 8GB должно быть вполне достаточно.
Присоединяем к виртуальной машине 2 сетевых интерфейса, расположенных в разных vSwitch.
Операционной системой домашнего маршрутизатора будет pfSense 2.1, так как он имеет дружелюбный интерфейс, что важно для моих родственников.
pfSense включает в себя все необходимые службы для дома: DNS, DHCP, NTP, uPnP, VPN (OpenVPN, PPTP, IPsec, L2TP), IGMP Proxy, WoL, SNMP. Так же рисует графики по сетевым интерфейсам и имеет кучу утилит для диагностики. Заходить в консоль нет необходимости. Кстати, на pfSense можно ставить дополнительные пакеты, в репозитории есть VMware Tools, которые мне нужны.
Ссылки на скачивание и все необходимые инструкции есть на официальном сайте: www.pfsense.org/
Если вы хотите сами настроить маршрутизатор, то можете воспользоваться этой статьей.
Рабочее место (или HTPC)
Создаем виртуальную машину под операционную систему Windows 8.1, ресурсы по вкусу, я остановился на 4vCPU, 4GB vRAM и 60GB диске под ОС.
Подключаем к виртуальной машине видеокарту и USB-контроллеры, предварительно настроив их в «passthrough mode».
У меня это выглядит так:
Запускаем виртуальную машину, подключаем к ней ISO-образ, устанавливаем Windows как обычно.
После установки Windows 8.1 нашла в сети все необходимые драйвера для работы видеокарты и USB-контроллеров.
Делаем внешний монитор/телевизор основным и отключаем встроенный от VMware монитор.
Подключем по USB клавиатуру и мышь. Запускаем Youtube 1080p в любимой браузере для проверки пригодности виртуальной машины в качестве HTPC, запускаем любимую игрушку для проверки производительности. У меня Diablo 3 на максимальных настройках со сглаживанием и вертикальной синхронизацией стабильно показывает 30 кадров в секунду.
Теперь забываем что это виртуальная машина и пользуемся для своих целей, будь то игры, мультимедиа или работа.
Захостим что-нибудь
У хост-системы есть еще свободные ресурсы? Да, есть. Подниму зеркало для своих сайтов.
Создаю виртуальную машину, устанавливаю ОС, настраиваю ПО.
Если вы не знаете как это делается, то для вас есть много статей:
Nginx+php-fpm+perl под Debian Squeeze
Прокачка debian/ubuntu сервера для маленьких. Часть 1
Установка и настройка: Nginx + php5-fpm
Настройка Nginx + LAMP сервера в домашних условиях. Часть 1: Настройка frontend — backend
LAMP +Nginx на VPS стабильно и без лишней головной боли
А поиск здесь.
Захостим что-нибудь?
У хост-системы есть еще свободные ресурсы? Да, есть. Давайте качать торренты на сервер, а то SOHO-роутер от известного производителя делает это так медленно и USB портов у него мало.
Создаю виртуальную машину, устанавливаю любимую ОС, настраиваю любимый transmission и samba/nfs-шару.
Если вы не знаете как это делается, то для вас есть много статей:
Сборка и настройка Transmission в Debian или все что вы хотели знать о Transmission но боялись спросить
Transmission — внедряем в него плюшки
Многопользовательская торрент-качалка на transmission
Авторегулирование скорости Transmission
А поиск здесь.
Подводные камни
Оказывается, далеко не все видеокарты можно пробросить в виртуальную машину. Мне не удалось пробросить Nvidia GTS 250 и GT440. Windows хоть и видит видеокарту, но изображение отказывается выводить, а панель управления Nvidia говорит что монитор не подключен к ГП Nvidia.
Без патча ESXi510-201303001 USB-контроллеры не переходят в режим passthrough.
Без другого ПК нельзя включить выключенную виртуальную машину, так что виртуальную машину с VMware vSphere Client лучше не выключать, если в доме нет других ПК.
Дальнейшие планы
Хочу заменить GT-440 на другую видеокарту, которую можно пробросить в виртуальную машину, например, HD7850/7870, чтобы обеспечить еще одно рабочее место, ESXi и без видеокарты будет работать.
В отдельной виртуальной машине с проброшенным RAID-контроллером поднять хранилище для фотографий и документов.
Итог
- Можно экспериментировать с виртуальными машинами не мешая другому человеку играть в Minecraft.
- Имеем мощный виртуальный маршрутизатор.
- Удобно делать снапшоты и резервные копии.
- Можно захостить дома виртуальные машины если выйдет из строя другой ESXi-хост.
- Гибкость изменения конфигурации.
По стоимости получается как обычный декстоп, но получаем десктоп+домашний сервер.
Получается, что роутер, торрентокачалка и сетевое хранилище совсем не занимают места, не шумят и не тратят электричество, это делает десктоп ;)
Если вы давно думаете о покупке домашнего сервера, то посмотрите на свой десктоп, может быть он и станет вашим домашним сервером?
Автор: klu4ik
Большое спасибо за статью, у меня такая же ситуация.Мучаюсь очень долго, но теперь стало чуть яснее что делать дальше