Назад | Перейти на главную страницу

Как уменьшить время ожидания ввода-вывода во время резервного копирования rsync?

У меня такая ситуация: В сети есть набор машин (NAS и прочие "серверы"). Есть еще одна машина для резервного копирования. Он регулярно собирает данные со всех 4 машин с помощью rsync и создает инкрементные резервные копии. Резервное копирование выполняется по запросу, и все сценарии запускаются с ionice -c idle nice -19. Для наблюдения за стабильностью всей системы на всех машинах Linux установлена ​​система мониторинга (munin). Munin просматривает с интервалом в 10 минут различные системные переменные и состояния и отправляет электронные письма в случае проблем / предупреждений.

Каждую ночь в конце резервного копирования (особенно после длительного резервного копирования самой большой машины) munin жалуется на большие задержки диска. Я уже увеличил допустимые пределы, но все же ожидание ввода-вывода в конце такого резервного копирования составляет 10 секунд или более. На мой взгляд, это довольно высокий показатель.

Скрипт резервного копирования написал я. Нужен был подход, аналогичный программе rsnapshot, но с небольшими изменениями. Таким образом, я создал его сам (с гораздо меньшей функциональностью). На самом деле это rsyncs удаленные машины во временную папку, помимо других резервных копий, а затем соответственно меняют / удаляют старые резервные копии. Согласно моим исследованиям, проблема возникает при записи новой резервной копии (в основном при жесткой привязке) или при ротации / удалении резервных копий. Я не могу точно сказать, в чем проблема, поскольку детализация munin составляет всего 10 минут.

Место назначения резервных копий находится в цепочке уровней абстракции: Физические разделы собираются в большой массив RAID5 (mdadm). В md устройство используется как LVM PV. Внутри VG находится большой раздел (помимо других незашифрованных), который зашифрован с помощью LUKS, и внутри него находится второй LVM, который позволяет назначать хранилище различным разделам.

Любые исследования в сети приводили в основном к проблемам с сетевым подключением и задержкам, возникающим на этом уровне. Хотя мое резервное копирование также выполняется по сети, проблема здесь в локальной производительности на сервере резервного копирования.

Что я сделал до сих пор:

Теперь я хотел бы задать несколько вопросов:

Чтобы прояснить мое утверждение: я прекрасно понимаю, что создание резервной копии создаст некоторую нагрузку на систему (особенно на диски), когда дело доходит до записи файлов / создания ссылок.

Если вам нужна дополнительная информация, скажите, что вам нужно.