Еще на VMworld 2009 компания VMware анонсировала технологию Storage IO Control (SCIO), которая должна появиться в следующих релизах платформы виртуализации VMware vSphere (по слухам уже в версии 4.1). Суть данной технологии - корректное распределение нагрузки на систему хранения данных (СХД) для виртуальных машин.
Сейчас у виртуальных машин есть такие настройки как Shares для категории Disk, которые определяют приоритеты виртуальных машин по нагрузке на СХД в рамках одного сервера VMware ESX. То есть, если у нас есть два сервера VMware ESX и виртуальные машины на них, то приоритеты нагрузки на storage будут распределены следующим образом при наличии параметров shares:
То есть очередь дискового массива пропорционально делится между хостами VMware ESX, а уже для каждого хоста его процент очереди делится на части в зависимости от Shares виртуальных машин.
Такой механизм не отражает реальную ситуацию по отношению к требованиям виртуальных машин к вводу-выводу, поскольку даже наиболее критичные сервисы в виртуальных машинах на хосте VMware ESX в кластере не могут получить больше, чем 1/n от очереди массива для тома VMFS / LUN, где n - число хостов ESX.
Технология Storage IO Control (SCIO) позволяет изменить данную ситуацию за счет двух техник:
Вычисление задержек (latency) на том VMFS для запуска механизма SCIO (говорят о 20ms и более)
Изменение пропускной способности канала виртуальных машин хоста к СХД за счет изменения глубины очереди HBA-адаптера (device queue depth)
Регулировка очереди со стороны HBA-адаптера позволяет более корректно распределить нагрузку на СХД между сервисами в виртуальных машинах в соответствии с их параметрами shares:
Как мы видим, наиболее критичный сервис (красный цвет), при условиях заданных shares для нескольких хостов ESX, позволяет потреблять 60% от того, что может выдать дисковый массив для данного тома VMFS. Это соответствует соотношению:
Механизм Storage IO Control для хостов VMware ESX включается при превышении порога latency для тома VMFS, определяемого пользователем, что позволяет надежно защитить наиболее критичные сервисы в виртуальных машинах от всплесков нагрузки на систему хранения данных в виртуальной инфраструктуре.