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

Требуется более медленная / кешированная файловая система Linux

Я знаю, это звучит странно, но мне нужна более медленная или кешированная файловая система.

У меня есть много брандмауэров, которые записывают свои данные в системный журнал на пару виртуальных машин Linux, которые записывают эти файлы на свои «локальные» (фактически подключенные FC SAN) диски в формате ext3, а также пересылают сообщения на наши серверы Splunk.

Проблема в том, что сервер системного журнала записывает эти сообщения системного журнала в виде сотен, а иногда и тысяч крошечных записей ~ 4 КБ в секунду обратно в нашу FC SAN, которая может справиться с этой рабочей нагрузкой прямо сейчас, но наш FW-трафик будет расти как минимум на фактор 5000% (действительно) в ближайшие месяцы, и это будет проблемой для SAN, я хочу исправить основную причину, прежде чем она станет проблемой.

Поэтому мне нужна помощь в выяснении способа кэширования или задержки этих записей каким-либо образом с `` физических '' дисков, чтобы виртуальные машины запускали более крупные, но менее частые записи - нет способа избежать этих записей, но есть нет необходимости делать так много крошечных.

Я просмотрел различные параметры ext3, установив noatime и nodiratime, но это не сильно повлияло на проблему. Очевидно, я исследую другие файловые системы, но подумал, что выброшу это на случай, если у других возникнет такая же проблема в будущем.

Да, и я не могу просто переслать эти сообщения в Splunk, наша команда брандмауэра настаивает, что они в исходном формате для целей диагностики.

Файловая система: отключите барьеры записи, если ваши устройства их используют, и отключите временные обновления по всем направлениям.

Но есть вероятность, что вы также можете настроить свой системный журнал за счет большей потери данных в случае сбоя (питание и т. Д.).

Пример директив из syslog-ng (что может быть не тем, что вы используете):

  • flush_lines() Указывает, сколько строк сбрасывается до места назначения за раз. Syslog-ng ожидает накопления этого количества строк и отправляет их одним пакетом.

  • flush_timeout() Задает время, в течение которого syslog-ng ожидает накопления строк в своем буфере вывода. Смотрите опцию flush_lines для получения дополнительной информации.

В данном случае местом назначения является файл на диске.

Возможно commit Вам поможет опция монтирования ext3? Например, commit=60 будет сбрасывать все данные и метаданные только один раз в минуту.

Обязательное предупреждение: это может привести к потере данных на срок до одной минуты (если вы передадите значение commit = 60).