Поделиться через


Оптимизация производительности эластичной сети 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.

  1. Откройте редактор реестра:
  2. Нажмите кнопку "Пуск", введите regedit в поле поиска и нажмите клавишу ВВОД.
  3. Перейдите к следующему расположению: [\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4d36e97b-e325-11ce-bfc1-08002be10318}\0004 (Инициатор iSCSI Майкрософт)\Parameters]
  4. Обновите следующие параметры. Щелкните правой кнопкой мыши каждый параметр и выберите " Изменить". Измените базовый на десятичный, обновите значение и нажмите кнопку "ОК".
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.

  1. Нажмите кнопку "Пуск", найдите инициатор iSCSI в поле поиска. Откроется инициатор iSCSI.

  2. Выберите "Конфигурация", чтобы просмотреть текущее имя инициатора.

    Снимок экрана: конфигурация инициатора iSCSI в Windows.

  3. Чтобы изменить его, нажмите кнопку "Изменить", введите имя инициатора и нажмите кнопку "ОК".

    Снимок экрана: обновление имени инициатора iSCSI в Windows.

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, чтобы обновить имя инициатора. Снимок экрана: обновление имени инициатора iSCSI в Linux.

Оптимизация эластичной сети SAN

Перед развертыванием эластичной сети SAN необходимо определить оптимальный размер развернутой эластичной сети SAN, чтобы обеспечить правильный баланс производительности для рабочих нагрузок и затрат. Чтобы определить оптимальный размер, выполните следующие действия.

С помощью существующего решения для хранения выберите интервал времени (день/неделя/квартал) для отслеживания производительности. Лучший интервал времени — это хороший моментальный снимок приложений или рабочих нагрузок. За этот период запишите объединенную максимальную пропускную способность и пропускную способность для всех рабочих нагрузок. Если вы используете интервал выше минуты или если у любой из рабочих нагрузок есть узкие места в текущей конфигурации, рассмотрите возможность добавления дополнительной базовой емкости в развертывание Elastic SAN. При определении базовой емкости следует оставить некоторое поле для учета роста. Остальная часть хранилища Elastic SAN должна использовать дополнительную емкость, чтобы сэкономить на затратах.

Дополнительные сведения о производительности см. в разделе "Эластичная сеть SAN" и "Производительность виртуальных машин".