Um galego no Império Pequeno

Além da linha inimiga

June 11th, 2008 at 8:42 am

Mirror de 2 discos, utilizando Solaris Volume Manager

Como fazer um mirror entre 2 discos internos, com o Solaris Volume Manager (ou Disk Suite en versiones anteriores a solaris 9). Provado em Solaris 8, Solaris 9 e Solaris 10.

No exemplo, o servidor tem 2 discos internos de 72 gb.

Usaremos o disco c1t0d0 como disco primario e o c1t1d0 como disco de mirror.

O primeiro passo é executar o comando format para ver o nome dos discos.

  1.  format
    AVAILABLE DISK SELECTIONS:
           0. c1t0d0
              /pci@1c,600000/scsi@2/sd@0,0
           1. c1t1d0
              /pci@1c,600000/scsi@2/sd@1,0
    Specify disk (enter its number):
  2. Escolhemos o disco a verificar, e digitamos part e depois print, para ver as partições usadas no disco escolhido.
    O disco c1t0d0, tem 3 partições usadas, a slice 0 para o fs /, a slice 1 para o swap e a slice 3 para o fs /u00. Precisam-se pelo menos 2 State Database Replicas por disco. O State Database é onde se armazenam os dados de configuraçom e informaçom de Disksuite ou Solaris Volume Manager.
    Por isso utilizaremos a slice 6 e 7 do disco, com 25 mb para cada slice. Para esta tarefa utilizamos o comando format.
  3. Depois copiamos toda a informaçom do disco c1t0d0 (slices, tamanho,etc) no disco que se vai usar como mirror, neste caso o c1t1d0
    prtvtoc /dev/rdsk/c1t0d0s2 | fmthard -s - /dev/rdsk/c1t1d0s2
    Verificamos que se realizou correctamente com format.
  4. Depois de isso, criamos os state databse replicas fazendo
     metadb -a -f -c 2 /dev/dsk/c1t0d0s6 /dev/dsk/c1t1d0s6
     metadb -a -f -c 2 /dev/dsk/c1t0d0s7 /dev/dsk/c1t1d0s7

    onde -a significa adding
    -f significa force, porque é a primeira vez que se criam as bases.
    -c 2 ( com um espaço entre o ‘c’ e o ‘2’), significa que cria 2 databases em cada slice.

    metainit -f d10 1 1 c1t0d0s0
    
    metainit -f d20 1 1 c1t1d0s0
    
    metainit d30 -m d10
  5. Fazemos copia do ficheiro /etc/vfstab original
     cd /etc
     cp vfstab vfstab.antesdeponher.DiskSuite
     more vfstab
    #device         device          mount           FS      fsck    mount   mount
    #to mount       to fsck         point           type    pass    at boot options
    #
    fd      -       /dev/fd fd      -       no      -
    /proc   -       /proc   proc    -       no      -
    /dev/dsk/c1t0d0s1       -       -       swap    -       no      -
    /dev/dsk/c1t0d0s0       /dev/rdsk/c1t0d0s0      /       ufs     1       no      -
    swap    -       /tmp    tmpfs   -       yes     -
  6. Com o comando metaroot adicionamos no vfstab o metadevice d30 que será o novo ponto de montagem do filesystem / ( root)
     metaroot d30
    cat /etc/vfstab
    #device         device          mount           FS      fsck    mount   mount
    #to mount       to fsck         point           type    pass    at boot options
    #
    fd      -       /dev/fd fd      -       no      -
    /proc   -       /proc   proc    -       no      -
    /dev/dsk/c1t0d0s1       -       -       swap    -       no      -
    /dev/md/dsk/d30 /dev/md/rdsk/d30        /       ufs     1       no      -
    swap    -       /tmp    tmpfs   -       yes     -
  7. Seguimos com o mirror das demais slices
     metainit -f d11 1 1 c1t0d0s1
     metainit -f d21 1 1 c1t1d0s1
     metainit d31 -m d11
    
     metainit -f d12 1 1 c1t0d0s3
     metainit -f d22 1 1 c1t1d0s3
     metainit d32 -m d12
  8. Com o seguinte comando, criamos um hotspare pool, deste jeito evitamos warnings no messages. metainit hotsp01
  9. Adicionamos no vfstab todos os fs que ficarom com disksuite como por exemplo oslice 3 que é o /u00 /dev/md/dsk/d32 5271150 9 5218430 1% /u00
  10. reiniciamos
    lockfs -fa
    init 6
  11. e continuamos com a última parte do mirror: fazer attach dos submirrors ao mirror
    metattach d30 d20
    metattach d31 d21
    metattach d32 d22

    Por ultimo, instalamos o sector de arrinque no disco que será utilizado como mirror, e seteamos parámetros na eeprom com o comando eeprom

    installboot /usr/platform/`uname -i`/lib/fs/ufs/bootblk /dev/rdsk/c1t1d0s0
    eeprom "boot-device=disk0 disk1"
    eeprom use-nvramrc?=false
Tags: , , , ,
-

Comments are closed.