Рейтинг:0

Еженедельная проверка RAID, влияющая на мою систему — есть ли способ смягчить последствия?

флаг ml

Недавно я попросил своего веб-хостинга (Hetzner) добавить к моему веб-серверу платные диски SATA емкостью 16 ТБ. В настоящее время используется 2,5 ТБ из них. Это зеркальный RAID 1.

У меня также есть два диска nVME по 4 ТБ с 700 ГБ на них, а также зеркальный RAID 1.

Каждую неделю CentOS запускает cronjob для «проверки» обоих моих md-массивов. Они происходят одновременно, а nVME завершается через 5 часов. SATA занимает мучительные 18 часов со скоростью 200 МБ / с все время.

# Запускать системную рейд-проверку раз в неделю в воскресенье в 1:00 по умолчанию
0 1 * * Sun root /usr/sbin/raid-check

Мой сервер достаточно мощный, с 32-ядерным EPYC и 128 ГБ оперативной памяти, но я заметил замедление ввода-вывода при выполнении этой проверки.

  1. нужно ли запускать их еженедельно?

  2. 200 МБ/с * 18 часов означает, что используются все 16 ТБ, а не только занятое пространство. Можно ли как-то сделать его умнее/ленивее, чтобы он работал только на занятом пространстве?

  3. может ли эта работа быть красивыйд или подобное? Я понимаю, что это займет больше времени, но это может быть предпочтительнее. см. правку ниже

  4. будут ли паузы в сценариях плохой идеей? То есть вместо 18 часов за один удар я мог бы делать (скажем) 3 часа за ночь?

  5. это проблема, от которой страдают все, или я принял какие-то неверные решения? Например, установка аппаратной рейд-карты сделает меня намного счастливее?

Редактировать

теперь я обнаружил /etc/sysconfig/raid-check и изменился ХОРОШИЙ=низкий к ХОРОШИЙ = бездействует. Думаю, я не узнаю, какая разница, до следующей недели.

paladin avatar
флаг id
Используйте btrfs-raid1 (используя файловую систему btrfs) вместо глупого mdadm raid1.
Codemonkey avatar
флаг ml
Можете ли вы рассказать мне больше @paladin - почему это было бы лучше? И я предполагаю, что не могу преобразовать его на месте, мне нужно сначала перенести данные на другие диски, а затем вернуться? Я разработчик полного стека, управляющий собственным бизнесом/сервером/сайтом, и я рад признать, что это не моя область знаний. Черт, у меня нет области знаний в эти дни!
paladin avatar
флаг id
Файловая система btrfs поддерживает рейд на уровне файловой системы, а mdadm — на блочном уровне. btrfs также создает контрольную сумму всех файлов и всех данных, а mdadm — нет. мдадм просто тупой. btrfs сравнивает все метаданные и все данные с контрольной суммой, а также может сравнивать их с копией (raid1 или dup). Если что-то будет повреждено, будет восстановлен только поврежденный файл, нет необходимости проверять уровень блоков всего диска. Но, пожалуйста, сначала прочитайте о btrfs, так как некоторые функции этой файловой системы отличаются от ваших обычных ext4 и других.
paladin avatar
флаг id
Вы действительно должны прочитать больше об этом [здесь] (https://btrfs.wiki.kernel.org/index.php/Main_Page). btrfs готов к работе и стабилен при правильном использовании. Позже напишу небольшое резюме. PS вам действительно не следует использовать режимы btrfs-raid5 или btrfs-raid6, так как эти режимы являются экспериментальными и очень опасными (более опасными, чем raid0). Файловая система btrfs также всегда должна монтироваться с параметром монтирования noatime.
Рейтинг:2
флаг za

Нет, MD RAID не может быть умнее этого. Если вы хотите проверять только используемые области, используйте ZFS или, возможно, BTRFS.

Еженедельная проверка — это слишком часто. Делайте это ежемесячно или даже раз в два месяца.

Я не знаю, что на самом деле делает этот NICE. Если он устанавливает хороший ввод-вывод процесса ядра [mdX_resync], это хорошо и использовать праздный. Что вы можете ограничить, так это пропускную способность проверки: она устанавливается в /sys/блок/mdX/md/sync_speed_max файл в кБ/с. Это виртуальный файл, например. он будет сброшен после перезагрузки системы.

Кстати, по умолчанию он ограничен 200 МБ/с, и вы, кажется, достигли этого предела. Вы можете увеличить скорость для SSD (поставьте 5000000 и посмотрите, через какое время они будут проверяться). И вместо того, чтобы «приостанавливать» его для жестких дисков, я играл с ограничениями (например, в периоды высокой нагрузки я устанавливал нижний предел, во время простоя я устанавливал 600000 – максимальная пропускная способность интерфейса SATA 6 Гбит/с).

Я сомневаюсь, что карта HW RAID значительно улучшит ситуацию.

флаг jm
Аппаратная RAID-карта значительно улучшит ситуацию.Команда md checkarray сканирует каждый сектор каждого диска на согласованность и битовую гниль. Это делается процессом, читающим каждый блок, поэтому он интенсивно использует ввод-вывод и несколько интенсивно использует ЦП. При аппаратном рейде эти функции запускаются изнутри карты, поэтому ввод-вывод на шине и ЦП не задействованы.
Codemonkey avatar
флаг ml
Интересно, спасибо. Мне, конечно, показалось странным, что проверка nVME заняла так много времени, что ограничение в 200 МБ/с имеет смысл. Хотя я хотел бы запускать это задание реже, я считаю, что Debian выбирает ежемесячно, а RHEL — еженедельно. Кто скажет, что правильно... Можете ли вы конкретизировать, почему вы считаете еженедельное "слишком частым"?
Codemonkey avatar
флаг ml
Кроме того, знаете ли вы, в какой момент raid-check перезагрузит файл conf? Или как это сделать? Я пробовал приостанавливать проверки («echo idle > /sys/devices/virtual/block/mdX/md/sync_action»), а затем запускать снова, но, похоже, это не помогло. (Я установил `MAX_CONCURRENT=1`, и сейчас он с радостью делает и то, и другое одновременно)

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

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