Почему виртуальные машины ужасно борются с вводом-выводом, когда хост находится под большой нагрузкой ввода-вывода?

Я прервал второй сеанс dd примерно после 100 Гб на диске. Затем я загрузился с внешнего диска OSX с помощью DiskWarrior, одолженного у друга. Оттуда я получил список перекрывающихся файлов, которые в основном были файлами кэша, так что я пошел вперед и удалил их из терминала. Затем я позволил DW перестроить каталог диска. После этого я восстановил файлы из резервной копии или прочитал их в последний момент с отказавшего диска. Это помогло решить проблему, и все файлы теперь целы.

2
15.05.2017, 21:58
1 ответ

Контроллеры / диски потребительского уровня не способны эффективно выполнять несколько тяжелых операций ввода-вывода; однако, как правило, чем бы быстрее ни была технология, процесс будет идти лучше (теоретически).

Очевидно, что если вы выполняете операции с интенсивным использованием ЦП / ввода-вывода, такие как программный RAID (как сказал ОП), это снизит производительность всей установки, как при совместном использовании контроллеров, так и при использовании ресурсов ЦП. Я бы посоветовал хотя бы вложиться в аппаратный RAID-контроллер.

Аппаратное обеспечение серверного уровня обычно лучше справляется с ситуациями параллельного тяжелого доступа нескольких виртуальных машин / нескольких пользователей.

Однако переход на аппаратное обеспечение серверного уровня - это еще не все, и существуют стратегии оптимизации, которые полезны как при работе с аппаратным обеспечением потребительского, так и серверного уровня.

То, что можно сделать в виртуальных машинах, которые значительно облегчают налогообложение операций ввода-вывода за вычетом гипервизора, - это паравиртуализация сервисов.

Паравиртуализация означает добавление специальных драйверов, которые будут напрямую взаимодействовать со службами / ядром виртуализации для массовой передачи данных (также известный как PVSCSI на языке VMWare), и поэтому фактические устройства хранения данных / сетевые карты не требуют эмуляции.

Для всех решений vmware, будь то Enterprise или Workstation, у вас есть для Linux и FreeBSD пакет open-vm-tools .

В Debian вы устанавливаете его, используя:

apt-get install open-vm-tools

Для Debian Stretch это больше не требует компиляции. Что касается Джесси, я рекомендую установить open-vm-tools из резервных портов, так как они устанавливают open-vm-tools v10.

После установки open-vm-tools необходимо выключить виртуальную машину и изменить контроллер диска на тип ParaVirtual и сетевой контроллер на vmxnet3 .

См. Настройка дисков для использования адаптеров VMware Paravirtual SCSI (PVSCSI) (1010398)

Инструменты vmtools также позволяют виртуальным машинам увеличивать объем памяти, поэтому им не нужно использовать ОЗУ они не используют.

Раздувание виртуальной памяти - это метод восстановления памяти компьютера , используемый гипервизором, чтобы позволить физической хост-системе извлекать неиспользуемую память с определенных гостевых виртуальных машин (ВМ) и совместно использовать ее {{1 }} с другими. Раздувание памяти позволяет общему объему ОЗУ, требуемому гостевыми виртуальными машинами, превышать объем физической ОЗУ, доступной на хосте .

Поддержка технологий эмуляции на уровне процессора, таких как VT и VT-d, также помогает сделать процесс более плавным. Технология виртуализации Intel для направленного ввода-вывода (VT-d)

Само собой разумеется, что оптимизации на уровне ОС, уменьшающие количество операций ввода-вывода, также помогают; например, ведение журнала в удаленные системы ведения журнала, а не на локальную виртуальную машину.

Или выравнивание перегородок.

Выравнивание разделов в VMware vSphere 5, DeepDrive, Part-1

Выравнивание разделов в VMware vSphere 5, DeepDrive, Part-2

Остерегайтесь также других оптимизаций ввода-вывода, таких как освобождение места для хранения базы данных из раздела / var из-за того, что демон регистрации сбрасывает файлы журнала для поддержания целостности журнала в случае внезапных перезагрузок.

Это также помогает следовать философии Unix по использованию минимально необходимых сервисов.Опыт показывает, что меньшие виртуальные машины будут использовать меньше операций ввода-вывода в домашнем хозяйстве / подкачке страниц. Очевидно, что если вы используете больше памяти, чем у вас есть, у вас могут возникнуть проблемы с вводом-выводом (также называемым мусором).

Вы также можете точно настроить приоритет ввода-вывода для конкретной виртуальной машины в гипервизоре, т. Е. Придав ей более высокий или меньший приоритет. Я знаю, что это можно сделать в VCenter / VMWare ESX, возможно, не в VMWare Workstation, поскольку это гипервизор уровня 2, и поэтому именно хост-ОС занимается управлением операциями ввода-вывода и квотами срезов (подробнее об этом позже на).

Само собой разумеется, что при использовании гипервизоров уровня 2 многие из оптимизаций, о которых мы говорим, также должны применяться к ОС хоста, когда это возможно.

Технология гипервизора VMware также кажется лучше справляется с высоконагруженным вводом-выводом на нескольких виртуальных машинах, чем альтернативы.

Однако, если вас беспокоит производительность, по крайней мере, в области VMWare, , по крайней мере, для производственных систем , я бы посоветовал вместо этого использовать их гипервизор Type-1 / bare metal (ESX или ESXi). использования рабочей станции VMware.

Из Гипервизор :

Тип 1, собственные гипервизоры или гипервизоры без операционной системы Эти гипервизоры запускаются непосредственно на аппаратном обеспечении хоста для управления оборудованием и управления гостевые операционные системы. По этой причине их иногда называют гипервизорами без покрытия. Первые гипервизоры, разработанные IBM в 1960-х годах, были собственными гипервизорами. [4] К ним относятся тестовое программное обеспечение SIMMON и операционная система CP / CMS (предшественник IBM z / VM).Современные эквиваленты включают Xen, Oracle VM Server для SPARC, Oracle VM Server для x86, Citrix XenServer, Microsoft Hyper-V и VMware ESX / ESXi. Гипервизоры типа 2 или размещенные гипервизоры Эти гипервизоры работают в обычной операционной системе (ОС) так же, как и другие компьютерные программы.Гостевая операционная система работает как процесс на хосте.

Гипервизоры типа 2 абстрагируют гостевые операционные системы от операционной системы хоста . VMware Workstation, VMware Player, VirtualBox, Parallels Desktop для Mac и QEMU являются примерами гипервизоров типа 2.

Наконец, есть также возможность перейти на собственные гипервизоры или технологии контейнеров, которые не добавляют уровень эмуляции к доступу к запоминающим устройствам, например Xen для хостов Linux в режиме PV, docker или тюрьмы FreeBSD . Эта альтернатива также имеет свои преимущества и недостатки, которые выходят за рамки этого ответа.

3
27.01.2020, 22:03

Теги

Похожие вопросы