Introduction

Ayant depuis peu installé solaris sur un serveur, et ne connaissant pas bien solaris, j’ai utilisé l’installation standard. Or l’installeur ne propose pas la création d’un volume raid sans utiliser jumpstart.

Je vous propose donc de guider vos pas, permettant la migration d’un système de fichier racine standard, vers un système de fichier géré par SVM (Sun Volume Manager), en raid 1 (miroir).

ATTENTION NE PAS UTILISER CETTE PROCEDURE SI VOUS AVEZ UN /boot DANS UNE PARTITION A PART!

Par la pratique

La première étape consiste à préparer les disques dur. Pour que SVM puisse fonctionner, il faut déja qu’il existe un slice d’une taille identique sur les 2 disques dur. (ou les n disques ;)). Ensuite, il lui faut un espace pour stocker sa base de donnée metadb(1M). (afin de connaître la configuration de votre SVM).

Création d'une base de donnée metadb

C’est la le plus difficile, et le plus risqué: il faut modifier les slices Solaris avec format(1M).

# format
AVAILABLE DISK SELECTIONS:
       0. c1d0 <DEFAULT cyl 60797 alt 2 hd 255 sec 63>  samsung5
          /pci@0,0/pci-ide@1f,2/ide@0/cmdk@0,0
       1. c2d0 <DEFAULT cyl 60797 alt 2 hd 255 sec 63>
          /pci@0,0/pci-ide@1f,2/ide@1/cmdk@0,0

Ici, c’est mon c1d0 qui doit être répliqué sur c2d0. (enfin, juste un slice hein ;))

On commence par créer un espace de stockage pour les metadb sur le disque 1.

format> partition
partition> print
Current partition table (original):
Total disk cylinders available: 60797 + 2 (reserved cylinders)

Part      Tag    Flag     Cylinders         Size            Blocks
  0 unassigned    wm   56972 - 60796       29.30GB    (3825/0/0)   61448625
  1       swap    wu   56711 - 56971        2.00GB    (261/0/0)     4192965
  2     backup    wm       0 - 60796      465.73GB    (60797/0/0) 976703805
  3 unassigned    wm       2 -     4       23.53MB    (3/0/0)         48195
  4 unassigned    wm       5 - 56704      434.34GB    (56700/0/0) 910885500
  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
  8       boot    wu       0 -     0        7.84MB    (1/0/0)         16065
  9 alternates    wu       1 -     2       15.69MB    (2/0/0)         32130

C’est ici que ça deviens intéressant:

  • 0, c’est mon slice /, celle que je vais mirrorer
  • 1, c’est explicite non ?
  • 2, c’est un slice nécessaire a solaris, ne pas toucher :) (c’est le slice c sous *BSD)
  • 3, c’est le slice dédié aux metadb (C’est ça que je viens de créer)
  • 4, c’est un slice pour mon ZFS.

Mes connaissances sont encore trop limitées pour vous expliquer le 8 et le 9, qui sont des partition spéciales...

J’ai pu créer les 2 slices car j’avais prévu de le faire. Si vous n’avez pas assez d’espace pour créer le slice metadb(1M), alors, vous pouvez utiliser swap(1M) -s pour retirer le slice swap du système, puis redimentionner votre swap, et enfin créer le slice metadb.

La taille du metadb(1M) est petite, 15mb suffisent largement.

Chose importante à retenir: la taille du slice contenant le système de fichier racine: (60796 - 56972) = 3824 cylindres.

Ok, c’est modifié, un pti coup de “““label”““, et c’est écrit sur le disque. je vous laisse vous familiariser un peu avec format(1M) afin de faire la même opération, sur le disque principal.

L’heure est venue d’utiliser notre slice afin d’y stocker la fameuse base metadb(1M).

metadb -f -a -c 2 c1d0s3 c2d0s3

Référez vous au manuel de metadb(1M) pour plus d’informations.

Here we go: création du volume raid 1

Bon, aller, on considère que vous avez créer vos 2 metadb(1M), que vous avez des slices identiques en taille sur les 2 disques dur, et que les slices à utiliser sont:

  • c1d0s0 pour le rootfs
  • c2d0s0 pour le nouveau slice de taille identique au rootfs.

Création du volume raid 1 à l’aide de metainit(1M)

# metainit -f d1 1 1 c1d0s0
# metainit d2 1 1 c2d0s0
# metainit d0 -m d1

(Toujours pareil, référez vous au manuel pour comprendre les options)

Notre raid 1 est créer. Nous reste à dire a solaris de l’utiliser comme système racine.

# metaroot d0

Ouahh, on est prêt pour le reboot ?

# reboot

Bon, en théorie, votre système redémarrer en utilisant ““/dev/md/dsk/d0”” comme device pour ““/”“.

Ok, il ne reste plu qu’a re-synchroniser le raid 1:

# metattach d0 d2

Vérifier le status de son SVM

# metastat
d0: Mirror
    Submirror 0: d1
      State: Okay         
    Submirror 1: d2
      State: Okay         
    Pass: 1
    Read option: roundrobin (default)
    Write option: parallel (default)
    Size: 61448625 blocks (29 GB)

d1: Submirror of d0
    State: Okay         
    Size: 61448625 blocks (29 GB)
    Stripe 0:
        Device   Start Block  Dbase        State Reloc Hot Spare
        c1d0s0          0     No            Okay   Yes 


d2: Submirror of d0
    State: Okay         
    Size: 61448625 blocks (29 GB)
    Stripe 0:
        Device   Start Block  Dbase        State Reloc Hot Spare
        c2d0s0          0     No            Okay   Yes 


Device Relocation Information:
Device   Reloc  Device ID
c2d0   Yes      id1,cmdk@ASAMSUNG_HD501LJ=S0MUJ2MP811962
c1d0   Yes      id1,cmdk@ASAMSUNG_HD501LJ=S0MUJ2MP811961

TODO: Monitorer éfficacement son SVM

Liens utiles

 
docs/migration_raid_1_pour_le_systeme_de_fichier_racine.txt · Dernière modification: 30/09/2007 13:09 par ed