Увеличение производительности дисков виртуальной машины

Портал самообслуживания
Как улучшить производительность дисков виртуальных машин
 
Периодически наши клиенты спрашивают о том, как же можно добиться большей производительности дисковой системы виртуальных машин.
Специально для таких клиентов мы подготовили рекомендации по улучшению ситуации и обходу ограничений IOPS путем создания пула дисков вместо использования одного диска.
 
Примечание: Создание виртуальных дисков/пула дисков на основе технологии Storage Space, доступно на операционных системах, начиная с Microsoft Windows Server 2012.
 
Задача:
 
На стороне провайдера производительность диска ограничивается определенным числом IOPS.
Требуется увеличить производительность диска виртуальной машины.
 
Рекомендация по решению: использование пула дисков вместо одного диска
 
В данном случае для того, чтобы улучшить производительность виртуальной машины, мы рекомендуем клиентам создать внутри гостевой операционной системы виртуальный пул, состоящий из нескольких дисков. Такая возможность позволяет получить производительность, равную в сумме производительности каждого отдельного диска.
Инструкцию по созданию пула дисков см. в конце статьи.
 
В чем разница?
 
Производительность для пула дисков значительно выше из-за суммирования показателей производительности для каждого диска.
Для того чтобы увидеть разницу, мы сравним производительность обычного виртуального жесткого диска и виртуального пула из нескольких виртуальных дисков.
 
Сравнение:
 
Для примера мы сравним производительности дисковой системы для одной виртуальной машины с одним диском и для нее же, но с четырьмя дисками.
Примечание: Для тестирования используется утилита DiskSPD.
Использование утилиты:  http://hd.oblakoteka.ru/kb/a91/article.aspx 
 
В примере используется виртуальная машина на базе ОС Microsoft Windows Server 2016 Datacenter с дополнительным виртуальным диском формата SSD размером 40 Гб.
 
С помощью утилиты DiskSPD мы получаем следующие результаты:
 
Результат:
·         производительность диска: 9958,73 операций ввода-вывода в секунду (I/O per sec),
·         средняя пропускная способность: 77,80 Мб/с (MB/s),
·         среднее время задержки: 3,616 миллисекунд (AvgLat).
Важно: Данные результаты соответствуют заявленным величинам для клиентов «Облакотеки» и никаких отклонений от нормы нет.
Для сравнения замерим производительность дисков той же самой виртуальной машины, но с четырьмя дисками по 10 Gb.
В примере используется виртуальная машина на базе ОС MICROSOFT Windows Server 2016 Datacenter с дополнительными 4-мя виртуальными дисками формата SSD размером по 10 Гб каждый, собранными в один логический пул общим объёмом 40 Gb.
 
Результат:
·          производительность диска: 39922,21 операций ввода-вывода в секунду (I/O per sec)
·         средняя пропускная способность: 311,89 Мб/с (MB/s)
·         среднее время задержки: 0,900 миллисекунд (AvgLat).
Важно: Данные результаты превосходят в несколько раз заявленные величины по данному формату из-за сложения показателей производительности для каждого отдельного диска.
 
Сравнительная таблица:
 
Параметры производительности  для дисков формата "Супер"
Максимальное количество операций ввода-вывода в секунду
Время задержки (мсек)
  Заявленные параметры:
10 000
5
  Виртуальная машина с одним диском 40 Gb:
9 958
3
  Виртуальная машина с четырьмя дисками по 10 Gb:
39922,21
0.9
 
 
 
 
 
 
 
 
 
 
 
 
 
Особенности и ограничения:
 
При замерах производительности мы использовали пул без отказоустойчивости. В данном случае параметры производительности действительно значительно выше.
Но при такой схеме, в случае сбоя хотя бы одного виртуального диска, все данные в пуле будут утеряны. На это следует обратить внимание. Для размещения критически важных данных использовать такую схему не рекомендуется.
 
Важно: Если у вас возникнет потребность в увеличении объема виртуальных дисков/пула дисков на основе технологии Storage Space, то его увеличение достигается только путем добавления новых дисков, а не увеличением размера уже имеющихся в пуле!!! При том, что количество добавляемых, новых дисков должно быть кратно количеству уже имеющихся дисков в пуле (для Simple режима работы пула по-умолчанию), т.е. если у нас изначально пул создавался из 4-х дисков, то добавить мы можем следовательно – 4, 8, 12 и т.д. дисков!!! Если вы попытаетесь, просто расширить уже имеющиеся диски в пуле, то его объем не увеличится, а сам пул после перезагрузки ВМ будет потерян!!! Будьте внимательны, всегда учитывайте это правило при расширении пространства пула дисков!!!
 
Как создать пул дисков:
 
Для Вашей виртуальной машины подключите несколько дополнительных дисков
 
Далее есть два способа создания пула дисков:
  1. С помощью «Мастера создания пула хранения»;
  2. С помощью специального скрипта PowerShell.
Примечание: При создании Storage Space пула/диска при помощи скрипта, достигается большая скорость работы ввода\вывода на Storage Space томе (пуле дисков) благодаря оптимизированным параметрам, которые можно задать только при использовании PowerShell командлетов.
 
Способ №1: Создание пула дисков с помощью «Мастера создания пула хранения».
 
Для этого перейдите в раздел «Файловые службы и службы хранилища» консоли «Диспетчер серверов».
 
Перейдите в раздел «Пулы носителей», выделите в окне «Windows Storage» строку с доступными дисками и нажмите правой кнопкой мыши на ней.  Появится всплывающее меню, в нем выберите пункт «Создать пул носителей».
 
Далее запустится «Мастера создания пула хранения», в котором необходимо присвоить пулу имя, выбрать для него все дополнительные диски и в конце нажать «Создать».
 
Выделите созданный пул, нажмите правой кнопкой мыши на нем и выберите «Создать виртуальный диск».
 
В всплывающем окне вновь выберите наш пул и нажмите «Ок». Далее следуйте подсказкам «Мастера создания виртуальных дисков». На шаге выбора структурного хранилища выберите тип «Simple». На шаге «Тип подготовки» выберите «Фиксированный».
 
Примечание: Тонкая подготовка — технология своевременного выделения блоков памяти по мере необходимости. При фиксированной подготовке физические блоки выделяются виртуальному диску независимо от того, будут они использованы или нет. При тонкой подготовке только используемые блоки сопоставляются с физическими блоками. Это позволяет подготовить виртуальный диск гораздо большего размера, чем в фиксированном варианте. Если виртуальный диск подходит к пределу сопоставления физических блоков, можно добавить новые физические диски.
 
На шаге «Указание размера виртуального диска» выберите «Максимальный», затем далее и нажмите «Создать». После успешного создания виртуального диска, запустится «Мастер создания томов», с помощью которого нужно создать и отформатировать новый том.
Настройка завершена.
 
Способ №2: Создание пула дисков с помощью специального скрипта PowerShell.
Для этого вы можете воспользоваться следующим скриптом:
 
Важно: Внимательно отредактируйте скрипт под условия в Вашей ОС (Команды: Initialize-Disk, New-Partition, Format-Volume»). Иначе возможна потеря данных! «Облакотека» не несёт ответственности за ущерб причинённых при неправильном использовании скрипта!
 
$Pdisks = Get-PhysicalDisk | ? { $_.CanPool -eq "True" }
$Pdisks | sort-object PhysicalLocation | ft FriendlyName, PhysicalLocation, MediaType, Size –AutoSize
New-StoragePool -FriendlyName SS01_pool01 –StorageSubSystemFriendlyName "Windows Storage*" -PhysicalDisks $Pdisks -LogicalSectorSizeDefault 512
New-VirtualDisk -StoragePoolFriendlyName SS01_pool01 -FriendlyName DATA -UseMaximumSize -ResiliencySettingName Simple  -WriteCacheSize 0GB -Interleave 65536
Initialize-Disk -VirtualDisk (Get-VirtualDisk -FriendlyName Data)
# Параметр -DiskNumder смотреть через диспетчер дисков для нового диска
New-Partition -DiskNumber 11 -UseMaximumSize -AssignDriveLetter
# Параметр -DriveLetter смотреть через диспетчер дисков для нового диска
Format-Volume -DriveLetter D -FileSystem NTFS -AllocationUnitSize 64KB 

Add Feedback