Les cahiers de l’admin : comment faire tourner la prod sur du matos de montgallet

N’en déplaise à certain, la vie d’un admin n’est pas toujours rose. J’en prends pour preuve la dernière tuile (comprendre alerte dans nagios) qui m’a valu quelques sueurs froides !

Petit flashback sur une semaine chargée en émotions …

Tout a commencé un beau matin avec le crash d’un disque d’une de nos baies SAN de prod. Pas de chance, la baie n’est plus sous garantie depuis 15 jours (on doit changer rapidement pour une autre) et notre commercial nous indique que ça sera compliqué d’en avoir un nouveau puisque notre contrat de support est terminé …

A ce moment, je me dis que ce n’est pas si grave. J’ai un disque SATA de 500Go qui traine au fond d’une armoire, je n’ai qu’a utiliser celui-là. J’insère le disque et la baie me répond que celui-ci n’est pas compatible, pas pris en charge ou que ce n’est pas du SATA II. J’enrage.

Après tout, c’est un vieux disque, il est peut-être défectueux. On en commande un autre, livraison UPS et tout le toutim. Le lendemain, RDV en baie pour le monter et rebelotte. J’enrage de nouveau : ça ne peut pas être une coïncidence. Je décide de tester le disque sur une machine pour m’assurer qu’il fonctionne correctement. Avant de partir du datacenter, je fais quelques recherches et je m’aperçois qu’il peut tout de même y avoir un problème de compatibilité et que la blague de mon acolyte sur un prétendu

1
if(dd.model != "Dell") {...}

n’est peut-être pas si bête !

Bref, pour faire simple, il y a des zones sur les disques durs utilisées par les constructeurs pour fixer la taille d’un disque même si celui-ci est plus grand (oui, c’est du vol). C’est le Host Protected Area (HPA) et le Device Configuration Overlay (DCO). Je soupçonne alors Dell de modifier légèrement leurs disques en introduisant un HPA (et/ou un DCO) pour pouvoir identifier ceux qui viennent de leurs usines et faire de la vente forcée.

De retour sur une machine de bureau, je teste le disque acheté précédemment : défectueux. J’ai beau être le plus classe du monde, pas de bol Abitbol.

J’avais par ailleurs tout de même emmené un disque fonctionnel afin de faire quelques tests et bingo :

1
2
3
4
$ hdparm -N /dev/sda

/dev/sda:
max sectors   = 976773167/976773168, HPA is enabled

Il y a un secteur en moins pour constituer le HPA :-D. Voyons voir ce qu’il y a dedans.

Je change le nombre de secteurs du disque pour récupérer le secteur “caché” :

1
$ hdparm -N p976773168 /dev/sda

Et on peut ainsi extraire le dernier secteur (un secteur = 512 bytes sur ce disque) :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
$ dd if=/dev/sda of=/tmp/hpa-orig.img bs=512 count=1 skip=976773167

1+0 records in
1+0 records out
512 bytes (512 B) copied, 0.00036925 s, 1.4 MB/s

$ hexdump -C /tmp/hpa-orig.img

00000000  45 4d 43 32 53 41 54 41  00 00 00 01 00 00 1c 20  |EMC2SATA....... |
00000010  80 00 00 00 00 00 00 03  3a 38 60 0f 00 00 00 00  |........:8`.....|
00000020  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00000080  00 04 00 7c 00 00 02 41  54 41 2d 48 54 43 48 37  |...|...ATA-HTCH7|
00000090  32 35 30 35 30 4b 4c 20  43 4c 41 52 35 30 30 41  |25050KL CLAR500A|
000000a0  43 30 41 4b 52 56 4e 36  33 5a 41 4a 36 4c 36 50  |C0AKRVN63ZAJ6L6P|
000000b0  44 20 20 20 20 20 20 44  47 31 31 38 30 33 32 34  |D      DG1180324|
000000c0  39 37 00 00 30 30 35 30  34 38 36 30 37 00 00 00  |97..005048607...|
000000d0  48 44 53 37 32 35 30 35  30 4b 4c 41 33 36 30 20  |HDS725050KLA360 |
000000e0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000000f0  20 20 20 20 20 20 20 20  4b 32 41 4f 41 43 30 41  |        K2AOAC0A|
00000100  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00000200

Héhé, je jubile :) Le disque contient des informations sur le model de la baie et du disque lui même (HDS725050KLA360) !

Pour la petite anecdote, j’avais effectué les tests sur mon PC personnel et lors du reboot suivant, mon propre disque à grillé. Il n’y a pas à dire, j’ai vraiment vraiment pas de bol et pourtant j’aime la ouiche.

Je pars aussitôt à Montgallet afin d’acheter un disque de rechange, j’insère le fameux secteur en bout de disque et j’active le HPA :

1
2
3
4
5
6
7
$ dd if=/tmp/hpa-orig.img of=/dev/sdb bs=512 count=1 seek=976773167

$ hdparm --yes-i-know-what-i-am-doing -N p976773167 /dev/sdb

## Ne pas oublier de réactiver le HPA sur le disque d'origine :

$ hdparm --yes-i-know-what-i-am-doing -N p976773167 /dev/sda

Je retourne en baie, j’insère fébrillement le disque modifié et bingo, ça marche !

Pour la petite histoire, Dell a entre temps réussi à nous faire un devis : 160 euros le disque qui coûte en réalité 36 euros n’importe où ailleurs ! Normal normaux, bicyclette vélo !

Attention tout de même, ce genre de manipulations fait sauter la garantie du matériel (celle de la baie SAN en l’occurence).

 

VN:R_U [1.9.22_1171]
Rating: +2 (from 2 votes)
Share
Ce contenu a été publié dans Trucs & astuces, WTF. Vous pouvez le mettre en favoris avec ce permalien.

3 réponses à Les cahiers de l’admin : comment faire tourner la prod sur du matos de montgallet

  1. Damien V. dit :

    Chapeau bas pour trouver ça ^^
    Je prends note de ces quelques commandes qui pourraient me service.

    J’aime bien les histoires d’admin, ça change du quotidien d’un développeur :P

    VN:R_U [1.9.22_1171]
    Rating: 0 (from 0 votes)
  2. Attention : cet atricle n’est pas un atricle sur le dévelommepent.

    GG en tout cas, tu viens de sauver la boite de la banqueroute !! (au moins !)

    VN:R_U [1.9.22_1171]
    Rating: 0 (from 0 votes)
  3. mgrenonville@excilys.com dit :

    C’est amusant, j’ai presque eu l’impression de lire un article de hacking sur console… C’est des coups à vous faire des armés de RMS !

    Au passage, j’ai adoré le –yes-i-know-what-i-am-doing

    VN:R_U [1.9.22_1171]
    Rating: 0 (from 0 votes)

Laisser un commentaire