Hyperviseur
parent
54a4a16306
commit
0500434604
|
|
@ -0,0 +1,126 @@
|
||||||
|
# Changer un disque d’un hyperviseur
|
||||||
|
|
||||||
|
Cette fiche a pour vocation de documenter le changement d’un disque pour un
|
||||||
|
**hyperviseur**.
|
||||||
|
|
||||||
|
## Disposition actuelle
|
||||||
|
|
||||||
|
Actuellement, chaque hyperviseur a deux disques de 1 à 2 To, en redondance. Il
|
||||||
|
faut noter que la redondance boot est gérée par Proxmox, la redondance donnée
|
||||||
|
est quant à elle gérée par ZFS. Ils sont partitionnés comme suit :
|
||||||
|
|
||||||
|
- Partition d’espacement, du secteur 2014 secteurs de 34 à 2047. Parfois de
|
||||||
|
2048 à 4095. Cette partition ne contient aucune données, elle ne sert que comme
|
||||||
|
espacement avant la première « vraie » partition ???
|
||||||
|
|
||||||
|
- Partition de boot, cette partition s’occupe du démarrage du système, elle
|
||||||
|
est entièremnt gérée par Proxmox. Elle occupe 512 Mo à partir du secteur 2048 /
|
||||||
|
4096. C’est une partition EFI.
|
||||||
|
|
||||||
|
- Le reste du disque est occupée par la partiton de donnée (par exemple 1 To),
|
||||||
|
c’est une partiton en miroir gérée par ZFS, elle a le type `Solaris /usr & Apple
|
||||||
|
ZFS`. Il est important de noter que **ZFS ne s’occupe du miroir que d’une unique
|
||||||
|
partition et non du disque entier**.
|
||||||
|
|
||||||
|
Cette table de partition est donnée à titre indicative, et peut varier ou être
|
||||||
|
amené à évoluer. En cas de changement de disque, il est préférable de copier le
|
||||||
|
partitionnement de l’autre disque le plus fidélement possible.
|
||||||
|
|
||||||
|
## Changement physique du disque
|
||||||
|
|
||||||
|
Identifier le disque à changer grâce à la LED de statut, et procéder au
|
||||||
|
changement physique du disque. De nombreux bugs de compatibilité ou physique
|
||||||
|
peuvent survenir qu’il faudra malheuresement traiter au cas pour cas. Les
|
||||||
|
conseils de débuggage de la fiche en question s’appliquent, notamment `dmesg -T`
|
||||||
|
qui journalise les évènement disques notamment.
|
||||||
|
|
||||||
|
## Partitionnement du nouveau disque
|
||||||
|
|
||||||
|
Cette étape peut se faire sur un ordinateur en amont ou directement sur la
|
||||||
|
machine si elle fonctionne. Cette étape peut se faire via l’utilitaire `fdisk`
|
||||||
|
préinstallé sur les serveurs.
|
||||||
|
|
||||||
|
Pour lister les disques actuellement présents et leurs table de partionnement
|
||||||
|
faites :
|
||||||
|
|
||||||
|
```
|
||||||
|
fdisk -l
|
||||||
|
```
|
||||||
|
|
||||||
|
Une fois le disque identifié (nous supposerons dans la suite que vous souhaitez
|
||||||
|
repartitionner le disque /dev/sdx), pour commencer l’édition, tapez :
|
||||||
|
|
||||||
|
```
|
||||||
|
fdisk /dev/sdx
|
||||||
|
```
|
||||||
|
|
||||||
|
Cela ouvre une interface interractive afin de gérer le partionnement, les
|
||||||
|
changements seront mis en cache, et il faut les valider à la fin.
|
||||||
|
|
||||||
|
Tapez `p` pour afficher la table de partitionnement courante. Et `m` pour la
|
||||||
|
liste des commandes.
|
||||||
|
|
||||||
|
La première étape est de (re)faire une table de partitionnement. Nous
|
||||||
|
utiliserons le format `GPT`. Tapez `g` pour créer une table vierge.
|
||||||
|
|
||||||
|
Il faut maintenat créer les partitions. Nous commençons par la partition
|
||||||
|
d’espacement. Tapez `n` pour ajouter une nouvelle partition. Donnez lui
|
||||||
|
l’identifiant `1`. Mettez le premier secteur à `34` ou `2048` en fonction de
|
||||||
|
ce que permet le disque. Entrez ensuite le dernier secteur `2047` ou `4095`.
|
||||||
|
Il faut ensute changer le type de la partition avec `t` en `BIOS boot` (numéro
|
||||||
|
`4`). L’auteur de ces lignes se demande si cette partition est vraiment utile ?
|
||||||
|
|
||||||
|
Nous allons créer la partition. Créer une partition `2` en tapant `n`. Faites
|
||||||
|
la commencer après la premiére (option par défaut). Donnez lui, 512 Mo en tapant
|
||||||
|
`+512M`. Puis changer le type via `t` en `EFI System` (numéro `1`).
|
||||||
|
|
||||||
|
Il faut maintenant créer la partition de données. Créer une partition `3` avec
|
||||||
|
`n`. Faites la commencer après (défaut). Laissez là prendre toute la fin du
|
||||||
|
disque (option par défaut) ou faites la correspondre à la taille de l’autre
|
||||||
|
disque (en donnant `+nombre de secteur` par exemple). Changer le type en
|
||||||
|
`Solaris /usr & Apple ZFS` via `t` (numéro `163`).
|
||||||
|
|
||||||
|
La table de partitionnement est maintenant complète, vérifiez-là une dernière
|
||||||
|
fois avec `p` avant de l’enregistrer avec `w`.
|
||||||
|
|
||||||
|
## Redondance boot
|
||||||
|
|
||||||
|
Nous allons configurer la deuxième partition EFI pour le démarrage du système.
|
||||||
|
Cela nécessite d’utiliser l’utilitaire `proxmox-boot-tool`. Je suppose dans la
|
||||||
|
suite que cette partition est `/dev/sdx2`. La documentation officielle est
|
||||||
|
https://pve.proxmox.com/wiki/Host_Bootloader.
|
||||||
|
|
||||||
|
Pour afficher les disques de démarrage, faites `proxmox-boot-tool status`. Si
|
||||||
|
des anciens disques sont toujours présents, il est possible de néttoyer avec
|
||||||
|
`proxmox-boot-tool clean` (à vérifier).
|
||||||
|
|
||||||
|
Nous allons commencer par formater la partition avec `proxmox-boot-tool format
|
||||||
|
/dev/sdx2`.
|
||||||
|
|
||||||
|
Ensuite nous initialisons le système avec `proxmox-boot-tool init /dev/sdx2`.
|
||||||
|
|
||||||
|
Le disque doit maintenant apparaître dans `proxmox-boot-tool status`.
|
||||||
|
|
||||||
|
## Miroir ZFS
|
||||||
|
|
||||||
|
Il faut maintenant configurer le miroir zfs de la partition de données que je
|
||||||
|
supposerais être `/dev/sdx3`. Je suppose ici que la pool zfs est configuré et
|
||||||
|
qu’il s’agit d’un simple changement de disque.
|
||||||
|
|
||||||
|
Faites `zpool status` pour voit l’état de la pool. Un des disques doit être dans
|
||||||
|
l’état `REMOVED` ou `OFFLINE`. Notez sont nom, cela peut-être soit l’identifiant
|
||||||
|
de l’ancien disque ou un numéro quelquonque.
|
||||||
|
|
||||||
|
Il faut identifier le nom du nouveau disque, par exemple via `ls
|
||||||
|
-l /dev/disk/by-id`. Notez le nom de la partition, par exemple
|
||||||
|
`ata-ST2000XX000-xxxxxx_XXXXXXXX-part3`. Attention ! Contrairement au disques
|
||||||
|
de stockage, nous nous intéressons seulement à synchroniser la partition de
|
||||||
|
données, **remarquez le -part3**.
|
||||||
|
|
||||||
|
Nous pouvons maintenant lancer le remplacement avec `zpool replace rpool <ancien
|
||||||
|
disque> <nouveau disque>-part3` où `rpool` est le nom de la pool où effectuer le
|
||||||
|
changement (on n’oublie pas le `-part3` !). La commande peut prendre quelques
|
||||||
|
minutes à s’éxécuter.
|
||||||
|
|
||||||
|
ZFS va maintenant procéder à la synchronisation du miroir. Cette opération peut
|
||||||
|
prendre quelques heures à une journée.
|
||||||
Loading…
Reference in New Issue