Poszukujemy rezonansowego magazynu prędkości. Ze względu na niski budżet postanowiliśmy wykorzystać oprogramowanie iSCSI lub AoE. Zanim zmienimy naszą infrastrukturę produkcyjną, przeprowadzamy testy, aby wybrać najlepszą technologię.
Do testowania używamy:
- Fujitsu Siemens RX200 S4 jako cel
- Fujitsu Siemens RX200 S4 jako inicjator
- Przełącznik 1Git zarządzany przez NetGear
- wbudowane karty sieciowe (Broadcom w / TOE), EdiMax NIC, Broadcom NIC w / TOE - wszystkie 1 GB
- serwer docelowy używa kontrolera QLogic z 6 dyskami WD Blue SATA 2 TB.
- Zarówno docelowy, jak i inicjujący system operacyjny to Ubuntu 16.04 LTS ze wszystkimi aktualizacjami. Przełącznik jest przeznaczony do przechowywania. Testujemy obligacje i wielościeżkowe.
Naszym problemem jest niska prędkość odczytu. Do testów używamy dd
i plik 40-100 GB.
- lokalny odczyt i zapis na serwerze docelowym wynosi ponad 300 MB / s.
- pisanie na serwer przez iSCSI lub AoE to ponad 200 MB / s, co nas satysfakcjonuje.
- odczyt z serwera zawsze wynosi 95-99 MB / s.
Próbowaliśmy ietd, aoetools, LIO. Wykorzystaliśmy obligacje 2 kart sieciowych: balance-rr i LACP, wielościeżkowe z rr. Używane ramki normalne i duże. Wreszcie zrobiliśmy nawet bezpośrednie połączenie Ethernet pomiędzy celem a hostem (bez przełącznika).
Wszystkie testy dają więcej mniej takich samych wyników (oczywiście przy użyciu zwykłych kart sieciowych bez TOE i iSCSI dały wyniki o 20-30% gorsze).
Testowanie sieci za pomocą iperf wykazało transfer około 200 MB / s (2 GBit). Obserwowanie użycia kart sieciowych na celu za pomocą bmon wykazało równe wykorzystanie obu urządzeń (każde około 50 MB / s do odczytu, około 100 MB / s do zapisu).
Ponieważ nie mieliśmy szczęścia, postanowiliśmy użyć trzeciej karty sieciowej (oczywiście po obu stronach). Wyniki były dziwne:
- 2 karty sieciowe - każda 50 MB / s
- 3 karty sieciowe - 33 MB / s każda
Czy jest jakieś ograniczenie w oprogramowaniu docelowym, które wyłącza moc wyjściową większą niż 1 GBit / s?
Co robimy źle?