Voilà ! J’ai l’occasion aujourd’hui de tester un baie de stockage full flash qui m’a été prêté par Pure Storage. Pure Storage a la particularité de ne commercialiser que des bais de stockage flash avec du SSD dans son entrée de gamme et du NVME pour son haut de gamme.
Je n’ai pas la chance d’avoir un modèle haut de gamme, mais toutes les baies partagent la même interface d’administration, ce qui suffira pour me faire une opinion sur sa facilité de gestion.
C’est donc sur un vieux cluster Windows 2019 que j’ai raccordé cette baie en attachement direct via des HBA FC et 4 fibres.
Après avoir configuré les IP d’administration on se retrouve sur l’interface web HTML 5 suivante:
Un fois loggé, on arrive ici:
Première impression, on peut déjà voir que ce tableau de bord comporte tout ce qu’il faut quand on supervise une baie de stockage.
Un rappel sur l’usage et la dédup (qui est de base sur toutes les baies), mais surtout les trois compteurs temps réel de latence, iops, et bande passante. Pas besoin de chercher midi à 14 heures ! Simple et efficace !
Pour déclarer les hosts qui vont se connecter à la baie ce n’est pas compliqué ! il suffit de se rendre dans l’onglet host de la section storage et de cliquer sur le + pour trouver le World Wide Name (WWN) du serveur à connecter, puis de le nommer.
Pareil pour regrouper 2 serveurs afin de présenter un volume, même chose, on clique sur le + de host group et l’on ajoute les serveurs à un groupe.
C’est tout simplement enfantin !!!
Pour créer un volume, même chose :
On clique sur le + et on créé un volume…
Pour présenter le volume à un serveur ou un host group, même chose, les trois petit point et connect.
Et pour ceux qui font n’importe quoi le matin au réveil, il y a même une poubelle pour récupérer les volumes supprimés dans la section Destroyed Volumes :
Maintenant passons à un petit test de charge : je ne testerai pas réellement les perfs, car mon cluster a des processeurs entrées de gamme, donc ce ne serait pas vraiment significatif.
En revanche, je peux tout de même faire un petit vmfleet en blocs 8k avec un profil 70/30w. On est a 120000 iops avec une latence en écriture a 0.30 ms 🙂
Chose intéressante pour ce qui est de l’analyse des perfs il y a la possibilité de décomposer la durée totale de la latence en durée du réseau SAN+ file d’attente + écriture (ou lecture en fonction)/ de quoi comprendre d’où peut provenir un problème de lenteur.
En résumé cette baie c’est comme un smartphone où il n’y a pas besoin de lire la doc pour l’utiliser !
Et Grafana dans tout ça ???
Oui, j’aime bien faire des Dashboard avec Grafana et InfluxDB.
Pure Storage a mis un truc ici : https://github.com/purestorage/graphite-grafana mais c’est du perl et ça ne me plait pas…
Il y a aussi un truc très compliqué ici: https://github.com/PureStorage-OpenConnect/FlashStache
Me plais toujours pas 🙁 . Je suis donc reparti avec les mêmes outils que sur Azure Stack HCI à savoir, PowerShell + telegraf + InfluxDB et Grafana.
Chez Pure, il existe un SDK PowerShell fantastique. Pour l’installer très simple :
1 |
Install-Module PureStoragePowerShellSDK |
Installé, le SDK révèle une quantité incroyable de commandes, notamment celles pour collecter les métriques :
A partir de là c’était gagné : Un script Powershell exécuté toutes le 10s par telegraf et le tour est joué !
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
$URLInfluxDB ="http://192.168.x.x:8086" $FlashArray = New-PfaArray -EndPoint 192.168.111.215 -ApiToken 5d369a88-14de-18fe-cfaa-299b4fcafe39 -IgnoreCertificateError $Volumes = Get-PfaVolumes -Array $FlashArray foreach ($Volume in $Volumes) { $Data = Get-PfaVolumeIOMetrics -Array $FlashArray -VolumeName $Volume.name | Select-Object name,writes_per_sec,usec_per_write_op,output_per_sec,san_usec_per_read_op,reads_per_sec,input_per_sec,san_usec_per_write_op,usec_per_read_op $Data | ConvertTo-Metric -Measure VolumeIOMetrics -MetricProperty writes_per_sec,usec_per_write_op,output_per_sec,san_usec_per_read_op,reads_per_sec,input_per_sec,san_usec_per_write_op,usec_per_read_op -TagProperty name | Write-Influx -Database PURE -Server $URLInfluxDB } $DataArray= Get-PfaArrayIOMetrics -Array $FlashArray | Select-Object @{ Label = "name" ; Expression = { ("pureflash-4") } },writes_per_sec,usec_per_write_op,output_per_sec,san_usec_per_read_op,reads_per_sec,input_per_sec,san_usec_per_write_op,usec_per_read_op $DataArray | ConvertTo-Metric -Measure ArrayIOMetrics -MetricProperty writes_per_sec,usec_per_write_op,output_per_sec,san_usec_per_read_op,reads_per_sec,input_per_sec,san_usec_per_write_op,usec_per_read_op -TagProperty name | Write-Influx -Database PURE -Server $URLInfluxDB if (((get-date).second) -in 10..20) { Get-PfaArraySpaceMetrics -Array $FlashArray | ConvertTo-Metric -Measure InfoArray -MetricProperty capacity,volumes,data_reduction,total,shared_space,total_reduction -TagProperty hostname | Write-Influx -Database PURE -Server $URLInfluxDB } |
On se retrouve donc avec un Dashboard Gafana, ou l’on peut en même temps collecter les perfs Windows et Hyper-V et Pure:
Au final, que de bonnes impressions !
Performante, interface intuitive et sympa, ouvertes avec son SDK où l’on peut scripter et automatiser absolument tout! c’est validé !!!