Ceph - низкая скорость записи на NVMe. Как улучшить производительность?

Как можно улучшить скорость записи в виртуальной машине при использовании Ceph и NVMe-дисков, если текущая конфигурация включает HP Gen11, сетевые адаптеры Mellanox-connectx-6, и наблюдаются значительные различия в производительности между локальными NVMe и Ceph-дисками? Какие параметры следует проверить или изменить для выявления и устранения узких мест в системе?

Слушай, я тут с Ceph заморочился, задумал улучшить скорость записи на NVMe, а то как-то не очень всё это работает. Начал с простых вещей: включил, значит, настройку writeback кэширования, думал, быстрее станет. Но, блин, ноль эффекту! Запись всё равно тянется, ни о каком скачке скорости не может быть и речи.

Потом решил погуглить и наткнулся на всякие настройки osd_max_backfills. Это типа ограничение на то, сколько объектов можно одновременно копировать. Я выставил это значение повыше, думал, может, параллелизм поможет. Но нет, ничего не изменилось. Выглядит так, будто Ceph просто не торопится, хоть ты тресни.

Ещё попробовал поиграться с сетевыми настройками: биндинги менять, MTU увеличивать… Знал, что высокая латентность может быть проблемой. Но тупо не помогает, всё равно запись задерживается.

Также катнул разные режимы репликации. Взял и запрограммировал один OSD налево, другой направо, и ещё одну копию на стороне, думая, вдруг с балансировкой повезёт. Так вот, ничего не поменялось, система продолжает кумекать на своих скоростях.

И, наконец, под конец уже отчаялся, полез в настройки самого железа: обновил прошивки, проверил кэши — всё по нулям. Как будто Ceph решил, что он лучше знает, когда и как работать. Короче, пока не вижу ни сдвига, ни форсажа. Всё это время теряется, а тут ждал оптимизации.

Вот так вот, дела. Буду продолжать пробовать, делать свои эксперименты. Если что-то новое узнаешь — отпишись, буду благодарен!

Улучшение скорости записи в виртуальной машине с Ceph и NVMe-дисками

Чтобы улучшить скорость записи в вашей виртуальной машине, стоит обратить внимание на несколько аспектов настройки системы. Давайте рассмотрим шаги, которые вы можете предпринять:

1. Настройка Ceph

  • Параметры пула: Убедитесь, что пул, который вы используете для хранения данных, настроен на соответствующий уровень репликации. Слишком высокая репликация может замедлить запись.
  • CRUSH-правила: Проверьте, как настроены CRUSH-правила. Возможно, следует оптимизировать распределение данных между OSD (объектное хранилище).
  • Оптимизация OSD: Убедитесь, что у вас достаточно OSD-узлов, работающих на NVMe. Это поможет избежать перегрузки одного узла.
  • Тюнинг Ceph: Параметры, такие как osd_max_backfills, osd_recovery_max_active, и osd_op_threads, могут повлиять на производительность. Настройте их на соответствующие значения для вашей нагрузки.

2. Сетевые адаптеры

  • Настройка MTU: Проверьте, настроен ли параметр MTU на вашем сетевом оборудовании. Увеличение MTU может уменьшить количество пакетов и, следовательно, нагрузку на сеть.
  • Режим работы: Используйте RDMA (например, RoCE) для сетевых адаптеров Mellanox ConnectX-6, если это возможно. Это значительно снижаетlatency и повышает пропускную способность.
  • QoS-конфигурация: Убедитесь, что настройки качества обслуживания не ограничивают пропускную способность ваших соединений.

3. Параметры виртуализации

  • Тип виртуальных дисков: Если вы используете KVM/QEMU, проверьте, какой тип виртуальных дисков (например, virtio) вы используете. Он может существенно повлиять на общую производительность.
  • Настройки CPU и памяти: Оптимизация выделения ресурсов для виртуальной машины, таких как использование NUMA или правильной настройки планировщика CPU, может повысить производительность.
  • Кэширование: Проверьте настройки кэширования для вашего виртуального диска. Можно попробовать включить кэш на уровне хоста или стратегии кэширования (writeback, writethrough).

4. Мониторинг и диагностика

  • Мониторинг производительности: Используйте инструменты мониторинга для выявления узких мест в вашей системе. Это могут быть такие инструменты, как ceph -s для состояния кластера или iostat, чтобы увидеть, где возникают задержки.
  • Логи Ceph: Проверьте логи Ceph на наличие ошибок или предупреждений, которые могут указывать на проблемы с производительностью.

Заключение

Следует провести комплексный анализ текущей конфигурации и настроек вашей системы. Начните с вышеуказанных рекомендаций, а затем постепенно корректируйте параметры в зависимости от результатов тестирования и мониторинга. . Я ответил на ваш вопрос?

Привет! Похоже, что ты действительно неплохо поработал над оптимизацией Ceph, но, к сожалению, пока не получил желаемых результатов. Давай попробуем разобрать твои действия и подкинуть несколько идей.

Кэширование

Настройка writeback кэширования действительно может помочь, но иногда требуется более комплексный подход. Проверь, как другие параметры кэширования настроены, например, filestore_max_sync_interval или filestore_max_write, если ты используешь filestore. Надо убедиться, что кэширование в целом настроено правильно.

Параллелизм

Про osd_max_backfills ты прав: это может помочь, но если узким местом является не количество копируемых объектов, а скорость дисков или сети, то это не даст значительного результата. Можно попробовать увеличить значение osd_max_write_size, это тоже может повлиять на скорость записи.

Сеть

Сетевые настройки тоже важны. Если ты уже играл с биндингами и MTU, можно еще взглянуть на параметры TCP. Например, увеличить размер TCP окна (tcp_window_scaling) может помочь улучшить передачу данных. Также попробуй протестировать разные параметры ceph.conf касательно сетевых протоколов.

Репликация

Комплексная репликация — хорошая идея, но, возможно, стоит обратить внимание на настройки для CRUSH-правил. Убедись, что равномерно распределяешь нагрузки. Также стоит проверить, не перегружены ли OSD в данный момент.

Прошивки и оборудование

Классно, что ты обновил прошивки и проверил кэши. Но стоит еще обратить внимание на совместимость компонентов. Иногда производители оборудования публикуют рекомендации по оптимальным параметрам для использованных версий прошивок.

Общий подход

Скорее всего, в твоем случае нужен комплексный подход. Попробуй собирать метрики и проводить анализ: возможно, проблемы возникают в какой-то конкретный момент, например, в пиковые часы. Вложи время в мониторинг — это действительно может раскрыть проблемы.

Если ты наткнешься на что-то новое или решишь проблему, обязательно дай знать! Удачи с экспериментами! . Я ответил на ваш вопрос?