Opgrader diskunderstøttelsen på den gamle server med PCIe-bus fra 1.0 til 2.0

Opgrader diskunderstøttelsen på den gamle server med PCIe-bus fra 1.0 til 2.0Hvorfor er emnet for denne artikel opgradering af diskunderstøttelsen?Det er klart, at det først og fremmest er nødvendigt, som regel:

  1. 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.
  2. 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.

Artikel om caching på SSD på Habr (controllere og OS).

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 andre eksperimenter 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

Fusion-io ioDrive II DUO MLC
2.4
32.5
2.0 x8
480
490
3000
2500

SANDISK FUSION IOMEMORY SX350-1300
1.3
4
2.0 x8
225
345
2800
1300

SANDISK FUSION IOMEMORY PX600-1300
1.3
16
2.0 x8
235
375
2700
1700

SANDISK FUSION IOMEMORY SX350-1600
1.6
5.5
2.0 x8
270
375
2800
1700

SanDisk Fusion ioMemory SX300-3200
3.2
11
2.0 x8
345
385
2700
2200

SanDisk Fusion ioMemory SX350-3200
3.2
11
2.0 x8
345
385
2800
2200

SANDISK FUSION IOMEMORY PX600
2.6
32
2.0 x8
350
385
2700
2200

Huawei ES3000 V2
1,6
8,76
2.0 x8
395
270
1550
1100

Huawei ES3000 V2
3,2
17,52
2.0 x8
770
230
3100
2200

EMC XtremSF
2,2
 
2.0 x8
340
110
2700
1000

HGST Virident FlashMAX II
2,2
33
2.0 x8
350
103
2700
1000

HGST Virident SSD FlashMAX II
4,8
10.1
2.0 x8
269
51
2600
900

HGST Virident FlashMAX III
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

Micron P420M
1.4
9.2
2.0 x8
750
95
3300
630

HGST SN260
1.6
25.10
3.0 x8
1200
200
6170
2200

HGST SN260
3,2
17,52
3.0 x8
1200
200
6170
2200

Intel P3608
3,2
17,5
3.0 x8
850
80
4500
2600

Kingston DCP1000
3,2
2,78
3.0 x8
1000
180
6800
6000

Oracle F320
3.2
29
3.0 x8
750
120
5500
1800

Samsung PM1725
3.2
29
3.0 x8
1000
120
6000
2000

Samsung PM1725a
3.2
29
3.0 x8
1000
180
6200
2600

Samsung PM1725b
3.2
18
3.0 x8
980
180
6200
2600

Opgrader diskunderstøttelsen på den gamle server med PCIe-bus fra 1.0 til 2.0Blandt disse SSD'er skiller Fusion ioMemory sig ud. Den videnskabelige direktør Fusion var Steve Wozniak. 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:

  1. De kan ikke være bootbare
  2. 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.
  3. Den optimale sektorstørrelse er 4096 byte. (512 understøttes også)
  4. Driveren kan i det værste scenarie forbruge ret meget RAM (ved sektorstørrelse på 512 byte)
  5. 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.
  6. Den har brug for god køling. Dette bør ikke være et problem for servere.
  7. Ikke anbefalet til ESXi, da ESXi foretrækker diske med 512N-sektorer, hvilket kan medføre højere hukommelsesforbrug for driveren.
  8. 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

Opgrader diskunderstøttelsen på den gamle server med PCIe-bus fra 1.0 til 2.0
Opgrader diskunderstøttelsen på den gamle server med PCIe-bus fra 1.0 til 2.0

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

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster