home

Ceph на HDD/SSD vs Baremetal в Proxmox

Внимание, статья дополнена еще результатами здесь: https://elibsystem.ru/node/550

Конфигурация[править]

Proxmox Ceph[править]

Есть Proxmox 7.0-11 с Ceph 16.2 и двумя пулами.

В Proxmox-кластере развернуты LXC 4.0 контейнеры с CentOS8 в двух пулах из SSD/HDD с фактором репликации 3. Сеть 1Гбит/c.

HDD-пул состоит из 10k SAS дисков HP на 300 ГБ. SSD-пул состоит из Sata-дисков Kingstone 50e на 480 ГБ.

Контроллер HP 410i.

Baremetal[править]

Тот же хост Proxmox, но один HDD диск SAS 10k такой же, как в Ceph.

Контроллер HP 410i.

Тестирование[править]

Подготовка:

sysbench --file-total-size=10G --file-num=10 fileio prepare

Отслеживалась активность дисков, чтобы убедиться, что при тестировании LXC в SSD-пуле запись идёт именно на SSD, а при тестировании HDD-пула, нет записи на SSD.

Последовательная запись в один поток[править]

В один поток производительность Ceph SSD почти не отличается от Ceph HDD и в 5 раз ниже Baremetal HDD:

sysbench --file-total-size=1G --file-num=1 --time=100 --file-test-mode=seqwr --threads=1 fileio run

proxmox-benchmark-baremetal-ceph_ssd-ceph_hdd_seqwr.png

Последовательное чтение в один поток[править]

Читаем с опцией direct. Т.к. всё работает в контейнерах, то кеш на чтение использоваться не должен.

sysbench --file-extra-flags=direct --file-total-size=1G --file-num=1 --time=100 --file-test-mode=seqrd --threads=1 fileio run

Baremetal превосходит в 10 раз. SSD и HDD работают примерно одинаково.

proxmox-benchmark-baremetal-ceph_ssd-ceph_hdd_seqrd.png

Последовательное чтение в 10 потоков[править]

Подготовка:

sysbench --file-extra-flags=direct --file-total-size=10G --file-num=10 --time=100 --file-test-mode=seqrd --threads=10 fileio prepare

Прогон:

sysbench --file-extra-flags=direct --file-total-size=10G --file-num=10 --time=100 --file-test-mode=seqrd --threads=10 fileio run

При 10 потоках Ceph SSD на 10% обгоняет baremetal HDD, а вот Ceph HDD медленнее baremetal HDD в 3 раза.

proxmox-benchmark-baremetal-ceph_ssd-ceph_hdd_seqrd_q10.png

Последовательная запись в 10 потоков[править]

Прогон с direct:

sysbench --file-extra-flags=direct --file-total-size=10G --file-num=10 --time=100 --file-test-mode=seqwr --threads=10 fileio run

При последовательной записи с опцией direct Ceph SSD показывает результаты Ceph HDD, но вот оба они в 25 раз медленнее baremetal HDD.

proxmox-benchmark-baremetal-ceph_ssd-ceph_hdd_seqwr_q10.png

Прогон без direct:

sysbench --file-total-size=10G --file-num=10 --time=100 --file-test-mode=seqrd --threads=10 fileio run

Без опции direct производительность Ceph существенно возросла и теперь отставание Ceph от baremetal HDD всего в 2.5-3 раза, причем Ceph HDD чуть быстрее Ceph SSD:

proxmox-benchmark-baremetal-ceph_ssd-ceph_hdd_seqwr_q10_nodirect.png

Случайная запись в 10 потоков[править]

sysbench --file-total-size=10G --file-num=10 --time=100 --file-test-mode=rndrw --threads=10 --file-rw-ratio=0 fileio run

Ceph SSD в два раза быстрее baremetal HDD, Ceph HDD лишь на 10% медленнее Ceph SSD и в этот раз HDD в Ceph быстрее baremetal HDD.

proxmox-benchmark-baremetal-ceph_ssd-ceph_hdd_rndwr_q10.png

Случайное чтение в 10 потоков[править]

sysbench --file-total-size=10G --file-num=10 --time=100 --file-test-mode=rndrw --threads=10 --file-rw-ratio=100 fileio run

Примечательно, что Ceph SSD опередил baremetal HDD в 30 раз, а Ceph HDD в 12 раз. Примечательно, что скорость чтения Ceph SSD больше скорости интерфейса.

Аналогично Ceph HDD оказался примерно в 2 раза быстрее baremetal HDD, что видимо объясняется параллельным чтением с разных дисков.

proxmox-benchmark-baremetal-ceph_ssd-ceph_hdd_rndrd_q10.png

С опцией direct производительность случайного чтения в 10 потоков снижается в на baremetal HDD и Ceph HDD в 4 раза, а для Ceph SSD в 7 раз, но принципиально Ceph HDD по прежнему в два раза быстрее baremetal HDD, а Ceph SSD существенно превосходит HDD-диски.

sysbench --file-extra-flags=direct --file-total-size=10G --file-num=10 --time=100 --file-test-mode=rndrw --threads=10 --file-rw-ratio=100 fileio run

proxmox-benchmark-baremetal-ceph_ssd-ceph_hdd_rndrd_q10_direct.png

Выводы[править]

Ceph проявляет себя положительно по сравнению с baremetal разве только при случайном многопоточном чтении.

В большинстве остальных случаев Ceph в 2-30 раз медленнее baremetal, причем часто SSD в Ceph работает медленнее HDD в baremetal.

При последовательных операциях использование SSD в Ceph существенного выигрыша не даёт. SSD имеет смысл ставить при случайном чтении. При случайной записи от SSD заметного ускорения не будет.