Feed on Posts or Comments

DB & Oracle Fernando José on 08 Oct 2008 12:29 pm

Simulando discos ASM

Para probar las nuevas características de la versión 11g necesito unos discos ASM, para simularlos la forma más sencilla es usar el comando dd de Linux para crear archivos que simulen discos o particiones limpias, luego enlazarlos a dispositivos loop. Ésta es una configuración de pruebas y no debe ser nunca puesta en producción, me voy a basar en un artículo de

Como root creamos un directorio y  4 archivos de 200MB que utilizaremos como discos.

mkdir /asmdisk
dd if=/dev/zero of=/asmdisk/disk1 bs=1024k count=200
dd if=/dev/zero of=/asmdisk/disk2 bs=1024k count=200
dd if=/dev/zero of=/asmdisk/disk3 bs=1024k count=200
dd if=/dev/zero of=/asmdisk/disk4 bs=1024k count=200
ls -lah /asmdisk/

Atención con la k después de 1024 caso contrario los discos sería de 200KB y no de 200MB. Después enlazamos los discos a dispositivos de loopback.

/sbin/losetup /dev/loop1 /asmdisk/disk1
/sbin/losetup /dev/loop2 /asmdisk/disk2
/sbin/losetup /dev/loop3 /asmdisk/disk3
/sbin/losetup /dev/loop4 /asmdisk/disk4

Llegado a este punto se puede o bien instalar ASMLib para gestionar los “discos”, o bien enlazar los archivos a dispositivos RAW. Además si se tiene problemas y se requieren aún más dispositivos pueden utilizar este tutorial de la base de conocimientos de Red Hat para superar el límite de dispositivos loopback.  Voy a probar con RAW aunque está desfazado y no debe ser usando en producción, lo correcto es instalar ASMLib para gestionar los discos ( si no me creen pongan man raw en un Linux); Además se dice (aunque no he encontrado pruebas de rendimient) que ASMLib es más rápido para configuraciones ASM que RAW. Relizamos como root:

raw /dev/raw/raw1 /dev/loop1
raw /dev/raw/raw2 /dev/loop2
raw /dev/raw/raw3 /dev/loop3
raw /dev/raw/raw4 /dev/loop4

Debemos cambiar los permisos, como root:

chown oracle:oinstall /asmdisk/disk*
chown oracle:oinstall /dev/raw/raw*

Se deben poner todos los comandos de creación antes utilizados de los dispositivos además del cambio de permisos en /etc/rc.local si se piensa reiniciar el servidor para no perder la configuracion.

Estamos listos, es hora de configurar la instancia ASM. Lo más sencillo es lanzar el dbca y hacer que el asistente configure la instancia. como el usuario dueño del software de  Oracle:

dbca
Se inicia la applicacion java, escogemos la opción ->  Configure Automatic Storage Management
Se nos pide ejecutar como root: $ORACLE_HOME/bin/localconfig add para configurar los CSS. (lo hacemos)
Nos piden asignar la clave del usuario SYS.

Finalmente creamos un nuevo disco con dos de los dispositivos existentes, se nos presentan los dispositivos raw disponibles como se aprecia en la gráfica.

Asignamos un nombre al Disk Group (yo le he puesto prueba1), le damos redundancia normal y asignamos dos o mas dispositivos RAW disponibles.

Para validar su uso podemos crear un  tablespace en el nuevo disco ASM, como un usario administrador en sqlplus:

SQL> create tablespace tbsp1 datafile ‘+PRUEBA1′ size 100M;
Tablespace created.

Creamos un usuario, le damos permisos y creamos una tabla relativamente grande (en proporción al tablespace) en nuestro tablespace sobre ASM. Como un usuario administrador en sqlplus:

SQL> create user dbup1 identified by dbpu1 default tablespace tbsp1 temporary tablespace temp;
User created.
SQL> grant resource, connect to dbup1;
Grant succeeded.
SQL> create table dbup1.cust as select * from sh.customers;
Table created.

Y estamos listos, tenemos un tablespace montado en un diskgroup ASM con dos discos utilizados en redundacia normal y dos mas como candidatos. Con esta configuración ya podemos jugar con ASM, si se quiere pasar de RAW a ASMLib existe información en este artículo en ORACLE-BASE de Tim Hall además existe una referencia a los comandos de ASM en el mismo sitio. Este es un paso previo a probar nuevas características de ASM en 11g de lo que espero escribir en breve.

Como ejercicio se podría intentar agregar un disco, remover un disco, cambiar los permisos de un disco para que ASM no lo pueda ver y mirar que sucede con el diskgroup, etc.

Saludos… FJA

7 Responses to “Simulando discos ASM”

  1. on 27 Oct 2008 at 17:37 1.Ignacio Ruiz said …

    Oye, excelente truco!!!…esta es una muy buena nota.

  2. on 28 Oct 2008 at 11:40 2.Fernando José said …

    Hola Ignacio.
    Pasé por tu web, esta muy buena.
    Estamos en contacto.
    FJA

  3. on 29 Oct 2008 at 01:40 3.Ignacio Ruiz said …

    Que tal Fernando, gracias por la visita. Si gustas, estas invitado a participar… esta recien nacida, sin embargo hay planes ambiciosos.

    Saludos!

  4. on 08 Nov 2008 at 18:18 4.Luis said …

    Hola Fernando,
    me parece muy interesante esta web, muchas gracias por compartir el conocimiento.
    Te quería hacer una pregunta: ¿existe alguna forma de conseguir que el dbconsole se arranque de forma automática (Linux, RHEL)?. Mi entorno tiene 10gR2 RAC, sobre Oracle Clusterware.
    Sé que puedo poner un script y que se ejecute en rc.local, por ejemplo, de tal manera que al arrancar el servidor, pero si se cae, por la razón que sea, el agente o el dbconsole no volverán a arrancar…
    Una opción que se me ocurre es intentar(no sé todavía cómo hacerlo) meterlo como un servicio del cluster, pero…… ¿alguna sugerencia?

    Muchas gracias por adelantado y ánimo con esta web

  5. on 08 Nov 2008 at 19:46 5.Fernando José said …

    Hola Luis.
    Mira yo te recomendaría poner Grid Control. El agente cuando realizas la instalación detecta que existe al clusterware y se protege por él. Así que hablando de configuración nunguna, el agente es parte del clusterware al instalarlo.
    Además la vista en el grid control tiene información de nodo a nodo (como en dbconsole) y la del conjunto para el RAC (solo disponible en GridControl), aunque el afinamiento se realiza de instancia en instancia (en 10g al menos).

    Saludos

    FJA

  6. on 11 Jun 2009 at 07:59 6.LSC said …

    Hola

    La otra opcion es poner _asm_allow_only_raw_disks a FALSE, con eso evitas lo de losetup y el raw

    Un saludo

  7. on 22 Jun 2009 at 00:37 7.Fernando José said …

    No lo sabia.
    Gracias por el comentario.

Trackback This Post | Subscribe to the comments through RSS Feed

Leave a Reply