Для улучшения работы сайта мы используем файлы cookies. Оставаясь на сайте, вы соглашаетесь с политикой обработки персональных данных.

Рекомендации по настройке подсистемы ввода-вывода zVirt Node и системы хранения данных YADRO TATLIN.UNIFIED

1. Окружение

  • zVirt Max 1.0 и старше

  • zVirt 4.1 и старше

2. Пояснение

Статья содержит рекомендации по настройке zVirt Node для работы с СХД YADRO TATLIN.UNIFIED. Поддерживаются гостевые ОС семейства Linux и Windows.

Данные рекомендации необходимо выполнить на всех хостах центра данных, к которому подключена система хранения данных TATLIN.UNIFIED.

3. Настройка параметров блочных устройств на уровне гипервизора

  1. Создайте конфигурационный файл /etc/udev/rules.d/70-tatlin.rules:

    # Set SCSI command timeout for TATLIN devices to 120 seconds and nr_requests to 128
    ACTION=="add|change", SUBSYSTEM=="block", ENV{ID_VENDOR}=="YADRO", \
    ENV{ID_MODEL}=="TATLIN", ATTR{device/timeout}="120", ATTR{queue/nr_requests}="128"
  2. Создайте конфигурационный файл /etc/udev/rules.d/71-tatlin-dm_mpath.rules:

    # Set dm-mpath device nr_requests to 256 and scheduler to none
    SUBSYSTEM!="block", GOTO="end_rule"
    ENV{DEVTYPE}=="partition", GOTO="end_rule"
    ACTION!="add|change", GOTO="end_rule"
    ATTR{model}!="TATLIN"
    KERNEL=="dm-[0-9]*", ATTR{queue/nr_requests}="256", ATTR{queue/scheduler}="none"
    LABEL="end_rule"
  3. Примените новые параметры путем перезагрузки zVirt Node или выполните следующие команды:

    lsblk -nd --output NAME,MODEL | grep TATLIN | while read disk_name vendorid; do echo -n "Disk: $disk_name VendoID:$vendorid CMD:"; cmd="echo 120 > /sys/block/$disk_name/device/timeout && echo 128 > /sys/block/$disk_name/queue/nr_requests"; echo $cmd; eval $cmd; done
    
    multipath -ll | grep YADRO | while read mpath dm vendor; do echo -n "Mpath:$mpath DM:$dm Vendor:$vendor CMD:"; cmd="echo 256 > /sys/devices/virtual/block/$dm/queue/nr_requests && echo none > /sys/devices/virtual/block/$dm/queue/scheduler"; echo $cmd; eval $cmd; done

4. Настройка многопутевого ввода-вывода на уровне гипервизора

  1. Создайте конфигурационный файл /etc/multipath/conf.d/tatlin.conf:

    devices {
        device {
            vendor "YADRO"
            product "TATLIN"
            path_grouping_policy "multibus"
            path_selector "service-time 0"
            path_checker "tur"
            no_path_retry 32
            max_sectors_kb 1024
        }
    }
  2. Перезагрузите службу multipathd:

    systemctl reload multipathd

5. Настройка параметров сервиса sanlock на уровне гипервизора

  1. Создайте конфигурационный файл /etc/vdsm/vdsm.conf.d/extended-io-timeout.conf:

    # Configuration for YADRO storage.
    [sanlock]
    io_timeout = 25
  2. Переведите гипервизор в режим обслуживания и перезапустите сервисы vdsmd:

    systemctl restart vdsmd.service supervdsmd.service

После перезапуска сервиса гипервизор необходимо вывести из режима обслуживания.

6. Настройка параметров timeout гостевых ОС

6.1. Настройка параметров timeout ОС семейства Linux

  1. Создайте конфигурационный файл /etc/udev/rules.d/70-tatlin.rules:

    # Set SCSI command timeout for TATLIN devices to 120 seconds
    ACTION=="add|change", SUBSYSTEM=="block", ENV{ID_VENDOR}=="QEMU", ATTR{device/timeout}="120"
  2. (Опционально) Если к виртуальной машине подключены диски от других СХД, отличных от YADRO TATLIN.UNIFIED, для которых требуется таймаут по умолчанию (30 секунд), добавьте исключения одним из способов:

    1. По имени устройства (например, для sdb):

      ACTION=="add|change", KERNEL=="sdb", ATTR{device/timeout}="30"
    2. По серийному номеру устройства (например, для 0QEMU_QEMU_HARDDISK_692793c1-9f38-47d0-a953-98fc551c2357):

      ACTION=="add|change", KERNEL=="sd*", ENV{ID_SERIAL}=="0QEMU_QEMU_HARDDISK_692793c1-9f38-47d0-a953-98fc551c2357", ATTR{device/timeout}="30"

      Получить серийный номер устройства можно с помощью команды:

      udevadm info --query=all --name=/dev/sdd | grep "ID_SERIAL="
  3. (Опционально) Если к виртуальной машине подключен том СХД TATLIN.UNIFIED как Direct LUN с включенным интерфейсом SCSI (Enable SCSI Pass-Through), добавьте правило для устройств с идентификатором (ID_VENDOR) YADRO:

    ACTION=="add|change", SUBSYSTEM=="block", ENV{ID_VENDOR}=="YADRO",
    ENV{ID_MODEL}=="TATLIN", ATTR{device/timeout}="120", ATTR{queue/nr_requests}="128"
  4. Перезагрузите виртуальную машину:

    reboot

6.2. Настройка параметров timeout ОС семейства Windows

  1. Cоздайте резервную копию реестра ОС Windows.

  2. Измените параметр TimeOutValue для дисковых устройств, установите значение 120:

    Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Disk
    win
  3. Перезагрузите виртуальную машину.