WikiMiNET

La documentation technique et administrative

Outils pour utilisateurs

Outils du site


wiki:monitoring:controlleur_stockage_hp

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

wiki:monitoring:controlleur_stockage_hp [2018/12/07 13:31]
no_pseudo [Monitoring du contrôleur avec Zabbix]
wiki:monitoring:controlleur_stockage_hp [2020/06/27 18:16]
Ligne 1: Ligne 1:
-====== Contrôleurs de Stockage HP ====== 
- 
- 
-Sur les HP ProLiant DL585 G7 (discovery et atlantis) il y a un contrôleur de stockage intégré: HP Smart Array P410i. 
-Proxmox VE est installé sur un RAID1 accessible via ce contrôleur de stockage. 
- 
-Pour éviter de refaire une installation/configuration de Proxmox VE dans le rush le jour où la chance ne vous sourira plus, il est essentiel de monitorer l'état: 
-   * du contrôleur 
-   * du disque logique (a.k.a le RAID1, a.k.a /dev/sda) 
-   * des disques physiques qui forment le disque logique 
- 
-Donc au programme dans cet article:  
-  - Installation de l'utilitaire fourni par HP: **ssacli** 
-  - Rapide introduction à **ssacli** 
-  - Le monitoring des contrôleurs avec Zabbix 
- 
-===== Installation de ssacli ===== 
- 
-==== HP Enterprise Software Delivery Repository ==== 
- 
-« The HPE Software Delivery Repository hosts yum, zypper, and apt repositories for Linux-related software packages. Much of this content is also available from various locations at hpe.com in iso or tgz format, but if you would prefer to use your Linux-native software configuration manager, you may subscribe your systems to some or all of these repositories for quick and easy access to the latest rpm/deb packages from HPE. » 
- 
-[[http://downloads.linux.hpe.com/SDR/index.html|http://downloads.linux.hpe.com/SDR/index.html]] 
- 
-Pour résumer: HP fourni des paquets au format rpm et deb pour ses utilitaires Linux au sein de multiples dépôts. 
-Le dépôt qui nous intéresse ici c'est le MCP (Management Component Pack). On peut y trouver notre utilitaire **ssacli** pour administrer les contrôleurs de stockage, mais aussi **hponcfg** qui sert à configurer l'iLO "en ligne" c'est à dire à chaud, sans avoir à redémarrer la machine. 
- 
-=== Ajout du dépôt MCP et installation de l'utilitaire === 
- 
-Pour ajouter le dépôt MCP il suffit de suivre les instructions sur [[http://downloads.linux.hpe.com/SDR/project/mcp/|http://downloads.linux.hpe.com/SDR/project/mcp/]] 
- 
-Sinon, si vous préférez le travail prémâché: 
- 
-Pour Proxmox VE 5 (donc Debian Stretch): 
-<code> 
-root@atlantis:~# echo deb http://downloads.linux.hpe.com/SDR/repo/mcp stretch/current non-free > /etc/apt/sources.list.d/HP-mcp.list 
-root@atlantis:~# export http_proxy="http://192.168.102.61:82" 
-root@atlantis:~# curl http://downloads.linux.hpe.com/SDR/hpPublicKey1024.pub | apt-key add - 
-root@atlantis:~# curl http://downloads.linux.hpe.com/SDR/hpPublicKey2048.pub | apt-key add - 
-root@atlantis:~# curl http://downloads.linux.hpe.com/SDR/hpPublicKey2048_key1.pub | apt-key add - 
-root@atlantis:~# curl http://downloads.linux.hpe.com/SDR/hpePublicKey2048_key1.pub | apt-key add - 
-root@atlantis:~# apt update 
-</code> 
- 
-N.B.: Il existe aussi un script fourni par HP pour ajouter des dépôts: [[http://downloads.linux.hpe.com/SDR/add_repo.sh|http://downloads.linux.hpe.com/SDR/add_repo.sh]]. Vu qu'ici on ajoute un seul dépôt sur seulement deux machines le script n'a pas grand intérêt. 
- 
-Il ne reste plus qu'à installer **ssacli**: 
-<code> 
-root@atlantis:~# apt install ssacli 
-</code> 
- 
-===== Introduction à ssacli ===== 
- 
-Usage: 
-<code> 
-ssacli <target> <command> [parameter=value] 
- 
-   <target> is of format: 
-      [controller all|slot=#|serialnumber=#] 
-      [array all|<id>] 
-      [physicaldrive all|allunassigned|[#:]#:#|[#:]#:#-[#:]#:#] 
-      [ssdphysicaldrive all|allunassigned|[#:]#:#|[#:]#:#-[#:]#:#] 
-      [logicaldrive all|#] 
-      [enclosure all|#:#|serialnumber=#] 
-      [licensekey all|<key>] 
-      [ssdinfo] 
-      [tapedrive all] 
-      Note 1: The #:#:# syntax is only needed for systems that 
-              specify port:box:bay. Other physical drive targeting 
-              schemes are box:bay and port:id. 
- 
-</code> 
- 
-Les commandes courantes sont: 
-   * add 
-   * create 
-   * delete 
-   * diag 
-   * flash 
-   * heal 
-   * modify 
-   * remove 
-   * shorthand 
-   * show 
-   * target 
-   * rescan 
-   * version 
- 
-Ici nous allons voir uniquement des exemples avec la commande "show" (je n'ai pas vraiment envie de supprimer un disque logique ou tenter de flasher le firmware du contrôleur sur atlantis juste pour faire une petite demo). 
- 
-==== Exemples ==== 
- 
-=== Lister tous les contrôleurs de stockage présents sur la machine: === 
- 
-<code> 
-root@atlantis:~# ssacli ctrl all show 
- 
-Smart Array P410i in Slot 0 (Embedded)    (sn: 500143802137BFD0) 
-</code> 
- 
-N.B. 1: Ici comme "target" on a mis "ctrl all" c'est à dire "tous les contrôleurs", mais on peut spécifier un contrôleur en particulier, par exemple en utilisant la target "ctrl slot=0" pour lister uniquement le 1er contrôleur. Vu que sur atlantis et discovery on a qu'un seul contrôleur dans les exemples suivant j'utiliserai "ctrl slot=0". 
- 
-N.B. 2: Il est possible d'augmenter la verbosité de la commande show en ajoutant un "detail" en argument. 
- 
-=== Afficher l'intégralité de la configuration du contrôleur: === 
- 
-<code> 
-root@atlantis:~# ssacli ctrl slot=0 show config detail 
-</code> 
- 
-=== Afficher l'état du contrôleur: === 
- 
-<code> 
-root@atlantis:~# ssacli ctrl all show status 
- 
-Smart Array P410i in Slot 0 (Embedded) 
-   Controller Status: OK 
-   Cache Status: OK 
-   Battery/Capacitor Status: OK 
- 
-</code> 
- 
-=== Afficher l'état d'un array: === 
- 
-<code> 
-root@atlantis:~# ssacli ctrl slot=0 array A show detail 
- 
- 
-Smart Array P410i in Slot 0 (Embedded) 
-   Array: A 
-      Interface Type: SATA 
-      Unused Space: 0 MB (0.00%) 
-      Used Space: 1.82 TB (100.00%) 
-      Status: OK 
-      Array Type: Data 
-      Smart Path: disable 
-</code> 
- 
-N.B. : La cible "ctrl slot=0 array A" correspond au 1er array du 1er contrôleur. 
- 
-=== Afficher l'état d'un disque logique: === 
- 
-<code> 
-root@atlantis:~# ssacli ctrl slot=0 array A logicaldrive 1 show detail 
- 
-Smart Array P410i in Slot 0 (Embedded) 
- 
-   Array A 
- 
-      Logical Drive: 1 
-         Size: 931.48 GB 
-         Fault Tolerance: 1 
-         Heads: 255 
-         Sectors Per Track: 32 
-         Cylinders: 65535 
-         Strip Size: 256 KB 
-         Full Stripe Size: 256 KB 
-         Status: OK 
-         Unrecoverable Media Errors: None 
-         Caching:  Enabled 
-         Unique Identifier: 600508B1001C8AD1C93A6ECDA901D4F7 
-         Disk Name: /dev/sda 
-         Mount Points: None 
-         Boot Volume: Primary 
-         Logical Drive Label: AADA37EA500143802137BFD069A6 
-         Mirror Group 1: 
-            physicaldrive 2I:1:7 (port 2I:box 1:bay 7, SATA HDD, 1 TB, OK) 
-         Mirror Group 2: 
-            physicaldrive 2I:1:8 (port 2I:box 1:bay 8, SATA HDD, 1 TB, OK) 
-         Drive Type: Data 
-         LD Acceleration Method: Controller Cache 
- 
-</code> 
- 
-N.B. 1: La cible "ctrl slot=0 array A logicaldrive 1" correspond au 1er disque logique du 1er array du 1er contrôleur. 
- 
-N.B. 2: On voit bien que le 1er disque logique est composé de deux disques physiques en miroir (RAID 1). Ces disques sont branchés aux emplacements "2I:1:7" et "2I:1:8". 
- 
-=== Afficher l'état d'un disque physique: === 
- 
-<code> 
-root@atlantis:~# ssacli ctrl slot=0 array A physicaldrive 2I:1:8 show detail 
- 
-Smart Array P410i in Slot 0 (Embedded) 
- 
-   Array A 
- 
-      physicaldrive 2I:1:8 
-         Port: 2I 
-         Box: 1 
-         Bay: 8 
-         Status: OK 
-         Drive Type: Data Drive 
-         Interface Type: SATA 
-         Size: 1 TB 
-         Drive exposed to OS: False 
-         Logical/Physical Block Size: 512/4096 
-         Rotational Speed: 7200 
-         Firmware Revision: 01.01H01 
-         Serial Number: JS1000621444PS 
-         WWID: 3000000000000007 
-         Model: ATA     WDC WD10JPLX-00M 
-         SATA NCQ Capable: True 
-         SATA NCQ Enabled: True 
-         Current Temperature (C): 24 
-         Maximum Temperature (C): 35 
-         PHY Count: 1 
-         PHY Transfer Rate: 3.0Gbps 
-         Sanitize Erase Supported: False 
-         Shingled Magnetic Recording Support: None 
-</code> 
- 
-N.B. : La cible "ctrl slot=0 array A physicaldrive 2I:1:8" correspond au disque physique branché à l'emplacement "2I:1:8" sur 1er array du 1er contrôleur. 
- 
-===== Monitoring du contrôleur avec Zabbix ===== 
- 
- 
-Il nous reste à écrire des "UserParameters" (en gros des sondes Zabbix faites maison) pour récupérer les données pertinentes. 
- 
-On ajoute donc nos UserParameters dans: **/etc/zabbix/zabbix_agentd.conf.d/userparameter_hp_storage.conf** 
- 
-<code> 
-UserParameter=hpstor.ctrl.status[*], sudo ssacli ctrl slot=$1 show status | grep -E '^\s{3}Controller\sStatus:.*$' | awk -F': ' '{print $$2}' 
-UserParameter=hpstor.ctrl.cache_status[*], sudo ssacli ctrl slot=$1 show status | grep -E '^\s{3}Cache\sStatus:.*$' | awk -F': ' '{print $$2}' 
-UserParameter=hpstor.ctrl.bat_cap_status[*], sudo ssacli ctrl slot=$1 show status | grep -E '^\s{3}Battery/Capacitor\sStatus:.*$' | awk -F ': ' '{print $$2}' 
-UserParameter=hpstor.array_status[*], sudo ssacli ctrl slot=$1 array $2 show status | grep -E '^\s{3}Array\s$2:.*$' | awk -F': ' '{print $$2}' 
-UserParameter=hpstor.logicaldrive_status[*], sudo ssacli ctrl slot=$1 array $2 logicaldrive $3 show status | grep -E '^\s{3}logicaldrive\s$3\s\(.*\):.*$' | awk -F': ' '{print $$2}' 
-UserParameter=hpstor.physicaldrive_status[*], sudo ssacli ctrl slot=$1 array $2 physicaldrive $3 show detail | grep -E '^\s{9}Status:.*$' | awk -F': ' '{print $$2}' 
-UserParameter=hpstor.physicaldrive_current_temp[*], sudo ssacli ctrl slot=$1 array $2 physicaldrive $3 show detail | grep -E '\s{6}Current\sTemperature\s\(C\):.*$' | awk -F': ' '{print $$2}' 
-</code>  
- 
-Le format est le suivant: 
-UserParameter=<key>,<command> 
- 
-C.F. : [[https://www.zabbix.com/documentation/3.0/manual/config/items/userparameters|https://www.zabbix.com/documentation/3.0/manual/config/items/userparameters]] 
- 
-Sur Zabbix on aura donc notre "key" qui prendra pour valeur la sortie de notre "command" 
- 
-<WRAP center round info 60%> 
-La commande **ssacli** doit être lancée avec les droits admin, pour ça on utilise **sudo ssacli** et on ajoute /usr/sbin/ssacli aux commandes pouvant être lancées par l'utilisateur zabbix via la commande **visudo** 
-</WRAP> 
- 
-Une fois notre fichier crée on a plus qu'à redémarrer l'agent zabbix sur la machine. 
- 
-Pour tester nos UserParameters on va sur le serveur zabbix et on regarde si on reçoit bien des données avec la commande **zabbix_get**: 
-(Avant de tester il faut installer le paquet zabbix-get sur le serveur zabbix) 
- 
-Par exemple: 
-<code> 
-root@zabbix3:~# zabbix_get -s 192.168.102.161 -p 10050 -k hpstor.logicaldrive_status[0,A,1] 
-OK 
-</code> 
-Retourne l'état du 1er disque logique de l'array A du contrôleur 0 sur discovery: "OK". 
- 
-Le format pour **zabbix_get** est le suivant: <code> zabbix_get -s <ip.de.la.machine> -p <port_d_ecoute_de_l_agent_zabbix> -k <cle_du_userparameter_a_tester> </code> 
- 
-Les "paramètres flexibles" sont passés entre crochets. Ici on a "[0,A,1]" qui vont remplacer respectivement $1,$2 et $3 dans notre commande au moment de l’exécution: 
-<code> 
-sudo ssacli ctrl slot=$1 array $2 logicaldrive $3 show status | grep -E '^\s{3}logicaldrive\s$3\s\(.*\):.*$' | awk -F': ' '{print $$2}' 
-</code> 
-Devient alors: 
-<code> 
-sudo ssacli ctrl slot=0 array A logicaldrive 1 show status | grep -E '^\s{3}logicaldrive\s1\s\(.*\):.*$' | awk -F': ' '{print $2}' 
-</code> 
- 
-<WRAP center round info 60%> 
-<del>TODO: La configuration du serveur zabbix à proprement parler.</del> 
-C.F. : Formation Zabbix/Monitoring 
-</WRAP> 
- 
  
wiki/monitoring/controlleur_stockage_hp.txt · Dernière modification: 2020/06/27 18:16 (modification externe)