Недавний владелец Dell PowerVault MD3600i я испытываю некоторые странные результаты.
У меня есть выделенный коммутатор 24x 10GbE (PowerConnect 8024), настройка на большие кадры 9K.
MD3600 имеет 2 контроллера RAID, каждый из которых имеет 2 разъема Ethernet 10GbE. На переключателе больше ничего нет; одна VLAN для трафика SAN.
Вот мой multipath.conf
defaults {
udev_dir /dev
polling_interval 5
selector "round-robin 0"
path_grouping_policy multibus
getuid_callout "/sbin/scsi_id -g -u -s /block/%n"
prio_callout none
path_checker readsector0
rr_min_io 100
max_fds 8192
rr_weight priorities
failback immediate
no_path_retry fail
user_friendly_names yes
# prio rdac
}
blacklist {
device {
vendor "*"
product "Universal Xport"
}
# devnode "^sd[a-z]"
}
devices {
device {
vendor "DELL"
product "MD36xxi"
path_grouping_policy group_by_prio
prio rdac
# polling_interval 5
path_checker rdac
path_selector "round-robin 0"
hardware_handler "1 rdac"
failback immediate
features "2 pg_init_retries 50"
no_path_retry 30
rr_min_io 100
prio_callout "/sbin/mpath_prio_rdac /dev/%n"
}
}
И iscsid.conf:
node.startup = automatic
node.session.timeo.replacement_timeout = 15
node.conn[0].timeo.login_timeout = 15
node.conn[0].timeo.logout_timeout = 15
node.conn[0].timeo.noop_out_interval = 5
node.conn[0].timeo.noop_out_timeout = 10
node.session.iscsi.InitialR2T = No
node.session.iscsi.ImmediateData = Yes
node.session.iscsi.FirstBurstLength = 262144
node.session.iscsi.MaxBurstLength = 16776192
node.conn[0].iscsi.MaxRecvDataSegmentLength = 262144
После моих тестов; я едва могу дойти до 200 Мб / с при чтении / записи.
Стоит ли мне ожидать большего? При условии, что у него есть два 10 GbE, я думаю, где найти 400 Мбит / с.
Любые идеи ? Руководящие указания ? Советы по устранению неполадок?
РЕДАКТИРОВАТЬ:
Массив настроен как единый логический том из 5,7 ТБ. Все диски - 1 ТБ, 7,2 КБ SAS 6 ГБ (ST1000NM0001).
Некоторые строки конфигурации Swith:
interface Te1/0/23
storm-control broadcast
storm-control multicast
spanning-tree portfast
mtu 9000
switchport access vlan 40
exit
...
iscsi cos vpt 5
management access-list "default"
permit service ssh priority 1
permit service http priority 2
permit service https priority 3
И многолучевой вывод:
[root@xnode4 ~]# multipath -ll -v2
multipath.conf line 30, invalid keyword: prio
mpath1 (36d4ae520009bd7cc0000030e4fe8230b) dm-2 DELL,MD36xxi
[size=5.5T][features=3 queue_if_no_path pg_init_retries 50][hwhandler=1 rdac][rw]
\_ round-robin 0 [prio=400][active]
\_ 7:0:0:0 sdc 8:32 [active][ready]
\_ 9:0:0:0 sde 8:64 [active][ready]
\_ 11:0:0:0 sdi 8:128 [active][ready]
\_ 13:0:0:0 sdn 8:208 [active][ready]
\_ round-robin 0 [prio=0][enabled]
\_ 10:0:0:0 sdj 8:144 [active][ghost]
\_ 12:0:0:0 sdh 8:112 [active][ghost]
\_ 8:0:0:0 sdd 8:48 [active][ghost]
\_ 6:0:0:0 sdb 8:16 [active][ghost]
Судя по вашим комментариям и правкам, узким местом может быть хранилище. Во-первых, при условии, что у вас включено кэширование записи, все операции записи до заполнения кеша должны выполняться на линейной скорости. Вы можете довольно легко измерить это, выяснив, сколько у вас есть кеша, и выполнив 100% тест записи с меньшим количеством данных. Во-вторых, как только кеш начинает передавать данные на диск, производительность записи в RAID-10 (при условии, что контроллеры не создают узких мест) будет вдвое ниже производительности чтения. Это потому, что каждая запись выполняется на два диска, а чтение выполняется только с одного. Одно из преимуществ RAID-10 заключается в том, что нет четности для расчета, поэтому маловероятно, что процессоры контроллеров просто не смогут справиться с этим.
Далее, если ваш тест измеряет сочетание операций чтения и записи, производительность, которую вы получите от контроллера хранилища, будет зависеть от типа ввода-вывода. Если это последовательно, вы получите большее количество МБ / с, но меньшее количество операций ввода-вывода / с. Если это случайный small-block, вы получите небольшое количество МБ / с, но столько операций ввода-вывода / с, сколько могут обеспечить ваши диски. Каждый диск со скоростью 7200 об / мин обеспечит определенное количество операций ввода-вывода в секунду при непредсказуемом чтении, поэтому количество дисков в вашем рейде, умноженное на количество операций ввода-вывода в секунду на диск, будет вашим теоретическим пределом производительности.
Наконец, если у вас есть все хранилище в одном большом томе, представленном как один LUN, ваша очередь команд может быть переполнена. Обычные операционные системы имеют настраиваемую глубину очереди команд (количество невыполненных операций ввода-вывода, которые они выстраивают в линию для хранилища), и каждый том / LUN имеет свою собственную очередь. Еще одна проблема, связанная с размещением всего хранилища в одном LUN, заключается в том, что обычно операции ввода-вывода отправляются на один контроллер для этого LUN. Даже в активных / активных системах хранения (в которых я не уверен, что ваша) они могут иметь сходство для одного контроллера с другим. Цель состоит в том, чтобы создать группу томов и равномерно разделить их между контроллерами.
Может быть, вы хотите увеличить размер блока кеша в массиве с 4k до 16k или 32k (особенно, если вы ищете последовательную рабочую нагрузку).
Протестируйте его с одним диском и сделайте это снова со всеми дисками в рейде 0.
Raid 0 не будет иметь накладных расходов raid10 или raid 5.
Также посмотрите свой кеш на MD. По умолчанию используется 4 КБ блоков, но может быть до 32 КБ блоков. У меня разница в скорости между этими двумя значениями составила до 30%. Тем не менее, протестируйте его для своих рабочих нагрузок.
Используйте что-то вроде SQLIO, где вы можете использовать больше потоков. Мои цифры, наконец, стали хорошо выглядеть, когда я усерднее работал.
И убедитесь, что MD настроен на 10G. Для портов можно выбрать 10 Гбит / с или 1 Гбит / с, автосогласование не выполняется.