Начиная с версии 4.1 серверы ESX(i) получили возможность управлять распределением количества операций ввода-вывода в секунду между виртуальными машинами.
Мы можем оперировать двумя настройками – limit и shares, эти настройки делаются на уровне диска виртуальной машины.
Limit здесь – явное число операций ввода-вывода в секунду, которое может получить этот диск виртуальной машины как максимум. По умолчанию limit не задан. Limit указывается в операциях ввода-вывода в секунду. Если вам удобнее оперировать Мб/сек, то, поделив необходимое число Мб/сек на размер одной операции ввода-вывода (которым оперирует данная ВМ), вы получите искомое количество IOPS. Например, для получения максимум 10 Мб/сек для виртуальной машины, оперирующей блоками в 64 Кб, укажите ее диску limit, равный 160 IOps.
Обратите внимание. Если пользоваться настройкой Limit, то она должна быть указана для всех дисков виртуальной машины. Если это не так, то настройка применяться не будет.
Shares – как и для других ресурсов, эта величина является долей ресурса, здесь это IOps.
Этот механизм включается для отдельного хранилища VMFS. Притом работает он не все время, а лишь по срабатыванию условия – превышение пороговой величины задержки (Latency). Когда значение этого счетчика превышает указанную нами пороговую величину, настройки Limit и Shares применяются. И в соответствии с этими настройками перераспределяются дисковые операции хранилища между дисками виртуальных машин, на нем расположенных.
Давайте пройдемся по фактам о настройке и эксплуатации этого механизма.
SIOC выключен по умолчанию. Сделано это по той причине, что далеко не все лицензии vSphere позволяют задействовать эту функцию.
Пороговое значение Latency по умолчанию – 30 миллисекунд. Притом высчитывается и оценивается среднее значение Latency для всех серверов, обращающихся к хранилищу VMFS.
Для включения SIOC необходим vCenter. Для работы SIOC vCenter не является необходимым. Серверы записывают необходимые данные на на само хранилище, в первую очередь это значения Latency и настройки Limit/Shares виртуальных дисков. Исходя из этих данных, работает соответствующая служба на каждом ESX(i). Эта служба называется «PARDA Control Algorithm», и основные ее компоненты – это «latency estimation» и «window size computation». Первый используется для оценки Latency относительно порогового значения (это делается каждые 30 секунд), второй высчитывает необходимую глубину очереди для сервера. При чем тут глубина очереди?
Дело в том, что именно за счет динамического изменения этой самой глубины и реализовано разделение IOps хранилища между виртуальными машинами с разных серверов. Сравните рис. 6.18 и 6.19. Первый из них иллюстрирует ситуацию без SIOC – когда два сервера обращаются на хранилище и полностью его нагружают, то сначала система хранения делит операции ввода-вывода между серверами поровну. Затем каждый сервер может поделить обрабатываемые хранилищем для него IOps в требуемой пропорции между своими виртуальными машинами.

Рис. 6.18. Распределение операций ввода-вывода между ВМ разных серверов без SIOC
А вот на рис. 6.19 показана та же ситуация, но уже с SIOC.
Рис. 6.21. Вкладка Virtual Machines для Datastores
Источник: Михеев М. О. Администрирование VMware vSphere 4.1. – М.: ДМК Пресс, 2011. – 448 с.: ил.

June 15th, 2012
admin
Опубликовано в рубрике