sexta-feira, 17 de julho de 2009

Recuperando DumpDevice com Soalris 10 e VxVM 5.0

Esta semana enfrentei o seguinte problema. Instalei Solaris 5/09 com VxFS e VxVM 5.0 + patchs e após encapsular o disco eu perdi o dump device.
Tentava adicionar o dump device e tomada o seguinte erro.

root@sandbox # dumpadm -d /dev/dsk/c0t0d0s1
dumpadm: no swap devices could be configured as the dump device

root@sandbox # dumpadm
Dump content: kernel pages
Dump device: none (dumps disabled)
Savecore directory: /var/crash/sandbox
Savecore enabled: yes

A solução encontrada foi simplesmente desencapsular e reencapsular os discos novamente. Segue o passo-a-passo


1. Se a maquina possuir zonas, desabilite o boot
# zonecfg -z "hostname" set autoboot=false

2. Desative a máquina e inicialize pelo DVD/Rede
init 0

setenv local-mac-address? false

boot jumpstart0 -s

3. Desencapsule o disco

mount /dev/dsk/c0t0d0s0 /a

cp /a/etc/vfstab /a/etc/vfstab.vxvm20090717
cp /a/etc/vfstab-INSTALL /a/etc/vfstab

cp /a/etc/system /a/etc/system.vxvm20090717

TERM=vt100
export TERM
vi /a/etc/system

3.1 Comente essas linhas em /etc/system

"rootdev:/pseudo/vxio@0:0"
"set vxio:vol_rootdev_is_volume=1"

rm /a/etc/vx/reconfig.d/state.d/root-done

touch /a/etc/vx/reconfig.d/state.d/install-db

umount /a

init 0

4. Saque o disco espelho por segurança

5. Reconfigure o dump device

boot

dumpadm -d /dev/dsk/c0t0d0s1

6. Retorne o encapsulamento do disco

cp /etc/vfstab.vxvm20090717 /etc/vfstab
cp /etc/system.vxvm20090717 /etc/system

rm /etc/vx/reconfig.d/state.d/install-db

touch /etc/vx/reconfig.d/state.d/root-done

zonecfg -z prd151 set autoboot=true

init 0

7. Pronto! problema resolvido

setenv local-mac-address? true

boot

root@prd191 # dumpadm
Dump content: kernel pages
Dump device: /dev/dsk/c0t0d0s1 (dedicated)
Savecore directory: /var/crash/prd191
Savecore enabled: yes

quarta-feira, 1 de julho de 2009

SOLARIS - ufsdump and ufsrestore a root filesystem under VERITAS Volume

Procedimento muito útil, quem usa Veritas fatalmente irá fazer isso um dia:

Step-by-step procedure for ufsdump and ufsrestore of VM encapsulated root disk


Document Body:

PROCEDURE FOR UFSDUMP AND RESTORE OF VM ENCAPSULATED ROOT DISK

assumptions:

1. /etc/vx/reconfig.d/disk.d/cxtxdx/vtoc has been recorded.

OR:

2. A copy of the pre-encapsulation partition map has been recorded.

3. There is a local tape drive

4. Partitions are:
/ 0
swap 1
/usr 5
/var 6
/opt 7

Dump all filesystems to a single tape:

Boot into single-user mode

ok> boot -s

As root:

# ufsdump 0uf /dev/rmt/0n /
# ufsdump 0uf /dev/rmt/0n /usr
# ufsdump 0uf /dev/rmt/0n /var
# ufsdump 0uf /dev/rmt/0 /opt

The above commands will create four ufsdump files on the tape.

SECTION 1- RESTORING FILESYSTEMS FROM TAPE

IN THE EVENT OF A CATASTROPHIC ROOT DISK FAILURE USE THE FOLLOWING
TO RESTORE THE FILESYSTEMS AND BOOT THE SYSTEM.

The following is a quick routine for restoring your file system. This
procedure assumes that you saved your root file system using ufsdump.
This document also assumes that your root filesystem is on c0t3d0s0.

1. Load your Solaris CD-ROM into your CD-ROM player.

2. Boot the CDROM in single-user mode:

ok boot cdrom -sw

3. When you get the Bourne shell prompt, repartition your root file
system using the previously saved pre-encapsulation partition map.

a. use "format" to partition your drive as it was before encapsulation
/etc/vx/reconfig.d/disk.d/cxtxdx/vtoc holds this information

b. use "newfs" to create a file system on c0t3d0s0
example" newfs /dev/rdsk/c0t3d0s0

4. Check your new root file system:

# fsck /dev/rdsk/c0t3d0s0

5. Mount the root file system at your /a mount point:

# mount /dev/dsk/c0t3d0s0 /a

6. Start your restore, but first change directory to the new root file system:

a. cd /a

b. ufsrestore rvf /dev/rmt/0

b. vxrestore -crvf /dev/rmt/0

7. When the restore has completed, remove the restore symbol table and
unmount the new root partition:

a. rm restoresymtable

b. cd /

c. umount /a

8. Check the new root partition one more time:

# fsck /dev/rdsk/c0t3d0s0

9. Install the boot block:

# For Solaris 2.5, 2.5.1, 2.6, 7, or 8

a. cd /usr/platform//lib/fs/ufs

b. To get type uname -i. Or to make things even
easier, embed it in the cd command like this:

* cd /usr/platform/`uname -i`/lib/fs/ufs

* Make sure you are using back quotes around the command.

c. installboot bootblk /dev/rdsk/c0t3d0s0

To restore other filesystem partitions ( usr, var, etc...), follow
steps 3.b-8

SECTION 2 - USING THE MT COMMAND TO FIND THE APPROPRIATE FILES ON TAPE:

TO ACCESS EACH FILE ON THE TAPE YOU MUST ISSUE THE FOLLOWING COMMANDS
WITH THE *n* (no rewind) SWITCH

to access the second file:

# mt -f /dev/rmt/0n fsf 1
(this skips the first file and stops
at the bennining of the second file)

# mt -f /dev/rmt/0 rewind
(to rewind tape to the beginning)
I rewind after each restore so that I don't lose track of which
data I am accessing.

# mt -f /dev/rmt/0n fsf 2
(to access the third file...and so on)

Restore and check each filesystem


DO NOT REBOOT YET!


SECTION 3 - REMOVE THE FILESYSTEMS FROM VOLUME MANAGER CONTROL

Unencapsulate the newly restored disk

Still booted from cdrom......

# mount /dev/dsk/c0t3d0s0 /a

# vi /a/etc/system

remove all rootdev statements

# touch /a/etc/vx/reconfig.d/state.d/install-db

# rm /a/etc/vx/reconfig.d/state/root-done

# cp /a/etc/vfstab.prevm /a/etc/vfstab

VERIFY THAT THE PARTITION MAP IS THE ORIGINAL PRE-ENCAPSULATION MAP
AND THAT /ETC/VFSTAB IS CORRECT.

# umount /a

# fsck /dev/rdsk/c0t3d0s0

REBOOT

# reboot

SECTION 4 - RE-ENCAPSULATE THE ROOT DISK THEN RE-MIRROR

Procedure for encapsulating the rootdisk without going through the
sometimes lengthy process of running 'vxinstall'.

This procedure should NOT be used if you have an existing rootdg
diskgroup that you want to preserve, since this procedure creates
a *new* rootdg diskgroup containing only the encapsulated root disk.


Document Body: Top

MANUALLY ENCAPSULATING THE ROOT DISK - FROM THE COMMAND LINE

# vxiod set 10

For ver 3.2 you will need to modload vxdmp:
# modload /kernel/drv/vxdmp
or
# modload /kernel/drv/sparcv9/vxdmp

# vxconfigd -m disable -k

# vxdctl init

# vxdg init rootdg

# /usr/lib/vxvm/bin/vxencap rootdisk=c#t#d#

* If there was another disk in rootdg, use fmthard to remove the
public and private regions (be very careful with fmthard):
# fmthard -d 4:0:0:0:0 /dev/rdsk/c#t#d#s2
# fmthard -d 3:0:0:0:0 /dev/rdsk/c#t#d#s2

# init 0

* Make sure your boot-device is set correctly

ok boot

-------------------------------------------------------------------------------------------------------------------------------------------------------------

SOLARIS - opções do boot (ok) - SPARC

ok> boot -> boot normal no disco default de root

ok> boot -r -> reconfiguração dos devices (/dev e /devices)

ok> boot -x -> boot fora do modo de cluster

ok> boot -a -> boot interativo

ok> boot -v -> boot em modo verbose

ok> boot -m verbose -> mostra passo-a-passo os processos iniciados pelo SMF


Essas opções podem ser combinadas: boot -arvm verbose

SOLARIS - tar remoto

Abaixo uma forma confiável de copiar dados entre dois servidores mantendo suas propriedades.

cd /< diretorio fonte >; tar cvf - . | ( rsh < ip do destino > "cd /< diretorio destino >; tar xvf -" )

Na máquina que vai receber os dados o arquivo .rhosts deve conter o hostname
da máquina que está enviando os dados.

SOLARIS - Recriando árvore de devices pelo CD-ROM

Remove the old path_to_inst file:

# mv /mnt/etc/path_to_inst /mnt/etc/orig.path_to_inst

Remove all the old device links:

# rm /mnt/dev/rdsk/c* ; rm /mnt/dev/dsk/c* ; rm /mnt/dev/rmt/*

Rebuild the device structure using the devfsadm command:

# devfsadm -r /mnt -p /mnt/etc/path_to_inst

quinta-feira, 25 de junho de 2009

Solaris Zones - Clonando uma Zona

Mais um passo-a-passo sobre zonas!

Lembrem-se que o comentário de vocês é muito importante!!! É bastante legal ouvir se o material que estamos postanto está sendo útil ou se precisa ser ajustado.

1. Crie o diretório que irá receber a zona Clone
# mkdir /export/zone3

2. Crie um repositório para arquivos de configuração de zonas
# mkdir /export/zone_configs

3. Monte o File System desejado no diretório /export/zone3
No caso do exemplo será utilizado o slice 5 do disco

- Adição de uma linha em /etc/vfstab
/dev/dsk/c0d0t0s5 /dev/rdsk/c0d0t0s5 /export/zone3 ufs 1 yes -
- montagem do FS
# mount /export/zone3

Obs: Esta tarefa varia de acordo com a necessidade, podem também serem utilizados um volume de VxVM ou uma Soft Partition se SVM estiver sendo utilizado.

4. Altere as permissões do File system que irá receber a zona clone
# chmod 700 /export/zone3

5. Desative a zona que será clonada
# zoneadm -z zone2 halt

6. Verifique se a zona está no estado "installed"
# zoneadm list -iv

7. Faça um export das configurações da zona que será clonada para o repositório de arquivos de configuração de zonas
# zonecfg -z zone2 export -f /export/zone_configs/master

8. Edite o arquivo /export/zone_configs/master de acordo com sua necessidade
- Exemplos: trocar zonepath (essencial!!!), IP, FS, etc.

9. Crie uma nova zona utilizando o arquivo /export/zone_configs/master editado
# zonecfg -z zone3 -f /export/zone_configs/master

10. Execute o clone
# zoneadm -z zone3 clone zone2

11. Verifique o status da nova zona
# zoneadm list -iv

Solaris Zones - Removendo Zona

Um passo-a-passo detalhado para ninguém esquecer de nada!

1. Pare a zona que será removida
# zoneadm -z zone1 halt

2. Vefirique o estado da zona (deve estar no estado "installed")
# zoneadm list -cp

3. Execute a desinstalação
# zoneadm -z zone1 uninstall

4. Vefirique o estado da zona (deve estar no estado "configured")
# zoneadm list -cp

5. Delete as configurações da zona
# zonecfg -z zone1 delete

4. Vefirique o estado da zona (a zona deletada não deve mais ser listada)
# zoneadm list -cp

sábado, 16 de maio de 2009

Problema ao Re-espelhar o disco de Boot VxVM 4.1

Quando o Veritas tem problemas para espelhar o disco de boot a melhor coisa é refazer o espelho do zero!

Faça o seguinte:

1) Identifique o disco espelho:
vxdisk -e list


2) Retire todos os plex relacionado a este disco:

vxplex -g rootdg -o rm dis < nome do plex >

3) Uma vez todos os plex retirados, retire o disco da configuracao do Veritas

vxdiskadm --> escolha a opcao 3) Remove a Disk

4) Reinicie o disco

vxdisksetup -if < disco espelho > format=sliced

5) Adicione o novo disco no rootdg

vxdg -g rootdg adddisk < disco espelho >

6) Refaça o espelhamento do volume rootvol

vxrootmir < disco espelho > -> aconselho rodar isso em background (&)

7) Refaça o espelhamento dos outros volumes

vxassist -g rootdg mirror < volume > < disco espelho >

quarta-feira, 6 de maio de 2009

Criar um novo DG e File System (VxFS) no Sun Cluster 3.1

1. Selecione um disco:

# vxdisk -e list
Disk_10 auto - - online c4t274d0s2



2. Configure o disco usando o VxVM:

# vxdisksetup -i < nome_do_disco > format=sliced

Usando a saida do vxdisk -e list acima teriamos o seguinte exemplo:

# vxdisksetup -i Disk_10 format=sliced

Obs: caso você não utilize a opção format, o disco utilizará por padrão a formatação CDS



3. Criar um novo DG com o disco configurado:

# vxdg init < nome_do_dg > < disco > cds=off

Usando o exemplo acima:

# vxdg init testedg Disk_10 cds=off

Obs: Caso você utilize a formatação sliced, você deverá utilizar a opção cds=off



4. Criar um novo volume:

# vxassist -g < nome_do_dg > make < nome_do_volume > < tamanho >

Usando o exemplo acima:

# vxassist -g testedg make testevol 20g



5. Cadastrar o DG no Cluster

# scconf -a -D type=vxvm,name=< nome_do_dg >,nodelist=< node1 >:< node2 >

Usando o exemplo acima:

# scconf -a -D type=vxvm,name=testedg,nodelist=node1:node2

Obs: Esse é um passo importante do procedimento. Para ter acesso aos volumes de um determinado DG quando estamos em um ambiente de Cluster, é preciso que o DG esteja cadastrado.



6. Criar um File System no novo Volume:

# mkfs -F < tipo_do_file_system > /dev/vx/rdsk/< nome_do_dg >/< nome_do_volume >

Usando o exemplo acima:

# mkfs -F vxfs /dev/vx/testedg/testevol



7. Cria um mount point para o novo File System

# mkdir < mount_point >

Usando o exemplo acima:

# mkdir /teste


8. Adiciona o File System no arquivo /etc/vfstab

/dev/vx/dsk/testedg/testevol /dev/vx/rdsk/testedg/testevol /teste vxfs 2 yes -

terça-feira, 5 de maio de 2009

Desencapsular disco de boot - VxVM

SOLARIS - Desencapsular o disco de boot

1. Alterar o arquivo "/etc/vfstab"
# cp /etc/vfstab /etc/vfstab.vxvm
# vi /etc/vfstab

Todos os filesystems mantidos no arquivo "/etc/vfstab" necessariamente deverão possuir suas partições físicas criadas em seus respectivos discos. Se não for o caso, usar o comando vxmksdpart para criar tais partições.

Ou:
Copiar para o /etc/vfstab o original.


2. Alterar o arquivo "/etc/system"
# cp /etc/system /etc/system.vxvm
# vi /etc/system

"rootdev:/pseudo/vxio@0:0"
"set vxio:vol_rootdev_is_volume=1"


3. Remover o arquivo "/etc/vx/reconfig.d/state.d/root-done"
# rm /a/etc/vx/reconfig.d/state.d/root-done


4. Criar o arquivo "/etc/vx/reconfig.d/state.d/install-db"
# touch /a/etc/vx/reconfig.d/state.d/install-db


5. Boot sem Volume Manager
# shutdown -y -g0 -i0
# boot -x

Para retornar o VxVm:

1. Restaurar o arquivo "/etc/vfstab"
# cp /etc/vfstab.vxvm /etc/vfstab

2. Restaurar o arquivo "/etc/system"
# cp /etc/system.vxvm /etc/system

3.Remover o arquivo "/etc/vx/reconfig.d/state.d/install-db"
# rm /etc/vx/reconfig.d/state.d/install-db

4.Criar o arquivo "/etc/vx/reconfig.d/state.d/root-done"
# touch /etc/vx/reconfig.d/state.d/root-done

A Equipe

Ney Theodoro Medici Bermudes Filho

Trabalha como consultor da Sun Professional Services desde 2007, possui certificações de Administração de Sistema Operacional (SCSA), Redes (SCNA) e Solaris Cluster 3.2 pela Sun e atualmente é estudande de mestrado do Departamente de Informática da UFES (Universidade Federal do Espírito Santo).


Tedesko Duda Deps Almeida

Consultor da Sun Professional Services desde 2006, possui certificações de Administração de Sistema Operacional (SCSA). Atua como lider técnico na Sun Professional Services. Larga experiência com Cluster, Veritas e Solaris.

O Blog

Virou noite em cima do servidor? Teve que colocar foto de santo na lateral do rack? Achou um problema que ninguém no universo tinha encontrado? Este é o seu lugar!
Chega de bater cabeça!
É um blog feito por consultores de T.I. que passam por esses problemas constantemente e acham que todo mundo merece uma boa noite de sono.
Vamos colocar aqui tutoriais, resolução de problemas e analises sobre novidades e alguns trabalhos pessoais.
Fique a vontade para participar e sugerir novos posts.