Вопрос или проблема
У меня есть два сервера HP Proliant DL360 на базе Proxmox VE 8.3 и хранилище Dell MD3600f. Серверы подключены к хранилищу с использованием подключения точка-точка, так как мой MD3600f имеет только один рабочий RAID-контроллер, поэтому здесь нет многопутевого подключения и избыточности.
Хранилище распознается серверами как блочное устройство.
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sdb 8:16 0 3.6T 0 disk
Перед настройкой хранилища Proxmox я обнаружил множество ошибок драйвера во время операций ввода-вывода, например:
Запись
# dd if=/dev/zero of=/dev/sdb bs=10M count=1 status=progress
1+0 records in
1+0 records out
10485760 bytes (10 MB, 10 MiB) copied, 90.7914 s, 115 kB/s
# dmesg
[ 449.015963] qla2xxx [0000:08:00.0]-801c:1: Abort command issued nexus=1:0:10 -- 2002.
[ 479.224174] qla2xxx [0000:08:00.0]-801c:1: Abort command issued nexus=1:0:10 -- 2002.
[ 479.232853] sd 1:0:0:10: [sdb] tag#1358 FAILED Result: hostbyte=DID_ERROR driverbyte=DRIVER_OK cmd_age=60s
[ 479.232872] sd 1:0:0:10: [sdb] tag#1358 CDB: Write(16) 8a 00 00 00 00 00 00 00 3e 08 00 00 00 e8 00 00
[ 479.232878] I/O error, dev sdb, sector 15880 op 0x1:(WRITE) flags 0x800 phys_seg 29 prio class 0
[ 479.232888] buffer_io_error: 246 callbacks suppressed
[ 479.232893] Buffer I/O error on dev sdb, logical block 1985, lost async page write
# ^^ repeats 10 times
[ 479.234889] sd 1:0:0:10: [sdb] tag#1359 FAILED Result: hostbyte=DID_ERROR driverbyte=DRIVER_OK cmd_age=60s
[ 479.234904] sd 1:0:0:10: [sdb] tag#1359 CDB: Write(16) 8a 00 00 00 00 00 00 00 3e f0 00 00 00 d8 00 00
[ 479.234909] I/O error, dev sdb, sector 16112 op 0x1:(WRITE) flags 0x800 phys_seg 27 prio class 0
# ^^ repeats 8 times
Чтение
root@pve1-meteor:~# dd if=/dev/sdb of=/dev/null bs=10M count=1 status=progress
10485760 bytes (10 MB, 10 MiB) copied, 3 s, 3.2 MB/s
1+0 records in
1+0 records out
10485760 bytes (10 MB, 10 MiB) copied, 3.31766 s, 3.2 MB/s
root@pve1-meteor:~# dmesg
[ 1050.046138] qla2xxx [0000:08:00.0]-503f:1: Driver ELS logo IOCB Done hdl=670 comp_status=0x31
[ 1050.046151] qla2xxx [0000:08:00.0]-503f:1: subcode 1=0x7 subcode 2=0x1 bytes=0x74 000001 -> 000002
[ 1050.136733] qla2xxx [0000:08:00.0]-500b:1: LOOP DOWN detected (4 3 0 0).
[ 1050.197533] qla2xxx [0000:08:00.0]-500a:1: LOOP UP detected (8 Gbps).
[ 1050.940575] sd 1:0:0:10: Power-on или сброс устройства произошел
[ 1051.186020] qla2xxx [0000:08:00.0]-301f:1: Обнаружены потерянные кадры (0x111000 из 0x140000 байт).
[ 1051.186072] sd 1:0:0:10: [sdb] tag#1733 FAILED Result: hostbyte=DID_ERROR driverbyte=DRIVER_OK cmd_age=3s
[ 1051.186083] sd 1:0:0:10: [sdb] tag#1733 CDB: Read(16) 88 00 00 00 00 00 00 00 50 00 00 00 0a 00 00 00
[ 1051.186088] I/O error, dev sdb, sector 20480 op 0x0:(READ) flags 0x80700 phys_seg 21 prio class 0
Я не обнаружил особой зависимости от размера блока, иногда я мог записывать 1G со скоростью 60 MB/s.
Пожалуйста, подскажите, как исследовать дальше и в чем может быть причина.
Ответ или решение
В вашей ситуации с ошибками ввода-вывода (I/O) при работе с FC-подключением к хранилищу важно тщательно диагностировать и решать проблему, чтобы избежать потерь данных и обеспечить стабильную работу системы. Ваша конфигурация включает серверы HP ProLiant DL360, работающие под управлением Proxmox VE 8.3, и хранилище Dell MD3600f, подключённое через однопутное соединение (point-to-point) из-за неисправности одного из контроллеров RAID. Это отсутствие резервирования делает вашу систему особенно уязвимой к сбоям.
Теория
Файловые системы, работающие через Fibre Channel (FC), могут столкнуться с различными ошибками ввода-вывода из-за множества факторов, включая неисправности аппаратного обеспечения, проблемы с драйверами, конфликты в конфигурации сети хранения данных (SAN) и специфические ошибки в конфигурации ПО. Fibre Channel — это надежная и широко используемая архитектура для подключения серверов и хранилищ данных, но её сложность требует тщательного проектирования и отладки.
Пример
Расшифровка ваших журналов (dmesg
) указывает на повторяющиеся ошибки драйвера qla2xxx
, которые являются результатом сбоя командных пакетов (например, сообщения "Abort command issued nexus…" и "Loop down detected"). Ошибки чтения и записи свидетельствуют о сбое в коммутации или в линии передачи данных. Перебои и падения связки (Loop Down) указывают на проблему в канале передачи данных. При операции записи dd мы видим значительно заниженную производительность (115 кБ/с), в то время как при чтении скорость выше, но все равно нестабильна. Восстановление цикла соединения (Loop Up) показывает временные успехи в восстановлении связи, но проблемы продолжаются.
Применение
-
Проверка физического подключения:
- Осмотрите все кабели FC и SFP-модули на предмет физического повреждения, перегибов или плохих соединений.
- Замените подозрительные кабели и модули для исключения аппаратных проблем в линии связи.
-
Проверка конфигурации драйверов и прошивок:
- Убедитесь, что все компоненты (серверы, адаптеры, RAID-контроллеры) используют последнюю версию прошивки и драйверов. Производители периодически выпускают обновления для устранения известных ошибок и улучшения производительности.
- Обратите внимание на настройки BIOS и UEFI, связанные с FC.
-
Проверка конфигурации сети хранения данных (SAN):
- Проверьте настройки зоны SAN (zoning), они должны быть правильно настроены для прямой коммутации серверов и хранилища через FC.
- Убедитесь в отсутствии любых лимитов полоса пропускания или задержек.
-
Диагностика производительности и логирования:
- Включите логирование на уровне драйвера и соберите дополнительные данные. Это поможет выявить случайные ошибки, способные указывать на нестабильные компоненты.
- Используйте утилиты мониторинга, такие как
iostat
,sar
, или специфические инструменты Fibre Channel для диагностики состояния сети и расчёта метрик производительности.
-
Дополнительные тесты:
- Попробуйте подключить хранилище к другому серверу или с другой FC-карты для исключения проблем адаптера.
- Проверьте целостность информации в рейде, возможно, существуют внутренние ошибки указывающие на деградацию или сбой дисков.
-
Обсуждение с технической поддержкой:
- Если маршрут отладки не выявил явной проблемы, обратись к технической поддержке Dell и HPE. Их специалисты могут предоставить специфические рекомендации и инструменты для более глубокой диагностики.
Эти шаги помогут вам систематически подойти к решению проблем вашей FC-сети и предотвратить повторные сбои. Взаимодействуйте с командами поддержки и производителями аппаратного обеспечения для получения дополнительных рекомендаций и гарантийной замены проблемных компонентов.