Hvorfor er emnet for denne artikel opgradering af diskunderstøttelsen?Det er klart, at det først og fremmest er nødvendigt, som regel:
- At øge den operationelle hukommelse. Dette er en så åbenlys tilgang, at jeg endda ikke anså det for nødvendigt at skrive om det i hovedartiklen.
- At tilføje en eller flere processorer eller udskifte begge processorer med de maksimalt potente versioner, der understøttes af serverens socket.
For gamle servere, at hukommelse og processorer som regel kan findes til stærkt nedsatte priser.
På et bestemt tidspunkt står enhver ejer af en server over for spørgsmålet — opgradering eller ny server.
Da prisen på en ny server nu kan måles i millioner rubler, så vælger mange vejen med opgradering.
For en vellykket opgradering er det meget vigtigt at bruge kompromiser, så vi til en lille pris (i forhold til prisen på en ny server) opnår en betydelig gevinst i ydeevne.
Artiklen indeholder en liste over server SSD'er PCI-E 2.0 x8, som er blevet meget billigere nu, samt RAID-controllerne, der understøtter SSD-caching og testet SATA III SSD på SATA II-grænsefladen.
Den mest åbenlyse måde at opgradere diskunderstøttelsen på er at skifte fra HDD til SSD. Dette gælder både for bærbare computere og servere. På servere er forskellen næppe andet end, at SSD'er let kan samles i RAID.
Men der er selvfølgelig nogle fine punkter relateret til det, at der måske ikke er SATA III-porte på den gamle server, og så skal man udskifte eller installere en passende controller.
Der er selvfølgelig også mellemliggende metoder.
Caching på SSD.
Generelt er denne metode ret godt egnet til databaser, 1C og enhver tilfældig adgang. Hastigheden bliver virkelig forbedret. For gigantiske filer, videoovervågning er denne metode ubrugelig.
RAID-controllere fra LSI (IBM, DELL, CISCO, Fujitsu)
Fra serie 92xx har LSI en teknologi kaldet CacheCade 2.0, som gør det muligt at bruge næsten enhver SATA SSD som cache i RAID-arrayet. Både til læsning og skrivning. Og også at skabe et spejl fra caching SSD'er.
Det bliver sværere med brandede controllere. Dette gælder især for IBM. Nøgler og SSD'er til CacheCade skal købes hos IBM til en høj pris, så det er nemmere at skifte controller til LSI og købe en hardware-nøgle billigere. Software-nøgler er betydeligt dyrere end hardware-nøgler.
Adaptec RAID-controllere
Adaptec controllere har teknologien MaxCache, som også muliggør brug af SSD som cache. Vi er interesserede i versioner af controllere, der slutter med bogstavet Q.
Q-controllere kan bruge næsten enhver SSD, ikke kun SSD'er leveret af Adaptec.
- Fra 5xxx og op har alle controllere støtte for Hybrid RAID. Denne teknologi fungerer ved, at der altid læses fra SSD, når der er et spejl af en af diskene, hvor SSD'en er.
- 5xxxQ, fx 5805ZQ. Disse controllere understøtter MaxCache 1.0. Kun læsecaching.
- 6xxQ, fx 6805Q. MaxCache 2.0. Læse- og skrivecache.
- 7xxQ, fx 7805Q. MaxCache 3.0. Læse- og skrivecache.
- 8xxQ giver næsten ikke mening at bruge til opgradering på grund af de høje priser.
Softwareteknologier til caching på SSD
Jeg vil ikke beskrive disse teknologier. De understøttes praktisk talt i ethvert operativsystem nu. Jeg husker, at når man bruger btrfs, omdirigerer den automatisk læseanmodninger til den enhed med den korteste kø — SSD.
SATA III SSD på SATA II-interface
Da det ikke altid er muligt og økonomisk at få en ny controller, opstår spørgsmålet om, hvor godt SATA III SSD'er fungerer på det forældede SATA II-interface.
Lad os lave en lille test. Vores testobjekt vil være en SATA III SSD Intel S3710 på 400 GB.
Random Read, iops
Gennemsnitlig læse-latenstid, mS
Random Write, iops
Gennemsnitlig skrive-latenstid, mS
Lineær læsning, MB/s
Lineær skrivning, MB/s
SATA II
21241
2
13580
4
282
235
SATA III
68073
0.468
61392
0.52
514
462
Kommandoer brugt til hastighedstestning
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
Som forskellen er synlig både i læsehastighed, IOPS og latenser, så giver det mening kun at bruge SATA III-grænsefladen; hvis den ikke findes, skal der installeres en controller.
For retfærdighedens skyld vil jeg sige, at ifølge var forskellen i hastighed for tilfældig læsning og skrivning ubetydelig. Måske var den store forskel i IOPS mellem SATA II og SATA III skyldes, at jeg havde installeret en ekstremt dårlig SATA II-controller eller driver med nogle bugs.
Men faktum er, at man skal tjekke hastigheden på SATA II — hvad nu hvis du har en lige så langsom controller. I så fald er det nødvendigt at skifte til en SATA III-controller.
PCIe SSD på PCI-e 2.0 eller 1.0-bussen
Som bekendt er de hurtigste SSD'er PCI-e NVMe, som ikke begrænses af SAS- eller SATA-protokoller.
Men ved installation af moderne PCI-e SSD'er skal man være opmærksom på, at de fleste kun bruger 4 PCI-e-linjer, som regel PCI-e 3.0 eller 3.1.
Lad os nu se på hastighedstabellen for PCI-e-bussen.
Båndbredde for PCI Express, GB/s
År
produktion
Version
PCI Express
Kodning
Hastighed
overførsel
Båndbredde for x linjer
×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
Ved installation af PCI 3.0 x4 SSD i PCI-e 2.0-bussen vil den fungere på samme antal linjer, men med en betydeligt lavere hastighed. Problemet er, at de lineære hastigheder for moderne PCI-e SSD'er overstiger båndbredden for PCI-e 2.0 og endnu mere for PCI-e 1.0.
M.2 SSD og PCI-e adapter
Der er gode muligheder for opgradering, når vi køber en adapter til 10 dollars og installer M.2 SSD i serveren, men igen vil der være hastighedsnedskæringer (især på PCI-e 1.0), og M.2 SSD'er adskiller sig ikke altid i forhold til serverarbejde: stor slidstyrke, beskyttelse mod strømspidser og stabilitet i hastighedsydelsen på grund af udfyldning af SLC-cache på billige modeller.
Så denne metode kan kun være egnet til servere med PCI-e 2.0-bussen og ikke-kritiske opgaver.
PCI-E 2.0 x8 SSD
Den mest økonomisk fornuftige opgradering er at bruge PCI-E 2.0 x8 SSD til servere med PCI-e 1.0-bussen (båndbredde op til 2 GB/s) og PCI-e 2.0 (op til 4 GB/s).
Sådanne server SSD'er kan nu købes meget billigt, både på forskellige markedspladser og online auktioner, herunder i Rusland.
Jeg har lavet en tabel over sådanne moralsk forældede SSD'er, som fantastisk kan opgradere din gamle server. Til slut i tabellen har jeg tilføjet et par SSD'er med PCI-E 3.0 x8 interface. Måske er du heldig og finder dem til en rimelig pris.
Navn
TB
PBW
PCI-E
4k læse IOPS, K
4k skrive IOPS, K
læse, MB/s
skrive, 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
Blandt disse SSD'er skiller Fusion ioMemory sig ud. Den videnskabelige direktør var . Senere blev denne virksomhed købt af SanDisk for 1,2 milliarder dollars. De var engang prissat fra $50.000 per styk. Nu kan man købe dem for nogle hundrede dollars i ny stand for diske med en kapacitet på 1TB og opad.
Hvis man ser nøje på tabellen, kan man se, at de har et ret højt antal IOPS ved skrivning, der næsten er lig med antallet af IOPS ved læsning. I betragtning af deres nuværende pris mener jeg, at disse SSD'er er værd at overveje.
Der er dog nogle særlige forhold:
- De kan ikke være bootbare
- Der er behov for en driver for at bruge dem. Der findes drivere til næsten alt, men til de nyeste versioner af Linux skal de kompilere.
- Den optimale sektorstørrelse er 4096 byte. (512 understøttes også)
- Driveren kan i det værste scenarie forbruge ret meget RAM (ved sektorstørrelse på 512 byte)
- Ydelsen afhænger af CPU'ens hastighed, så energibesparende teknologier bør deaktiveres. Dette er både en fordel og en ulempe, da en kraftig processor kan få enheden til at fungere hurtigere end angivet i specifikationerne.
- Den har brug for god køling. Dette bør ikke være et problem for servere.
- Ikke anbefalet til ESXi, da ESXi foretrækker diske med 512N-sektorer, hvilket kan medføre højere hukommelsesforbrug for driveren.
- Brandede versioner af disse SSD'er understøttes som regel ikke af leverandører til det seneste driver niveau fra SanDisk (marts 2019)
Jeg har udført tests af Fusion ioMemory i forhold til en ret moderne server SSD Intel P3700 PCI-E 3.0 x8 (denne koster fire gange så meget som Fusion i tilsvarende kapacitet). Samtidig kan man se, hvor meget hastigheden bliver begrænset af x4-bussen.
Fusion PX600 1.3TB PCI-E 2.0 x8
Intel P3700 1.6TB PCI-E 3.0 x4


Ja, den lineære læsehastighed er tydeligt begrænset på Intel P3700. Ifølge databladet skulle det være 2800 MB/s, men vi får kun 1469 MB/s. Generelt kan man sige, at man ved brug af PCI-e 2.0 kan anvende server-SSD'er PCI-E 3.0 x4, hvis man kan skaffe dem til en rimelig pris.
Konklusioner
Diskundersystemet på en gammel server med PCI-E 1.0 eller 2.0 kan boostes ved at bruge SSD'er, som kan udnytte 8 PCI-E ledninger, der giver en båndbredde på op til 4 GB/s (PCI-E 2.0) eller 2 GB/s (PCI-E 1.0). Den mest omkostningseffektive måde at gøre dette på er at bruge moralsk forældede PCI-E 2.0 SSD'er.
Der er også enkle kompromisløsninger, der involverer køb af CacheCade-nøgler til LSI-controllere eller udskiftning af Adaptec-controlleren med en Q-version.
Og en helt banal metode — køb en (RAID)controller til SATA III, så SSD'er kører med maksimal hastighed og håndterer alt, der kræver hastighed.
Kilde: habr.com
