Waarom is het onderwerp van dit artikel de upgrade van de schijf subsystemen?Het is duidelijk dat er in de eerste plaats meestal nodig is:
- Het vergroten van het werkgeheugen. Dit is zo'n voor de hand liggende stap dat ik het zelfs niet nodig vond om hier in het hoofdartikel iets over te schrijven.
- Een extra processor(s) installeren of beide processoren vervangen door de krachtigste versies die door de sockets van de server worden ondersteund.
Voor oudere servers kan het zijn dat geheugen en processoren doorgaans voor een schijntje te vinden zijn.
Op een bepaald moment staat elke eigenaar van een server voor de keuze — upgrade of nieuwe server.
Aangezien de prijs van een nieuwe server nu in de miljoenen roebels kan lopen, kiezen veel mensen voor de upgrade route.
Voor een succesvolle upgrade is het erg belangrijk om compromissen te sluiten, zodat we voor een minimale kosten (in vergelijking met de prijs van een nieuwe server) een aanzienlijke prestatieverbetering krijgen.
In het artikel wordt een lijst gepresenteerd van server SSD's PCI-E 2.0 x8, die tegenwoordig sterk in prijs zijn gedaald, RAID-controller met ondersteuning voor SSD-caching en geteste SATA III SSD op SATA II interface.
De meest voor de hand liggende manier om de schijf subsystemen te upgraden is de overstap van HDD naar SSD. Dit geldt zowel voor laptops als voor servers. Het enige verschil op servers is dat SSD's gemakkelijk in RAID kunnen worden geconfigureerd.
Er zijn echter enkele fijne puntjes te bedenken, want het kan zijn dat er geen SATA III-poorten zijn op de oude server en dan moet je misschien een bijpassende controller vervangen of installeren.
Er zijn natuurlijk ook tussenoplossingen.
Caching op SSD.
Over het algemeen is deze methode goed geschikt voor databases, 1C, elke random toegang. De snelheid neemt echt toe. Voor enorme bestanden, videobewaking, is deze methode nutteloos.
RAID-controllers LSI (IBM, DELL, CISCO, Fujitsu)
Vanaf de serie 92xx heeft LSI de technologie CacheCade 2.0, waarmee bijna elke SATA SSD als cache voor de RAID-array kan worden gebruikt. Zowel voor lezen als voor schrijven. En zelfs een spiegel kan worden gemaakt van de cache SSD's.
Bij gebrandmerkte controllers wordt het ingewikkelder. Dit geldt in het bijzonder voor IBM. Sleutels en SSD's voor CacheCade moeten bij IBM voor ridiculous hoge prijzen worden gekocht, dus het is gemakkelijker om de controller te vervangen door LSI en goedkopere hardware-sleutels aan te schaffen. Software-sleutels kosten aanzienlijk meer dan hardware-sleutels.
RAID-controllers Adaptec
Adaptec-controllers beschikken over de MaxCache-technologie, waarmee SSD's ook als cache kunnen worden gebruikt. We zijn geïnteresseerd in de versies van de controllers die eindigen op de letter Q.
Q-controllers kunnen vrijwel elke SSD gebruiken en niet alleen die van Adaptec.
- Vanaf 5xxx hebben alle controllers ondersteuning voor Hybrid RAID. Het idee achter deze technologie is dat de leesbewerkingen altijd vanaf de SSD plaatsvinden, wanneer er een spiegel is van een van de schijven waarop een SSD is aangesloten.
- 5xxxQ, bijvoorbeeld 5805ZQ. Deze controllers ondersteunen MaxCache 1.0. Alleen lees-caching.
- 6xxQ, bijvoorbeeld 6805Q. MaxCache 2.0. Lezen en schrijven caching.
- 7xxQ, bijvoorbeeld 7805Q. MaxCache 3.0. Lezen en schrijven caching.
- 8xxQ is bijna niet zinvol te gebruiken voor upgrades vanwege de hoge prijzen.
Softwaretechnologieën voor caching op SSD's.
Ik zal deze technologieën niet bespreken. Bijna elk besturingssysteem ondersteunt ze tegenwoordig. Het viel me op dat bij gebruik van btrfs, het automatisch leesverzoeken omleidt naar het apparaat met de kortste wachtrij — de SSD.
SATA III SSD op SATA II-interface.
Aangezien er niet altijd de mogelijkheid of het budget is voor een nieuwe controller, rijst de vraag hoe goed SATA III SSD's werken op de verouderde SATA II-interface.
Laten we een kleine test uitvoeren. We gebruiken een SATA III SSD Intel S3710 van 400GB als testobject.
Random Read, iops
Gemiddelde lezentenstijd, mS
Random Write, iops
Gemiddelde schrijftentijd, mS
Lineair lezen, MB/s
Lineair schrijven, MB/s
SATA II
21241
2
13580
4
282
235
SATA III
68073
0.468
61392
0.52
514
462
Opdrachten gebruikt voor het testen van de snelheid
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
Zoals te zien is het verschil in lineaire snelheid, IOPS en latentie aanzienlijk, dus het heeft zin om alleen de SATA III-interface te gebruiken, en als die er niet is, dan een controller te installeren.
Ter rechtvaardiging moet ik zeggen dat op Het verschil in de snelheid van willekeurig lezen en schrijven bleek minimaal te zijn. Misschien is dit grote verschil in IOPS tussen SATA II en SATA III te verklaren doordat ik een extreem ongeschikte SATA II-controller of een driver met een aantal bugs had.
Echter, het is een feit dat je de snelheid van SATA II moet controleren — misschien heb je dezelfde traagheid van de controller. In dat geval is een overstap naar een SATA III-controller noodzakelijk.
PCIe SSD op een PCI-e 2.0 of 1.0 bus
Zoals bekend is de snelste SSD - de PCI-e NVMe, die niet beperkt zijn door de protocollen SAS of SATA.
Echter, bij de installatie van moderne PCI-e SSD's moet je in overweging nemen dat de meeste van hen slechts 4 PCI-e lijnen gebruiken, meestal PCI-e 3.0 of 3.1.
Laten we nu de snelheden van de PCI-e bus bekijken.
Doorvoersnelheid PCI Express, GiB/s
Jaar
uitgave
Versie
PCI Express
Codering
Snelheid
overdracht
Doorvoersnelheid op x lijnen
×4
×8
×16
2002
1.0
8b/10b
0.50 GiB/s
1.0 GiB/s
2.0 GiB/s
4.0 GiB/s
2007
2.0
8b/10b
1.0 GiB/s
2.0 GiB/s
4.0 GiB/s
8.0 GiB/s
2010
3.0
128b/130b
1.97 GiB/s
3.94 GiB/s
7.88 GiB/s
15.8 GiB/s
Bij het installeren van een PCI 3.0 x4 SSD op een PCI-e 2.0 bus, zal het werken met hetzelfde aantal lijnen, maar op een aanzienlijk lagere snelheid. Er is een probleem dat de lineaire snelheden van moderne PCI-e SSD's de doorvoersnelheid van de PCI-e 2.0 bus en nog meer van de PCI-e 1.0 bus overschrijden.
M.2 SSD en PCI-e adapter
Er zijn goede upgrade-opties beschikbaar als we voor 10 dollar een adapter kopen en een M.2 SSD in de server plaatsen, maar opnieuw, voor goede SSD's zal er vertraging in de snelheden zijn (vooral op PCI-e 1.0), en M.2 SSD's zijn niet altijd geschikt voor serverbelasting: hoge slijtvastheid, voeding bescherming en stabiliteit van prestatiekenmerken door het vullen van de SLC-cache op goedkope modellen.
Dus deze methode kan alleen geschikt zijn voor een server met een PCI-e 2.0 bus en niet-kritische werkbelasting.
PCI-E 2.0 x8 SSD
De meest economisch logische upgrade is het gebruik van PCI-E 2.0 x8 SSD voor servers met een PCI-e 1.0 bus (doorvoersnelheid tot 2 GB/s) en PCI-e 2.0 (tot 4 GB/s).
Dergelijke server SSD's zijn tegenwoordig heel goedkoop te koop, zowel op diverse marktplaatsen als op internetveilingen, ook in Rusland.
Ik heb een tabel samengesteld van dergelijke moreel verouderde SSD's, die je oude server perfect zullen versnellen. Aan het einde van de tabel heb ik een paar SSD's met een PCI-E 3.0 x8 interface toegevoegd. Misschien heb je geluk en vind je ze voor een redelijke prijs.
Naam
TB
PBW
PCI-E
4k lees iops, K
4k schrijf iops, K
lezen, MB/s
schrijven, 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
Van deze SSD's zijn de Fusion ioMemory's een bijzondere uitzondering. De wetenschappelijk directeur was . Later werd dit bedrijf voor 1,2 miljard dollar overgenomen door SanDisk. Vroeger kostten ze vanaf $50.000 per stuk. Nu kun je ze echter voor een paar honderd dollar in nieuwe staat kopen voor schijven van 1TB of meer.
Als je goed naar de tabel kijkt, zie je dat ze een vrij hoog aantal IOPS voor schrijven hebben, dat vrijwel gelijk is aan het aantal IOPS voor lezen. Gezien hun huidige prijs, denk ik dat deze SSD's de aandacht waard zijn.
Ze hebben echter enkele speciale kenmerken:
- Ze kunnen niet als opstartschijven worden gebruikt.
- Een stuurprogramma is vereist om ze te gebruiken. Er zijn stuurprogramma's voor vrijwel alles, maar voor de nieuwste versies van Linux moet je ze mogelijk zelf compileren.
- De optimale sectorsize is 4096 bytes. (512 bytes wordt ook ondersteund)
- Het stuurprogramma kan in het slechtste geval behoorlijk veel RAM verbruiken (bij een sectorsize van 512 bytes).
- De prestaties zijn afhankelijk van de snelheid van de processor, dus het is beter om energiebesparende technologieën uit te schakelen. Dit is zowel een voordeel als een nadeel, omdat met een krachtige processor het apparaat zelfs sneller kan werken dan in de specificaties staat.
- Het vereist goede koeling. Dit zou geen probleem moeten zijn voor servers.
- Niet aanbevolen voor ESXi, omdat ESXi de voorkeur geeft aan schijven met een 512N-sector, wat kan leiden tot een groot geheugengebruik door het stuurprogramma.
- Gebrandmerkte versies van deze SSD's worden meestal niet ondersteund door leveranciers tot de laatste stuurprogramma's van SanDisk (maart 2019).
Ik heb tests uitgevoerd met Fusion ioMemory in vergelijking met een vrij moderne server SSD, de Intel P3700 PCI-E 3.0 x8 (deze kost ongeveer vier keer zoveel als de Fusion met een vergelijkbare capaciteit). Je kunt ook zien hoezeer de snelheid wordt beperkt door de x4-bus.
Fusion PX600 1.3TB PCI-E 2.0 x8
Intel P3700 1.6TB PCI-E 3.0 x4


Ja, de lineaire leessnelheid wordt zonder twijfel beperkt bij de Intel P3700. Volgens de specificaties zou deze 2800 MB/sec moeten zijn, maar wij hebben 1469 MB/sec. In het algemeen kun je zeggen dat je server SSD's PCI-E 3.0 x4 kunt gebruiken met een PCI-e 2.0 bus, als je ze tegen een redelijke prijs kunt krijgen.
Conclusies
De schijfSubsystem van de oude server met een PCI-E 1.0 of 2.0-bus kan worden opgevoerd door gebruik te maken van SSD's die in staat zijn om 8 lijnen PCI-E te benutten, wat een doorvoersnelheid biedt tot 4GB/s (PCI-E 2.0) of 2GB/s (PCI-E 1.0). Het is economisch het voordeligst om dit te doen met moreel verouderde PCI-E 2.0 SSD's.
Ook zijn er eenvoudige compromisoplossingen, zoals het kopen van een CacheCade-sleutel voor LSI-controllers of het vervangen van de Adaptec-controller door de Q-versie.
En een volkomen voor de hand liggende manier is om een (raid)controller SATA III aan te schaffen zodat de SSD's op volle snelheid kunnen werken en alles wat snelheid vereist, kan worden afgehandeld.
Bron: habr.com
