Оптимизация производительности эластичной сети SAN
В этой статье приведены общие рекомендации по получению оптимальной производительности с помощью среды, которая использует azure Elastic SAN.
Оптимизация на стороне клиента
Общие рекомендации (Виртуальные машины Windows и Linux)
Для оптимальной производительности разверните виртуальные машины и эластичную сеть SAN в одной зоне и том же регионе.
Объемы операций ввода-вывода хранилища виртуальных машин в томах Elastic SAN используют пропускную способность сети виртуальной машины, поэтому традиционные ограничения пропускной способности дисков на виртуальной машине не применяются к томам Elastic SAN. Выберите виртуальную машину, которая может обеспечить достаточную пропускную способность для рабочих и виртуальных машин и операций ввода-вывода iSCSI для подключенных томов Elastic SAN. Как правило, для оптимальной производительности следует использовать виртуальные машины 5-го поколения (D/ E/M).
Включите функцию "Ускорение сети" на виртуальной машине во время создания виртуальной машины. Чтобы сделать это с помощью Azure PowerShell или Azure CLI или включить ускоренную сеть на существующих виртуальных машинах, см. статью "Использование Azure PowerShell для создания виртуальной машины с ускорением сети"
- Для каждого тома необходимо использовать 32 сеанса для каждого тома, чтобы обеспечить максимальное количество операций ввода-вывода в секунду и /или пропускной способности. Используйте многопаточные операции ввода-вывода (MPIO) на клиенте, чтобы управлять этими несколькими сеансами для каждого тома для балансировки нагрузки. Скрипты доступны для Windows, Linux или на странице томов Подключение для томов в портал Azure, где по умолчанию используется 32 сеанса. Инициатор iSCSI программного обеспечения Windows имеет ограничение не более 256 сеансов. Если вам нужно подключить более восьми томов к виртуальной машине Windows, уменьшите количество сеансов к каждому тому по мере необходимости.
MPIO
Windows
Чтобы обновить параметры, используйте следующие команды:
# Enable multipath support for iSCSI devices
Enable-MSDSMAutomaticClaim -BusType iSCSI
# Set the default load balancing policy based on your requirements. In this example, we set it to round robin which should be optimal for most workloads.
mpclaim -L -M 2
# Set disk time out to 30 seconds
Set-MPIOSetting -NewDiskTimeout 30
Дополнительные сведения о командлетах MPIO см . в справочнике по MPIO.
Linux
Обновите файл /etc/multipath.conf следующим образом:
defaults {
user_friendly_names yes # To create ‘mpathn’ names for multipath devices
path_grouping_policy multibus # To place all the paths in one priority group
path_selector "round-robin 0" # To use round robin algorithm to determine path for next I/O operation
failback immediate # For immediate failback to highest priority path group with active paths
no_path_retry 1 # To disable I/O queueing after retrying once when all paths are down
}
devices {
device {
vendor "MSFT"
product "Virtual HD"
}
}
iSCSI
Windows
Обновите приведенные ниже параметры реестра для инициатора iSCSI в Windows.
- Откройте редактор реестра:
- Нажмите кнопку "Пуск", введите regedit в поле поиска и нажмите клавишу ВВОД.
- Перейдите к следующему расположению: [\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4d36e97b-e325-11ce-bfc1-08002be10318}\0004 (Инициатор iSCSI Майкрософт)\Parameters]
- Обновите следующие параметры. Щелкните правой кнопкой мыши каждый параметр и выберите " Изменить". Измените базовый на десятичный, обновите значение и нажмите кнопку "ОК".
Description | Параметр и значение |
---|---|
Задает максимальные данные, которые инициатор отправляет в PDU iSCSI в целевой объект до 256 КБ | MaxTransferLength=262144 |
Задает максимальную полезные данные SCSI, которые инициатор согласовывает с целевым объектом до 256 КБ | MaxBurstLength=262144 |
Задает максимальный объем незапрошенных данных, которые инициатор может отправлять в PDU iSCSI в целевой объект до 256 КБ | FirstBurstLength=262144 |
Задает максимальные данные, которые инициатор может получать в PDU iSCSI из целевого объекта до 256 КБ | MaxRecvDataSegmentLength=262144 |
Отключает управление потоком R2T | InitialR2T=0 |
Включает немедленные данные | Интерпретация Данных=1 |
Задает значение времени ожидания для запросов WMI в 30 секунд | WMIRequestTimeout = 30 секунд |
Задает значение времени ожидания для времени простоя ссылки на 30 секунд | LinkDownTime = 30 секунд |
В конфигурациях кластера убедитесь, что имена инициаторов iSCSI уникальны для всех узлов, совместно использующих тома. В Windows их можно обновить с помощью приложения инициатора iSCSI.
Нажмите кнопку "Пуск", найдите инициатор iSCSI в поле поиска. Откроется инициатор iSCSI.
Выберите "Конфигурация", чтобы просмотреть текущее имя инициатора.
Чтобы изменить его, нажмите кнопку "Изменить", введите имя инициатора и нажмите кнопку "ОК".
Linux
Обновите следующие параметры с рекомендуемыми значениями в глобальном файле конфигурации iSCSI (iscsid.conf, обычно найденном в каталоге /etc/iscsi) на клиенте перед подключением к нему любых томов. При подключении тома узел создается вместе с файлом конфигурации, определенным для этого узла (например, в Ubuntu, его можно найти в файле /etc/iscsi/nodes/$volume_iqn/portal_hostname,$port каталоге), наследующем параметры из глобального файла конфигурации. Если вы уже подключили один или несколько томов к клиенту перед обновлением глобального файла конфигурации, обновите файл конфигурации узла для каждого тома напрямую или с помощью следующей команды:
sudo iscsiadm -m node -T $volume_iqn -p $portal_hostname:$port -o update -n $iscsi_setting_name -v $setting_value
Где
- $volume_iqn: IQN тома elastic SAN
- $portal_hostname: имя узла портала тома Elastic SAN
- $port: 3260
- $iscsi_setting_name: параметр для каждого параметра, указанного ниже.
- $setting_value: значение, рекомендуемое для каждого параметра ниже
Description | Параметр и значение |
---|---|
# Задайте максимальные данные инициатора отправляет в целевой объект PDU iSCSI до 256 КБ | node.conn[0].iscsi. MaxXmitDataSegmentLength = 262144 |
# Задайте максимальные полезные данные SCSI, которые инициатор согласовывает с целевым объектом до 256 КБ | node.session.iscsi.MaxBurstLength = 262144 |
# Задайте максимальный объем незапрошенных данных, которые инициатор может отправлять в PDU iSCSI в целевой объект до 256 КБ | node.session.iscsi.FirstBurstLength = 262144 |
# Задайте максимальные данные, которые инициатор может получать в ISCSI PDU из целевого объекта до 256 КБ | node.conn[0].iscsi. MaxRecvDataSegmentLength = 262144 |
# Отключить управление потоком R2T | node.session.iscsi.InitialR2T = No |
# Включить немедленные данные | node.session.iscsi.ИнтерпретацияData = Да |
# Задать значение времени ожидания для запросов WMI | node.conn[0].timeo.login_timeout = 30 node.conn[0].timeo.logout_timeout = 15 |
# Включение дайджеста CRC проверка для заголовков и данных | node.conn[0].iscsi. HeaderDigest = CRC32C node.conn[0].iscsi. DataDigest = CRC32C |
В конфигурациях кластера убедитесь, что имена инициаторов iSCSI уникальны для всех узлов, совместно использующих тома. В Linux можно изменить /etc/iscsi/initiatorname.iscsi, чтобы обновить имя инициатора.
Оптимизация эластичной сети SAN
Перед развертыванием эластичной сети SAN необходимо определить оптимальный размер развернутой эластичной сети SAN, чтобы обеспечить правильный баланс производительности для рабочих нагрузок и затрат. Чтобы определить оптимальный размер, выполните следующие действия.
С помощью существующего решения для хранения выберите интервал времени (день/неделя/квартал) для отслеживания производительности. Лучший интервал времени — это хороший моментальный снимок приложений или рабочих нагрузок. За этот период запишите объединенную максимальную пропускную способность и пропускную способность для всех рабочих нагрузок. Если вы используете интервал выше минуты или если у любой из рабочих нагрузок есть узкие места в текущей конфигурации, рассмотрите возможность добавления дополнительной базовой емкости в развертывание Elastic SAN. При определении базовой емкости следует оставить некоторое поле для учета роста. Остальная часть хранилища Elastic SAN должна использовать дополнительную емкость, чтобы сэкономить на затратах.
Дополнительные сведения о производительности см. в разделе "Эластичная сеть SAN" и "Производительность виртуальных машин".