Внимание, статья дополнена еще результатами здесь: 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
Последовательное чтение в один поток[править]
Читаем с опцией 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 работают примерно одинаково.
Последовательное чтение в 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 раза.
Последовательная запись в 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.
Прогон без 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:
Случайная запись в 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.
Случайное чтение в 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, что видимо объясняется параллельным чтением с разных дисков.
С опцией 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
Выводы[править]
Ceph проявляет себя положительно по сравнению с baremetal разве только при случайном многопоточном чтении.
В большинстве остальных случаев Ceph в 2-30 раз медленнее baremetal, причем часто SSD в Ceph работает медленнее HDD в baremetal.
При последовательных операциях использование SSD в Ceph существенного выигрыша не даёт. SSD имеет смысл ставить при случайном чтении. При случайной записи от SSD заметного ускорения не будет.