Dlaczego tematem tego artykułu jest modernizacja systemu dyskówJasne jest, że na początku należy zwykle:
- Zwiększyć pamięć RAM. To tak oczywisty krok, że nawet nie uznałem za konieczne pisanie o tym w głównym artykule
- Zainstalować dodatkowy procesor(y) lub wymienić obie jednostki na maksymalnie wydajne wersje obsługiwane przez gniazda serwera.
Dla starych serwerów pamięć i procesory można zazwyczaj znaleźć w bardzo atrakcyjnych cenach.
W pewnym momencie każdy właściciel własnego serwera staje przed pytaniem — modernizacja czy nowy serwer.
Ponieważ cena nowego serwera może wynosić miliony rubli, wiele osób decyduje się na modernizację.
Aby udana modernizacja była możliwa, bardzo ważne jest stosowanie kompromisów, by za niewielką opłatą (w porównaniu do ceny nowego serwera) uzyskać znaczący wzrost wydajności.
W artykule przedstawiono listę serwerowych SSD PCI-E 2.0 x8, które obecnie mocno potaniały, wskazano kontrolery RAID z obsługą SSD caching oraz przetestowano SATA III SSD na interfejsie SATA II.
Najbardziej oczywistym sposobem modernizacji systemu dyskowego jest przejście z HDD na SSD. Dotyczy to zarówno laptopów, jak i serwerów. W przypadku serwerów różnica polega głównie na tym, że SSD można łatwo zorganizować w RAID.
Jednak są pewne subtelności związane z tym, że porty SATA III w starym serwerze mogą być nieobecne, a wtedy trzeba będzie wymienić lub zainstalować odpowiedni kontroler.
Oczywiście istnieją także rozwiązania pośrednie.
Caching na SSD.
Ogólnie rzecz biorąc, ten sposób dobrze nadaje się do baz danych, 1C, każdego dostępu losowego. Rzeczywiście przyspiesza prędkość. Dla ogromnych plików, monitoringu wideo, ten sposób jest bezużyteczny.
Kontrolery RAID LSI (IBM, DELL, CISCO, Fujitsu)
Od serii 92xx LSI ma technologię CacheCade 2.0, która pozwala na wykorzystanie niemal dowolnych SSD SATA jako cache dla tablicy RAID. Zarówno do odczytu, jak i zapisu. A nawet na stworzenie lustra z pamięci cache SSD.
Z kontrolerami markowymi sprawa jest bardziej skomplikowana. Dotyczy to szczególnie IBM. Klucze i SSD dla CacheCade trzeba będzie kupić od IBM za ogromne pieniądze, więc łatwiej jest wymienić kontroler na LSI i kupić taniej klucz sprzętowy. Klucze programowe są znacznie droższe od sprzętowych.
Kontrolery RAID Adaptec
Kontrolery Adaptec mają technologię MaxCache, która również umożliwia wykorzystanie SSD jako pamięci podręcznej. Interesują nas wersje kontrolerów, które kończą się na literę Q.
Kontrolery Q mogą korzystać z niemal każdego SSD, a nie tylko z tych dostarczanych przez Adaptec.
- Od serii 5xxx wszystkie kontrolery mają wsparcie dla hybrydowego RAID. Istotą tej technologii jest to, że odczyt zawsze odbywa się z SSD, gdy jest lustrzany obraz jednego z dysków, na którym znajduje się SSD.
- 5xxxQ, na przykład 5805ZQ. Te kontrolery wspierają MaxCache 1.0. Tylko pamięć podręczna do odczytu.
- 6xxQ, na przykład 6805Q. MaxCache 2.0. Pamięć podręczna do odczytu i zapisu.
- 7xxQ, na przykład 7805Q. MaxCache 3.0. Pamięć podręczna do odczytu i zapisu.
- 8xxQ praktycznie nie ma sensu używać do aktualizacji ze względu na wysokie ceny.
Programowe technologie pamięci podręcznej na SSD
Nie będę omawiać tych technologii. Praktycznie w każdym systemie operacyjnym są one teraz wspierane. Zapamiętałem, że przy użyciu btrfs, automatycznie przekierowuje zapytania odczytu do urządzenia z najkrótszą kolejką — SSD.
SATA III SSD na interfejsie SATA II
Ponieważ nie zawsze jest możliwość i pieniądze na nowy kontroler, pojawia się pytanie, jak dobrze SATA III SSD działają na przestarzałym interfejsie SATA II.
Przeprowadzimy mały test. Naszym obiektem testowym będzie SATA III SSD Intel S3710 o pojemności 400GB.
Odczyt losowy, IOPS
Średnia latencja odczytu, ms
Zapis losowy, IOPS
Średnia latencja zapisu, ms
Odczyt liniowy, MB/s
Zapis liniowy, MB/s
SATA II
21241
2
13580
4
282
235
SATA III
68073
0.468
61392
0.52
514
462
Polecenia używane do testowania wydajności
fio --name LinRead --eta-newline=5s --filename=/dev/sda --rw=read --size=500m --io_size=10g --blocksize=1024k --ioengine=libaio --iodepth=32 --direct=1 --numjobs=1 --runtime=60 --group_reporting
fio --name LinWrite --eta-newline=5s --filename=/dev/sda --rw=write --size=500m --io_size=10g --blocksize=1024k --ioengine=libaio --fsync=10000 --iodepth=32 --direct=1 --numjobs=1 --runtime=60 --group_reporting
fio --name RandRead --eta-newline=5s --filename=/dev/sda --rw=randread --size=500m --io_size=10g --blocksize=4k --ioengine=libaio --iodepth=32 --direct=1 --numjobs=4 --runtime=60 --group_reporting
fio --name RandWrite --eta-newline=5s --filename=/dev/sda --rw=randwrite --size=500m --io_size=10g --blocksize=4k --ioengine=libaio --iodepth=32 --direct=1 --numjobs=4 --runtime=60 --group_reporting
Jak widać, różnice w liniowej prędkości, IOPS oraz latencjach są dość znaczne, dlatego ma sens korzystać tylko z interfejsu SATA III, a jeśli go nie ma, zainstalować kontroler.
Dla sprawiedliwości muszę powiedzieć, że w innych eksperymentach Różnica w szybkości losowego odczytu i zapisu była nieznaczna. Możliwe, że taka duża różnica w IOPS między SATA II a SATA III wynikała z tego, że miałem jakiś wyjątkowo nieudany kontroler SATA II lub sterownik z jakimiś błędami.
Jednak fakt jest taki, że należy sprawdzić prędkość SATA II — może macie podobny wolny kontroler. W takim przypadku przejście na kontroler SATA III jest konieczne.
SSD PCIe na magistrali PCI-e 2.0 lub 1.0
Jak wiadomo, najszybsze SSD to PCI-e NVMe, które nie są ograniczone protokołami SAS ani SATA.
Jednak przy instalacji nowoczesnych SSD PCI-e należy uwzględnić fakt, że większość z nich korzysta tylko z 4 linii PCI-e, zazwyczaj PCI-e 3.0 lub 3.1.
A teraz spójrzmy na tabelę prędkości magistrali PCI-e.
Przepustowość PCI Express, GB/s
Rok
wydania
Wersja
PCI Express
Kodowanie
Szybkość
transmisje
Przepustowość na x linii
×4
×8
×16
2002
1.0
8b/10b
0.50 GB/s
1.0 GB/s
2.0 GB/s
4.0 GB/s
2007
2.0
8b/10b
1.0 GB/s
2.0 GB/s
4.0 GB/s
8.0 GB/s
2010
3.0
128b/130b
1.97 GB/s
3.94 GB/s
7.88 GB/s
15.8 GB/s
Przy instalacji SSD PCI 3.0 x4 w magistrali PCI-e 2.0 będzie on działał na takim samym poziomie, ale z znacznie mniejszą prędkością. Jest problem, że liniowe prędkości nowoczesnych SSD PCI-e przekraczają przepustowość magistrali PCI-e 2.0, a tym bardziej PCI-e 1.0.
M.2 SSD i przejściówka PCI-e
Są niezłe opcje modernizacji, gdy kupujemy za 10 dolarów przejściówkę i instalujemy M.2 SSD w serwerze, ale znowu, dla dobrych SSD będą ograniczenia prędkości (szczególnie na PCI-e 1.0), a M.2 SSD nie zawsze są gotowe do obciążeń serwerowych: mają dużą odporność na zużycie, ochronę przed zasilaniem i stabilność parametrów prędkości z powodu zapełnienia SLC cache w tańszych modelach.
Więc ta metoda może być odpowiednia tylko dla serwera z magistralą PCI-e 2.0 i zajętego mniej krytycznym zadaniem.
PCI-E 2.0 x8 SSD
Najbardziej ekonomiczną modernizacją jest użycie SSD PCI-E 2.0 x8 dla serwerów z magistralą PCI-e 1.0 (przepustowość do 2 GB/s) oraz PCI-e 2.0 (do 4 GB/s).
Takie SSD do serwerów można obecnie kupić całkiem tanio zarówno na różnych platformach zakupowych, jak i na aukcjach internetowych, w tym w Rosji.
Sporządziłem tabelę takich przestarzałych SSD, które doskonale przyspieszą twój stary serwer. Na końcu tabeli dodałem kilka SSD z interfejsem PCI-E 3.0 x8. Może uda ci się je zdobyć w rozsądnej cenie.
Nazwa
TB
PBW
PCI-E
4k odczyt iops, K
4k zapis iops, K
odczyt, MB/s
zapis, MB/s
2.4
32.5
2.0 x8
480
490
3000
2500
1.3
4
2.0 x8
225
345
2800
1300
1.3
16
2.0 x8
235
375
2700
1700
1.6
5.5
2.0 x8
270
375
2800
1700
3.2
11
2.0 x8
345
385
2700
2200
3.2
11
2.0 x8
345
385
2800
2200
2.6
32
2.0 x8
350
385
2700
2200
1,6
8,76
2.0 x8
395
270
1550
1100
3,2
17,52
2.0 x8
770
230
3100
2200
2,2
2.0 x8
340
110
2700
1000
2,2
33
2.0 x8
350
103
2700
1000
4,8
10.1
2.0 x8
269
51
2600
900
2,2
7.1
2.0 x8
531
59
2700
1400
Dell Micron P420M
1.4
9.2
2.0 x8
750
95
3300
630
1.4
9.2
2.0 x8
750
95
3300
630
1.6
25.10
3.0 x8
1200
200
6170
2200
3,2
17,52
3.0 x8
1200
200
6170
2200
3,2
17,5
3.0 x8
850
80
4500
2600
3,2
2,78
3.0 x8
1000
180
6800
6000
3.2
29
3.0 x8
750
120
5500
1800
3.2
29
3.0 x8
1000
120
6000
2000
3.2
29
3.0 x8
1000
180
6200
2600
3.2
18
3.0 x8
980
180
6200
2600
W przypadku tych SSD szczególnie wyróżniają się Fusion ioMemory. Dyrektorem naukowym została . Następnie firma ta została zakupiona przez SanDisk za 1,2 miliarda dolarów. W swoim czasie kosztowały od 50 000 dolarów za sztukę. Obecnie można je kupić za kilka setek dolarów w nowym stanie za dysk o pojemności od 1 TB i więcej.
Jeśli przyjrzeć się tabeli, widać, że mają dość wysoką liczbę IOPS zapisu prawie równą liczbie IOPS odczytu. Biorąc pod uwagę ich aktualną cenę, moim zdaniem warto zwrócić uwagę na te SSD.
Prawda, mają kilka szczególnych cech:
- Nie mogą być dyskami rozruchowymi
- Wymagają sterownika do użycia. Sterowniki są praktycznie dostępne do wszystkiego, ale dla najnowszych wersji Linux trzeba je będzie skompilować.
- Optymalny rozmiar sektora wynosi 4096 bajtów. (512 również jest obsługiwany)
- Sterownik w najgorszym scenariuszu może zużywać dość dużo RAM (przy rozmiarze sektora 512 bajtów)
- Wydajność zależy od szybkości procesora, dlatego lepiej wyłączyć technologie oszczędzania energii. To jest zarówno plus, jak i minus, ponieważ przy potężnym procesorze urządzenie może działać nawet szybciej, niż wskazują specyfikacje.
- Wymaga dobrego chłodzenia. Dla serwerów nie powinno to być problemem.
- Nie jest zalecane dla ESXi, ponieważ ESXi preferuje dyski z sektorem 512N, a to może prowadzić do dużego zużycia pamięci przez sterownik.
- Markowe wersje tych SSD zazwyczaj nie są wspierane przez dostawców do poziomu ostatniego sterownika od SanDisk (marzec 2019)
Przeprowadziłem testy Fusion ioMemory w porównaniu z dość nowoczesnym serwerowym SSD Intel P3700 PCI-E 3.0 x8 (ostatni kosztuje około cztery razy więcej niż Fusion o podobnej pojemności). Przy okazji, można zobaczyć, jak bardzo ograniczona jest prędkość z powodu magistrali x4.
Fusion PX600 1.3TB PCI-E 2.0 x8
Intel P3700 1.6TB PCI-E 3.0 x4


Tak, liniowa prędkość odczytu jest zdecydowanie ograniczona w przypadku Intel P3700. Z specyfikacji powinna wynosić 2800 MB/s, a mamy 1469 MB/s. Choć ogólnie można powiedzieć, że przy magistrali PCIe 2.0 można używać serwerowych SSD PCI-E 3.0 x4, jeśli uda się je zdobyć w rozsądnej cenie.
Wnioski
Dyskową subsystêmę starego serwera z magistralą PCI-E 1.0 lub 2.0 można poprawić dzięki zastosowaniu SSD, które potrafią wykorzystać 8 linii PCI-E, co zapewnia przepustowość do 4 GB/s (PCI-E 2.0) lub 2 GB/s (PCI-E 1.0). Najbardziej opłacalne jest to zrobić, korzystając z moralnie przestarzałych SSD PCI-E 2.0.
Są również proste do wdrożenia kompromisowe rozwiązania związane z zakupem klucza CacheCade dla kontrolerów LSI lub wymiany kontrolera Adaptec na wersję Q.
I zupełnie banalny sposób — to zakup (raid) kontrolera SATA III, aby SSD działały z pełną prędkością i mogły obsłużyć wszystko, co wymaga szybkości.
Źródło: habr.com
