--- title: Сравнение производительности Sheepdog/Ceph tags: software, sheepdog, ceph, репост --- Выкладываю данные по тестированию производительности ceph и sheepdog. Тестовый стенд: 3 почти одинаковых сервера с двумя дисками по 500Гб. С каждого диска в конце откушено по 450Гб под данные и отдано под разные системы. В качестве хранилища чанков используется ext4 (sheepdog) и xfs (ceph). Тип объекта - реплиируемый, количество копий и там и там выставлено в 2. chunk size везде равен 4мб. --- [Конфиг](ceph.conf) кластера ceph. Порядок тестирования: * создаётся блочное устройство в нужной системе * подключается к виртуалке * ставится чистая freebsd 10.3 * качается дерево исходников (1й бенчмарк, линейная запись) * распаковывается (2й бенчмарк, запись множества мелких файлов) * удаляется (3й бенчмарк, чистая работа с метаданными фс) * свободное место на разделе заполняется нулями, с целью вызвать полное выделение места под диск (cat /dev/zero > zero.bin; rm zero.bin) * распаковывается 2й раз (4й бенчмарк, то же самое что и второй, но при полностью выделенном месте) * качается архив с деревом портов (5й бенчмарк, линейная запись) * распаковывается (6й бенчмарк) * удаляется При смене дисковой системы сама виртуалка не удаляется, только перетыкаются диски. Результаты (время, H:M:S): .---.-------------------------.----------.----------. | # | теста | sheepdog | ceph | :---+-------------------------+----------+----------: | 1 | fetch src.txz (320Mb) | 0:00:52 | 0:01:45 | :---+-------------------------+----------+----------: | 2 | tar -xJf src.txz | 0:03:50 | 0:41:29 | :---+-------------------------+----------+----------: | 3 | rm -rf src/ | 0:00:17 | 0:00:39 | :---+-------------------------+----------+----------: | 4 | tar -xJf src.txz | 0:07:26 | 0:51:25 | :---+-------------------------+----------+----------: | 5 | fetch ports.txz (220Mb) | 0:00:24 | 0:00:57 | :---+-------------------------+----------+----------: | 6 | tar -xJf ports.txz | 0:10:03 | 1:47:17 | '---'-------------------------'----------'----------' Статистика по архивам ([скрипт подсчёта](fs-stat.pl)): .-------------------------.-----------.-----------. | Показатель | src.txz | ports.txz | :-------------------------+-----------+-----------: | Обычных файлов | 124960 | 295333 | | Директорий | 7042 | 36725 | | Прочих типов файлов | 0 | 0 | :-------------------------+-----------+-----------: | Размер <1кб | 27335 | 235632 | | Размер 1-10кб | 75354 | 89000 | | Размер 10-100кб | 26991 | 6157 | | Размер 100-1024кб | 2225 | 1135 | | Размер >=1024кб | 97 | 134 | '-------------------------'-----------'-----------' Параметры rbd: rbd image 'vm-108-disk-1': size 32768 MB in 8192 objects order 22 (4096 kB objects) block_name_prefix: rbd_data.14082ae8944a format: 2 features: layering Состояние ceph-кластера: # ...после теста 3 cluster fc4c3641-892b-4bcb-94a3-8447e831a904 health HEALTH_OK monmap e2: 2 mons at {node2=192.168.7.5:6789/0,node3=192.168.7.6:6789/0}, election epoch 4, quorum 0,1 node2,node3 osdmap e29: 3 osds: 3 up, 3 in pgmap v803: 392 pgs, 4 pools, 1466 MB data, 425 objects 6113 MB used, 1144 GB / 1150 GB avail 392 active+clean # ...после теста 4 cluster fc4c3641-892b-4bcb-94a3-8447e831a904 health HEALTH_OK monmap e2: 2 mons at {node2=192.168.7.5:6789/0,node3=192.168.7.6:6789/0}, election epoch 4, quorum 0,1 node2,node3 osdmap e29: 3 osds: 3 up, 3 in pgmap v5706: 392 pgs, 4 pools, 16984 MB data, 4289 objects 36924 MB used, 1114 GB / 1150 GB avail 392 active+clean # ...после всех тестов и удаления rbd cluster fc4c3641-892b-4bcb-94a3-8447e831a904 health HEALTH_OK monmap e2: 2 mons at {node2=192.168.7.5:6789/0,node3=192.168.7.6:6789/0}, election epoch 4, quorum 0,1 node2,node3 osdmap e29: 3 osds: 3 up, 3 in pgmap v10514: 392 pgs, 4 pools, 8 bytes data, 1 objects 3209 MB used, 1147 GB / 1150 GB avail 392 active+clean Состояние sheepdog после всех тестов: Cluster status: running, auto-recovery enabled Cluster store: plain with 2 redundancy policy Cluster vnode mode: node Cluster created at Wed Feb 1 23:20:29 2017 Epoch Time Version 2017-02-26 14:33:19 11 [192.168.7.4:7000, 192.168.7.5:7000, 192.168.7.6:7000] Замеры потребления ресурсов, в мб (ps -o rss,vsz,cmd ax | grep cmd). .-------------------------.-----------.-----------.-----------. | Показатель | node1 | node2 | node3 | :-------------------------+-----------+-----------+-----------: | после 4 теста | :-------------------------+-----------+-----------+-----------: | ceph / osd | 139 / 753 | 124 / 748 | 139 / 764 | | ceph / mon | --- / --- | 151 / 339 | 70 / 245 | | sheepdog | 10 / 617 | 18 /1825 | 12 / 724 | :-------------------------+-----------+-----------+-----------: | после всех тестов | :-------------------------+-----------+-----------+-----------: | ceph / osd | 141 / 755 | 124 / 747 | 138 / 763 | | ceph / mon | --- / --- | 193 / 384 | 86 / 261 | | sheepdog | 10 / 617 | 18 /1796 | 12 / 706 | '-------------------------'-----------'-----------'-----------' Примечание: на sheepdog'е во время теста висели ещё виртуалки (в замороженном состоянии). Кроме того, нетрудно заметить, что тестируемая виртуалка располагалась на второй ноде. На первой ноде монитора ceph'а не было, на второй он был основным, третьей - резервным. Выводы ------ Однако, на мелких файлах рвёт как тузик грелку. Используйте на свой страх и риск, решение всё ещё нестабильно. Все данные потерять - это врятли, а вот побить в процессе recovery - это запросто.