Как знают пользователи VMware vSphere, в версии платформы 4.1 появилась новая возможность по управлению приоритетами ввода-вывода виртуальных машин для хранилищ на уровне кластера под названием Storage IO Control (SIOC). Но эта функциональность доступна только в издании vSphere Enterprise Plus, что оставляет множество пользователей за бортом.
В рамках одного хост-сервера VMware ESX / ESXi есть механизм по управлению приоритетами ВМ для хранилищ с помощью Disk Shares (в настройках ВМ). Однако эти приоритеты могут быть заданы только в относительных значениях, что тоже в некоторых случаях неудобно.
В версии VMware vSphere 4.1 появилась возможность задать параметры ограничения ввода-вывода для конкретных ВМ с помощью абсолютных значений (в числе операций в секунду - IOPS и в пропускной способности в секунду - MBps). Это может пригодиться для отдельных виртуальных машин, для которых есть риск "забивания" канала к системе хранения.
Как можно эти параметры добавлять:
Нажмите Edit Settings для выключенной виртуальной машины.
Перейдите на вкладку Options.
В категории Advanced: General нажмите кнопку Configuration Parameters.
Нажмите Add Row.
Далее можно добавить 2 параметра (обратите внимание, что они задаются для каждого виртуального диска):
sched.<diskname>.throughputCap = <value><unit>
Например:
sched.scsi0:0.throughputCap = 10KIOps
sched.<diskname>.bandwidthCap = <value><unit>
Например:
sched.scsi0:0.bandwidthCap = 10KBps
В качестве значений можно использовать буквы K (KBps или KIOps), M (MBps или MIOps) и G (GBps или GIOps). Подробнее в KB 1038241.
По наблюдениям автора, если задать оба параметра для виртуального диска, они будут проигнорированы хост-сервером. А если для каждого диска одной ВМ задать определенные лимиты, то для каждого из этих дисков лимит установится как сумма для двух (то есть, если мы поставим 100IOps и 50IOps, лимит для каждого диска станет 150IOps).
Напоминаю, что работает это только, начиная с VMware vSphere 4.1 (и для ESX, и для ESXi).