Какой процессор для виртуальных машин
Опираясь на описанную в предыдущем посте теорию, проведем расчеты:
Одновременно от 6 до 9 пользователей VDI могут использовать одно физическое ядро CPU. Для упрощения возьмем среднюю цифру — 7 пользователей.
Согласно требованиям заказчика необходимо обеспечить работу 700 пользователей по VDI с расширением до 1000.
Процессоры
Посчитаем количество необходимых процессоров.
Серверы заказчика на 6-ядерных процессорах Intel Xeon, 2 шт на сервер, т.е. 2 x 6 x 7 = 84 пользователя на 1 ESX-сервер с 2-мя процессорами. Кроме этого, архитектура Nehalem и Westmere очень эффективно позволяет задействовать Hyper Threading и получить на 50-80% больше клиентов. Т.е. на практике где-то: 1,52 * 84 = 126-128 пользователей.
Еслу Hyper Threading не может быть использован или дает прирост меньше 50%, или если необходимо сделать просчет с запасом, то рекомендуемое правило: использовать 75% пользователей на сервер от показателя с hyper threading (т.е. в нашем случае: 128 * 75% = 96 пользователей на сервер), но в текущем расчете все показатели были проверены на практике и совпали с расчетными.
Число серверов для первого этапа (700 пользователей) — 6 серверов, с учетом дальнейшего расширения — 8 серверов.
Оперативная память
Объем памяти напрямую зависит от используемой версии ОС Windows, и от того какие приложения будут запускаться. Требования по каждому приложению всегда можно посмотреть на сайте производителя ОС и программного обеспечения.
Например, с Windows XP (это наш случай) для базовых операций требуется 400-500 МБ, с кэшированием — не более 700 МБ. Система в обычных условиях начинает использовать файл подкачки, когда остается менее 25% свободного места в оперативной памяти. ОС всегда старается сохранить как минимум 25% свободного места в резерве. Но использование файлов подкачки в виртуальной среде приведет к потере производительности, поэтому вместо создания файла подкачки с объемом в 1,5-2 от оперативной памяти жестко зафиксируем: не более 200-500 МБ на файл подкачки, если это недостаточно, то клиенту необходимо добавить больше оперативной памяти.
Помимо этого, примерно половина всей используемой памяти содержит похожие блоки на всех клиентах (DLL, схожие блоки приложений и пр.). vSphere Memory Management делит всю память на страницы по 4 КБ, а служба TPS сканирует все блоки данных каждые 60 минут и вычисляет хэш. Ядро сохраняет хэш в таблицу и сравнивает с уже записанными ранее значениями, оставляя только одну копию из двух идентичных, высвобождая таким образом свободное пространство. Если необходимо внести изменения в эту страницу, то создается ее копия для записи. Процент RAM, который высвобождается c использованием TPS — относительный показатель, зависящий от многих факторов и может достигать 35%-50%. На Windows 7 этот показатель ниже из-за использования ASLR (Address Space Load Randomisation), но его также можно отключить.
Для запуска Windows XP на ESX-сервере нам необходимо:
- Если будет занято 60% памяти и половина ее будет разделяться между другими виртуальными машинами (Transparent Page Sharing), то нам нужно 1 ГБ * 60% * 50% = 300 МБ. Плюс, каждая виртуальная машина требует немного оперативной памяти сама по себе – около 5% от общего объема памяти сервера, те около 50 МБ на клиента. Итого 350 МБ. Хост сам по себе требует 4 ГБ RAM. Итого: 4 ГБ (хост) + 350 МБ * 128 (число виртуальных машин на сервер) = 48 ГБ RAM на сервер.
- Если занято 75% оперативной памяти и только треть будет разделяться, то каждому клиенту необходимо 1 ГБ * 75% * 67% = 512 МБ. Итого: 4 ГБ (хост) + (512МБ + 50 МБ) *128 = 75 ГБ RAM на сервер.
- Если хост вобще не поддерживает разделение страниц, то нам необходимо: 4 ГБ (хост) + (1024 МБ +50 МБ)* 128 = 139 ГБ RAM.
- Для клиентов Windows 7 цифры следующие: (2 ГБ + 102МБ) * 50% * 60% = 645МБ на клиент. Итого: 4ГБ + 660МБ *128 = 81 ГБ. Если хост не поддерживает transparent page sharing, то необходимо: 4ГБ + (2ГБ + 102МБ) * 128 = 275 ГБ.
Диски
Показатель IOPS очень сильно зависит от версии ОС и от тех приложений, которые будут использоваться. Для ОС Windows XP примерный показатель — 8 IOPS на саму систему, для Windows 7 — 10 IOPS на систему. Исходя из этого, на 128 виртуальных машин Windows XP (8 IOPS) необходимо 1024 IOPS в режиме чтение/запись 20/80, т.е. 205 IOPS на чтение и 819 IOPS на запись. Т.е получаем количество дисков в RAID1: 205 / 160 IOPS + 819 / 80 IOPS (см. предыдущий пост, часть по RAID) = 14 дисков, неважно стоят ли они на хосте или на общем хранилище.
В RAID5: 205 / 160 + 819 / 45 = 21 диск.
Исходя из замеров на дисковую подсистему: на каждого обычного пользователя необходимо 20 IOPS дисковой производительности, таким образом: 20 IOPS * 1000 пользователей = 20000 IOPS. Из них 20% на чтение (4000 IOPS) и 80% на запись (16000 IOPS). Рассчитаем число дисков в RAID1: 4000 / 160 + 16000 / 80 = 226 дисков. Если пользователи отличаются по приложениям, то расчет берется по каждой группе пользователей.
Если необходимо посчитать число дисков в RAID5: 4000 / 160 + 16000 / 45 = 381 диск.
В требованиях нашего заказчика были указаны обычные пользователи (email, интернет, таблицы, текстовые документы).
Так как текущее хранилище (HP EVA) могло быть расширено до требуемых 226 дисков, то необходимости в замене хранилища не было.
Для получения показателей производительности VDI профилей в рамках массива используется команда vscsiStats. C помощью нее подсчитываются: IO size, seek distance, Outstanding IOs, Latency.
У vmWare есть документ, в котором указаны показатели и команды для запуска статистики.
После подсчетов в теории необходимо проверить этой командой правильно ли отрабатывает тестовая конфигурация, и если необходимо — внести корректировки в конфигурацию.
Прежде, чем строить инфраструктуру на базе виртуализации, и, тем более – вводить ее в промышленную эксплуатацию, необходимо позаботиться о том, чтобы ресурсы системы использовались наиболее эффективно, и производительность была максимальной. В этом цикле статей я дам рекомендации о том, как оптимизировать систему по производительности – как со стороны хоста, так и со стороны виртуальных машин.
Начнем с хоста
- Процессор
- Память
- Дисковая подсистема
- Сетевая подсистема
Процессор – сердце компьютера
- Сколько ставить процессоров?
- Сколько нужно ядер?
- Их скоростные характеристики?
- Требуется больше лицензий на ПО – как на сами ОС, так и на ПО управления (SCVMM, SCCM, SCOM, etc.)
- Возрастают затраты на администрирование – три сервера вместо одного
- Три сервера потребляют больше энергии, а значит – выделяют больше тепла, и занимают больше места в стойке, чем один сервер, пусть и более мощный.
- Hyper-V Hypervisor Virtual Processor, % Total Run Time — этот счетчик отображает загрузку виртуальных процессоров. Можно задать отображение суммарной загрузки всех процессоров для запущенных виртуальных машин, а можно выбрать конкретный виртуальный процессор конкретной виртуальной машины.
- Hyper-V Hypervisor Root Virtual Processor, % Total Run Time – а этот счетчик показывает загрузку выбранных логических процессоров задачами, не связанными с Hyper-V.
Памяти много не бывает
- Сколько виртуальных машин будет запущено, и сколько памяти им понадобится? Объем памяти, необходимый каждой виртуальной машине зависит от задач, которые она будет выполнять. Подход тот же самый, что и для обычных серверов, но память виртуальным машинам можно выделять более гибко – не 1024 Мб, а, к примеру, 900 Мб.
- Хостовой ОС тоже нужна память. Рекомендуется оставлять как минимум 512 Мб свободной памяти на нужды гипервизора и самой хостовой ОС. Если объем свободной памяти опустится ниже 32 Мб – система не даст запустить больше ни одной виртуальной машины, пока память не освободится. Кроме этого, в хостовой ОС могут выполняться какие-то другие задачи, помимо виртуализации. Хотя это и крайне не рекомендуется, но факт все же имеет место быть, и это необходимо учитывать.
- Другие виртуальные машины (для сценариев Live Migration). Если инфраструктура планируется на базе отказоустойчивого кластера, то необходимо на каждом из хостов предусмотреть дополнительные объемы памяти. Дело в том, что виртуальные машины могут перемещаться с одного хоста на другой в случае ручного перемещения (Live Migration), или же в случае отказа одного из хостов. Если на хосте будет недостаточно памяти для запуска перемещаемых виртуальных машин – то они попросту не смогут на нем запуститься. Поэтому на этапе проектирования надо предусмотреть «неприкосновенный запас» в размере 50-100% от необходимого объема памяти. Возможно, ситуация немного улучшится с выходом Windows Server 2008 R2 SP1, в который входят технологии динамического распределения памяти, но точно я смогу сказать лишь тогда, когда сам это протестирую.
Жесткие диски: сколько их надо?
- RAID 0 – «массив с чередованием». Информация пишется блоками («страйпами») одновременно на несколько дисков. Благодаря этому чтение и запись больших объемов информации происходит значительно быстрее, чем с одного диска, и тем быстрее, чем больше дисков в массиве. Но есть один большой недостаток: низкая надежность. Выход из строя любого из дисков приведет к полной потере информации. Поэтому на практике RAID 0 используется достаточно редко. Один из примеров – промежуточное хранилище резервных копий в модели «Disk-to-disk-to-tape», когда надежность не так важна, как быстродействие.
- RAID 1 – «зеркалирование». При такой модели информация записывается одновременно на несколько дисков, причем содержимое всех дисков абсолютно идентично. Скорость записи и чтения не выше, чем для одиночного диска, но намного выше надежность: выход из строя одного диска не приведет к потере информации. Недостаток лишь один: высокая стоимость – там, где хватает и одного диска – приходится ставить два и более. Смысл имеет в тех случаях, когда надежность имеет решающее значение.
- RAID 4 и RAID 5 – «чередование с контролем четности». Предстваляет собой некую «золотую середину» между RAID 0 и RAID 1. Смысл состоит в том, что информация хранится на дисках как и в случае RAID 0 — блоками с чередованием, но помимо этого вычисляются контрольные суммы хранимых данных. В случае отказа одного из дисков – недостающие данные автоматически вычисляются по имеющимся данным и контрольным суммам. Разумеется, это приводит к снижению производительности, но в то же время данные не теряются, и при замене сбойного диска вся информация восстанавливается (этот процесс называется перестройкой массива). Потеря данных произойдет только при отказе двух и более дисков. Такие массивы отличаются тем, что скорость записи у них значительно ниже, чем скорость чтения. Происходит так из-за того, что при записи блока данных происходит вычисление контрольной суммы и запись ее на диск. RAID 4 и RAID 5 отличаются тем, что в RAID 4 контрольные суммы записываются на отдельный диск, а в RAID 5 – хранятся на всех дисках массива вместе с данными. В любом случае, для организации такого массива нужно N дисков для хранения данных плюс один диск. В отличие от RAID 1 и RAID 10, где количество дисков просто удваивается.
- RAID 6 – он же RAID DP, double-parity, двойная четность. То же самое, что и RAID 5, но контрольные суммы вычисляются два раза, с использованием различных алгоритмов. Хотя дисков здесь требуется уже не N+1, как с RAID 5, а N+2, зато такой массив может пережить даже одновременный отказ двух дисков. Встречается относительно редко, как правило – в системах хранения данных Enterprise-уровня, к примеру – NetApp.
- RAID 10 – «гибрид» RAID 0 и RAID 1. Представляет собой RAID 0 из нескольких RAID 1 (и тогда называется RAID 0+1) или наоборот – RAID 1 из нескольких RAID 0 (RAID 1+0). Отличается наивысшей производительностью, как по записи, так и по чтению, но в то же время отличается и высокой стоимостью – так как дисков требуется в 2 раза больше, чем необходимо для хранения данных.
- Physical Disk, % Disk Read Time
- Physical Disk, % Disk Write Time
- Physical Disk, % Idle Time
- Physical Disk, Avg. Disk Read Queue Length
- Physical Disk, Avg. Disk Write Queue Length
Сетевая подсистема
- Сколько виртуальных машин будет запущено одновременно, и какова будет нагрузка на сеть?
- Какова пропускная способность сети?
- Используются ли системы хранения данных с интерфейсом iSCSI?
- Есть ли у сервера аппаратные средства удаленного управления, не зависимые от установленной ОС (к примеру – HP iLO или Dell DRAC)?
На уровне хоста
Для серверов, у которых нет аппаратных средств удаленного управления рекомендуется один из сетевых интерфейсов оставлять незадействованным в виртуальных сетях, исключительно для задач управления. Это сильно снизит риск ситуации, когда при чрезмерной утилизации или же из-за неправильных настроек сетевого интерфейса пропадает возможность удаленного управления сервером. Сделать это можно либо на этапе инсталляции роли Hyper-V, сняв галочку с одного из сетевых интерфейсов, либо же после инсталляции – удалив виртуальную сеть, привязанную к сетевому интерфейсу, который будет использоваться для управления.
Кроме этого, на уровне хоста прямо таки необходимо установить как можно более «свежие» драйверы для сетевых адаптеров. Это нужно для того, чтобы воспользоваться специальными функциями сетевых адаптеров – VLAN, Teaming, TCP Offloading, VMQ (при условии, что сами сетевые адаптеры это поддерживают – как правило, это специализированные серверные сетевые адаптеры).
Сетевые нагрузки
iSCSI
Если планируется использовать системы хранения данных с интерфейсом iSCSI – крайне рекомендуется выделить для работы iSCSI отдельный сетевой интерфейс, а то и два – для работы MPIO. Если LUN’ы будут монтироваться в хостовой ОС – то нужно просто оставить один или два интерфейса не привязанными к виртуальным сетям. Если же iSCSI-инициаторы будут работать внутри виртуальных машин – для них нужно создать одну или две отдельных виртуальных сети, которые будут использоваться исключительно для трафика iSCSI.
VLAN-тегирование
VLAN-тегирование (IEEE 802.1q) означает «маркировку» сетевых пакетов специальным маркером (тегом), благодаря которому пакет может быть ассоциирован с определенной виртуальной сетью (VLAN). При этом хосты, принадлежащие к разным VLAN, будут находиться в разных широковещательных доменах, хотя и подключаться физически к одному и тому же оборудованию. Виртуальные сетевые адаптеры в Hyper-V так же поддерживают тегирование VLAN. Для этого нужно зайти в свойства виртуального адаптера в настройках виртуальной машины и прописать там соответствующий VLAN ID.
Активное оборудование
Рекомендации для хостовой ОС
- Меньший объем обновлений
- Меньшая поверхность атаки для потенциальных злоумышленников
- Меньшая нагрузка на процессор и память в родительской партиции
Запуск других приложений в хостовой ОС
Запуск в гостевой ОС сторонних (не имеющих отношения к Hyper-V) приложений, а так же установка других серверных ролей помимо Hyper-V может привести к сильному падению производительности, а так же к снижению стабильности. Дело в том, что из-за особенностей архитектуры Hyper-V, все взаимодействие виртуальных машин с устройствами проходит через родительскую партицию. Поэтому высокие нагрузки или «падение в синий экран» в родительской партиции обязательно приведут к падению производительности или просто к «падению» всех запущенных виртуальных машин. Сюда же можно (и нужно) отнести антивирусное ПО. Нужно ли оно вообще на хосте, который не будет заниматься ничем, кроме, собственно, виртуализации – это, конечно, тот еще вопрос. Тем не менее, если антивирус все же установлен – первое, что необходимо сделать – исключить из списка проверки все папки, где могут находиться файлы виртуальных машин. В противном случае, при сканировании может замедлиться производительность, а если в каком-нибудь VHD-файле обнаружится что-то похожее на вирус – то при попытке лечения антивирусный пакет может испортить сам VHD. Подобные случаи наблюдались и с базами MS Exchange, и потому первая рекомендация – не ставить вообще на серверах Exchange файловые антивирусы, а если и ставить – то добавить папки с базами в исключения.
Рекомендации для виртуальных машин
Шаги, которые необходимы предпринять для повышения производительности самих виртуальных машин – зависят от приложений, которые будут на них выполняться. У Microsoft имеются рекомендации (best practices) для каждого из приложений – Exchange, SQL Server, IIS, и других. Аналогичные рекомендации существуют для ПО других вендоров. Здесь я дам лишь общие рекомендации, не зависящие от конкретного ПО.
Здесь будет рассказано, почему нужно устанавливать Integration Services в гостевой ОС, как упростить развертывание новых виртуальных машин с помощью библиотеки VHD, и как поддерживать эти VHD в актуальном состоянии с выпуском новых патчей.
Сервисы интеграции
- Windows 2000 Server SP4
- Windows Server 2003 SP2
- Windows Server 2008
- Windows XP SP2, SP3
- Windows Vista SP1
- SUSE Linux Enterprise Server 10 SP3 / 11
- Red Hat Enterprise Linux 5.2 – 5.5
- IDE-контроллер – заменяет собой эмулируемый IDE-контроллер, что повышает скорость доступа к дискам
- SCSI-контроллер – является полностью синтетическим устройством и требует для работы обязательной установки интеграционных сервисов. К каждому SCSI-контроллеру можно подключить до 64 дисков, самих контроллеров может быть до 4 на каждую виртуальную машину.
- Сетевой адаптер – имеет более высокую производительность, чем эмулируемый (Legacy Network Adapter), и поддерживает особые функции, такие, как VMQ.
- Видео и мышь – повышают удобство управления виртуальной машиной через ее консоль.
- Operating System Shutdown – возможность корректного завершения работы гостевой ОС без логина в нее. Аналогично нажатию кнопки Power на корпусе ATX.
- Time Synchronization – ясно из названия – синхронизация системного времени между хостовой и гостевой ОС.
- Data Exchange – обмен ключами реестра между гостевой и хостовой ОС. Таким образом, к примеру, гостевая ОС может определить имя хоста, на котором она запущена. Эта возможность доступна только для гостевых ОС семейства MS Windows.
- Heartbeat – специальный сервис, периодически отправляющий специальные сигналы, означающие, что с виртуальной машиной все в порядке. Если гостевая ОС по какой-то причине, например, зависнет – она перестанет отправлять Heartbeat, и это может служить сигналом, к примеру, для автоматической перезагрузки.
- Online Backup – представляет из себя VSS Writer, позволяющий в любой момент получить консистентную резервную копию данных виртуальной машины. При запуске резервного копирования через VSS приложения, запущенные на виртуальной машине автоматически сбрасывают данные на диск, и потому бэкап получается консистентным.
Sysprep: создаем мастер-образ
- Создать новую виртуальную машину
- Произвести установку ОС, сервисов интеграции, всех доступных обновлений системы и дополнительного ПО, если таковое необходимо
- Подготовить установленную ОС с помощью утилиты Sysprep, которая удалит информацию о пользователе, ключе продукта и уникальный идентификатор (SID).
Оффлайн-установка обновлений
- Виртуальная машина разворачивается на специальном, выбираемом с помощью SCVMM, хосте – так называемый maintenance host.
- Виртуальная машина запускается, и на ней производится установка всех необходимых обновлений.
- Виртуальная машина останавливается, и VHD-файл возвращается в библиотеку уже с установленными обновлениями.
Заключение
Я дал некоторые рекомендации по настройке хостов и самих виртуальных машин, позволяющей достичь оптимального уровня производительности. Буду надеяться, что для кого-то эта информация окажется полезной.
Необходимо развернуть среду из 10 виртуальных машин на различных версиях WIndows с разными ролями.
В среднем для одной виртуальной машины необходимо 2 процессора и 2-3 гб оперативной памяти.
Решили остановиться на 2-х компьютерной конфигурации. То есть купить 2 компьютера и запускать на каждом по 5 виртуальных машин.
Подбираем железо и встал вопрос что взять:
Ryzen 7 (8/16) со встроенным видео + 32 гб оперативной памяти + 3 SSD в Raid 5 для машин + ssd под систему
intel i5 (6/12) + 32 гб оперативной памяти + 3 SSD в Raid 5 для машин + ssd под систему
Бюджет получается в пользу Ryzen на 15-20%
В качестве гипервизора будет либо Haper-v либо Windows Server.
Возможно в будущем необходимо будет пробрасывать видеокарты или другие pci-e устройства в виртуальные машины
Были ли какие либо проблемы с виртуализацией на AMD
Простой 1 комментарий
Мы не готовы отдать круглую сумму за то чем мы не будем пользоваться. Нам тогда дешевле выйдет сервера у майкрософта в аренду брать.
Michio -, т.е. два системника с новыми процами и набитые оперативной и дисками дешевле чем один б/у двух процессорный сервер с 8+ слотами под дешовую память?
Берите EPYC либо Threadripper и желательно с ЕСС памятью — больше стабильности, меньше вероятность сбоя. Чем больше памяти — тем больше вероятность ошибки. На памяти не экономьте — винда с большим объемом памяти работает ощутимо быстрее, чем с постоянной подкачкой, даже с SSD.
SSD — как минимум Samsung 970 PRO М2, а лучше энтерпрайз решения от того же самсунга или интела. В рейд имеет смысл ставить только в зеркале для надежности, но все равно энтерпрайз плюс регулярный бэкап рулят и выглядит разумнее. Выделять отдельный SSD под систему не имеет особого смысла. Если хочется еще и файлохранилище — можно заюзать FreeNAS — раньше там прям из коробки можно было легко поставить VirtualBox в jail, как сейчас — не в курсе. Оно там из коробки поддерживает двойное кэширование в ОЗУ/SSD и еще кучу крутых фич.
Долгое время использую виртуалбокс на амд — все отлично.
Хочу собрать рабочий/домашний компьютер, соотвественно нужна возможность использовать разные среды в виртуалках, в том числе пробрасывать GPU в гостевую винду для игр.
Поделитесь историями успеха, если кто-то делал подобную схему, какую конфигурацию использовали? Есть ли какая-то разница в виртуализации и пробросе видеокарты между процессорами Intel и AMD?
Есть ли какая-то разница в виртуализации и пробросе видеокарты между процессорами Intel и AMD?
Раньше на интеле были проблемы с IOMMU. Про AMD могу сказать одно - все зависит от вендора. На моей Prime X470 Pro вся периферия, подключенная к чипсету (SATA, PCIe 2.0, встроенная сетевуха, звук) находится в одной IOMMU группе, что очень печально. При этом видеокарта, NVMe SSD и все остальное, что подключено напрямую к процессору через PCIe - разделено на свои группы, поэтому видеокарта без проблем прокидывается. Думаю, на платформе TR4/TRX40 дела обстоят лучше.
разницы особо нет, просто амд мощнее и дешевле. стоит райзен 3900х и асус на х470, радеон рх550 под линуксовый хост, 1080ти под виндузячий гест для игр. в линуксе в игры не играю, т.к. есть винда в виртуалке. вроде можно нвидию в линуксе как-то юзать через бамблби и т.п., не перезагружая Хорг, если уж вдруг хочется мощной графики в линуксе. если же нвидиа нужна только для куды, то даже Хорг не надо перезапускать.
у интела плюс, что не надо покупать отдельную видяху под хост, т.к. почти всегда есть встройка.
если нужен проброс юсб портов, то может понадобится купить псие карту с ними (и тут тогда надо искать материнку с максимальным кол-вом иомму групп), на АМД это обычно х570 или же ставить acs патч на ядро.
Поддержка каких CPU инструкций для чего нужна? Например, если я не ошибаюсь, без поддержки VT-d нельзя запустить виртуалку для другой платформы. Например, запустить 64-битную виртуалку на 32-битной системе или наоборот.
Kroz ★★★★★ ( 29.05.20 13:58:37 )
Последнее исправление: Kroz 29.05.20 13:59:13 (всего исправлений: 1)
щас везде есть вт-д и вт-х. зы зачем тебе 32-битный хост в 2020г?
Не знаю как у вас, но у меня на железе 10-12 летней давности есть виртуализация. Неужели на новом железе и этим ограничивают?!
Artamudo ★★★ ( 29.05.20 14:00:24 )
Последнее исправление: Artamudo 29.05.20 14:00:32 (всего исправлений: 1)
а, и не бери под гостя радеон, запаришься с резетами.
правило простое - под линуксовый хост берешь интел/радеон, под гостя - нвидию
Игры, защищенные изи_античитом, под виртуалкой работать не будут.
какую конфигурацию использовали
i5-4570, asus h97m-plus, gtx1070
гугли что у тебя и проц и мать поддерживают IOMMU и VT-D (это написано на сайте и в pdf-инструкции, у AMD вроде эти названия отличаются, но суть не меняется). Radeon видеокарты нормально прокидываются, но у драйвера AMDGPU никак не починят reset bug, из-за чего переключать ее между хостом и гостем - больно, но если ты не планируешь делать это на горячую(без ребута), то проблем не будет. Как сейчас с nVidia - хз, говорят все лучше, но какое-то время они запрещали прокидывать все кроме серверных карт.
игруны, которое готовы такое терпеть, должны страдать.
тут еще анти-читы стали ставить драйверы в ядро, надо слать таких разрабов, а не в игры их играть
а, и не бери под гостя радеон, запаришься с резетами.
единственная проблема - карта обратно гостю не возращается если ее отдать хосту на горячую.
Сразу скажу что пробросить nvidia видеокарту в гостя напрямую не получится, точнее получится, но она не взлетит. nvidia блокирует работу своих бытовых игровых видеокарт в виртуальных машинах на уровне bios видеокарты и своих драйверов, так как у них есть специально отдельные карты для этого, линейка grid, на которых строят коммерческие игровые терминальные кластеры типа сервиса geforce now. Раньше драйвер можно было обмануть пошаманив с конфигом виртуалки, сейчас они это «исправили» на уровне BIOS видеокарты.
если ты про денуву, то будут, главное чтобы все права на файлы принадлежали юзеру внутри гостя и права не менялись(с smb-шарой, например, такое не прокатит)
Dred ★★★★★ ( 29.05.20 14:07:20 )
Последнее исправление: Dred 29.05.20 14:07:26 (всего исправлений: 1)
что за чушь? обходится 3 (тремя) строчками в конфиге либвирта и подкладыванием файла биоса. делаешь 1 раз и все.
Я с этим неделю трахался, моя видеокарта не завелась. А вот радеон с тем же конфигом завёлся.
ну а я сделал по инструкции за 15 минут. и все остальные делают. so…
а, и не бери под гостя радеон, запаришься с резетами.
что за чушь ты несёшь?
Ссылочку пожалуйста. Я нагуглил что этот метод работает с относительно старыми картами.
читай выше и открой дивный новый мир девов АМД с их пофигизмом
арчевики катит, как и любой другой туториал на /р/вфио у меня на 1080ти работает, на 2ххх линейке также.
Ранее в нашем блоге выходила статья с советами по выбору виртуалки и про ценообразование хостинг-провайдеров. Но не всем подходят облачные решения из-за проблем с функционалом, конфиденциальностью и безопасностью. Тогда компании принимают решение создать своё — родное, куда никто не залезет и ничего не испортит. Об этом и поговорим :)
Эта статья подойдет всем, кто решил создать или модернизировать собственную IT-инфраструктуру для виртуализации. Здесь будут конкретные советы по подбору физического сервера виртуализации, но без углублений в софт.
Что такое виртуализация серверов
Виртуализация серверов — это программное разделение сервера (компьютера) на несколько независимых и изолированных друг от друга виртуальных машин (ВМ). Если по-простому, это некая шкатулка, внутри которой есть несколько отсеков под хранение разных или одинаковых вещей.
Сервер, который разбивается на виртуалки, называется хост-машиной (шкатулка), а виртуальные машины, которые получились в результате, называются гостевыми машинами (все внутренние отсеки).
Во главе всего процесса находится гипервизор, который бывает нескольких видов:
Гипервизор 1-ого типа — bare-metal или аппаратный гипервизор (Xen, KVM, ESXi)
Между виртуальной машиной и железом сервера только одна прослойка — гипервизор
Гипервизор 2-ого типа — хостовый гипервизор (VMware Workstation, OpenVZ)
Между виртуальной машиной и железом сервера две прослойки — операционная система и гипервизор
Существует ещё 3-ий — гибридный тип, но о нём ходит много споров, так что не буду перегружать вас ненужной информацией.
Гипервизор позволяет создавать ВМ, изолировать их друг от друга и распределять ресурсы сервера, благодаря чему каждая виртуальная машина может работать как полноценный компьютер со своей операционной системой и приложениями. Этот принцип лежит в основе облачных вычислений и гибридных IT-инфраструктур.
Проще говоря, системный администратор — это мастер по дереву, а гипервизор — его инструмент, с помощью которого он вытачивает шкатулку и определяет, какого размера будут внутренние отсеки, сколько их будет, из какого дерева и материалов будет шкатулка.
Накопители
Да, SSD-накопители для виртуализации — лучший выбор из-за минимальных задержек и высоких скоростей, особенно в требовательных к дисковой подсистеме задачах, таких как высоконагруженные базы данных. Но цена на серверные SSD, мягко говоря, кусается. Несколько классических SAS HDD — неплохой выбор при ограниченном бюджете, если организовать RAID-массив с увеличенной скоростью чтения.
Совет по типу накопителей:
Избегайте SATA HDD для виртуализации — их производительности недостаточно в большинстве современных задач. Единственный сценарий использования SATA HDD — у вас нетребовательные к скорости чтения/записи задачи, а где-то в серверной лежат диски без дела. RAID 10, 30 или 50 подтянут их скорость;
Определитесь: SSD или SAS HDD, смешивать и взбалтывать не нужно. Некоторые берут SSD для хостовой ОС и HDD для гостевых. В других задачах — это неплохое решение, чтобы получить высокую производительность при минимальных затратах, но не в нашей. Быстрый SSD хоста просто будет ждать, пока медленные HDD на виртуалках занимаются операциями ввода-вывода.
Зачем нужна виртуализация серверов
Виртуализация серверов позволяет эффективнее использовать IT-инфраструктуру. В своей статье “Как выбрать сервер для 1С” я делал вкусную аналогию между виртуализацией и пиццей :) Она очень наглядна и легка в восприятии, поэтому я не буду изобретать каменную печь, а сделаю схожее сравнение.
Железо (bare metal) для виртуализации
Bare metal сервер от Dell
Сервер для виртуализации должен иметь хороший потенциал для вертикального масштабирования. Например, возможность установить второй процессор, добавить несколько дисков и планок оперативной памяти, поставить ещё одну сетевую карту в свободный слот расширения.
Бюджетные модели не могут похвастаться хорошей вертикальной масштабируемостью. Поэтому оптимальный сервер для виртуализации — это среднебюджетная модель в форм-факторе 2U и больше. Желательно в пределах двух последних поколений. При этом современные 1U серверы с SSD также отлично подойдут.
Преимущества виртуализации серверов
Глоссарий VMware выделяет следующие основные преимущества виртуализации серверов:
Уменьшение времени простоев серверов;
Удешевление обслуживания серверов;
IT-инфраструктуру можно сделать меньше и проще;
Лёгкое клонирование и перенос ВМ;
Ускоренное развертывание рабочих нагрузок.
Оперативная память для сервера виртуализации (RAM)
У сервера должен быть достаточный объем оперативной памяти для ОС/гипервизора, каждой виртуальной машины и приложений , установленных на ВМ. Зачастую памяти для виртуализации нужно много. И лучше иметь запас 30% (можно и больше).
Совет по выбору серверной RAM: Производители брендовых серверов определяют/одобряют конкретных вендоров оперативки, чьи продукты поддерживаются. Вставить первую попавшуюся не получится (за редкими исключениями). Из-за ограниченного выбора сильно не разгуляешься, а глобальной разницы между планками от разных производителей нет. Это скорее вопрос цены, совместимости и надёжности (например, у некоторых есть пожизненная гарантия). Поэтому выбор вендора RAM — не такой важный вопрос, как при выборе процессоров, которые влияют чуть ли не на всю IT-инфраструктуру.
Совет — ответьте на 6 вопросов перед покупкой серверной RAM:
DDR3 или DDR4? В конце 2021 года начался плавный переход на DDR5, поэтому смотреть в сторону DDR3 не советую;
Сколько в материнской плате сервера слотов под DRAM?
Сколько будет процессоров, и сколько каждый из них поддерживает памяти?
Модули будут устанавливаться по 2, 3 или 4?
Какая частота памяти?
RDIMM или LRDIMM?
Седьмым пунктом надо бы поставить объем RAM, но он кратно отличается для разных виртуальных рабочих нагрузок, поэтому не существует однозначных рекомендаций в этом вопросе. Но самое главное — не допустить нехватки памяти, иначе обделённые ВМ будут чаще обращаться к накопителю, что значительно снизит производительность ОС и приложений. Так что запас в 30% необходим, чтобы гипервизор в пределах ограничений мог динамически распределять доступный объем RAM между виртуалками.
Совет по распределению vRAM: Даже если у хостовой машины большой объем оперативной памяти, не стоит выделять виртуалкам больше, чем требуется. Протестируйте, сколько в действительности нужно пользователю и (или) приложениям для нормальной работы. Например, рядовым пользователям, которые будут работать в офисных приложениях, таких как Windows 10 и пакет MS Office, вряд ли понадобится больше 4-5 ГБ оперативной памяти. Если выделите им 16 ГБ, лучше не станет.
Выводы
В этой статье я поговорил о физическом сервере для виртуализации, но не менее важный аспект — правильно подобрать и настроить софт. Однако тема настолько обширная, что не уместилась бы в рамки этой статьи.
Подытожим: не всем подходит хостинг, поэтому они выбирают собственный сервер для виртуализации. Иногда под эту задачу адаптируют уже существующую инфраструктуру. Она либо не подходила изначально, либо устарела со временем, что становится проблемой.
Если бюджет не позволяет взять новые серверы, есть способ сэкономить — купить восстановленные серверы Dell, HPE и Lenovo. Они в среднем дешевле на 30%, но показывают отличную производительность и надёжность, а мы дадим гарантию 5 лет. Если у вас остались вопросы, задавайте нашим менеджерам.
ПОДБОРКА СЕРВЕРОВ ДЛЯ ВИРТУАЛИЗАЦИИ
2 × Intel Xeon Gold 6240R / 512GB (8х64GB) / 2 × SSD 480gb / 2xHDD 1TB (до 8 HDD 2.5") / H730p/ 2x БП 1100w Hot Plug
Если говорить о железе, то на производительность ВМ больше всего влияет четыре параметра: CPU, RAM, дисковая подсистема и сетевой адаптер.
Сетевой адаптер
Неважно, локальная, гибридная или глобальная сеть у вас организована; сетевая карта с одним гигабитным портом может стать бутылочным горлышком . Для нормальной производительности и скорости работы смотрите в сторону 2 или 4-портовых сетевых плат. В 90% случаев хватает скорости в 1 Гбит/c, но если рабочие нагрузки требуют огромных скоростей, то берите 10 Гбит/c адаптер.
Совет по отказоустойчивости: Для некритичных ВМ и небольших инсталляций можно использовать одну сетевую карту, но учтите, что одна карта — одна точка отказа. Если хотите добиться высокой доступности для критически важных ВМ, нужен ещё один адаптер для избыточности.
Процессор для сервера виртуализации (CPU)
На рынке есть два основных игрока: Intel и AMD. Что касается производительности, если сравнивать процессоры в приблизительно одном ценовом сегменте, то ситуация очень схожа. В рамках нескольких поколений каждый вендор перетягивает одеяло на себя. Постоянно выходят новые линейки, которые надо тестировать, чтобы выявить однозначного лидера. В некоторых задачах и тестах лучше Intel, в других — AMD; выбор чем-то напоминает святые сражения под Купертино между пользователями Android и iOS.
ВАЖНО! На базе Intel бóльший выбор моделей серверов, в том числе восстановленных, которые выигрывают в цене у новых без потерь в надёжности. Недавно Intel сильно опережала своего конкурента в корпоративном сегменте, а потому моделей серверов на AMD намного меньше в предыдущих поколениях. Сейчас же картина более-менее выравнивается, но нужно учитывать, оптимизацию вашего софта и рекомендации компании-разработчика.
Если говорить о новейших поколениях, то AMD сделала занятную страницу на своем сайте, где можно оценить TCO (Total Cost of Ownership — совокупная стоимость владения) серверной виртуализации на Intel Scalable и AMD EPYC. Результат не в пользу Intel, но другого и не ожидаешь от сайта конкурента :) Но процессоры EPYC действительно показывают отличное соотношение цена-производительность в последних поколениях.
Для аппаратного ускорения виртуализации конкурирующие вендоры разработали проприетарные технологии, которые реализованы разными способами, но по функционалу почти не отключаются:
AMD предлагает пользователям технологию AMD-V (Virtualization Technology), Vi;
У Intel схожая технология называется Intel VT (Virtualization Technology), VT-x, VT-d и VT-c.
Если ситуация у вендоров схожая, что выбрать?
Совет по выбору бренда CPU: Выбирайте тот же бренд процессора, на котором уже работает ваша IT-инфраструктура. Монобрендовые системы зачастую работают эффективнее из-за хорошей совместимости. Выстраивайте виртуализацию, опираясь на конкретные функции, которые хотите реализовать, а не из привязки к бренду.
Совет по характеристикам CPU: Если вы ограничены в пространстве под IT-инфраструктуру, то берите процессоры с большим количеством ядер и высокой тактовой частотой . Но учитывайте, что они дороже и больше греются. Если же главное — это производительность ВМ, то тактовая частота важнее, чем количество ядер. Чем больше ядер, тем больше виртуалок можно сделать.
Совет по распределению vCPU (виртуальный процессор с одним ядром): Консервативное правило, которое используют админы — 1 vCPU на 1 виртуальную машину. Не предоставляйте ВМ слишком много vCPU по умолчанию. Во-первых, вы ограничите себя в максимальном количестве виртуальных машин на физическом сервере. Во-вторых, нужно проводить тесты, которые покажут: действительно ли этому приложению нужно несколько ядер; действительно ли оно постоянно использует мощность процессора. Те же SQL-серверы требуют больше ядер, чем почтовые, файловые или радиус серверы.
Совет по тестированию ВМ: Спустя неделю-месяц вы увидите закономерности и пиковые нагрузки, которые укажут на слабые места. Тесты помогут избежать высокой конкуренции за ядро, память, сеть и т.д. А также тесты покажут, если процессор(ы) слабо нагружены, и можно разворачивать больше ВМ на хосте.
Как выбрать сервер под виртуальные машины
Выбор оборудования для виртуализации не менее важен, чем выбор правильного ПО. Железо сильно влияет на гибкость и эффективность инфраструктуры, коэффициент консолидации, производительность, стоимость владения и доступность бизнес-приложений. Нерелевантные решения снижают прибыльность и ограничивают свободу действий.
А нам этого не надо, правда?
“Сервер” в коробке из-под обуви. Без комментариев.
Чтобы сэкономить, многие компании перепрофилируют оборудование, которое покупалось под другие задачи: ПК или старые серверы. Однако у этого подхода есть значительные минусы:
ПК не рассчитаны на беспрерывное обслуживание большого количества пользователей;
ПК и серверы, купленные под другие задачи, могут не подойти под будущий вертикальный рост (возможность заменить комплектующие на более мощные или добавить ещё ресурсов);
Маломощный процессор и малый объем памяти ухудшают производительность ВМ;
Недостаточное количество оперативной памяти ограничивает максимальное количество ВМ.
Для начала надо проработать задачу, определить, какой сервер нужен, а уже потом смотреть, подойдёт ли ваше оборудование. Тесты позволяют выявить слабые места уже через неделю-месяц.
5 причин, для чего нужна виртуализация серверов:
1) Чтобы сэкономить
Виртуализация
Заказать большую пиццу на компанию всегда выгоднее по деньгам, чем несколько маленьких каждому по отдельности.
Производительный сервер или кластер с ВМ окажется выгоднее в больших проектах, чем отдельные серверы под каждую задачу.
2) Чтобы использовать разные среды
Виртуализация
Есть пиццы, которые совмещают сразу несколько начинок, например “4 сезона”.
На одной тестовой основе делают 4 любых вкуса: мясная, веганская, с томатным соусом, со сливочным, острая и т.д.
Виртуализация позволяет сделать несколько ВМ, на которых можно развернуть разные операционные системы, их версии и несовместимый софт в рамках одного сервера. Часто ВМ используют как тестовые площадки для платформ и решений — быстро развернул, протестировал, закрыл.
Например, Windows и Linux запущенные на одном сервере.
3) Чтобы изолировать пользователей, их действия и данные друг от друга
Виртуализация
Пицца, заказанная на компанию, не мешает вам взять любой кусок, достать из него весь лук и оливки, залить табаско, обмакнуть в майонез и съесть. И никто не запретит вам разрезать кусок на две части поделиться ещё с кем-то.
На других кусках это никак не скажется.
Виртуализация позволяет изолировать пользователей друг от друга. Они могут хранить важные персональные данные и делать всё что угодно, хоть развернуть виртуализацию внутри виртуализации.
Другие пользователи даже не узнают об этом, так как все виртуалки полностью изолированы друг от друга.
4) Чтобы не было простоев мощностей
Виртуализация
Представьте, что вам очень захотелось любимой пиццы (легко, правда?), но она диаметром 50 см — слишком большая, чтобы съесть одному. Вам хватит всего 3-4 кусочка из 8, чтобы наесться от пуза.
К сожалению, остальным кускам придётся лежать в холодильнике до завтра, что не добавит баллов ко вкусу.
Виртуализация позволяет избежать простоя мощностей, когда, например, из 100% возможностей сервера используется лишь небольшая часть.
Например, 10% ресурсов сервера выделены под почту, 30% под базы данных, а оставшиеся 60% под терминальный сервер.
5) Чтобы равномерно распределить нагрузку между несколькими серверами
Виртуализация
Например, вы голодны и заказали две пиццы по 25см каждую — себе и ребёнку. Свою съели быстро и не наелись, а ребёнок так объелся, что больше ходить не может :) Логичнее было бы разделить пиццы соразмерно голоду, а не покупать одинаковые пиццы под разные потребности.
Виртуализация позволяет избежать неравномерного распределения нагрузки, когда, например, один сервер загружен на 20%, а два соседних в стойке на все 100% (и ещё куча задач в очереди).
Надеюсь, вы не сильно проголодались, так что давайте двигаться дальше :)
Читайте также: