Perché il tema di questo articolo è l'upgrade del sistema di archiviazioneÈ chiaro che, in primo luogo, è necessario generalmente:
- Aumentare la RAM. È così ovvio che non ho ritenuto necessario scriverne nella parte principale dell'articolo.
- Installare un ulteriore processore(e) o sostituire entrambi i processori con versioni più performanti supportate dai socket del server.
Per i server più vecchi, sia la memoria che i processori possono spesso essere trovati a prezzi stracciati.
A un certo punto, ogni proprietario di un server si trova di fronte a una domanda: upgrade o nuovo server.
Poiché il costo di un nuovo server può ora toccare milioni di rubli, molti scelgono la via dell'upgrade.
Per un upgrade riuscito, è molto importante utilizzare compromessi, in modo da ottenere un sostanziale aumento delle prestazioni a un prezzo contenuto (rispetto al costo di un nuovo server).
L'articolo presenta un elenco di SSD server PCI-E 2.0 x8, che ora sono notevolmente più economici, sono indicati i controller RAID con supporto per la cache SSD e un SSD SATA III testato sull'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, la differenza è principalmente che gli SSD possono essere facilmente configurati in RAID.
Ci sono, però, alcune questioni delicate legate al fatto che un vecchio server potrebbe non avere porte SATA III e in tal caso sarà necessario sostituirlo o installare un controller adeguato.
Ci sono, ovviamente, anche soluzioni intermedie.
Caching su SSD.
In generale, questo metodo è abbastanza adatto per database, 1C e accessi casuali. La velocità aumenta realmente. Per file di grandi dimensioni o sorveglianza video, questo metodo è inutile.
Controller RAID LSI (IBM, DELL, CISCO, Fujitsu)
A partire dalla serie 92xx, LSI ha sviluppato la tecnologia CacheCade 2.0, che consente di utilizzare quasi qualsiasi SSD SATA come cache per il RAID. Sia in lettura che in scrittura. È anche possibile creare uno specchio utilizzando SSD di caching.
Con i controller brandizzati, la situazione è diventata più complessa. Questo è particolarmente vero per IBM. Le chiavi e gli SSD per CacheCade devono essere acquistati da IBM a prezzi elevati, quindi è più semplice sostituire il controller con uno LSI e acquistare una chiave hardware a prezzo ridotto. Le chiavi software costano significativamente di più rispetto a quelle hardware.
Controller RAID Adaptec
I controller Adaptec dispongono della tecnologia MaxCache, che consente anche di utilizzare SSD come cache. Ci interessano le versioni dei controller che terminano con la lettera Q.
I controller Q possono utilizzare quasi qualsiasi SSD, non solo quelli forniti da Adaptec.
- A partire dal 5xxx, tutti i controller supportano Hybrid RAID. La sostanza di questa tecnologia è che la lettura avviene sempre da SSD, quando uno dei dischi in mirror è 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 per scopi di aggiornamento ha poco senso da utilizzare a causa dei prezzi elevati.
Tecnologie software di caching su SSD
Non approfondirò queste tecnologie. Attualmente sono supportate praticamente da qualsiasi sistema operativo. Ricordo che, utilizzando btrfs, reindirizza automaticamente le richieste di lettura al dispositivo con la coda più corta — SSD.
SSD SATA III su interfaccia SATA II
Poiché non sempre ci sono opportunità e fondi per un nuovo controllore, emerge la domanda su quanto bene funzionino gli SSD SATA III su un'interfaccia obsoleta SATA II.
Effettueremo un piccolo test. Il soggetto del test sarà un SSD SATA III Intel S3710 da 400 GB.
Lettura casuale, iops
Latenza media di lettura, mS
Scrittura casuale, iops
Latenza media di scrittura, 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ò notare, la differenza in termini di velocità lineare, IOPS e latenze è piuttosto significativa, dunque ha senso utilizzare solo l'interfaccia SATA III; se non è disponibile, è consigliabile installare un controller.
A dire il vero, posso affermare che per la differenza in velocità di lettura e scrittura casuale si è rivelata trascurabile. È possibile che un tale grande scarto negli IOPS tra SATA II e SATA III sia dovuto al fatto che avevo un controller SATA II particolarmente poco performante o un driver con alcune problematiche.
Tuttavia, è un dato di fatto che è necessario controllare la velocità di SATA II, nel caso in cui avete un controller altrettanto 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, quando si installano moderni SSD PCI-e, bisogna considerare che la maggior parte di essi utilizza solo 4 linee PCI-e, generalmente PCI-e 3.0 o 3.1.
E ora diamo un'occhiata alla tabella delle velocità del bus PCI-e.
Larghezza di banda PCI Express, GB/s
Anno
rilascio
Versione
PCI Express
Codifica
Velocità
trasmissione
Larghezza di banda per x linee
×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
Quando si installa un SSD PCI 3.0 x4 nello slot PCI-e 2.0, funzionerà con lo stesso numero di linee ma a una velocità significativamente inferiore. Il problema è che le velocità lineari degli SSD PCI-e moderni superano la capacità della larghezza di banda dello slot PCI-e 2.0 e, tanto più, di PCI-e 1.0.
SSD M.2 e adattatore PCI-e
Ci sono buone opzioni di aggiornamento, quando acquistiamo un adattatore da 10 dollari e installiamo un SSD M.2 nel server, ma ancora una volta, per buoni SSD ci sarà una riduzione delle velocità (soprattutto su PCI-e 1.0), e gli SSD M.2 non sempre sono pronti per i carichi di lavoro server: hanno una grande resistenza all'usura, protezione dell'alimentazione e stabilità delle prestazioni a causa dell'occupazione della cache SLC nei modelli più economici.
Quindi, questo metodo può essere adatto solo per server con slot PCI-e 2.0 e attività non critiche.
SSD PCI-E 2.0 x8
L'aggiornamento più economicamente logico è l'uso di SSD PCI-E 2.0 x8 per server con slot PCI-e 1.0 (larghezza di banda fino a 2 GB/s) e PCI-e 2.0 (fino a 4 GB/s).
SSD di questo tipo per server possono essere acquistati a prezzi molto convenienti sia su vari marketplace che su aste online, compresa la Russia.
Ho creato una tabella di SSD ormai 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 riesci a trovarli 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, i Fusion ioMemory si distinguono. Il direttore scientifico sia . Questa azienda è stata poi acquisita da SanDisk per 1,2 miliardi di dollari. Un paio di anni fa costavano oltre 50.000 dollari ciascuno. Oggi possono essere trovati a poche centinaia di dollari per dischi da 1TB e oltre.
Se guardi attentamente la tabella, noterai che hanno un numero di IOPS in scrittura molto elevato, praticamente pari a quello in lettura. Considerando il loro attuale prezzo, ritengo che questi SSD meritino attenzione.
Tuttavia, hanno alcune peculiarità:
- Non possono essere avviabili.
- È necessario un driver per l'utilizzo. I driver sono disponibili praticamente per tutto, ma per le versioni più recenti di Linux sarà necessario compilarli.
- La dimensione ottimale del settore è di 4096 byte. (Anche 512 è supportato)
- In uno scenario peggiore, il driver può consumare parecchia RAM (con una dimensione del settore di 512 byte)
- La velocità di funzionamento dipende dalla potenza del processore, quindi è meglio disattivare le tecnologie di risparmio energetico. Questo è sia un vantaggio che uno svantaggio, in quanto con un processore potente 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, il che potrebbe comportare un elevato consumo di memoria per il driver.
- Le versioni marchiate di questi SSD non sono generalmente supportate dai fornitori fino all'ultimo driver da SanDisk (marzo 2019).
Ho effettuato test di Fusion ioMemory confrontandolo con un SSD serverpiuttosto moderno Intel P3700 PCI-E 3.0 x8 (quest'ultimo costa quattro volte di più del Fusion con capacità simile). Inoltre, si può vedere 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 sequenziale è decisamente limitata per l'Intel P3700. Secondo la scheda tecnica dovrebbe essere di 2800 MB/s, ma noi otteniamo solo 1469 MB/s. Anche se in generale si può dire che, con un bus PCI-e 2.0, è possibile utilizzare SSD server PCI-E 3.0 x4, se si riescono a reperire a un prezzo ragionevole.
Conclusioni
Il sistema di archiviazione del vecchio server con bus PCI-E 1.0 o 2.0 può essere potenziato utilizzando SSD in grado di sfruttare 8 linee PCI-E, che offrono una larghezza di banda fino a 4 GB/s (PCI-E 2.0) o 2 GB/s (PCI-E 1.0). È economicamente più vantaggioso utilizzare SSD PCI-E 2.0, che sono considerati tecnicamente obsoleti.
Esistono anche soluzioni compromissorie semplici da implementare, come l'acquisto della chiave CacheCade per i controller LSI o la sostituzione del controller Adaptec con la versione Q.
E un'opzione completamente banale è acquistare un controller RAID SATA III affinché gli SSD funzionino alla massima velocità, gestendo tutto ciò che richiede velocità.
Fonte: habr.com
