Ми шукаємо резонансну швидкість зберігання. Через низький бюджет ми вирішили використовувати цільові програми iSCSI або AoE. Перш ніж змінити виробничу інфраструктуру, ми робимо кілька тестів, щоб вибрати найкращу технологію.
Для тестування ми використовуємо:
- Fujitsu Siemens RX200 S4 в якості мішені
- Fujitsu Siemens RX200 S4 як ініціатор
- NetGear керував комутатором 1GBit
- бортові NIC (Broadcom w / TOE), EdiMax NIC, Broadcom NIC з TOE - все 1 Гбіт
- цільовий сервер використовує контролер QLogic з 6 дисками WD Blue SATA 6 TB.
- як цільові, так і ініціаторські операційні системи - Ubuntu 16.04 LTS з усіма оновленнями. Вимикач призначений для зберігання. Ми тестуємо зв’язки та багатошляхетність.
Наша проблема - низька швидкість читання. Для тестування ми використовуємо dd
і файл розміром 40-100 ГБ.
- локальне читання та запис на цільовому сервері перевищує 300 Мб / с.
- запис на сервер iSCSI або AoE перевищує 200 Мб / с, що задовольняє нас.
- читання з сервера завжди 95-99 Мб / с.
Ми спробували ietd, aoetools, LIO. Ми використовували облігації 2 NIC: balance-rr та LACP, багатосторонніх з rr. Використовуються звичайні та джембові рамки. Нарешті ми навіть зробили пряме Ethernet-з'єднання між ціллю та хостом (без комутатора).
Всі тести дають більше однакових результатів (звичайно, використовуючи загальні NIC без TOE і iSCSI дав на 20-30% гірші результати).
Тестова мережа з iperf показала передачу близько 200 МБ / с (2 Гбіт). Перегляд використання NIC в цілі з bmon показав однакове використання обох пристроїв (кожен близько 50 Мб / с для читання, близько 100 МБ / с для запису).
Оскільки нам не пощастило, ми вирішили використати третій НІК (звичайно, обидві сторони). Результати були дивними:
- 2 NIC - 50MB / s кожен
- 3 NIC - 33 Мб / с кожен
Чи є обмеження на цільове програмне забезпечення, яке вимикає вихід вище 1 Гбіт / с?
Що ми робимо не так?