Mirror de 2 discos, utilizando Solaris Volume Manager
Posted in Solaris on June 11th, 2008Como 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.
-
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): - 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. - 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. - 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
- Fazemos copia do ficheiro
/etc/vfstaboriginalcd /etc cp vfstab vfstab.antesdeponer.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 -
- 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 -
- 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
- Com o seguinte comando, criamos um hotspare pool, deste jeito evitamos warnings no messages. metainit hotsp01
- 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 - reiniciamos
lockfs -fa init 6
- 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
chúzame - 
