
Как работает кэширование Ceph?
Введение:
В этом посте мы делимся тестом производительности, чтобы продемонстрировать, как кэширование Ceph может улучшить производительность пула HDD, установив уровень кэша, поддерживаемый пулом NVMe.
Что такое Ceph Cache Tier и как оно работает
Кэш-уровень Ceph позволяет использовать более быстрые устройства хранения в качестве кэша для более медленных. Это включает создание пула быстрых/дорогих устройств хранения (например, NVMe SSD), настроенных для работы в качестве кэш-уровня, и медленного/дешевого пула из устройств с кодированием с избытком или медленных устройств (например, HDD), настроенных для работы в качестве экономичного уровня хранения. Кэш-уровень хранит часто запрашиваемые данные из основного уровня и обрабатывает запросы на чтение и запись от клиентов. Агент кэширования периодически сбрасывает или удаляет объекты из кэш-уровня на основе определенных политик.
Демонстрация кэш-уровня Ceph
В прошлом, при использовании SATA SSD в качестве устройства хранения кэш-уровня, улучшение производительности от использования кэш-уровня было незначительным. В настоящее время стоимость NVMe SSD снизилась значительно по сравнению с несколькими годами назад, а производительность NVMe SSD гораздо выше, чем у HDD. Мы хотим узнать, может ли использование NVMe SSD в качестве кэш-уровня значительно помочь пулу HDD.
Чтобы протестировать эффективность уровня кэша NVMe, мы провели тест, чтобы выяснить, улучшает ли уровень кэша производительность пула хранения на основе HDD.
Настройка кластера
Хосты NVME | 3 x Ambedded Mars500 Ceph Appliances |
Спецификация каждого устройства Mars 500 | |
ЦП | 1x Ampere Altra Arm 64-Core 3.0 ГГц |
Память | 96 GiB DDR4 |
Сеть | 2 порта 25 Гбит/с Mellanox ConnectX-6 |
Диски OSD | 8 x Micron 7400 960 ГБ |
Хосты HDD | 3 x Ambedded Mars400 Ceph Appliances |
Спецификация каждого устройства Mars 400 | |
ЦП | 8 узлов Quad-Cores Arm64 1.2 ГГц |
Память | 4 ГиБ на узел. 32 ГиБ на устройство |
Сеть | 2 x 2.5 Гбит/с на узел. 2x 10 Гбит/с вверх через встроенный коммутатор. |
Диски OSD | 8 x 6 ТБ Seagate Exos HDD |
Информация о Ceph кластере
- 24 x OSD на NVMe SSD (3x Ambedded устройства Mars500)
- 24x OSD на HDD (3x устройства Mars400 от Ambedded)
- Серверы с HDD и NVMe находятся в отдельных корнях CRUSH.
Тестовые клиенты
- 2 x физических сервера. 2x сетевая карта 25Gb
- Каждый сервер запускает 7x ВМ.
- У каждой ВМ 4x ядра и 8 ГБ памяти
Настройка уровня кэша с помощью менеджера UVS от Ambedded
1. Создайте базовый пул, используя HDD osd.
2. Создайте пул NVMe, используя NVMe SSD osd.
3. Добавьте пул NVMe в качестве кэш-уровня для пула HDD.
конфигурации кэш-уровня по умолчанию:
- Режим кэширования: запись обратно
- hit_set_count = 12
- hit_set_period = 14400 сек (4 часа)
- target_max_byte = 2 ТиБ
- target_max_objects = 1 миллион
- min_read_recency_for_promote & min_write_recency_for_promote = 2
- cache_target_dirty_ratio = 0.4
- cache_target_dirty_high_ratio = 0.6
- cache_target_full_ratio = 0.8
- cache_min_flush_age = 600 сек.
- cache_min_evict_age = 1800 сек.
Мы тестировали пул HDD до и после добавления кэш-уровня, используя до 14 клиентов для создания тестовых нагрузок. Каждый клиент смонтировал RBD для теста fio. Тестовая нагрузка началась с одного клиента и количество клиентов увеличивалось после завершения каждой тестовой задачи. Каждый тестовый цикл длился пять минут и автоматически контролировался Jenkins. Результат выполнения тестовой работы был суммой результатов всех клиентов. Перед тестированием кэширования уровня, мы записывали данные на RBD-диски до тех пор, пока пул кэширования уровня не заполнился сверх предельного соотношения заполнения кэша Ceph (0.8).
Диаграммы показали, что производительность чистого пула HDD значительно улучшилась после добавления пула кэша NVMe.
Во время теста уровня кэша мы наблюдали статистику пула, используя команду Ceph OSD Pool Stats. Кэш и базовые бассейны имели промывку, выселение и продвижение занятий. Мы захватили статистику бассейна в разное время во время теста уровня кэша.
Данные были записаны в кэш
пул кэша id 84
скорость записи клиента 21 MiB/s, скорость чтения 0 операций/с, скорость записи 5.49k операций/с
пул mars400_rbd id 86
ничего не происходит
Кэш выполнял продвижение и вытеснение
id пула кэша 84
клиентский ввод/вывод 42 МиБ/с зап., 0 оп/с чт., 10,79k оп/с зап.
ввод/вывод уровня кэша 179 МиБ/с вытеснение, 17 оп/с продвижение
id пула mars400_rbd 86
клиентский ввод/вывод 0 Б/с чт., 1,4 МиБ/с зап., 18 оп/с чт., 358 оп/с зап.
Кэш очищается
идентификатор кэша 84
ввод-вывод клиента 3.2 GiB/s чтение, 830 операций чтения, 0 операций записи
ввод-вывод кэш-уровня 238 MiB/s сброс, 14 операций продвижения, 1 PGs очищается
идентификатор mars400_rbd пула 86
ввод-вывод клиента 126 MiB/s чтение, 232 MiB/s запись, 44 операции чтения, 57 операций записи
PG был выселен
пул кэша id 84
клиентский ввод-вывод 2,6 ГиБ/с чтение, 0 Б/с запись, 663 оп/с чтение, 0 оп/с запись
ввод-вывод кэш-уровня 340 МиБ/с очистка, 2,7 МиБ/с выселение, 21 оп/с продвижение, 1 PG выселяется (полностью)
пул mars400_rbd id 86
клиентский ввод-вывод 768 МиБ/с чтение, 344 МиБ/с запись, 212 оп/с чтение, 86 оп/с запись
Сброс PG и прямой ввод-вывод клиента в базовый пул.(клиенты записывали данные)
пул кэша id 84
клиент io 0 B/s запись, 0 операций чтения, 1 операция записи
кэш-уровень io 515 MiB/s сброс, 7.7 MiB/s вытеснение, 1 PGs сброс
пул mars400_rbd id 86
клиент io 613 MiB/s запись, 0 операций чтения, 153 операции записи
После непрерывного тестирования мы оставили кластер в покое на несколько часов и повторили тест на случайную запись 4 кБ. Мы получили гораздо лучшую производительность. Это произошло потому, что пространство кэша было освобождено для новой записи.
Из этого теста мы уверены, что использование пула NVMe в качестве кэш-уровня пула HDD может значительно улучшить производительность.
Следует отметить, что производительность кэширования не может быть гарантирована. Производительность зависит от условий попадания в кэш в данный момент, и ту же производительность нельзя достичь, повторяя тесты с одной и той же конфигурацией и нагрузками.
Если вашему приложению нужна стабильная производительность, используйте чистый пул NMMe SSD.
- Связанные продукты
-
Mars500 NVME Все флеш-накопители Ceph Storage Appliance
Mars 500
Mars 500 Ceph Appliance разработан для удовлетворения высокопроизводительных потребностей...
ПодробностиХранилище Ceph Mars 400PRO
Mars 400PRO
Mars 400 Ceph Appliance разработан для удовлетворения высоких потребностей в хранении данных...
Подробности