Hello,

J’ai ramené dernièrement une de mes machines qui trainait depuis longtemps dans un garage, un Dell Poweredge T110 II, un serveur en format tour de 2013: SpecSheet.

Il s’agit d’un serveur doté d’un Intel Xeon processor E3-1200 (une version serveur du processeur Intel Core i3), pouvant aller jusqu’à 32GB de DDR3 ECC. J’ai à ma disposition une barrette de 4GB ainsi que 2x8GB (qui coûtaient 126€ à l’achat, une fortune) pour un total de 20GB. J’ai également doté la machine d’un disque SSD de 60GB ainsi que de trois disques SATA de 1TB que j’ai pu récupérés sur d’anciens NAS dont je n’ai plus l’usage.

Mises à jour BIOS + BMC

Avant toute chose, j’ai souhaité réaliser une mise à jour du BIOS et de la BMC, passant de la version 2.0.5 à 2.10.0 pour le BIOS, et de 1.90 à 1.95 pour la BMC.

Pour le BIOS, Dell ne fourni pas de binaire pour Linux, alors je suis parti pour faire la mise à jour avec le binaire DOS. Malheureusement impossible de faire fonctionner quoi que ce soit avec FreeDOS que j’utilise d’ordinaire, on obtient une erreur en boucle (que je n’ai plus sous la main) lorsqu’on lance la mise à jour. Vu que Dell met à disposition un binaire pour Windows pour BIOS et BMC, pour l’occasion j’ai testé un live-CD Windows 10 modifié et adapté a du diagnostic (https://www.malekal.com/malekal-live-cd-reparer-depanner-pc-windows), et j’ai pu réaliser la mise à jour sans plus de problèmes.

Pour l’occasion j’aurais appris la commande PowerShell Get-FileHash pour récupérer le hash d’un fichier.

fwupd

J’ai plus ou moins par hasard découvert fwupd (https://github.com/fwupd/fwupd) en parralèle, qui est un outil qui permet de mettre à jour le firmware des composants matériels supportés. Hélas, rien d’intérressant pour notre Poweredge T110 II !

Wake-on-LAN

Pour avoir la possibilitée de démarrer le T110 II depuis n’importe quel hôte sur mon réseau, comme je le fais pour toutes mes machines physiques qui peuvent l’être, j’ai activé le Wake-On-Lan. Pour ce faire, il a tout d’abord fallu faire accéder au BIOS, se rendre sur Integrated Devices, Selectionner notre carte réseau (Embedded NIC1) puis Modifier l’entrée pour être sur Enabled with PXE. Save & Quit & Reboot.

Au démarrage du serveur on peut désormais accèder à un nouveau menu avec CTRL+S, le menu de configuration de notre carte réseau. On change ici l’entrée Pre-boot Wake On Lan à enable.

On peut ensuite redémarrer le serveur, et vérifier depuis l’OS que le Wake-On-LAN est bien actif. Si tout est bon, le packet wakeonlan peut être installé sur un autre périphérique, et suffit de lancer wakeonlan [addresse-mac-du-server] qui va broadcaster une requête UDP sur le port 9, et le serveur démarre.

Quelques liens qui m’ont servis :

BMC / IPMI

BMC, ou Baseboard Management Controller, composant intégré à la carte mère, autonome et permet d’effectuer certaines actions même lorsque que le serveur lui-même est éteint.

Au démarrage, il faudra réaliser la combinaison CTRL+E pour rentrer dans le menu de configuration, avant que le système d’exploitation ne s’initialise. Une fois entré, il nous faut activer l’accès LAN, vérifier que l’on a les privilèges Admin avec l’accès distant, et configurer l’utilisateur/mot de passe d’accès. On sauvegarde, et on redémarre.

En parrallèle, on peut tester l’accès distant avec l’utilitaire ipmitool. Pour cela il nous faudra autoriser la sortie sur le port 623 en UDP. On test ensuite l’accès au shell ipmi :

ipmitool -H 192.168.x.x -U root -P root shell
ipmitool> power status
Chassis Power is on

Certains matériels requierent l’utiliser de la norme IPMI v2.0, pour cela il suffit de rajouter -I lanplus : ipmitool -H 192.168.5.211 -U root -P root -C3 -I lanplus

On peut également avoir besoin d’accéder au terminal KVM, mais je n’ai pas poussé son utilisation, celle-ci semble difficile… : ipmitool -H 192.168.5.211 -U root -P root -C3 -I lanplus sol activate

Une fois sur le shell IPMI, quelques commandes intérressantes :

ipmitool> power
chassis power Commands: status, on, off, cycle, reset, diag, soft

ipmitool> chassis
Chassis Commands:  status, power, identify, policy, restart_cause, poh, bootdev, bootparam, selftest

ipmitool> lan print
Set in Progress         : Set Complete
Auth Type Support       : NONE MD2 MD5 PASSWORD
Auth Type Enable        : Callback : MD2 MD5
                        : User     : MD2 MD5
                        : Operator : MD2 MD5
                        : Admin    : MD2 MD5
                        : OEM      :
IP Address Source       : DHCP Address
IP Address              : 192.168.x.x
Subnet Mask             : 255.255.255.0
MAC Address             : dd:dd:dd:dd:dd:dd
SNMP Community String   : public
IP Header               : TTL=0x40 Flags=0x40 Precedence=0x00 TOS=0x10
Default Gateway IP      : 192.168.x.x
Default Gateway MAC     : 00:00:00:00:00:00
Backup Gateway IP       : 0.0.0.0
Backup Gateway MAC      : 00:00:00:00:00:00
802.1q VLAN ID          : Disabled
802.1q VLAN Priority    : 0
RMCP+ Cipher Suites     : 0,1,2,3,4,5,6,7,8,9,10,11,12,13
Cipher Suite Priv Max   : aaaaaaaaaaaaaaX
                        :     X=Cipher Suite Unused
                        :     c=CALLBACK
                        :     u=USER
                        :     o=OPERATOR
                        :     a=ADMIN
                        :     O=OEM
Bad Password Threshold  : Not Available

ipmitool> lan
LAN Commands:
                   print [<channel number>]
                   set <channel number> <command> <parameter>
                   alert print <channel number> <alert destination>
                   alert set <channel number> <alert destination> <command> <parameter>
                   stats get [<channel number>]
                   stats clear [<channel number>]


ipmitool> delloem mac
System LOMs
NIC Number      MAC Address             Status
0               dd:dd:dd:dd:dd:dd       Enabled
BMC MAC Address dd:dd:dd:dd:dd:dd

Ce faisant je me rends compte qu’il n’est pas indispensable de configurer l’IPMI lors du démarrage du serveur, on aurait tout à fait pu le faire depuis le système d’exploitation.

Lors de mes recherches je suis également tombé sur ce dépôt non-officiel pour OpenManage sous Linux, a voir ultérieurement : http://linux.dell.com/repo/community/ubuntu/

Carte RAID

Avec ce Poweredge, je dispose d’une carte Raid LSI SAS2008 PCI-Express Fusion-MPT SAS-2 [Falcon]. Pour l’identifier on peut utiliser lspci ou lshw :

lspci -nn|grep -i sas
01:00.0 Serial Attached SCSI controller [0107]: LSI Logic / Symbios Logic SAS2008 PCI-Express Fusion-MPT SAS-2 [Falcon] [1000:0072] (rev 03)

lshw |grep -i sas -B 5 -A 5
*-sas
     description: Serial Attached SCSI controller
     product: SAS2008 PCI-Express Fusion-MPT SAS-2 [Falcon]
     vendor: LSI Logic / Symbios Logic
     physical id: 0
     bus info: pci@0000:01:00.0
     logical name: scsi0
     version: 03
     width: 64 bits
     clock: 33MHz
     capabilities: sas pm pciexpress vpd msi msix bus_master cap_list
     configuration: driver=mpt3sas latency=0
     resources: irq:16 ioport:2000(size=256) memory:c1240000-c124ffff memory:c1200000-c123ffff

Une fois qu’on a identifié notre matériel, on va essayer d’en savoir un peu plus. Je ne suis pas arrivé à obtenir quoi que ce soit avec MegaCli, pour finalement trouver l’utilitaire sas2ircu qui permet de gérer ce type de carte Raid. Les détails peuvent se trouver ici :

Une fois l’utilitaire installé, voici ce qu’on peut obtenir :

sas2ircu list
LSI Corporation SAS2 IR Configuration Utility.
Version 16.00.00.00 (2013.03.01)
Copyright (c) 2009-2013 LSI Corporation. All rights reserved.


         Adapter      Vendor  Device                       SubSys  SubSys
 Index    Type          ID      ID    Pci Address          Ven ID  Dev ID
 -----  ------------  ------  ------  -----------------    ------  ------
   0     SAS2008     1000h    72h   00h:01h:00h:00h      1028h   1f1ch
   

sas2ircu 0 display
LSI Corporation SAS2 IR Configuration Utility.
Version 16.00.00.00 (2013.03.01)
Copyright (c) 2009-2013 LSI Corporation. All rights reserved.

Read configuration has been initiated for controller 0
------------------------------------------------------------------------
Controller information
------------------------------------------------------------------------
  Controller type                         : SAS2008
  BIOS version                            : 7.11.10.00
  Firmware version                        : 7.15.08.00
  Channel description                     : 1 Serial Attached SCSI
  Initiator ID                            : 0
  Maximum physical devices                : 255
  Concurrent commands supported           : 1720
  Slot                                    : Unknown
  Segment                                 : 0
  Bus                                     : 1
  Device                                  : 0
  Function                                : 0
  RAID Support                            : Yes

Au vu du fait que je dispose de trois disques de 1TB pour ce projet, je souhaiterais faire du RAID1E:

RAID 1E is a type of nested RAID level that utilizes two-way mirroring on a minimum of two disks. It is similar to RAID level 1 but extends on its capabilities by supporting more physical disks.
RAID 1E is also known as striped mirroring, enhanced mirroring and hybrid mirroring.
Techopedia explains RAID 1E
RAID level 1E primarily combines drive mirroring and data striping capabilities within one level. The data is striped across all the drives within the array. It provides better drive redundancy and performance than RAID level 1.
RAID 1E requires a minimum of three drives to be constructed and can support up to 16 drives. RAID 1E only allows half of the capacity of the array to be used. If any of the drives fail, the read/write operations are transferred to other operational drives within the array.

Malheureusement, en plus d’avoir un firmware un peu viellot, il s’agit de la variante ‘2118 IT’, qui ne permet pas de faire du RAID1E. On va donc essayer de flasher la carte raid pour avoir le firmware ‘2118 IR’, dans sa dernière version. En bref, j’ai perdu beaucoup de temps à comprendre comment faire ça correctement, j’ai par exemple effacé le firmware existant sans noter le SAS ID nécessaire, et il m’a fallu beaucoup de recherche pour comprendre que celui-ci était constitué de 16 chiffres hexadécimaux plus ou moins aléatoires, et que la perte de l’ID initial était donc sans réelle conséquence. Cependant, une fois qu’on a récupéré les bons fichiers pour flasher (je n’ai pas retrouvé les différentes sources que j’ai utilisé navré), démarré sur une clef usb sous DOS, le process est relativement simple :

megarec -writesbr 0 sbrempty.bin
megarec -cleanflash 0
reboot
sas2flsh -o -f 6gbpsas.fw
reboot
sas2flsh -o -f 2118ir.bin -b mptsas2.rom
sas2flash -c 0 -o -sasadd 500605b00544bd30

J’ai cependant gardé les sources suivantes pour m’aider à flasher la carte :

Créer le RAID1E

Enfin bref, une fois notre carte raid opérationnelle, on peut créer le RAID1E :

sas2ircu 0 create RAID1E MAX 1:0 1:1 1:2 hardraid3x1TB noprompt

Puis on regarde un peu ce qu’il en est :

sas2ircu 0 display
LSI Corporation SAS2 IR Configuration Utility.
Version 16.00.00.00 (2013.03.01)
Copyright (c) 2009-2013 LSI Corporation. All rights reserved.

Read configuration has been initiated for controller 0
------------------------------------------------------------------------
Controller information
------------------------------------------------------------------------
  Controller type                         : SAS2008
  BIOS version                            : 0.00.00.00
  Firmware version                        : 20.00.07.00
  Channel description                     : 1 Serial Attached SCSI
  Initiator ID                            : 0
  Maximum physical devices                : 255
  Concurrent commands supported           : 1720
  Slot                                    : Unknown
  Segment                                 : 0
  Bus                                     : 1
  Device                                  : 0
  Function                                : 0
  RAID Support                            : Yes
------------------------------------------------------------------------
IR Volume information
------------------------------------------------------------------------
IR volume 1
  Volume ID                               : 286
  Volume Name                             : hardraid3x1TB
  Status of volume                        : Okay (OKY)
  Volume wwid                             : 0beca8bce30ba982
  RAID level                              : RAID1E
  Size (in MB)                            : 1429080
  Physical hard disks                     :
  PHY[0] Enclosure#/Slot#                 : 1:4
  PHY[1] Enclosure#/Slot#                 : 1:5
  PHY[2] Enclosure#/Slot#                 : 1:6
------------------------------------------------------------------------
Physical device information
------------------------------------------------------------------------
Initiator at ID #0

Device is a Hard disk
  Enclosure #                             : 1
  Slot #                                  : 4
  SAS Address                             : 4433221-1-0700-0000
  State                                   : Optimal (OPT)
  Size (in MB)/(in sectors)               : 953869/1953525167
  Manufacturer                            : ATA
  Model Number                            : WDC WD10EZEX-00W
  Firmware Revision                       : 1A01
  Serial No                               : WDWMC6Y0N24579
  GUID                                    : 50014ee00456b628
  Protocol                                : SATA
  Drive Type                              : SATA_HDD

Device is a Hard disk
  Enclosure #                             : 1
  Slot #                                  : 5
  SAS Address                             : 4433221-1-0600-0000
  State                                   : Optimal (OPT)
  Size (in MB)/(in sectors)               : 953869/1953525167
  Manufacturer                            : ATA
  Model Number                            : WDC WD10EZEX-00W
  Firmware Revision                       : 1A01
  Serial No                               : WDWMC6Y0NAKX34
  GUID                                    : 50014ee00456b4c8
  Protocol                                : SATA
  Drive Type                              : SATA_HDD

Device is a Hard disk
  Enclosure #                             : 1
  Slot #                                  : 6
  SAS Address                             : 4433221-1-0500-0000
  State                                   : Optimal (OPT)
  Size (in MB)/(in sectors)               : 953868/1953523054
  Manufacturer                            : ATA
  Model Number                            : WDC WD10EZEX-08W
  Firmware Revision                       : 1A02
  Serial No                               : WDWCC6Y6AH22KR
  GUID                                    : 50014ee2ba4b6c61
  Protocol                                : SATA
  Drive Type                              : SATA_HDD
------------------------------------------------------------------------
Enclosure information
------------------------------------------------------------------------
  Enclosure#                              : 1
  Logical ID                              : 500605b0:0544bd30
  Numslots                                : 8
  StartSlot                               : 0
------------------------------------------------------------------------
SAS2IRCU: Command DISPLAY Completed Successfully.
SAS2IRCU: Utility Completed Successfully.

On constate également qu’on peut récupérer quelques informations avec smartctl :

root@poweredge:~ # smartctl -a /dev/sg0
smartctl 7.2 2020-12-30 r5155 [x86_64-linux-4.19.0-16-amd64] (local build)
Copyright (C) 2002-20, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Vendor:               LSI
Product:              Logical Volume
Revision:             3000
Compliance:           SPC-4
User Capacity:        1,498,498,990,080 bytes [1.49 TB]
Logical block size:   512 bytes
Physical block size:  4096 bytes
Logical Unit id:      0x600508e00000000082a90be3bca8ec0b
Serial number:        3809192322200059068
Device type:          disk
Local Time is:        Fri Dec 31 19:17:01 2021 CET
SMART support is:     Unavailable - device lacks SMART capability.

=== START OF READ SMART DATA SECTION ===
Current Drive Temperature:     0 C
Drive Trip Temperature:        0 C

Error Counter logging not supported

Device does not support Self Test logging

Et… Ce sera tout pour ces notes diverses.