AstucesWindows OSWindows Server

RAID logiciel et UEFI : La solution

Disons le immédiatement, en production il est préférable, voir obligatoire, d’utiliser un contrôleur raid hardware. Néanmoins, l’utilisation d’un RAID software présente l’avantage de ne rien coûter. Parmi les inconvénients du RAID logiciel, on peut citer le problème de la redondance sur l’amorçage du système. En effet, un RAID 1 (miroir) sur le disque système peut être une bonne solution, par exemple pour mettre en place un hyperviseur.

Problème : l’Amorçage du système

Lorsqu’on utilise la fonctionnalité de disque miroir, proposée par l’outil de gestion des disques de Windows, on ne peut créer un disque miroir qu’à partir d’une partition type NTFS, et pas sur les volumes EFI.

On obtient alors un mirroring de la partition système. Le problème, c’est que dans le cas où le disque 0 viendrait à crasher, on perd alors la possibilité de booter, puisque la partition EFI n’est plus présente.

La solution serait alors de booter sur un environnement de récupération, afin de recréer manuellement l’amorçage du système. Il faudra donc intervenir, dans l’urgence, et il y aura donc une interruption des systèmes hébergés par votre serveur.

Solution : Créer l’amorçage sur le miroir

La solution est donc de créer immédiatement le nécessaire afin que le disque miroir puisse booter indépendamment. En cas de crash du disque 0, le disque 1 pourra donc booter sans que vous ayez à reconstruire l’amorçage.

Pour mettre en place cette solution, nous partirons du principe que vous avez installé votre OS sur le disque 0, et que le disque 1 est vide, comme ci-dessous.

Attention donc, si vous suivez ce tuto à la lettre, votre disque source (avec l’OS) doit être le disque 0, et le disque cible (miroir) doit être le disque 1.

Préparation du disque cible

Nous allons utiliser diskpart pour préparer le disque.

Pour cela, nous allons commencer par lister les disques :

list disk

Ici, on voit que l’OS est sur le disque 0 (qui n’a plus de place inutilisée). Le disque 1, de même capacité, deviendra le miroir. Il est déjà en GPT (étoile dans la dernière colonne) mais nous n’en tiendrons pas compte, en faisant comme s’il ne l’était pas et en le convertissant en GPT.

Pour repartir sur un disque propre, et en GPT, nous allons le nettoyer et le convertir à l’aide de diskpart.

select disk 1
clean
convert GPT

Si vous effectuez à nouveau un list disk, vous verrez que votre disque est maintenant en GPT.

Vérifier les partitions. Si vous avez des partitions sur ce disque cible, il faut les supprimer (par exemple la partition MSR créée par Windows pour utiliser le disque, lors de son initialisation).

list part

Pour supprimer des partitions, utilisez ces commandes de diskpart :

sel part 1
delete partition override

Création des partitions à l’identique

Nous allons maintenant recréer les partitions du disque 0 sur le disque 1, à l’identique.

Pour cela, commençons par lister les partitions du disque 0 :

select disk 0
list part

On y trouve quatre partitions :

  • Récupération, de 499 Mo, une partition de récupération avec WinRE.
  • Système, de 99 Mo, une partition EFI (nécessaire au boot)
  • Réservé, de 16 Mo, une partition MSR (nécessaire à un OS Windows sur GPT)
  • Principale, de 222 Go, une partition principale avec le système Windows actuel.

Dans cet exemple, il s’agit d’un OS Windows Server 2019 fraichement installé.

Nous allons donc maintenant créer la même structure sur le disque 1 :

select disk 1
create partition primary size=499
format quick fs=ntfs label="WinRE"
set id="de94bba4-06d1-4d40-a16a-bfd50179d6ac"
create partition efi size=99
create partition msr size=16
list part

Conversion des disques et création du miroir

Maintenant que les structures sont identiques, nous allons convertir les deux disques en disques dynamiques.

select disk 0
convert dynamic
select disk 1
convert dynamic

Nous avons donc maintenant nos disques disques en dynamique, nous pouvons créer le miroir pour la partition système.

select volume c
add disk=1

Dans l’outil de gestion des disques, on peut constater et suivre la synchronisation des volumes sur les deux disques.

A partir de ce moment, lors du redémarrage, le menu Windows Boot Manager propose les deux installations de Windows (puisqu’il y a deux partitions système). Sans modification du choix, au bout de 30 secondes le système est amorcé sur la première entrée.

Préparation des partitions EFI

Nous allons donc préparer la partition EFI sur le disque 1 dans le miroir afin que la machine puisse utiliser cette partition pour démarrer Windows.

Pour cela, nous allons attribuer une lettre de lecteur à la partition EFI du disque 1 (ici la lettre S) et la formater en FAT32.

select disk 1
select part 2
assign letter=S
format fs=FAT32 quick

On va ensuite attribuer une lettre (P) à la partition EFI du disque 0.

select disk 0
select partition 2
assign letter=P
exit

Maintenant que ces deux partitions possèdent des lettres de lecteur, nous pouvons manipuler des données entre les deux.

Copie de la partition EFI et du magasin BCD

Il nous faut maintenant afficher la configuration de l’amorçage BCD :

bcdedit /enum

Lors de la création d’un miroir, le service de disques virtuels de Windows a automatiquement ajouté l’entrée BCD pour le deuxième disque miroir (intitulé Windows Server – plex secondaire). 

Afin de permettre l’amorçage sur le deuxième disque en cas de crash du premier, nous allons modifier BCD. Pour ca, nous allons copier la configuration actuelle du Gestionnaire de démarrage Windows:

bcdedit /copy {bootmgr} /d "Windows Boot Manager Secours"

Copiez ensuite l’ID utilisé par BCD pour cette commande :

bcdedit /set {3a915219-xxxxxxxxxxxxxxxx} device partition=s:

Le message « L’opération a réussie doit apparaitre ».
Nous allons maintenant afficher les entrées de BCD :

bcdedit /enum

Nous voyons maintenant que BCD possède une entrée par défaut, et une alternative, pour démarrer sur des partitions EFI.

Nous allons maintenant exporter le magasin BCD de la partition EFI du disque 0 vers la partition EFI du disque 1 :

P:
bcdedit /export P:\EFI\Microsoft\Boot\BCD2
robocopy p:\ s:\ /e /r:0

Une fois la copie effectuée, il faut renommer le répertoire BCD sur le disque 1:

rename s:\EFI\Microsoft\Boot\BCD2 BCD

Puis supprimer la copie sur le disque source (disque 0) :

del P:\EFI\Microsoft\Boot\BCD2

Conclusion

Si votre disque 0 venait à tomber, vous pourrez booter. Ca ne se fera pas automatiquement, mais vous pourrez sélectionner lors du démarrage l’élément « Windows Boot Manager Secours », pour vous adresser à la copie de la bibliothèque BCD, puis choisir de booter sur « Windows Server – plex secondaire », qui démarrera le système sur le second disque.

Ca n’est pas automatique, certes. Mais en cas de crash, vous avez une solution immédiate, qui permettra de reprendre l’activité très rapidement. Il ne vous restera ensuite qu’à remplacer le disque défectueux, puis recréer un RAID miroir en appliquant à nouveau cette procédure (en pensant bien à changer les numéros de disques dans les commandes diskpart, sinon vous allez au devant d’une catastrophe!!).

Vous voilà un peu plus serein sur vos serveurs en RAID software…

 

Samuel Monier

Informaticien indépendant Réseaux et systèmes - Infrastructure - Serveurs. J'interviens sur les départements 42 - 63 - 69 - 43 - 71, et à échelle nationale à distance. N'hésitez pas à me demander conseil!

Articles similaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Bouton retour en haut de la page