Back to Basis: clone Solaris via ufsdump/ufsrestore
La sauvegarde
Nous voici sur le serveur servant d’image à notre futur clone. La sauvegarde peut soit s’effectuer sur bande, soit s’effectuer sur la base de fichiers.
La sauvegarde sur bande
On admet que le lecteur DLT est branché directement sur le serveur. Insérez et rembobinez la bande insérée :
# mt –t /dev/rmt/0cn rew
Listez les volumes à sauvegarder en passant par format (p p pour partition puis print). Grâce à l’information, vous avez donc une liste de volume à backupper. Pour chacune des partitions, balancez un ufsdump en 0uf (niveau 0). Pour exemple, pour / et /data :
# ufsdump 0uf /dev/rmt/0cn / # ufsdump 0uf /dev/rmt/0cn /data
Pour précaution, n’hésitez pas à sauvegarder la table des partitions, si le serveur cloné a les mêmes configurations hard, on pourra alors se passer du format manuel et pousser directement cette dernière sur les disques concernés. Pour information, je n’ai qu’un disque, d’où :
# prtvtoc /dev/rdsk/c0t0d0s2 > master.toc
La sauvegarde sur dans un fichier data
La seule différence avec la sauvegarde sur bande, c’est que vous n’avez pas besoin de tout ce qui touche à la gestion des bandes. C’est d’ailleurs mieux en terme de disponibilité, car il suffit alors de mettre les data sur un espace partagé, mettons par nfs, et de les utiliser à volonté, sans avoir à gérer le déplacement sur site, la recherche de la bande, l’insertion, rembobinage…
# mount nfsserv:/data/ /var/tmp/ # cd /var/tmp/ # ufsdump 0uf rootdmp / # ufsdump 0uf datadmp /data
La restauration
Bootez votre Solaris clone sur le cd d’installation de Solaris.
>boot cdrom
Choisissez votre langue et si on vous demande un disque à utiliser pour l’installation de Solaris, répondez par la négative (n) et quittez (q).
Dans le cas où les disques diffèrent (capacités, matériel, géométrie), il faut passer par le partitionnement manuel au block. Basez-vous sur le format fait sur le serveur référent et utilisez format pour arriver à un résultat sensiblement pareil.
Pour l’exemple :
Part Tag Flag Cylinders Size
0 root wm 104-3195 15GB
1 swap wu 0-103 516.7MB
2 backup wm 0-14086 68.35GB
3 unassigned wm 0 0
4 unassigned wm 0 0
5 unassigned wm 0 0
6 unassigned wm 0 0
7 home wm 3196-14086 52.86GB
Je rappelle que je n’ai qu’un disque, d’où le 0 renseigné au format. Si vous en avez plusieurs à dumper, ils seront montrés au format, à vous de choisir et de réitérer pour chacun d’eux.
#format format>0 format>p partition>p
Sélectionnez la partition à définir (de 0 à 7) et spécifiez le tag, le flag, le numéro du starting cylinder et la taille, que vous pouvez donner en block (le plus précis) ou en Gb.
Effectuez le processus pour chacune des partitions et pour chacun des disques. Pour vous aider, vous pouvez, et c’est fait pour, vous appuyer sur les sorties des prtvtoc que vous avez précédemment fait.
Sauvegarder en tapant l, confirmez (y) et quittez (q).
Après avoir défini vos partitions, il faut les formatter pour créer le filesystem. Pour cela, lancez un newfs pour chacune des partitions :
#newfs /dev/rdsk/c0t0d0s0 #newfs /dev/rdsk/c0t0d0s7
Vos espaces sont prêts, il ne reste plus qu’à restaurer les data.
Restauration depuis les bandes
Insérez et rembobinez la bonne bande :
# mt –t /dev/rmt/0cn rew
Montez le slice 0 sous /mnt :
# mount /dev/dsk/c0t0d0s0 /mnt
Restaurez via ufsrestore en vous positionnant -attention très important- sous l’espace cible. Certaines questions vous seront posées à la fin, comme le next volume, le owner mode, et parfois, quand les data sont déjà présentes, une confirmation.
# cd /mnt # ufsrestore xvf /dev/rmt/0n Specified next volume: 1 Set owner mode for ‘.’? y Directories already exist, set nodes anyway? y
Même chose pour toutes les autres partitions, pour ma part donc, j’attaque /data:
# mount /dev/dsk/c0t0d0s7 /mnt/data # cd /mnt/data # ufsrestore xvf /dev/rmt/0n Specified next volume : 1 Set owner mode for ‘.’? y Directories already exist, set nodes anyway? y
Vos data ont été restaurées.
Restauration depuis les fichiers data
Si vous n’avez / ne voulez pas passer par le lecteur de bande, et que du coup vous avez stocké vos dumps sur un serveurs nfs, c’est un peu différent.
Commencez par monter le partage nfs :
# mount nfsserv:/data /var/tmp
Montez la partition cible sur laquelle on veut restaurer :
# mount /dev/dsk/c0t0d0s0 /mnt
Lancez la restauration de / :
# cd /mnt # ufsrestore xvf /var/tmp/rootdmp Specified next volume : 1 Set owner mode for ‘.’? y Directories already exist, set nodes anyway? y
Même chose pour la partition du slice 7, /data :
# mount /dev/dsk/c0t0d0s7 /mnt/data # cd /mnt/data # ufsrestore xvf /var/tmp/datadmp Specified next volume: 1 Set owner mode for ‘.’? y Directories already exist, set nodes anyway? y
Il ne reste plus qu’à installer le bootblk sur c0t0d0s0 :
# cd /mnt/usr/platform/`uname –m`/lib/fs/ufs # installboot bootblk /dev/rdsk/c0t0d0s0
Et à rebooter. Bien entendu, coupez le réseau pour éviter les conflits d’ip dans le cas où le master est toujours connecté au réseau. Vous pourrez ensuite modifier ces paramètres afin de pouvoir connecter les 2 serveurs sur le même réseau.