Mise à niveau du système de stockage d'un ancien serveur avec un bus PCIe 1.0 — 2.0

Mise à niveau du système de stockage d'un ancien serveur avec un bus PCIe 1.0 — 2.0Pourquoi le sujet de cet article est-il la mise à niveau du système de stockage ?Il est clair que, dans la plupart des cas, il faut d'abord :

  1. Augmenter la mémoire vive. C'est une démarche tellement évidente que je n'ai même pas jugé nécessaire d'en parler dans l'article principal.
  2. Installer des processeurs supplémentaires ou remplacer les deux processeurs par des versions les plus performantes compatibles avec les sockets du serveur.

Pour les anciens serveurs, il est généralement possible de trouver de la mémoire et des processeurs à des prix très bas.

À un certain moment, chaque propriétaire de serveur se retrouve confronté à la question : mise à niveau ou nouveau serveur.

Étant donné que le prix d'un nouveau serveur peut atteindre des millions de roubles, beaucoup choisissent la voie de la mise à niveau.

Pour une mise à niveau réussie, il est très important d'utiliser des compromis pour obtenir un gain de performance significatif pour un coût modéré (par rapport à celui d'un nouveau serveur).

Cet article présente une liste de SSD PCI-E 2.0 x8 pour serveurs qui ont énormément baissé de prix, ainsi que des contrôleurs RAID prenant en charge la mise en cache SSD et un SSD SATA III testé sur une interface SATA II.

Le moyen le plus évident de mettre à niveau le système de stockage est de passer de HDD à SSD. C'est vrai tant pour les ordinateurs portables que pour les serveurs. Dans le cas des serveurs, la seule différence est que les SSD peuvent facilement être configurés en RAID.

Il y a cependant des détails à prendre en compte, notamment le fait qu'il se peut qu'il n'y ait pas de ports SATA III sur un ancien serveur, et dans ce cas, il faudra remplacer ou ajouter un contrôleur approprié.

Il existe bien sûr des méthodes intermédiaires.

Mise en cache sur SSD.

Dans l'ensemble, cette méthode convient bien aux bases de données, à 1C et à tout accès aléatoire. La vitesse s'accélère réellement. Pour de très gros fichiers, comme la vidéosurveillance, cette méthode est inutile.

Contrôleurs RAID LSI (IBM, DELL, CISCO, Fujitsu)

À partir de la série 92xx, LSI dispose de la technologie CacheCade 2.0, qui permet d'utiliser presque n'importe quel SSD SATA comme cache pour le tableau RAID, tant en lecture qu'en écriture. Il est même possible de créer un miroir à partir de SSD de cache.

Avec les contrôleurs sous marque, c'est plus compliqué. Cela concerne particulièrement IBM. Les clés et SSD pour CacheCade devront être achetés chez IBM à des prix exorbitants, il est donc plus simple de changer le contrôleur pour un LSI et d'acheter une clé matérielle à bon marché. Les clés logicielles sont beaucoup plus chères que les clés matérielles.

Contrôleurs RAID Adaptec

Les contrôleurs Adaptec disposent de la technologie MaxCache, qui permet également d'utiliser des SSD comme cache. Nous nous intéressons aux versions des contrôleurs qui se terminent par la lettre Q.

Les contrôleurs Q peuvent utiliser presque n'importe quel SSD, et pas seulement ceux fournis par Adaptec.

  • À partir de la version 5xxx, tous les contrôleurs prennent en charge le raid hybride. L'idée de cette technologie est que la lecture s'effectue toujours à partir du SSD lorsqu'il existe un miroir d'un des disques contenant un SSD.
  • 5xxxQ, par exemple 5805ZQ. Ces contrôleurs prennent en charge MaxCache 1.0. Seulement pour le cache de lecture.
  • 6xxQ, par exemple 6805Q. MaxCache 2.0. Mise en cache de lecture et d'écriture.
  • 7xxQ, par exemple 7805Q. MaxCache 3.0. Mise en cache de lecture et d'écriture.
  • 8xxQ n'a presque aucun sens d'utilisation pour les mises à niveau en raison des prix élevés.

Article sur le cache sur SSD sur Habr (contrôleurs et systèmes d'exploitation).

Technologies logicielles de mise en cache sur SSD

Je ne vais pas aborder ces technologies. Pratiquement tous les systèmes d'exploitation les prennent en charge actuellement. Je me souviens qu'avec btrfs, il redirige automatiquement les requêtes de lecture vers le périphérique avec la plus courte file d'attente — le SSD.

SSD SATA III sur une interface SATA II

Étant donné qu'il n'y a pas toujours la possibilité ou les fonds pour un nouveau contrôleur, la question se pose de savoir à quel point les SSD SATA III fonctionnent bien sur une interface obsolète SATA II.

Réaliser un petit test. Notre sujet d'essai sera un SSD SATA III Intel S3710 de 400 Go.

Lecture aléatoire, iops
Latence moyenne de lecture, mS
Écriture aléatoire, iops
Latence moyenne d'écriture, mS
Lecture linéaire, MB/s
Écriture linéaire, MB/s

SATA II
21241
2
13580
4
282
235

SATA III
68073
0.468
61392
0.52
514
462

Commandes utilisées pour tester la vitesse

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

Comme on peut le voir, il y a une différence significative en termes de vitesse linéaire, d'IOPS et de latences, donc il est judicieux d'utiliser uniquement l'interface SATA III, et si elle n'est pas disponible, de mettre un contrôleur.

Pour être juste, je dirais que selon d'autres expériences La différence de vitesse de lecture et d'écriture aléatoire s'est avérée insignifiante. Il est possible qu'une telle grande différence d'IOPS entre SATA II et SATA III soit due à un contrôleur SATA II peu performant ou à un pilote défectueux.

Cependant, il est essentiel de vérifier la vitesse de SATA II - vous pourriez avoir un contrôleur tout aussi lent. Dans ce cas, un passage à un contrôleur SATA III est obligatoire.

SSD PCIe sur le bus PCI-e 2.0 ou 1.0

Comme on le sait, les SSD les plus rapides sont les PCI-e NVMe, qui ne sont pas limités par les protocoles SAS ou SATA.

Cependant, lors de l'installation de SSD PCI-e modernes, il faut tenir compte du fait que la plupart d'entre eux n'utilisent que 4 lignes PCI-e, généralement PCI-e 3.0 ou 3.1.

Examinons maintenant le tableau des vitesses du bus PCI-e.

Capacité de bande passante PCI Express, Go/s

An
de production

Version
PCI Express

Codage

Vitesse
de transmission

Capacité de bande passante sur x lignes

×4
×8
×16

2002
1.0
8b/10b

0.50 Go/s
1.0 Go/s
2.0 Go/s
4.0 Go/s

2007
2.0
8b/10b

1.0 Go/s
2.0 Go/s
4.0 Go/s
8.0 Go/s

2010
3.0
128b/130b

1.97 Go/s
3.94 Go/s
7.88 Go/s
15.8 Go/s

En installant un SSD PCI 3.0 x4 sur le bus PCI-e 2.0, il fonctionnera avec le même nombre de lignes, mais à une vitesse nettement inférieure. Le problème est que la vitesse linéaire des SSD PCI-e modernes dépasse la capacité de bande passante du bus PCI-e 2.0, et encore plus celle du PCI-e 1.0.

SSD M.2 et adaptateur PCI-e

Il existe de bonnes options de mise à niveau où nous achetons un adaptateur pour 10 dollars et installons un SSD M.2 dans le serveur, mais encore une fois, les vitesses des SSD de bonne qualité seront réduites (surtout sur PCI-e 1.0), et les SSD M.2 ne sont pas toujours prêts pour des charges de travail serveur : forte durabilité, protection de l'alimentation et stabilité des performances en raison du remplissage du cache SLC sur les modèles bon marché.

Ainsi, cette méthode peut convenir uniquement à un serveur avec un bus PCI-e 2.0 et n'effectuant pas de tâches critiques.

SSD PCI-E 2.0 x8

La mise à niveau la plus économiquement logique est d'utiliser un SSD PCI-E 2.0 x8 pour des serveurs avec un bus PCI-e 1.0 (capacité de bande passante jusqu'à 2 Go/s) et PCI-e 2.0 (jusqu'à 4 Go/s).

De tels SSD pour serveurs peuvent maintenant être achetés à bas prix sur divers marchés en ligne, y compris en Russie.

J'ai composé un tableau de ces SSD maintenant considérés comme obsolètes qui donneront un bon coup de fouet à votre ancien serveur. À la fin du tableau, j'ai ajouté quelques SSD avec une interface PCI-E 3.0 x8. Peut-être aurez-vous de la chance et les trouverez à un prix raisonnable.

Nom
To
PBW
PCI-E
4k read iops, K
4k write iops, K
read, MB/s
write, 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

Mise à niveau du système de stockage d'un ancien serveur avec un bus PCIe 1.0 — 2.0Parmi ces SSD, les Fusion ioMemory se distinguent. Le directeur scientifique Fusion était Steve Wozniak. Ensuite, cette société a été achetée par SanDisk pour 1,2 milliard de dollars. À l'époque, leur prix était de 50 000 $ chacun. Maintenant, ils peuvent être achetés pour quelques centaines de dollars, en état neuf, pour des disques d'une capacité d'au moins 1 To.

Si l'on regarde le tableau, on peut voir qu'ils ont un nombre d'IOPS d'écriture assez élevé, presque égal à celui des IOPS de lecture. Compte tenu de leur prix actuel, je pense qu'il vaut la peine de se pencher sur ces SSD.

Cependant, ils ont quelques particularités :

  1. Ils ne peuvent pas être utilisés comme disques de démarrage
  2. Un pilote est nécessaire pour leur utilisation. Des pilotes existent pour presque tout, mais pour les dernières versions de Linux, il faudra les compiler.
  3. La taille de secteur optimale est de 4096 octets. (512 est également pris en charge)
  4. Le pilote, dans le pire des cas, peut consommer pas mal de RAM (avec une taille de secteur de 512 octets)
  5. La vitesse de fonctionnement dépend de la vitesse du processeur, donc il est préférable de désactiver les technologies d'économie d'énergie. C'est à la fois un avantage et un inconvénient, car avec un processeur puissant, l'appareil peut fonctionner encore plus vite que ce qui est indiqué dans les spécifications.
  6. Nécessite un bon refroidissement. Pour les serveurs, cela ne devrait pas poser de problème.
  7. Non recommandé pour ESXi, car ESXi préfère les disques avec un secteur 512N, ce qui peut entraîner une grande consommation de mémoire par le pilote.
  8. Les versions sous marque de ces SSD ne sont généralement pas prises en charge par les fournisseurs au niveau du dernier pilote de SanDisk (mars 2019)

J'ai effectué des tests sur Fusion ioMemory en comparaison avec un SSD serveur Intel P3700 PCI-E 3.0 x8 relativement moderne (ce dernier coûte environ 4 fois plus cher que le Fusion de capacité similaire). On peut aussi voir à quel point la vitesse est réduite à cause du bus x4.

Fusion PX600 1.3 To PCI-E 2.0 x8
Intel P3700 1.6 To PCI-E 3.0 x4

Mise à niveau du système de stockage d'un ancien serveur avec un bus PCIe 1.0 — 2.0
Mise à niveau du système de stockage d'un ancien serveur avec un bus PCIe 1.0 — 2.0

Oui, la vitesse de lecture linéaire est indéniablement réduite pour l'Intel P3700. Selon les spécifications, elle devrait être de 2800 Mo/s, mais nous avons mesuré 1469 Mo/s. Cependant, on peut dire qu'avec un bus PCI-e 2.0, on peut utiliser des SSD serveur PCI-E 3.0 x4 si on parvient à les obtenir à un prix raisonnable.

Conclusions

Le système de disque de l'ancien serveur avec un bus PCI-E 1.0 ou 2.0 peut être amélioré en utilisant des SSD, qui peuvent exploiter 8 lignes PCI-E, offrant une bande passante allant jusqu'à 4 Go/s (PCI-E 2.0) ou 2 Go/s (PCI-E 1.0). Il est économiquement plus avantageux d'utiliser des SSD PCI-E 2.0 qui sont moralement obsolètes.

Il existe également des options compromis simples liées à l'achat d'une clé CacheCade pour les contrôleurs LSI ou au remplacement du contrôleur Adaptec par une version Q.

Et enfin, une méthode plus banale consiste à acheter un contrôleur RAID SATA III afin que les SSD fonctionnent à pleine vitesse et puissent gérer toutes les demandes de performance.

Source : habr.com

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster