Mostrando postagens com marcador ODA. Mostrar todas as postagens
Mostrando postagens com marcador ODA. Mostrar todas as postagens

domingo, 24 de janeiro de 2021

VM Guest lenta e com elevado percentual de CPU roubada (steal)

Acompanhando a performance de algumas máquinas virtualizadas em um ODA X7-2 HA foi observado durante o período alto percentual de CPU steal (%st) que mostra a porcentagem de tempo gasto (roubado)  em esperas involuntárias da CPU enquanto o hypervisor está atendendo outro processador virtual.

Para dar ênfase ao problema e posteriormente demonstrar a mudança de comportamento junto aos ajustes em uma VM com 8 vCPU, forcei a utilização de CPU disparando comandos "yes" em nohup onde dentro de alguns segundos o percentual de CPU roubada já atingiu 68%

[root@vm04 ~]# cat /proc/cpuinfo | egrep 'processor' | wc -l
8
[root@vm04 ~]#
[root@vm04 ~]# yes > /dev/null &
[1] 26080
[root@vm04 ~]# yes > /dev/null &
[2] 26135
[root@vm04 ~]# yes > /dev/null &
[3] 26137
[root@vm04 ~]# yes > /dev/null &
[4] 26138
[root@vm04 ~]#














Tratando-se de um Oracle engineered systems, busquei como referência o MOS (My Oracle Support) onde encontrei a Doc ID 1928868.1 falando exatamente sobre este comportamento destacando em seu título "Guest VM Running Slow and is not Able to Use All the CPUs Assigned to it on ODA"

Este comportamento ocorre devido ao parâmetro CPU_CAP estar definido como 100 que independente da quantidade de CPUs associados a máquina virtual ela utilizará apenas 1 CPU.

Cancelando o stress de CPU na VM

[root@vm04 ~]# pkill yes
[1]   Terminated              yes > /dev/null
[2]-  Terminated              yes > /dev/null
[3]-  Terminated              yes > /dev/null
[4]+  Terminated              yes > /dev/null

No dom0 confirme o valor do CPU CAP e ajuste dinamicamente seu valor para 0. 

[root@dom0 ~]# xm sched-credit
Name                                ID Weight  Cap
Domain-0                             0  65535    0
oakDom1                              1    256    0
vm03                                 3    256  100
vm04                                 4    256  100


[root@dom0 ~]# xm sched-credit -d vm04 -c 0
[root@dom0 ~]# xm sched-credit
Name                                ID Weight  Cap
Domain-0                             0  65535    0
oakDom1                              1    256    0
vm03                                 3    256  100
vm04                                 4    256    0
[root@dom0 ~]#

Ao ser criado uma VM, o valor padrão para o parâmetro é 100%. Esse valor é então convertido em um limite de utilização da CPU no arquivo vm.cfg para a máquina virtual. 

O valor definido no arquivo vm.cfg limita a quantidade de CPU que um convidado (VM Guest) pode consumir. Se o Processor Cap for definido como 100% no Oracle VM, o valor definido em vm.cfg será 0, o que significa que não há limite para a utilização da CPU.

Retornando a VM vou proceder com um novo teste forçando a utilização das CPUs da mesma forma que a anterior

[root@vm04 ~]# yes > /dev/null &
[1] 31926
[root@vm04 ~]# yes > /dev/null &
[2] 31928
[root@vm04 ~]# yes > /dev/null &
[3] 31929
[root@vm04 ~]# yes > /dev/null &
[4] 31976

Com alguns segundos já foi perceptível que o percentual de CPU roubada não sofria oscilações, estava de forma constante em 0%















Comparando o antes e depois do ajuste

















Referência:

Guest VM Running Slow and is not Able to Use All the CPUs Assigned to it on ODA (Doc ID 1928868.1)

Mais informações →

sexta-feira, 10 de agosto de 2018

ODA X7-2 HA BM (Bare Metal) reimage


O Bare Metal (BM) é uma configuração não virtualizada do Oracle Database Appliance. O Oracle Database Appliance já é enviado de fábrica com uma configuração bare metal, contudo pode ser necessário realizar seu reimage em algum momento para se restaurar as configurações do sistema operacional ao modo "enviado de fabrica" em função de alguma configuração incorreta no deploy ou mesmo quando se quer sair de um ambiente virtualizado (Virtualized Platform - VP) para o ferro da máquina (Bare Metal - BM).

Para realizar o reimage do ODA para BM é necessário primeiramente baixar a imagem ISO para Bare Metal Restore a partir do MOS (My Oracle Support).

Oracle Database Appliance - 18.1, 12.X, and 2.X Supported ODA Versions & Known Issues (Doc ID 888888.1)


Selecione a versão desejada do Oracle Appliance Kit e clique em download.




Abra o browser e acesse a ILOM do node0 utilizando o usuário root, clique na aba Remote Control no menu esquerdo seguido por Redirection e posteriormente Launch remote console.


Na tela que se abrirá, clique em OK para prosseguir.


Um arquivo java será baixado e possivelmente ao final do download será exibido uma mensagem semelhante a imagem abaixo:


Clique em manter e na sequencia abra o arquivo clicando sobre o mesmo.


Continue


por fim, Run


Abrindo a console remota, pressione ALT + F2 para ser exibido a tela de login, caso queira realizar alguma interação com a maquina.



Para adicionar a imagem ISO, clique sobre KVMS > Storage
   

Clique em Add:



Selecione o arquivo ISO descompactado e clique em selecionar. 
Selecione a ISO carregada (conforme imagem abaixo) e clique em Connect (clicando em Connect irá aparecer a mensagem de Disconnect no botão). Pressione OK.


No canto superior direito o ícone CDROM também se tornará mais evidente indicando que a imagem/unidade foi montada.



Agora é preciso configurar o CD-ROM como primeiro dispositivo de boot, pra isto volte no browser conectado na ILOM, clique em Host Management > Host Control, selecione CDROM na caixa de "Next boot device" e clique em Save


Reinicie o servidor. Host Management > Power Control > Power Cycle > Save



Confirme o reboot, OK.



Quando o nó retornar após o ciclo de energia (reboot), o reimage a partir da ISO deverá iniciar automaticamente.

Contudo, entretanto, todavia... e no meu caso, o boot não ocorreu. 

Temos algumas notas relacionadas e este problema no boot da ISO no ODA:

ODA : ILOM is not booting from ISO virtual CDROM (Doc ID 2286667.1)

CD-ROM Image Redirection in ILOM does not work with 64-bit Java (Doc ID 1946441.1)

Segui o procedimento de ambas e não obtive exito em função de alguns bugs relacionados ao java que perdia o attachment durante o restart.

Para conseguir realizar o boot pela ISO / CDROM, quando a maquina estiver iniciando novamente e a tela de boot for exibida (imagem abaixo), realize um novo attach da ISO e monte-a novamente (connect).



KVMS > Storage > Add, Selecionar a ISO, desabilitar a SSL, Connect e OK.


Habilite o Virtual Keyboard em KVMS > Virtual Keyboard...




Na tela seguinte de boot será exibido algumas opções, clique em F8 no telado virtual para entrar no menu de seleção de boot:


A mensagem (Boot Pop Up Menu Selected) será exibida e na próxima tela aparecerá a listagem de itens para boot onde teremos opções como "USB:SUN" ou CD-ROM


Selecionada a opção ("USB:SUN" ou CD-ROM) e pressione ENTER que o boot pela ISO ira ocorrer iniciando o processo de limpeza e reimage da maquina. ( >> tudo que havia nela será perdido e ela voltará ao estado vinda de fabrica << )



A tela "Running post-installation scripts" ficará parada por vários minutos (normal), pois está ocorrendo a execução de scripts na maquina.

Todo o processo de reimage varia entre 45 minutos à 2 horas e ao final a maquina começará a ser iniciada normalmente estando novamente disponível (disponível, não pronta, ainda é necessário redeploy do ambiente até tudo ficar ok com o banco disponível, etc. Isto será abordado em outra postagem).



Execute o mesmo procedimento para o node1. Pode ser executado em paralelo com o reimage do node0.



Referências:

https://docs.oracle.com/cd/E89155_01/doc.122/e93447/updating-oracle-database-appliance-software.htm#CMTXL-GUID-5D52DFE8-DAD2-4A81-AE97-A57925206500

https://docs.oracle.com/cd/E88132_01/doc.122/e88393/managing-oracle-databases.htm#CMTXL-GUID-240FFCCF-0BD2-4F5D-80B6-3C684D7E88C0

ODA Oracle Database Appliance Bare Metal Restore Procedure X5-2 and X6-2 (Doc ID 1373599.1)
Mais informações →

quinta-feira, 10 de novembro de 2016

ILOM - Erros no "Launch Remote Console"

Recentemente precisei acessar a ILOM (Integrated Lights Out Manager) de um ODA para iniciar a console remota - "Launch Remote Console", contudo veio o primeiro erro:

java.lang.SecurityException: Missing required Permissions manifest attribute in main jar


Pesquisando um pouco encontrei a solução para este erro, conforme passos a seguir:


  • Acessar painel de controle;
  • "Encontrar" o Java e clicar sobre para abrir o Painel de Controle Java (para facilitar a localização escreva java na caixa de pesquisa);

  • Acessar a aba Segurança;
  • Clicar sobre "Editar Lista de Sites..."

  • Clicar sobre "Adicionar";

  • Inserir o IP e porta da ILOM conforme dados do erro;
  • OK; OK ..

Feito isto fui abrir novamente a console remota da ILOM.

Agora a console abriu com sucesso, mas como podemos ver abaixo, tive outro erro sendo reportado:

No appropriate protocol (protocol is disabledor cipher suites are inappropriate)


Fazendo mais algumas pesquisas, identifiquei que na CVE-2014-3566 - "SSL V3.0 "Poodle" Vulnerability" o algoritmo SSLv3, por padrão, foi desabilitado a partir da JDK 8u31. Nas versões 7u75 e 6u91 também foram ajustadas.

Conforme nota da versão, habilitei novamente o SSLv3 editando o arquivo <JRE_HOME>/lib/security/java.security

Como estou utilizando um sistema operacional Windows, o arquivo foi localizado em "C:\Program Files\Java\jre1.8.0_91\lib\security" conforme imagem abaixo.


Ao abrir o arquivo com o editor bloco de notas, localizei a entrada jdk.tls.disabledAlgorithms, comentei a linha e salvei o arquivo. 

OBS: retirando apenas a entrada SSLv3 não funcionou comigo

de:

jdk.tls.disabledAlgorithms= SSLv3, RC4, MD5withRSA, DH keySize < 768

para:

#jdk.tls.disabledAlgorithms= SSLv3, RC4, MD5withRSA, DH keySize < 768

Mesmo com o ajuste, ao abrir a console fui submetido a um novo erro:

java.security.cert.CertificateException: Certificates does not conform to algorithm constraints


Voltando as pesquisas... encontrei um novo parâmetro, também dentro do java.security 

Abri novamente o arquivo java.security, localizei o jdk.certpath.disabledAlgorithms e comentei a linha.

de:

jdk.certpath.disabledAlgorithms=MD2, MD5, RSA keySize < 1024

para:

#jdk.certpath.disabledAlgorithms=MD2, MD5, RSA keySize < 1024

Tentando novamente abrir a console remota.. 



Bingo!

Console remota abrindo com sucesso, basta inserir o usuário e senha.

Espero ter ajudado!

Referências:

http://stackoverflow.com/questions/21404830/securityexception-during-executing-jnlp-file-missing-required-permissions-manif
http://www.oracle.com/technetwork/topics/security/poodlecve-2014-3566-2339408.html
http://www.oracle.com/technetwork/java/javase/documentation/cve-2014-3566-2342133.html
http://www.oracle.com/technetwork/java/javase/8u31-relnotes-2389094.html
https://www.richardnichols.net/2012/08/arrrggh-java-security-cert-certificateexception-certificates-does-not-conform-to-algorithm-constraints/
Mais informações →

sábado, 15 de março de 2014

Criando CloudFS no Oracle Database Appliance (ODA)




O Oracle Cloud File System (CloudFS) é uma suite de gerenciamento de armazenamento da Oracle composta pelo ASM Cluster File System (ACFS) e ASM Dynamic Volume Manager (ADVM) que basicamente lhe permite criar e remover volumes(“discos”) de forma rápida e simples.



Durante o deploy do ODA é possível que seja configurado um CloudFS, especificando seu ponto de montagem (“/cloudfs”) e tamanho.

cloudfs img Criando CloudFS no Oracle Database Appliance (ODA)

Caso um cloudFS não seja configurado durante o deploy, não tem problema! É possível criá-lo tanto através da interface gráfica(acessar MOS nota 1435019.1) como sem ela(GUI), como faremos neste artigo.

Com o usuário GRID e as variáveis exportadas vamos executar o asmcmd e criar um volume no ASM. Note que no comando de create(volcreate) estou especificando o diskgroup de onde o espaço será alocado >> RECO (consumido imediatamente após o create), o tamanho >> 100G e no nome do volume >> teste


[root@oak1 ~]# su - grid
[grid@oak1 ~]$ . /etc/ambiente_ora_grid.sh
GRID->
GRID-> cat /etc/ambiente_ora_grid.sh
#!/bin/sh
# Oracle Settings
 
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=/u01/app/11.2.0.4/grid; export ORACLE_HOME
ORACLE_SID=+ASM1; export ORACLE_SID
ORACLE_TERM=xterm; export ORACLE_TERM
PATH=/usr/sbin:$PATH; export PATH
PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATH; export PATH
NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1; export NLS_LANG
PS1="GRID-> "; export PS1
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH
 
GRID-> asmcmd
ASMCMD> volcreate -G RECO -s 100G teste
ASMCMD>
Para prosseguirmos é necessário identificar o nome do device para este volume:

ASMCMD> volinfo -G RECO teste
Diskgroup Name: RECO
 
         Volume Name: TESTE
         Volume Device: /dev/asm/teste-128
         State: ENABLED
         Size (MB): 102400
         Resize Unit (MB): 32
         Redundancy: MIRROR
         Stripe Columns: 4
         Stripe Width (K): 128
         Usage:
         Mountpath:
 
ASMCMD>
O próximo passo é criar/formatar um filesystem para o volume utilizando o device capturado acima:

GRID-> /sbin/mkfs -t acfs /dev/asm/teste-128
mkfs.acfs: version                   = 11.2.0.4.0
mkfs.acfs: on-disk version           = 39.0
mkfs.acfs: volume                    = /dev/asm/teste-128
mkfs.acfs: volume size               = 107374182400
mkfs.acfs: Format complete.
Agora basta registrar o filesystem no clusterware para que ele seja montado automaticamente em todos os nodes, mesmo após um restart!
GRID-> /sbin/acfsutil registry -a /dev/asm/teste-128 /teste
acfsutil registry: mount point /teste successfully added to Oracle Registry
Após aguardar alguns segundos para que ele seja montado, já é possível visualiza-lo.

GRID-> df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroupSys-LogVolRoot
                       30G   16G   12G  57% /
/dev/md0              487M   35M  427M   8% /boot
/dev/mapper/VolGroupSys-LogVolU01
                       97G   11G   82G  12% /u01
/dev/mapper/VolGroupSys-LogVolOpt
                       59G  6.3G   49G  12% /opt
tmpfs                 127G  231M  126G   1% /dev/shm
/dev/asm/acfsvol-128  300G  723M  300G   1% /orabackup
/dev/asm/teste-128    100G  242M  100G   1% /teste
 
GRID-> ls -lrtd /teste
drwxrwx--- 4 root asmadmin 4096 Feb 27 15:04 /teste
Por fim, observe(acima) que ele tem como proprietário o root com o grupo asmadmin.

Para que ele seja acessível tanto pelo GRID como pelo ORACLE basta ajustarmos conforme abaixo:

[root@oak1 ~]# chown oracle.asmdba /teste
[root@oak1 ~]# ls -lrtd /teste
drwxrwx--- 4 oracle asmdba 4096 Feb 27 15:04 /teste
[root@oak1 ~]#
Abordando mais alguns pontos importantes:

Visualizar as informações de todos dos filesystems. Além do /teste criado neste exemplo, existe um “/orabackup” que criei durante o deploy!

GRID-> /sbin/acfsutil info fs
/orabackup
    ACFS Version: 11.2.0.4.0
    flags:        MountPoint,Available
    mount time:   Thu Feb 20 15:10:14 2014
    volumes:      1
    total size:   322122547200
    total free:   321364795392
    primary volume: /dev/asm/acfsvol-128
        label:
        flags:                 Primary,Available,ADVM
        on-disk version:       39.0
        allocation unit:       4096
        major, minor:          251, 65537
        size:                  322122547200
        free:                  321364795392
        ADVM diskgroup         RECO
        ADVM resize increment: 33554432
        ADVM redundancy:       mirror
        ADVM stripe columns:   4
        ADVM stripe width:     131072
        compatible.advm:       11.2.0.0.0
    number of snapshots:  0
    snapshot space usage: 0
    replication status: DISABLED
 
/teste
    ACFS Version: 11.2.0.4.0
    flags:        MountPoint,Available
    mount time:   Thu Feb 27 15:04:29 2014
    volumes:      1
    total size:   107374182400
    total free:   107081220096
    primary volume: /dev/asm/teste-128
        label:
        flags:                 Primary,Available,ADVM
        on-disk version:       39.0
        allocation unit:       4096
        major, minor:          251, 65538
        size:                  107374182400
        free:                  107081220096
        ADVM diskgroup         RECO
        ADVM resize increment: 33554432
        ADVM redundancy:       mirror
        ADVM stripe columns:   4
        ADVM stripe width:     131072
    number of snapshots:  0
    snapshot space usage: 0
    replication status: DISABLED
GRID->
Para remover um CloudFS basta fazer basicamente o processo inverso, iniciando por remover o volume do registro:

GRID-> /sbin/acfsutil registry -d /dev/asm/teste-128
acfsutil registry: successfully removed ACFS volume /dev/asm/teste-128 from Oracle Registry
GRID->
Desmontar de todos os nodes:

[root@oak1 ~]# umount /teste
[root@oak1 ~]# ssh oak2
root@oak2's password:
Last login: Thu Feb 27 08:37:36 2014 from 192.168.1.10
[root@oak2 ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroupSys-LogVolRoot
                       30G  6.1G   22G  22% /
/dev/mapper/VolGroupSys-LogVolOpt
                       59G  6.1G   50G  11% /opt
/dev/md0              487M   35M  427M   8% /boot
/dev/mapper/VolGroupSys-LogVolU01
                       97G   11G   82G  11% /u01
tmpfs                 127G  224M  126G   1% /dev/shm
/dev/asm/acfsvol-128  300G  723M  300G   1% /orabackup
/dev/asm/teste-128    100G  280M  100G   1% /teste
[root@oak2 ~]# umount /teste
[root@oak2 ~]# exit
logout
Connection to oak2 closed.
Remover o filesystem:

[root@oak1 ~]# /sbin/acfsutil rmfs /dev/asm/teste-128
[root@oak1 ~]#
Remover o volume pelo asmcmd (o espaço é imediatamente devolvido para o diskgroup RECO):

GRID-> asmcmd
ASMCMD> voldelete -G RECO teste
*Exemplo realizado sobre um ODA X3-2

Referências:
http://docs.oracle.com/cd/E18283_01/server.112/e16102/asmfs_util010.htm http://docs.oracle.com/cd/E18283_01/server.112/e16102/asm_util007.htm http://www.oracle.com/technetwork/products/cloud-storage/cloudfs-overview-wp-279856.pdf ODA (Oracle Database Appliance): How To Setup ACFS Post Deploy (Doc ID 1435019.1)
Mais informações →
Postagens mais antigas Página inicial

Translate

# Suporte

# ACE Program

#Oracle

#Oracle
Disclaimer: The views expressed on this blog are my own and do not necessarily reflect the views of Oracle.

#Blog reconhecido

#ARTICULISTA

Marcadores

Postagens populares