Рейтинг:3

ZFS и SAN: проблема с очисткой данных

флаг cn

Работая учеными в корпоративной среде, мы получаем ресурсы хранения из SAN внутри виртуальной машины Ubuntu 20.04 (Proxmox). Контроллер SAN передается непосредственно на виртуальную машину (переход PCIe).

Сама SAN использует аппаратный Raid 60 (другого варианта у нас нет) и предоставляет нам 380 ТБ, которые мы можем разделить на несколько LUN. Мы хотели бы воспользоваться функциями сжатия ZFS и моментальных снимков. Мы выбрали 30 LUN по 11 ТБ, которые затем организовали как чередующийся RAID-Z. Настройка избыточна (два сервера), у нас есть резервные копии, и производительность хорошая, что сориентировало нас в пользу чередующегося RAID-Z в пользу обычных чередующихся зеркал.

Независимо от геометрии ZFS мы заметили, что высокая нагрузка записи (> 1 ГБ/с) во время очистки ZFS приводит к ошибкам диска, что в конечном итоге приводит к неисправным устройствам. Просмотрев файлы с ошибками, мы можем связать эту проблему с процессом очистки, пытающимся получить доступ к данным, все еще присутствующим в кэше SAN. При умеренных нагрузках во время очистки процесс завершается без ошибок.

Существуют ли параметры конфигурации для ZFS или для многопутевого доступа, которые можно настроить внутри виртуальной машины, чтобы предотвратить эту проблему с кэшем SAN?

Вывод состояния zpool

  бассейн: санпул
 состояние: ОНЛАЙН
  сканирование: скраб восстановил 0B за 2 дня 02:05:53 с 0 ошибками в четверг 17 марта 15:50:34 2022
конфигурация:

    ИМЯ СОСТОЯНИЕ ЧТЕНИЕ ЗАПИСЬ CKSUM
    санпул ОНЛАЙН 0 0 0
      raidz1-0 ОНЛАЙН 0 0 0
        wwn-0x60060e8012b003005040b0030000002e ОНЛАЙН 0 0 0
        wwn-0x60060e8012b003005040b0030000002f ОНЛАЙН 0 0 0
        wwn-0x60060e8012b003005040b00300000031 ОНЛАЙН 0 0 0
        wwn-0x60060e8012b003005040b00300000032 ОНЛАЙН 0 0 0
        wwn-0x60060e8012b003005040b00300000033 ОНЛАЙН 0 0 0
      raidz1-1 ОНЛАЙН 0 0 0
        wwn-0x60060e8012b003005040b00300000034 ОНЛАЙН 0 0 0
        wwn-0x60060e8012b003005040b00300000035 ОНЛАЙН 0 0 0
        wwn-0x60060e8012b003005040b00300000036 ОНЛАЙН 0 0 0
        wwn-0x60060e8012b003005040b00300000037 ОНЛАЙН 0 0 0
        wwn-0x60060e8012b003005040b00300000038 ОНЛАЙН 0 0 0
      raidz1-2 ОНЛАЙН 0 0 0
        wwn-0x60060e8012b003005040b00300000062 ОНЛАЙН 0 0 0
        wwn-0x60060e8012b003005040b00300000063 ОНЛАЙН 0 0 0
        wwn-0x60060e8012b003005040b00300000064 ОНЛАЙН 0 0 0
        wwn-0x60060e8012b003005040b00300000065 ОНЛАЙН 0 0 0
        wwn-0x60060e8012b003005040b00300000066 ОНЛАЙН 0 0 0
      raidz1-3 ОНЛАЙН 0 0 0
        wwn-0x60060e8012b003005040b0030000006a ОНЛАЙН 0 0 0
        wwn-0x60060e8012b003005040b0030000006b ОНЛАЙН 0 0 0
        wwn-0x60060e8012b003005040b0030000006c ОНЛАЙН 0 0 0
        wwn-0x60060e8012b003005040b0030000006d ОНЛАЙН 0 0 0
        wwn-0x60060e8012b003005040b0030000006f ОНЛАЙН 0 0 0
      raidz1-4 ОНЛАЙН 0 0 0
        wwn-0x60060e8012b003005040b00300000070 ОНЛАЙН 0 0 0
        wwn-0x60060e8012b003005040b00300000071 ОНЛАЙН 0 0 0
        wwn-0x60060e8012b003005040b00300000072 ОНЛАЙН 0 0 0
        wwn-0x60060e8012b003005040b00300000073 ОНЛАЙН 0 0 0
        wwn-0x60060e8012b003005040b00300000074 ОНЛАЙН 0 0 0
      raidz1-5 ОНЛАЙН 0 0 0
        wwn-0x60060e8012b003005040b00300000075 ОНЛАЙН 0 0 0
        wwn-0x60060e8012b003005040b00300000076 ОНЛАЙН 0 0 0
        wwn-0x60060e8012b003005040b00300000077 ОНЛАЙН 0 0 0
        wwn-0x60060e8012b003005040b00300000079 ОНЛАЙН 0 0 0
        wwn-0x60060e8012b003005040b0030000007a ОНЛАЙН 0 0 0

ошибки: Нет известных ошибок данных

Вывод multipath -ll

mpathr (360060e8012b003005040b00300000074) dm-18 HITACHI,OPEN-V
size=11T features='0' hwhandler='0' wp=rw
`-+- policy='service-time 0' prio=1 status=active
  |- 7:0:0:25 сдз 65:144 активен готов работает
  `- 8:0:0:25 sdbd 67:112 активен готов работает
mpathe (360060e8012b003005040b00300000064) dm-5 HITACHI,OPEN-V
size=11T features='0' hwhandler='0' wp=rw
`-+- policy='service-time 0' prio=1 status=active
  |- 7:0:0:13 sdn 8:208 активен готов работает
  `- 8:0:0:13 sdar 66:176 активен готов работает
mpathq (360060e8012b003005040b00300000073) dm-17 HITACHI,OPEN-V
size=11T features='0' hwhandler='0' wp=rw
`-+- policy='service-time 0' prio=1 status=active
  |- 7:0:0:24 sdy 65:128 активен готов работает
  `- 8:0:0:24 sdbc 67:96 активен готов работает
mpathd (360060e8012b003005040b00300000063) dm-4 HITACHI,OPEN-V
size=11T features='0' hwhandler='0' wp=rw
`-+- policy='service-time 0' prio=1 status=active
  |- 7:0:0:12 sdm 8:192 активен готов работает
  `- 8:0:0:12 sdaq 66:160 активен готов работает
mpathp (360060e8012b003005040b00300000072) dm-16 HITACHI,OPEN-V
size=11T features='0' hwhandler='0' wp=rw
`-+- policy='service-time 0' prio=1 status=active
  |- 7:0:0:23 sdx 65:112 активен готов работает
  `- 8:0:0:23 sdbb 67:80 активен готов работает
mpathc (360060e8012b003005040b00300000062) dm-3 HITACHI,OPEN-V
size=11T features='0' hwhandler='0' wp=rw
`-+- policy='service-time 0' prio=1 status=active
  |- 7:0:0:11 sdl 8:176 активен готов работает
  `- 8:0:0:11 sdap 66:144 активен готов работает
мпато (360060e8012b003005040b00300000071) dm-15 HITACHI,OPEN-V
size=11T features='0' hwhandler='0' wp=rw
`-+- policy='service-time 0' prio=1 status=active
  |- 7:0:0:22 sdw 65:96 активен готов работает
  `- 8:0:0:22 sdba 67:64 активен готов работает
mpathb (360060e8012b003005040b00300000038) dm-2 HITACHI,OPEN-V
size=11T features='0' hwhandler='0' wp=rw
`-+- policy='service-time 0' prio=1 status=active
  |- 7:0:0:10 sdk 8:160 активен готов работает
  `- 8:0:0:10 sdao 66:128 активен готов работает
mpathn (360060e8012b003005040b00300000070) dm-14 HITACHI,OPEN-V
size=11T features='0' hwhandler='0' wp=rw
`-+- policy='service-time 0' prio=1 status=active
  |- 7:0:0:21 sdv 65:80 активен готов работает
  `- 8:0:0:21 sdaz 67:48 активен готов работает
mpatha (360060e8012b003005040b0030000002e) dm-1 HITACHI,OPEN-V
size=11T features='0' hwhandler='0' wp=rw
`-+- policy='service-time 0' prio=1 status=active
  |- 7:0:0:1 sdb 8:16 активен готов работает
  `- 8:0:0:1 sdaf 65:240 активен готов работает
mpathz (360060e8012b003005040b00300000033) dm-26 HITACHI,OPEN-V
size=11T features='0' hwhandler='0' wp=rw
`-+- policy='service-time 0' prio=1 status=active
  |- 7:0:0:5 sdf 8:80 активен готов работает
  `- 8:0:0:5 sdaj 66:48 активен готов работает
mpathm (360060e8012b003005040b0030000006f) dm-13 HITACHI,OPEN-V
size=11T features='0' hwhandler='0' wp=rw
`-+- policy='service-time 0' prio=1 status=active
  |- 7:0:0:20 sdu 65:64 активен готов работает
  `- 8:0:0:20 sday 67:32 активен готов работает
mpathy (360060e8012b003005040b00300000032) dm-25 HITACHI,OPEN-V
size=11T features='0' hwhandler='0' wp=rw
`-+- policy='service-time 0' prio=1 status=active
  |- 7:0:0:4 sde 8:64 активно готово работает
  `- 8:0:0:4 sdai 66:32 активен готов работает
mpathl (360060e8012b003005040b0030000002f) dm-12 HITACHI,OPEN-V
size=11T features='0' hwhandler='0' wp=rw
`-+- policy='service-time 0' prio=1 status=active
  |- 7:0:0:2 sdc 8:32 активен готов работает
  `- 8:0:0:2 sdag 66:0 активен готов работает
mpathx (360060e8012b003005040b0030000007a) dm-24 HITACHI,OPEN-V
size=11T features='0' hwhandler='0' wp=rw
`-+- policy='service-time 0' prio=1 status=active
  |- 7:0:0:30 sdae 65:224 активен готов работает
  `- 8:0:0:30 sdbi 67:192 активен готов работает
mpathad (360060e8012b003005040b00300000037) dm-30 HITACHI,OPEN-V
size=11T features='0' hwhandler='0' wp=rw
`-+- policy='service-time 0' prio=1 status=active
  |- 7:0:0:9 sdj 8:144 активен готов работает
  `- 8:0:0:9 sdan 66:112 активен готов работает
mpathk (360060e8012b003005040b0030000006d) dm-11 HITACHI,OPEN-V
size=11T features='0' hwhandler='0' wp=rw
`-+- policy='service-time 0' prio=1 status=active
  |- 7:0:0:19 sdt 65:48 активен готов работает
  `- 8:0:0:19 sdax 67:16 активен готов работает
mpathw (360060e8012b003005040b00300000031) dm-23 HITACHI,OPEN-V
size=11T features='0' hwhandler='0' wp=rw
`-+- policy='service-time 0' prio=1 status=active
  |- 7:0:0:3 sdd 8:48 активен готов работает
  `- 8:0:0:3 sdah 66:16 активен готов работает
mpathac (360060e8012b003005040b00300000036) dm-29 HITACHI,OPEN-V
size=11T features='0' hwhandler='0' wp=rw
`-+- policy='service-time 0' prio=1 status=active
  |- 7:0:0:8 sdi 8:128 активен готов работает
  `- 8:0:0:8 sdam 66:96 активен готов работает
mpathj (360060e8012b003005040b0030000006c) dm-10 HITACHI,OPEN-V
size=11T features='0' hwhandler='0' wp=rw
`-+- policy='service-time 0' prio=1 status=active
  |- 7:0:0:18 sds 65:32 активен готов работает
  `- 8:0:0:18 sdaw 67:0 активен готов работает
mpathv (360060e8012b003005040b00300000079) dm-22 HITACHI,OPEN-V
size=11T features='0' hwhandler='0' wp=rw
`-+- policy='service-time 0' prio=1 status=active
  |- 7:0:0:29 sdad 65:208 активен готов работает
  `- 8:0:0:29 sdbh 67:176 активен готов работает
mpathab (360060e8012b003005040b00300000035) dm-28 HITACHI,OPEN-V
size=11T features='0' hwhandler='0' wp=rw
`-+- policy='service-time 0' prio=1 status=active
  |- 7:0:0:7 sdh 8:112 активен готов работает
  `- 8:0:0:7 sdal 66:80 активен готов работает
mpathi (360060e8012b003005040b0030000006b) dm-9 HITACHI,OPEN-V
size=11T features='0' hwhandler='0' wp=rw
`-+- policy='service-time 0' prio=1 status=active
  |- 7:0:0:17 sdr 65:16 активен готов работает
  `- 8:0:0:17 sdav 66:240 активен готов работает
mpathu (360060e8012b003005040b00300000077) dm-21 HITACHI,OPEN-V
size=11T features='0' hwhandler='0' wp=rw
`-+- policy='service-time 0' prio=1 status=active
  |- 7:0:0:28 sdac 65:192 активен готов работает
  `- 8:0:0:28 sdbg 67:160 активен готов работает
mpathaa (360060e8012b003005040b00300000034) dm-27 HITACHI,OPEN-V
size=11T features='0' hwhandler='0' wp=rw
`-+- policy='service-time 0' prio=1 status=active
  |- 7:0:0:6 sdg 8:96 активен готов работает
  `- 8:0:0:6 sdak 66:64 активен готов работает
mpathh (360060e8012b003005040b0030000006a) dm-8 HITACHI,OPEN-V
size=11T features='0' hwhandler='0' wp=rw
`-+- policy='service-time 0' prio=1 status=active
  |- 7:0:0:16 sdq 65:0 активен готов работает
  `- 8:0:0:16 sdau 66:224 активен готов работает
mpatht (360060e8012b003005040b00300000076) dm-20 HITACHI,OPEN-V
size=11T features='0' hwhandler='0' wp=rw
`-+- policy='service-time 0' prio=1 status=active
  |- 7:0:0:27 sdab 65:176 активен готов работает
  `- 8:0:0:27 sdbf 67:144 активен готов работает
mpathg (360060e8012b003005040b00300000066) dm-7 HITACHI,OPEN-V
size=11T features='0' hwhandler='0' wp=rw
`-+- policy='service-time 0' prio=1 status=active
  |- 7:0:0:15 sdp 8:240 активно готово работает
  `- 8:0:0:15 sdat 66:208 активен готов работает
mpaths (360060e8012b003005040b00300000075) dm-19 HITACHI,OPEN-V
size=11T features='0' hwhandler='0' wp=rw
`-+- policy='service-time 0' prio=1 status=active
  |- 7:0:0:26 sdaa 65:160 активен готов работает
  `- 8:0:0:26 sdbe 67:128 активен готов работает
mpathf (360060e8012b003005040b00300000065) dm-6 HITACHI,OPEN-V
size=11T features='0' hwhandler='0' wp=rw
`-+- policy='service-time 0' prio=1 status=active
  |- 7:0:0:14 sdo 8:224 активен готов работает
  `- 8:0:0:14 sdas 66:192 активен готов работает
Andrew Henle avatar
флаг ph
«Сама SAN использует аппаратный Raid 6 (другого варианта у нас нет) и предоставляет нам 380 ТБ, которые мы можем разделить на несколько LUN». Массив RAID-6 примерно из 32 дисков по 12 ТБ, а затем сказать: «Херп! Дерп! Вот ваши 380 ТБ! Сколько LUN мы должны представить из этого массива?» Если они сделали эту мерзость, это будет [чтение-изменение-запись](https://www.vmdamentals.com/?p=897) ужастик всякий раз, когда вы пишете на любой ОДИН из ваших LUN. Оперативная запись во все LUN ​​приведет к перегрузке этого хранилища SAN.
Andrew Henle avatar
флаг ph
Что они должны были сделать, так это сказать: «У нас есть N дисков по X ТБ. Как вы хотите, чтобы мы разделили их на отдельные массивы, и мы представим вам каждый из них как отдельный LUN». Но это потребует от них больше усилий. FWIW, массивы RAID-6 с 10 дисками в каждом, вероятно, являются приятным местом, хотя для них вам нужно знать время восстановления RAID для неисправных дисков. Массивы RAID-6 на 30+ дисков — глупость и некомпетентность. И да, я надеюсь, что они прочитают это, если это то, что они сделали.
Benoit avatar
флаг cn
Уважаемый Эндрю, это не худший случай вашего первого комментария и не лучший случай вашего второго комментария… Я имею в виду, что они использовали массивы RAID6 меньшего размера, чем 10 дисков, которые вы упомянули (RAID 60, я соответствующим образом отредактирую свой вопрос). попросили разделить, чтобы соответствовать геометрии ZFS (будучи полным невеждой, я надеялся на один диск на LUN), но, видимо, это какое-то решение, которое они купили как есть, и разделение исправлено в начале. С SAN все в порядке даже во время очистки или при перемещении большого количества данных. Мои 380 ТБ это только малая часть как я понимаю.
ewwhite avatar
флаг ng
Вам нужен [профессионал/консультант ZFS](https://serverfault.com/users/13325/ewwhite?tab=profile) и несколько сторонников для работы с корпоративными ИТ...
Benoit avatar
флаг cn
О получении профессиональной помощи: это может закончиться так, как это было в случае аудита безопасности. Как ученые-метеорологи, мы часто достигаем своих пределов...
Рейтинг:0
флаг uz

Ты смотришь не в то место. Если вы САН недостатки под нагрузкой, то на него нельзя положиться, и точка. Исправить САН.

Benoit avatar
флаг cn
Спасибо за ваш ответ, насколько я понимаю, у нас строго не ошибка SAN под нагрузкой, а данные в кеше, которые ошибочно помечаются как ошибочные при очистке под нагрузкой. Протирание после сильной нагрузки не приводит к какой-либо ошибке. Я буду бороться с людьми, ответственными за SAN, чтобы получить больше информации, кроме «все в порядке» с их стороны.
Benoit avatar
флаг cn
Одно уточнение по возможным проблемам с SAN. Я ждал три месяца, прежде чем опубликовать свой вопрос, чтобы исключить вопиющую проблему с SAN. Данные всегда копируются из быстрых пулов твердотельных накопителей Raid 10, что создает большую нагрузку. За этот период было очищено около 400 ТБ данных без единой ошибки, однако я ограничил нагрузку во время очистки.
Рейтинг:0
флаг ng

Это действительно из области профессиональные услуги, учитывая специфику установки и нестандартную конфигурацию SAN.

Это можно настроить и настроить для лучшего поведения и производительности.

  • А зачем ты чешешь?
  • Какие настройки вы настроили, чтобы разрешить очистку пула с такой геометрией?
  • Пожалуйста, разместите свой /etc/modprobe.d/zfs.conf
  • Пожалуйста, опубликуйте свой Proxmox /etc/sysctl.conf
Benoit avatar
флаг cn
Спасибо за ваш ответ. Мы очищаем, потому что мы храним моментальные снимки дисков и баз данных Proxmox VM в этом пуле. Мы думали, что на блочных устройствах важна целостность данных. Мы еще не настроили никаких настроек, на данный момент мы можем выделить до 80 ГБ для ZFS ARC.Никаких файлов zfs.conf мы не создавали, обычно мы просто задаем там параметры ARC, но для ZFS на SAN у нас недостаточно опыта для этого. По поводу Proxmox /etc/sysctl.conf: все строки закомментированы, этот файл мы не редактировали. Обратите внимание, что Proxmox передает адаптер SAN на виртуальную машину (транзит PCIe).
ewwhite avatar
флаг ng
Настройка требует работы. Свяжитесь со мной в автономном режиме.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.