RAID & Spin-Down…


Stockage / dimanche, avril 7th, 2013

Petit billet à propos d’une mésaventure me concernant. En fait, je dispose depuis longtemps d’un NAS Netgear qui ne me donne pas entière satisfaction: lenteurs, non intégration dans un domaine Windows, etc… J’ai donc décidé de réutiliser mes disques dur du NAS (Seagate Green – 1 To – 32 Mo cache – 7200 tours) pour les intégrer dans un « enclosure » RAID eSata pour obtenir les meilleurs débits. En effet, il s’avère que l’eSATA est bien supérieur à l’USB 3.0 en terme de débit. Voyons la suite….

La suite s’est avérée sympathique, outre la non compatibilité de ma machine avec les chipsets SIL3132 (Adaptec 1225SA), j’ai finalement opté pour une carte Highpoint RocketRAID  622, qui se trouve sur Internet aux alentours des 40/45 euros, peu onéreuse, compatible avec Windows Server 2012, logiciel de management, RAID 0/1/5/… Au niveau des boitiers eSata, et étant parti sur ma carte Adaptec 1225SA, j’ai dégoté un constructeur qui à l’air de faire du haut de gamme. A noter que les constructeurs de boitiers externes eSata (bon marché) ne courent pas les rues…

Voici ce que mes recherches ont données: ORICO, le modèle 3519SUS me parait pertinent pour mon usage: carte RAID 1 – 2 ports + 2 boitiers eSata. A noter que très peu de constructeurs s’engagent à vous certifier une compatibilité avec la fonctionnalité du Port Multiplier eSata, donc j’oublie, par précaution et aussi pour éviter d’investir inutilement, les boitiers RAID reposant sur la fonction Port Multiplier. Donc par dépit, j’opte pour deux boitiers distincts eSATA ORICO 3519SUS.

Je confirme la finition des boitiers de cette marque, emballage, packaging remarquable, …. Je connecte mes deux boitiers, je construis le RAID 1, et puis après 5 minutes, mes boitiers coupent l’alimentation des disque durs…. Ma carte RAID ne voyant plus les disques, crashe…. Le support technique m’annonce que cette fonctionnalité ne peut pas être désactivée, et que celle-ci est très pratique… Certes, mais pas dans le cas d’une mise en RAID !

Il faut donc de l’activité sur mon volume RAID afin que celui-ci ne se mette pas en « Spin-Down ». Aucun utilitaire sur Internet n’existe à ce sujet… Soit, je crée donc un batch sur mon serveur (une tâche planifiée dans Windows Server 2012 qui s’exécute toutes les minutes n’est pas possible, où alors je n’ai trouvé comme faire !). Le batch consiste à écrire la date et l’heure dans un fichier texte se trouvant sur le volume RAID afin de générer de l’activité:

echo %date% %time% > e:\fichier.txt

Normalement, cela génère de l’activité sur le volume RAID et empêche les boitiers de passer en mode Spin-Down. Au bout de 5 minutes, l’alarme de la carte RAID retentit…. J’en déduis que le fichier crée sur le volume est insignifiant, ou alors pris en charge par la mémoire cache de mon contrôleur RAID ! Il faut donc créer des fichiers plus importants en terme de taille et de contenu, afin que la mémoire cache n’intervienne pas. A l’époque je me servais de cet outil pour benchmarker le stockage, Dummy File Creator, qui permets de générer des fichiers de tests, en ligne de commande ou par le biais d’un GUI, où l’on définit la taille et dont le contenu est aléatoire !

Mes boitiers étant connecté à un serveur, l’idéal serait de créer cet outil sous forme de service Windows, qui démarrait avec le système. Pur cela, il faut plusieurs outils:

– Convertisseur de batch en exe => A télécharger ici, il permet de convertir un fichier .BAT en .EXE,, d’injecter d’autre .EXE, etc…

– Créer un service Windows à partir d’un .EXE => SRVANY et SC ne sont pas les outils les plus appropriés dans ce cadre, utilisez NSSM

:begin
c:\spindown\dummycmd.exe e:\spindown\dummy.txt 10002004 2
c:\spindown\sleep.exe 30
delete e:\spindown\*.txt
goto begin

Ce script crée un fichier (ALEATOIRE) dummy.txt sur e:\spindown\ d’une taille de 10002004 octets et d’un contenu aléatoire (paramètre « 2« ), puis une fois crée, une pause de 30 secondes est observée, puis le fichier généré par l’utilitaire dummycmd est effacé et le script reprends du début. Générez une .EXE de ce script à l’aide de l’outil Batch Compiler, puis créez le service NSSM:

nssm install spindown

Renseignez les champs NSSM manquant, et le tour est joué.

Vous obtenez ainsi un service Windows qui génère un fichier aléatoire toutes les 30 secondes sur votre volume RAID et maintenant ainsi une activité permanente sur votre volume RAID sans impact sur les performances de celui-ci !

Bien entendu, tout cela est à peaufiner: délai à ajuster, taille du fichier généré, … mais l’esprit est là !

Partagez si ça vous plait !