Oczekiwana wydajność zwielokrotnienia portów e-SATA?

10

W przypadku pewnego obciążenia odczytu / zapisu uzyskuję 30 MiB / s z 4-dyskowej tablicy przy użyciu mnożenia portów esata. Kiedy przenoszę dokładnie tę samą tablicę do czterech pojedynczych połączeń sata, otrzymuję 90 MiB / s dla tego samego obciążenia. Czy to oczekiwany wpływ mnożnika na wydajność? Jeśli nie, to jak zawęzić problem między oprogramowaniem, kontrolerem lub obudową?

Dokładnie takie same wyniki uzyskałem nawet po wypróbowaniu dużej liczby zmiennych przez lata:

  • Wiele wersji systemu Linux (RHEL5, Fedora 9, 11, 13, 16) i wszystkie związane z nimi jądra.
  • Dwa typy obudów (oba 4-dyskowe modele z niższej klasy 100 USD), łącznie cztery obudowy.
  • Dwa typy układów scalonych kontrolera SATA (Marvell 88SE91xx i Silicon Image 3132)
  • Cztery kontrolery SATA (około 30–60 USD karty interfejsu pci-x1 i jeden PCI, wszystkie przełączanie oparte na FIS).
  • Trzy prędkości SATA (1,5, 3,0 i 6,0 Gb / s)
  • Cztery rodzaje dysków twardych (Samsung Spinpoint F1 1 TB, WD Caviar Black 2 TB, Seagate Barracuda XT 3 TB).
  • Trzy komputery (Athlon 3 GHz + 1 GB RAM, kiedy zrobiłem pierwszą macierz e-sata, następnie Core 2 Duo + 4 GB, teraz Core i5 750 + 8 GB).

Kiedy robiłem swoją pierwszą obudowę eSATA wszystkie lata temu, założyłem, że niska prędkość była związana z używaniem karty PCI (33 MHz), niedojrzałych sterowników SATA lub być może dysków SATA 1,5 Gb / s 5400 obr./min. Ale teraz z kontrolerem x1 6 Gb / s, jądrem 3.0 i dyskiem HDD o prędkości 6 Gb / s 7200 obr / min, nadal nic się nie zmieniło. Nadal dostaję te same 30 MiB / s dla tego konkretnego obciążenia, dopóki nie przeniosę go do poszczególnych połączeń SATA.

Czy jest to podstawowe ograniczenie wszystkich implementacji zwielokrotnienia portów?

Daniel Browning
źródło
3
Wow, to trochę wysiłku testowego :)
kubańczyk

Odpowiedzi:

10

Tak. Należy oczekiwać niskiej wydajności.

Protokół ATA nigdy nie miał przenosić danych na więcej niż jeden dysk (tak naprawdę był oparty na szynie ISA, rozszerzając kanał komunikacyjny na dysk pamięci). Interfejs IDE oszukał to ograniczenie, przenosząc dane dla urządzeń „Master” i „Slave”. SATA nie ma jednak równoważnego mechanizmu, ponieważ był przeznaczony tylko dla jednego urządzenia na połączenie kablowe.

Mnożniki portów eSATA działają jako cel ATA, który może wybrać wiele nośników fizycznych (więc jednocześnie można adresować tylko jedno urządzenie fizyczne, a przełączenie na inne urządzenie jest niewielkie). Można to porównać do starych bibliotek optycznych.

Różni się to radykalnie od SAS, który został zbudowany z wbudowanymi ekspanderami i routerem inicjującym / docelowym (SAS 2.0+ działa trochę jak przełączana sieć Ethernet). SAS może również łączyć wiele linii w pnie, umożliwiając jednoczesny dostęp do wielu urządzeń w wielu liniach.

Aktualizacja:
Najwyraźniej istnieją nowsze kontrolery, które obsługują FIS, co pozwala na jednoczesne „aktywowanie” wielu dysków. Powinno to pozwolić na wydajność znacznie wyższą niż opisano powyżej. Najwyraźniej w tej chwili produkuje je tylko jeden producent. Nadal bardzo poleciłbym zacząć od SATA w środowiskach serwerowych. Jeśli musisz użyć dysków SATA, rozważ korzystanie z kontrolerów i ekspanderów SAS.

Chris S.
źródło
Liczba mnoga medium to media;)
Mark Henderson
chyba że odnosi się do duchowego medium lub przedmiotów średniej wielkości.
Chris S
Touché mój przyjaciel
Mark Henderson
3

Czy na pewno próbowałeś multiplikatora kontrolera i portu obsługującego zwielokrotnianie portów FIS (Frame Information Structure) ?

Obsługują to tylko kontrolery i multiplikatory obrazu krzemowego AFAIK (SiI3726), ale wydajność jest podobna do SAS o tej samej prędkości (nasycenie łącza 80-90%).

Hubert Kario
źródło
Nie zdawałem sobie sprawy, że sam multiplikator portów musiałby również obsługiwać FIS, ale z perspektywy czasu ma to sens. Być może mnożnik portów wbudowany we wszystkie moje tanie, brudne obudowy (100 USD / każda, np. Mediasonic HF2-SU3S2) obsługuje tylko przełączanie oparte na poleceniach. Czy jest jakiś sposób programowo powiedzieć (np. Wyjście dmesg)? W podręczniku lub na stronie internetowej nie wspomniano o tym wyjątkiem: „Podczas łączenia przez interfejs eSATA, sprzęt komputerowy klienta musi mieć Port Multiplier z przełączaniem opartym na FIS, aby uzyskać dostęp do wielu dysków twardych jednocześnie”.
Daniel Browning
1
@DanielBrowning: istniała flaga pokazująca wsparcie FIS dla kontrolera, ale nie sądzę, żeby istniała jedna dla mnożnika. Mogą również występować problemy z interoperacyjnością (SiI odmawia współpracy z JMicron). Wykorzystanie chipsetu i odczytanie specyfikacji chipsetu to jedyny sposób, aby się upewnić, myślę ...
Hubert Kario
Wyjąłem wentylator z obudowy HF2-SU3S2 i zamieściłem zdjęcia tutaj: thebrownings.name/images/2012/2012-01-01-esata - Wygląda jak multiplikator portów JMicron JMB321 i nie widzę nic o FIS na ich stronie internetowej: jmicron.com/Product_JMB321.htm - co myślisz?
Daniel Browning
To może być problem. SiI one kosztuje tyle samo, co cała obudowa: amazon.com/5-Port-Port-SATA-II-Multiplier-SiI3726/dp/B004G9SKEE Zdecydowanie spróbuję tego przed przejściem na ATAoE lub pełną SCSI (albo SAS albo iSCSI )
Hubert Kario