Creation d'un Raid 1 (mirroring) sous Solaris
Contents
- 1 Introduction
- 2 Déroulement
- 3 Création d'une petite partition pour les metadonné
- 4 Copie de la table de partition sur le 2e disque
- 5 Création de base de donnée metadonnée pour DiskSuite
- 6 création des sous mirroir
- 7 Edition du fichier vfstab
- 8 Attachement des mirroir aux sous mirroirs
- 9 création des alias des mirroirs
- 10 Ajout des mirrois au boot device
- 11 Ressources
1 Introduction
Le système Solaris intègre le package DiskSuite qui permet de faire du raid1 d'un filesystem en UFS grace à LVM, ce tuto explique comment y arriver. Il va de soit qu'il faut deux disques de meme capacité...
2 Déroulement
Voila les étapes nécessaires :
Unez fois qu'on est prêt à Mirrorer un disque, on affiche ses partitions avec la commande format :
Format Searching for disks...done AVAILABLE DISK SELECTIONS: 0. c1t0d0 <SUN146G cyl 14087 alt 2 hd 24 sec 848> root /pci@0/pci@0/pci@2/scsi@0/sd@0,0 1. c1t1d0 <HITACHI-H101414SCSUN146G-SA25-136.73GB> /pci@0/pci@0/pci@2/scsi@0/sd@1,0
On choisit le 1er disque (si c'est celui qui sera dupliquer), puis :
format>partition
et on affiche la table des partitions avec "p" :
partition> p Volume: root Current partition table (original): Total disk cylinders available: 14087 + 2 (reserved cylinders) Part Tag Flag Cylinders Size Blocks 0 root wm 0 - 14086 136.71GB (14087/0/0) 286698624 1 unassigned wm 0 0 (0/0/0) 0 2 backup wm 0 - 14086 136.71GB (14087/0/0) 286698624 3 unassigned wm 0 0 (0/0/0) 0 4 unassigned wm 0 0 (0/0/0) 0 5 unassigned wm 0 0 (0/0/0) 0 6 unassigned wm 0 0 (0/0/0) 0 7 unassigned wm 0 0 (0/0/0) 0
Remarque : Sous Solaris comme sou BSD, la 3e partition (no2) est en fait l'ensemble du disque.
Donc maintenant on a une vue sur nos partitions existantes...
2.1 UFS
IMportant : Il faut créer une petit partition d'environ 20mb qui accueillera les "metadata" concernant le raid1. Ces metadata seront les donnée utilisé par DiskSuite.
La première étape sera de copier la table des partitions du 1er disque sur le 2e.
Puis on créera des base de donnée pour les metadonnées.
Puis nous déciderons manuelement de choisir quelle partition sera mirrorée en créant des sous mirroirs.
On changera le vfstab (le fichier qui indique quelle partition monte ou?).
on attachera les sous mirroir à un mirroir.
On créera des alias des mirroirs.
On ajoutera cet alias au "boot-device".
2.2 ZFS
Nous allons simplement créer une partition identique à celle sur le disque master. et la mettre en root.
Passez directement à Copie de la table de partition sur le 2e disque
3 Création d'une petite partition pour les metadonné
partition> p Volume: root Current partition table (original): Total disk cylinders available: 14087 + 2 (reserved cylinders)
Part Tag Flag Cylinders Size Blocks
0 root wm 0 - 14086 136.71GB (14087/0/0) 286698624 1 unassigned wm 0 0 (0/0/0) 0 2 backup wm 0 - 14086 136.71GB (14087/0/0) 286698624 3 unassigned wm 0 0 (0/0/0) 0 4 unassigned wm 0 0 (0/0/0) 0 5 unassigned wm 0 0 (0/0/0) 0 6 unassigned wm 0 0 (0/0/0) 0 7 unassigned wm 0 0 (0/0/0) 0
</syntaxhighlight>
On rentre le numero de la partition à éditer et "Entrer" On choisit le tag "unassigned" flag : vm size : 20mb
puis on quitte :
label
4 Copie de la table de partition sur le 2e disque
prtvtoc /dev/rdsk/c0t0d0s2 | fmthard -s - /dev/rdsk/c0t1d0s2
Utilisez le 2ème slice pour indiquer tout le disque.
5 Création de base de donnée metadonnée pour DiskSuite
metadb -a -f -c2 /dev/dsk/c0t0d0s3 /dev/dsk/c0t1d0s3
ATTENTION à choisir sur les deux disques la bonne lettre de partition (la petite qu'on a créer)
6 création des sous mirroir
6.1 UFS
Imaginons qu'on souhaite mirrorer les 6 partitions du disque (excepté le swap) par exemple / /usr /var /opt /home et /etc
Commencons par le / (root partition) :
metainit -f d10 1 1 c0t0d0s0 metainit -f d20 1 1 c0t1d0s0 metainit d0 -m d10 metaroot d0 (Use this command only on the root slice!)
ATTENTION à entrer les bon noms de disque. Donc là on a associé la partition contenant le / sur le 1er disque à la parition mirroir qui sera sur le 2e disque, puis on a indiqué que la 1er partition sera le maitre, puis on a spécifié que c'était la partition root.
Il faut faire ca pour chaque partition (excepté la dernière commande)
Pour le /usr :
metainit -f d11 1 1 c0t0d0s1 metainit -f d21 1 1 c0t1d0s1 metainit d1 -m d11
Pour le /var :
metainit -f d14 1 1 c0t0d0s4 metainit -f d24 1 1 c0t1d0s4 metainit d4 -m d14
Pour le /opt :
metainit -f d15 1 1 c0t0d0s5 metainit -f d25 1 1 c0t1d0s5 metainit d5 -m d15
Pour le /etc :
metainit -f d16 1 1 c0t0d0s6 metainit -f d26 1 1 c0t1d0s6 metainit d6 -m d16
Pour le /home :
metainit -f d17 1 1 c0t0d0s7 metainit -f d27 1 1 c0t1d0s7 metainit d7 -m d17
On peut voir les metadonnée avec la commande
metastat
6.2 ZFS
zpool attach -f rpool c0t0d0s0 c0t1d0s0
Une fois terminé, c'est bon ! Vous pouvez vous arrêter là, c'est fini pour le ZFS
7 Edition du fichier vfstab
vi /etc/vfstab
Dorénavant le vsftab ne pointera plus sur un disque mais sur une grappe, voici les lignes à éditer:
Avant, pour le / : /dev/md/dsk/d30 /dev/md/rdsk/d30 / ufs 1 no logging Après, pour le / : /dev/md/dsk/d0 /dev/md/rdsk/d0 / ufs 1 no logging
d0 sera la partition pour le /, puis d1, d2, d3, etc...
A ce moemnt là on peut redemarrer avec ces deux commandes successivement :
lockfs -fa init 6
8 Attachement des mirroir aux sous mirroirs
metattach d0 d20 metattach d1 d21 metattach d4 d24 metattach d5 d25 metattach d6 d26 metattach d7 d27
ces commandes lanceront la synchonisation des mirroir et sous mirroir entre eux, on peut voir l'avancement avec "metastat".
Puis on change le crash dump :
dumpadm -d `swap -l | tail -1 | awk '{print $1}'`
9 création des alias des mirroirs
Il nous faut connaitre le chemin absolu du disque mirrorré
ls -l /dev/dsk/c0t1d0s0 lrwxrwxrwx 1 root root 50 Jan 16 10:20 /dev/rdsk/c0t1d0s0 -> ../../devices/pci@1f,0/pci@1,1/ide@3/dad@1,0:a
Avec ca on va créer un alias pour le mirroir, en remplacant le "dad" par "disk":
eeprom "nvramrc=devalias mirror /pci@1f,0/pci@1,1/ide@3/disk@1,0:a" eeprom "use-nvramrc?=true"
10 Ajout des mirrois au boot device
eeprom "boot-device=disk mirror net"
Puis si l'on a que 2 disque, il faut rajouter cette ligne au fichier /etc/system :
set md:mirrored_root_flag = 1
11 Ressources
http://www.brandonhutchinson.com/Mirroring_disks_with_DiskSuite.html