sexta-feira, junho 27

Instalando CentOS domU (Debian and CentOS dom0)

Já faz um tempo que utilizo o xen como ferramenta de virtualizacão para fins de desenvolvimento e em até producao. O melhor case é um server de virtualizacao de um Active Directory para cerca de mil usuarios junto com servidores linux com servicos de proxy, firewall, jboss, todos os guest's rodando em uma única máquina fisica. Desde aquele dia, tenho confiado no xen.
No Debian, sempre tive algumas dificuldades para instalar guests de outras Distros. Essa é a motivacao para escrever o artigo.
Vou considerar que você já possui o Xen instalado e funcionando, pelo menos para domU utilizando Debian.

Inicio
Estou utilzando o dvd do CentOS5, com Debian Etch, Xen3.0.3

1) Imagens para boot inicial
Para o boot inicial, é necessário os arquivos images/xen/initrd.img e images/xen/vmlinuz. Eles são responsáveis por iniciar o processo de instalacão do CentOS no DomU.

1.1) Arquivo de configuracao do xen (inicial)
Escolha uma das opcoes de disco, e descomente!
kernel = "/media/cdrom/images/xen/vmlinuz"
ramdisk = "/media/cdrom/images/xen/initrd.img"
# extra = "text ks=http://localserver/minimal-ks.cfg"
# bootloader = "/usr/lib/xen-3.0.3-1/bin/pygrub"
name = "centos"
memory = "256"
# disk = [ 'phy:/dev/vgscooby/xen_centos,xvda,w' ]
# disk = [ 'file:/xen/centos.iso,xvda,w' ]
vif = [ 'bridge=br0' ]
vcpus = 1
on_reboot = 'destroy'
on_crash = 'destroy'

xm create -c /etc/xen/centos

A instalacao inicia normalmente (modo texto). Utilizei NFS durante a instalacao, exportando /media/cdrom no Debian (Dom0).

Após a instalacao é necessário alterar o arquivo de configuracao do xen (/etc/xen/centos):
bootloader = "/usr/lib/xen-3.0.3-1/bin/pygrub"
name = "centos"
memory = "256"
disk = [ 'phy:/dev/vgscooby/xen_centos,xvda,w' ]
#disk = [ 'file:/xen/centos.iso,xvda,w' ]
vif = [ 'bridge=br0' ]
vcpus = 1
on_reboot = 'destroy'
on_crash = 'destroy'

2) Ai comecam os problemas
O bootloader tem um bug no debian id=390678 que exige a seguinte alteracao:
arquivo => /usr/lib/xen-3.0.2-1/lib/bin/pygrub
alterar isto => sys.path = [ '/usr/lib/python' ] + sys.path
alterar para => /usr/lib/xen-3.0.3-1/lib/python/

3) Instalar pacotes
Para compilar os passos abaixo é necessário os pacotes python2.4-dev e e2fslibs-dev

4) Baixar os fontes do Xen
http://bits.xensource.com/oss-xen/release/3.0.3-0/src.tgz/xen-3.0.3_0-src.tgz
Baixe e descompacte os fontes do Xen, eles são necessários para compilar um modulo do python utilizado pelo bootloader que não vem no Debian.

tar xvf xen-3.0.3_0-src.tar
cd xen-3.0.3_0-src/tools/pygrub
make
ls -la build/lib.linux-i686-2.4/grub/fsys/
total 16
drwxr-xr-x 3 root root 4096 2008-06-27 03:25 .
drwxr-xr-x 3 root root 4096 2008-06-27 03:25 ..
drwxr-xr-x 2 root root 4096 2008-06-27 03:25 ext2
-rw-r--r-- 1 root root 2072 2006-10-15 09:22 __init__.py

4.1) Copie todo o diretorio build/lib.linux-i686-2.4/grub/fsys/ext2 para /usr/lib/xen-3.0.3-1/lib/python/grub/fsys/

5) mkdir /var/lib/xen
Esse diretorio (mesmo vazio) é necessario

6) Finalmente! Rode seu DomU com CentOS!

Links Interessantes para Referencia
http://strugglers.net/~andy/blog/2008/01/20/red-hat-based-linux-under-xen-from-debian-etch/
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=390678
http://www.kuro5hin.org/story/2007/4/23/3719/35994

quinta-feira, junho 5

Understanding ASM (Automatic Storage Management)

Caracteristicas Gerais

  • Requer aproximadamente 60 ~ 100 Mb de memoria
  • Executar um shutdown no ASM vai executar o mesmo shutdown nas instancias conectadas no ASM
  • Datafiles criados no ASM tem o tamanho de 100M e sao extendidos sem limite maximo
  • ASM extents sao alocados
  • ASM cria extends de 1M (coarse striping) ou de 128k (fine striping)
  • sql> alter system enable restricted session; -> previne conexao ao ASM

Novos processos
  • RBAL (asm e instancias)
    • No ASM coordena atividade nos diskgroups.
    • Na instancia é reponsavel por abrir e fechar os discos
  • ORBn (asm): executa os movimento dos extents entre os discos/diskgroups
  • OSMB (instancias): faz a comunicacao entre a instancia e o ASM

Parametros de inicializacao
  • INSTANCE_TYPE = ASM (padrao é rdbms)
  • DB_UNIQUE_NAME = +ASM
  • ASM_POWER_LIMIT = de 1 a 11 - controla o impacto das operacoes de rebalanceamento de maneira que nao deixe o sistema de IO lento. Default = 1 (baixa interferencia)
  • ASM_DISKSTRING = especifica os discos visiveis ao ASM. Null => todos os visiveis ficam disponiveis
  • ASM_DISKGROUPS = lista dos nomes dos diskgroups para montar/desmontar automatico
    sql> alter diskgroup all mount;
  • LARGE_POOL_SIZE = minimo de 8M

Beneficios do ASM
  • IO performace é aumentada, porque os dados sao espalhados em varios discos
  • Disponibilidade é aumentada:
    • é possível extender sem parar o banco
    • a redundancia dos dados aumenta a disponibilidade
  • Facilidade para adicionar novos diskgroups

Alterando Diskgroups
  • adicionar discos
    sql> alter diskgroup data1 add failgroup d1fg3 disk '/dev/raw/raw6' name d1c force;
  • dropar discos
    sql> alter diskgroup data2 drop disk d2d;
  • undropppig discos - cancela operacao de drop que ainda nao foi concluida
    sql> alter diskgroup data2 undrop disks;
  • rebalancing diskgroup
    sql> alter diskgroup data1 rebalance power 5;
  • montar/desmontar
    sql> alter diskgroup data3 [mount|dismount];
  • check consistencia - verifica consistencia interna de um diskgroup
    sql> alter diskgroup data3 check all [norepair];

Migrando base para ASM com RMAN
  • Passos basicos para migrar uma base:
  1. Anotar os nomes dos control e redo logs
  2. Shutdown immediate
  3. Backup do banco
  4. Editar spfile para usar OMF para todos os destinos
  5. Editar spfile e remover control_files parameter
  6. Rodar um script de rman que faca um "backup as copy" de todos os datafiles para um destino no ASM
  7. Feito!

Guia de estudos para OCP

Depois de um longo tempo desativado, volto com uma série de artigos que visam auxiliar o profissionais que pretender realizar a prova para obter a certificacão OCP.
Os posts são uma série de resumos que fiz enquanto estava estudando e resolvi compartilhar.
Todo o material também estará disponível na minha página em http://cassianoroloff.googlepages.com

Abracos e bons estudos!