Рубрика:
Администрирование /
Виртуализация
|
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|
АНДРЕЙ СЕМЕНОВ, Восточное управление ДВБФ ФГУП «Росморпорт», главный специалист ОИТ, avsemenov@gmail.com
Оптимизация с помощью виртуализации Организуем несколько рабочих мест из одного десктопа
Поддержка функций виртуализации в среднебюджетных рабочих станциях позволяет оптимизировать расходы на рабочих местах пользователей. В этой статье мы рассмотрим, как с помощью технологий виртуализации можно организовать два и более рабочих места на основе одного персонального компьютера
Одно из них будет использовать Linux. Это может быть место приходящего админа, веб-разработчика или секретаря, обрабатывающего заказы.
Другие два, три и даже более (зависит он конфигурации материнской платы) рабочих места будут основаны на виртуальных машинах с выделенными для них ресурсами ввода-вывода (видеокарта, USB-порты). Использование таких виртуальных рабочих мест для пользователя практически ничем не будет отличаться от привычной работы за отдельным ПК. Дополнительным плюсом ко всему вышеуказанному будет возможность организовать на этих же мощностях файловое хранилище и другие необходимые инфраструктурные службы как на основе свободных бесплатных решений с использованием ОС семейства Linux (что предпочтительно), так и коммерческих. Это могут быть сервисы DHCP, DNS, брандмауэр/прокси для доступа в сеть Интернет, ряд других инфраструктурных служб.
Описанная выше конфигурация очень кстати придется для предприятий малого бизнеса. Преимущества описанного выше подхода использования одного мощного виртуализованного десктопа по сравнению с покупкой бюджетных моделей могут казаться не очевидными. А они есть:
- Экономия бюджета. Действительно, на первый взгляд с финансовой точки зрения покупка одного десктопа на core-i5 может и не дать преимуществ перед покупкой двух ультрабюджетных десктопов/неттопов. Но уже при необходимости организации трех рабочих мест и хотя бы одной/нескольких инфраструктурных служб финансовые преимущества виртуализации могут быть заметны.
- Увеличение производительности рабочих мест. Даже с учетом расходов на разделение ресурсов и виртуализацию виртуальная рабочая станция будет как минимум в два-три раза производительнее, чем бюджетные не виртуализованные аппаратные решения (см. [1]).
- Гибкость в выделении ресурсов (память, ядра процессора) сотрудникам. В отчетный период можно выделить больше ресурсов на рабочее место бухгалтера, а если горит проект – выделить больше ресурсов разработчику. Пока сотрудник в отпуске или командировке, мощности его виртуальной машины можно отдать другим.
- Более грамотная организация служб и изоляция их конфигураций от пользователей без ущемления их прав на рабочем месте. Часто для сокращения затрат инфраструктурные службы организуются прямо на рабочих местах сотрудника. Например, общие файловые ресурсы, прокси/брандмауэр для доступа в интернет. С использованием виртуализации для таких целей можно выделить отдельные виртуальные машины и не быть ограниченными в выборе ПО, совместимого только с одной операционной системой семейства Windows.
Есть, конечно, и недостатки:
- Единая точка отказа, которая приведет к неработоспособности сразу нескольких рабочих мест. Здесь в каждом конкретном случае нужно рассмотреть возможные проблемы ипути их решения (ЗИП и резервное копирование никто не отменял).
- Возможные проблемы с недостаточным количеством USB-портов (решаются многопортовым PCI-USB адаптером, USB-хабами).
- Необходимость дискретной видеокарты на количество рабочих мест минус один (одно рабочее место на ОС хоста на встроенной графике).
- Рабочие места на основе одного десктопа не могут быть сильно удалены друг от друга. Однако малый бизнес не настолько богат, чтобы выделять каждому сотруднику отдельный кабинет. В пределах одного-двух находящихся рядом небольших помещений такие виртуализованные рабочие места вполне реально организовать.
Кстати, это не просто теория: конфигурацию, аналогичную описываемой в статье, я использую дома с 2014 года. За это время был накоплен кое-какой опыт, которым мне с вами хочется поделиться.
Выбор аппаратной и программной конфигураций
Для того чтобы виртуализовать десктоп и организовать на его основе несколько рабочих мест, необходима поддержка аппаратной виртуализации (Hardware-assisted virtualization) ивиртуализации ввода/вывода (IOMMU virtualization). Поддержка этих технологий должна быть реализована как на уровне аппаратной платформы, так и на уровне программной реализации (гипервизора).
Суть аппаратной виртуализации заключается в поддержке процессором специальных инструкций, позволяющих организовать эмуляцию всего аппаратного окружения длявиртуальной машины, и она становится независимой от архитектуры аппаратной платформы хоста. При этом производительность остается сравнимой с производительностью хоста.
На основе виртуализации ввода/вывода виртуальной машине с помощью «проброса» (pass-through) можно предоставить прямой доступ к устройствам ввода/вывода на шине PCI иболее современных (например, PCI-E). Так можно организовать прямой доступ к видеокарте и USB-контроллерам и устройствам.
Основные вендоры начиная с 2005-2006 годов во многих своих решениях поддерживают аппаратную виртуализацию. У Intel поддержка аппаратной виртуализации процессором называется Intel VT-x, у AMD – AMD-V. Немного позже Intel и AMD разработали и добавили в свои аппаратные платформы поддержку виртуализации ввода/вывода (IOMMU virtualization). Intel назвал свою технологию Virtualization Technology for Directed I/O (VT-d), AMD – AMD I/O Virtualization Technology, которую сами называют IOMMU [2] (распространено также название AMD-Vi).
Таким образом, выбор аппаратной платформы заключается в выборе процессора и материнский платы с поддержкой Intel VT-x и VT-d в случае выбора продукции Intel, а в случае AMD – с поддержкой AMD-Vi (IOMMU) для материнской платы и AMD-V и AMD-RVI для процессора.
Если закупка «железа» еще в планах, то не лишним будет заглянуть на сайты производителей [3, 4], чтобы узнать о поддержке виртуализации ввода-вывода процессорами.
С материнскими платами сложнее, чипсет и BIOS должны поддерживать виртуализацию ввода/вывода. В BIOS материнской платы должен быть пункт VT-d в случае Intel, IOMMU или AMD-Vi для AMD. Все десктоп-чипсеты Q-серий от Intel начиная с Q35 (из современных это Q87, Q170, Q270) гарантированно поддерживают VT-d. Информацию о поддержке VT-d/Amd IOMMU(AMD-Vi) оборудованием можно почерпнуть в Wiki-разделах сайта проекта Xen [5] и в Википедии [6].
Статью целиком читайте в журнале «Системный администратор», №3 за 2017 г. на страницах 22-28.
PDF-версию данного номера можно приобрести в нашем магазине.
- Сравнение производительности эконом и среднебюджетного CPU – http://www.cpubenchmark.net/compare.php?cmp%5B%5D=1896&cmp%5B%5D=2167.
- Информация о IOMMU от AMD – http://support.amd.com/TechDocs/48882_IOMMU.pdf.
- CPU Intel c поддержкой VT-d – http://ark.intel.com/search/advanced?s=t&VTX=true&VTD=true.
- CPU AMD с поддержкой AMD-RVI – http://support.amd.com/en-us/kb-articles/Pages/GPU120AMDRVICPUsHyperVWin8.aspx.
- О поддержке IOMMU на сайте Xen – https://wiki.xenproject.org/wiki/VTd_HowTo.
- О поддержке IOMMU на Википедии – http://en.wikipedia.org/wiki/List_of_IOMMU-supporting_hardware.
- Новое в Xen 4.8 – http://blog.Xenproject.org/2016/12/07/whats-new-with-Xen-project-hypervisor-4-8.
- Сборка ядра в Ubuntu – http://wiki.ubuntu.com/KernelTeam/GitKernelBuild.
- Проброс видеоадаптера в Xen – http://wiki.Xenproject.org/wiki/Secondary_GPU_Passthrough.
- Конфигурационный файл ядра Linux и deb-пакеты ядра c поддержкой Xen – http://charoday.ru/samag-kernel-options-for-Xen.
- Сборка ядра для Xen – http://wiki.Xenproject.org/wiki/Compiling_Xen_From_Source.
- Исходные тексты Xen – https://Xenproject.org/downloads/Xenarchives/Xen-project-48-series/Xen-project-480.html.
- Рекомендации по использованию Xen – https://wiki.Xenproject.org/wiki/Xen_Project_Best_Practices.
- Параметры файла конфигурации DomU для стека управления XL – http://Xenbits.Xen.org/docs/4.8-testing/man/xl.cfg.5.html.
- «Проброс» USB в Xen – https://wiki.Xen.org/wiki/Xen_USB_Passthrough.
- Установка Virt-Manager в Ubuntu 16.04 – http://charoday.ru/ubuntu16.04-compile-libvirt-and-virt-manager-with-Xen-support.
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|