Perché il tema di questo articolo è l'upgrade del sistema di archiviazioneÈ chiaro che, in primo luogo, è necessario, di norma:
- Aumentare la memoria RAM. È così ovvio che non ho ritenuto necessario scriverne nell'articolo principale
- Installare processori aggiuntivi o sostituire entrambi i processori con versioni ad alte prestazioni supportate dai socket del server.
Per i server più vecchi, sia la memoria che i processori, di norma, possono essere trovati a prezzi stracciati.
A un certo punto, ogni proprietario di un server si trova di fronte alla domanda: upgrade o nuovo server.
Poiché il prezzo di un nuovo server può ora raggiungere milioni di rubli, molti optano per l'upgrade.
Per un upgrade di successo, è fondamentale utilizzare compromessi, in modo che per un costo insignificante (rispetto al prezzo di un nuovo server) otteniamo un guadagno significativo in prestazioni.
Nell'articolo è fornito un elenco di SSD server PCI-E 2.0 x8, che ora sono significativamente ridotti, sono indicati i controller RAID con supporto per la caching SSD e l'SSD SATA III testato su interfaccia SATA II.
Il modo più ovvio per aggiornare il sistema di archiviazione è passare da HDD a SSD. Questo vale sia per i laptop che per i server. Nei server, probabilmente l'unica differenza è che gli SSD possono essere facilmente configurati in RAID.
Tuttavia, ci sono alcune complicazioni legate al fatto che potresti non avere porte SATA III su un vecchio server, e quindi dovrai sostituire o installare un controller appropriato.
Ci sono, naturalmente, anche metodi intermedi.
Caching su SSD.
In generale, questo metodo è piuttosto adatto per database, 1C, qualsiasi accesso casuale. La velocità aumenta notevolmente. Per file di grandi dimensioni, video sorveglianza questo metodo è inutile.
Controller RAID LSI (IBM, DELL, CISCO, Fujtsu)
A partire dalla serie 92xx, LSI ha la tecnologia CacheCade 2.0, che consente di utilizzare quasi qualsiasi SSD SATA come cache per l'array RAID. Sia in lettura che in scrittura. E persino di creare uno specchio a partire da SSD di caching.
Con i controller brandizzati la situazione è più complessa. Questo riguarda in particolare IBM. Sarà necessario acquistare le licenze e gli SSD per CacheCade da IBM a prezzi esorbitanti, quindi è più semplice sostituire il controller con uno LSI e acquistare la licenza hardware a un prezzo più conveniente. Le licenze software costano significativamente di più rispetto a quelle hardware.
Controller RAID Adaptec
Nei controller Adaptec è presente la tecnologia MaxCache, che consente di utilizzare anche gli SSD come cache. Siamo interessati alle versioni dei controller che terminiamo con la lettera Q.
I controller Q possono utilizzare quasi qualsiasi SSD, non solo quelli forniti da Adaptec.
- A partire dalla serie 5xxx, tutti i controller supportano il raid ibrido. Il principio di questa tecnologia è che la lettura avviene sempre da SSD quando c'è uno specchio di uno dei dischi contenente un SSD.
- 5xxxQ, ad esempio 5805ZQ. Questi controller supportano MaxCache 1.0. Solo caching in lettura.
- 6xxQ, ad esempio 6805Q. MaxCache 2.0. Caching in lettura e scrittura.
- 7xxQ, ad esempio 7805Q. MaxCache 3.0. Caching in lettura e scrittura.
- 8xxQ ha poco senso usarlo per scopi di aggiornamento a causa dei prezzi elevati.
Tecnologie software di caching su SSD
Non tratterò queste tecnologie. Praticamente qualsiasi sistema operativo attualmente le supporta. Mi ricordo che utilizzando btrfs, esso reindirizza automaticamente le richieste di lettura al dispositivo con la coda più corta — SSD.
SSD SATA III su interfaccia SATA II
Poiché non sempre è possibile e conveniente acquistare un nuovo controller, sorge la domanda su quanto bene funzionano gli SSD SATA III su un'interfaccia obsoleta SATA II.
Effettueremo un piccolo test. Come soggetto avremo un SSD SATA III Intel S3710 da 400 GB.
Lettura casuale, iops
Latenza di lettura media, mS
Scrittura casuale, iops
Latenza di scrittura media, mS
Lettura lineare, MB/s
Scrittura lineare, MB/s
SATA II
21241
2
13580
4
282
235
SATA III
68073
0.468
61392
0.52
514
462
Comandi utilizzati per testare la velocità
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
Come si può vedere, la differenza in termini di velocità lineare, IOPS e latenze è molto significativa, quindi ha senso utilizzare solo l'interfaccia SATA III; se non è disponibile, allora installare un controller.
A dire il vero, per quanto riguarda la differenza nella velocità di lettura e scrittura casuale è risultata trascurabile. È possibile che una così grande differenza nei IOPS tra SATA II e SATA III sia stata causata dal fatto che avevo un controller SATA II particolarmente sfortunato o un driver con alcuni bug.
Tuttavia, il fatto è che è necessario controllare la velocità di SATA II: potrebbe essere che tu abbia lo stesso controller lento. In questo caso, è obbligatorio passare a un controller SATA III.
SSD PCIe su bus PCI-e 2.0 o 1.0
Come è noto, gli SSD più veloci sono quelli PCI-e NVMe, che non sono limitati dai protocolli SAS o SATA.
Tuttavia, nell'installare gli SSD PCI-e moderni, è necessario considerare che la maggior parte di essi utilizza solo 4 linee PCI-e, di solito PCI-e 3.0 o 3.1.
Ora diamo un'occhiata alla tabella delle velocità del bus PCI-e.
Larghezza di banda PCI Express, Gbyte/s
Anno
di produzione
Versione
PCI Express
Codifica
Velocità
trasmettere
Larghezza di banda su x linee
×4
×8
×16
2002
1.0
8b/10b
0,50 Gbyte/s
1.0 Gbyte/s
2.0 Gbyte/s
4.0 Gbyte/s
2007
2.0
8b/10b
1.0 Gbyte/s
2.0 Gbyte/s
4.0 Gbyte/s
8.0 Gbyte/s
2010
3.0
128b/130b
1,97 Gbyte/s
3,94 Gbyte/s
7,88 Gbyte/s
15,8 Gbyte/s
Installando un SSD PCI 3.0 x4 sul bus PCI-e 2.0, esso funzionerà con lo stesso numero di linee, ma a una velocità significativamente inferiore. C'è un problema in quanto le velocità lineari degli SSD PCI-e moderni superano la larghezza di banda del bus PCI-e 2.0 e ancor di più PCI-e 1.0.
SSD M.2 e adattatore PCI-e
Ci sono buone opzioni di aggiornamento, quando acquistiamo un adattatore per 10 dollari e installiamo un SSD M.2 in un server, ma di nuovo per buoni SSD ci saranno limitazioni nelle velocità (soprattutto su PCI-e 1.0), e gli SSD M.2 non sempre sono pronti per carichi server: grande resistenza all'usura, protezione dell'alimentazione e stabilità delle caratteristiche di velocità a causa del riempimento della cache SLC nei modelli economici.
Quindi questo metodo potrebbe essere adatto solo per un server con bus PCI-e 2.0 e impegnato in un lavoro non critico.
SSD PCI-E 2.0 x8
L'upgrade più economicamente logico è utilizzare SSD PCI-E 2.0 x8 per server con bus PCI-e 1.0 (larghezza di banda fino a 2 GB/s) e PCI-e 2.0 (fino a 4 GB/s).
SSD server simili possono essere acquistati attualmente a prezzi molto convenienti sia su vari marketplace che su aste online, inclusa la Russia.
Ho creato una tabella di questi SSD moralmente obsoleti, che possono dare nuova vita al tuo vecchio server. Alla fine della tabella ho aggiunto alcuni SSD con interfaccia PCI-E 3.0 x8. Magari avrai fortuna e li troverai a un prezzo ragionevole.
Nome
TB
PBW
PCI-E
4k read iops, K
4k write iops, K
read, MB/s
write, 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
Tra questi SSD, spiccano i Fusion ioMemory. Il direttore scientifico è stata . Poi questa azienda è stata acquistata da SanDisk per 1,2 miliardi di dollari. In passato costavano da $50.000 l'uno. Ora si possono acquistare per alcune centinaia di dollari in buone condizioni per dischi con capacità a partire da 1TB e oltre.
Se si osserva la tabella, si nota che hanno un numero piuttosto elevato di IOPS in scrittura praticamente uguale al numero di IOPS in lettura. Considerando il loro prezzo attuale, a mio avviso, questi SSD meritano attenzione.
Tuttavia, presentano alcune peculiarità:
- Non possono essere avviabili
- È necessario un driver per l'utilizzo. I driver ci sono praticamente per tutto, ma per le ultime versioni di Linux dovranno essere compilati.
- La dimensione ottimale del settore è di 4096 byte. (È supportato anche il 512)
- Il driver, nel peggior scenario, può consumare molta RAM (con dimensione del settore di 512 byte)
- La velocità di funzionamento dipende dalla velocità del processore, quindi è meglio disabilitare le tecnologie di risparmio energetico. Questo è sia un vantaggio che uno svantaggio, poiché con un potente processore il dispositivo può funzionare anche più velocemente di quanto indicato nelle specifiche.
- Richiede un buon raffreddamento. Per i server, questo non dovrebbe essere un problema.
- Non è raccomandato per ESXi, poiché ESXi preferisce dischi con settore 512N, e questo potrebbe comportare un elevato consumo di memoria da parte del driver.
- Le versioni brandizzate di questi SSD, in generale, non sono supportate dai fornitori fino all'ultimo driver di SanDisk (marzo 2019)
Ho condotto test su Fusion ioMemory rispetto a un SSD server Intel P3700 PCI-E 3.0 x8 piuttosto moderno (quest'ultimo costa circa quattro volte di più rispetto a un Fusion di capacità simile). Si può anche osservare quanto la velocità venga ridotta a causa del bus x4.
Fusion PX600 1.3TB PCI-E 2.0 x8
Intel P3700 1.6TB PCI-E 3.0 x4


Sì, la velocità di lettura lineare è indubbiamente limitata per Intel P3700. Secondo le specifiche dovrebbe essere di 2800 MB/sec, mentre abbiamo 1469 MB/sec. Anche se in generale si può dire che con un bus PCI-e 2.0 si possono utilizzare SSD server PCI-E 3.0 x4, se riesci a trovarli a un prezzo ragionevole.
Conclusioni
Il sistema di memorizzazione del vecchio server con bus PCI-E 1.0 o 2.0 può essere potenziato grazie all'uso di SSD che riescono a utilizzare 8 linee PCI-E, offrendo una larghezza di banda fino a 4 GB/s (PCI-E 2.0) o 2 GB/s (PCI-E 1.0). È economicamente vantaggioso farlo utilizzando SSD PCI-E 2.0, che sono ormai considerati obsoleti.
Ci sono anche opzioni di compromesso abbastanza semplici legate all'acquisto della chiave CacheCade per i controller LSI o alla sostituzione del controller Adaptec con la versione Q.
Un modo completamente banale è acquistare un controller RAID SATA III affinché gli SSD funzionino alla massima velocità, soddisfacendo tutte le esigenze di velocità.
Fonte: habr.com
