vmware esxi + informix 9.21 + centos 4

hola !! queria ver si me podrian dar una mano
instale el vmware esxi con centos 4.
el problema es que no me inicializa informix por que no encuentra el raw.
vmware esxi trabaja con lvm , agregue un disco virtual para poder agregar todo los chunks ahi. la creacion del lvm y los chunks todo bien.
el tema es que cuando inicio informix me dice que no encuentra el raw1. ( que es donde instale el root_chunk ) cheque el onconfig que este bien apuntado el tema de los links simbolicos todo ya no se que mirar.
mi pregunta es. alguien tiene instalado informix en vmware esxi?
hay alguna guia para no utilizar los raw y lvm?? ( se pierde performance) ?? el servidor esta configurado con raid 1+0 es un power edge r410.
GRACIAS!!

Hola yo tengo instalado un 11.7 en Opensuse 12.1 con cooked files.
La instalación sale de una en un par de horas.
La decisión de usar raw devices o no depende del rendimiento que quieras lograr.
Sinceramente no veo mucha ganancia si no usan discos físicos separados, pero bueno, no lo se realmente.

quiero lograr la mejor configuracion posible, por que en epoca de inscripciones entran bastante cantidad de gente a la base.
el tema es que yo tenia la guia vieja. por eso segui ese manual. si hay otra manera de obviar los raw devices mejor ( si podrian pasarme el manual ) si es que hay.
el servidor tiene 4 discos cada uno con 2 TB. gracias!!

Para instalaciones de alto rendimiento los libros dicen que usar raw devices es lo mejor. Se logra independencia del sistema operativo en las operaciones de entrada salida.
La configuración combinada de esto con el uso de lvm para gestionar los espacios podría ser la mejor en estas ocasiones.
Si tenés 4 discos físicos disponibles lo ideal es tratar de organizar los dbspaces en esos discos, por ejemplo el rootdbs y el dbspace que aloja los logical logs y el physical log ubicarlos en uno, el dbspace de datos en otro, y de esa forma lograr mas paralelismo.
Si podes agregar mas discos, una configuración usando espejado manejado por el motor es ideal.

Si seguiste algún manual de internet es probable que estes configurando informix con raw devices y ademas convirtiendo los mismos en dispositivos de bloque con el comando raw. Supongo que tu problema esta en lo segundo ya que los sistemas linux con udev tiene una pequeña complicación con el uso de raw.

Para poder ayudarte mejor necesitariamos que no envíes el archivo onconfig , la salida del comando

raw -qa

,

ls /dev/raw

y

ls <directorio del chunck1 del rootdbs>

cfpace aca te paso todo o que me pediste

[root@localhost ~]# raw -qa
/dev/raw/raw1: bound to major 253, minor 2

cd /chunks ( la carpeta esta en la raiz con permisos informix.informix )
lrwxrwxrwx 1 root root 13 mar 20 15:19 root_chunk → /dev/raw/raw1

cd /dev/raw

crw-rw---- 1 informix informix 162, 1 mar 20 18:50 raw1

el onconfig ( tambien cambie ROOTPATH por /dev/raw/raw1 y me tira este error

Starting Informix Online… /opt/informix/etc/evidence.sh: line 243: onstat: command not found
/opt/informix/etc/evidence.sh: line 243: onstat: command not found
Incorrectly built binary which accesses errno or h_errno directly. Needs to be fixed.
/opt/informix/etc/evidence.sh: line 243: onstat: command not found
oninit: Cannot open chunk ‘/dev/raw/raw1’. errno = 2
oninit: Fatal error in shared memory initialization
done
)

Root Dbspace Configuration

ROOTNAME rootdbs # Root dbspace name
ROOTPATH /chunks/raw1 # Path for device containing root dbspace
ROOTOFFSET 0 # Offset of root dbspace into device (Kbytes)
ROOTSIZE 2000000 # Size of root dbspace (Kbytes)

solamente configure el root_chunk para que pueda levantar informix supuestamente levanta con eso…

exacto busco la mejor performance. a ver si ustedes saben y yo entiendo esto, que pasa estoy usando vmware esxi ( servidor virtual vmware gratutito ) esto trabaja ya con lvm. por cada maquina virtual crea un LV por cada disco, para poder poner los chunks en ese mismo disco no me dejaba ya que esta lleno aca les muestro

“vgInformix” 299,99 GB [2,00 GB used / 297,99 GB free]
“VolGroup00” 199,88 GB [199,88 GB used / 0 free] ( disco en donde esta el sistema operativo virtualizado )

por eso tuve que crear otro “disco virtual” vmdk y ponerlo como vgInformix como dice el manual yo no se si por eso informix no ve los famos raw y chunks ( por el tema virtualizado ) estuve leyendo y no se si hay que hacer en vmwareesxi el famoso raw device mapping pero la verda que todavia no entiendo la logica jaja ( tendre que leer un poco mas )

que pasa al tener virtualizado asi y trabajando con raid 1+0 creo que no hace falta poner mas disco virtuales . entiendo que el raid va a trabajar para la performance de escritura de disco. ( corrijanme si estoy equivocado )

en la maquina que se me rompio si teniamos configurado con discos separados y lvm pero solamente el centos instalado en la maquina… ( todo 10 pero se esta quedando chico el hardware )

la otra opcion es usar el suse que viene por defecto en el servidor . y usar solamente ese sistema operativo para la base de datos. ( no se si funciona suse 11 enterprise con informix 9.21 ), PERO la realidad es que quiero hacerlo virtualizado por que es mas facil hacer backups se rompe la maquina tengo otro servidores para levantar enseguida si hay algun desperfecto disco mother etc…

en fin no los quiero aburrir si tiene algo que recomendarme soy todo oidos.

ah me olvidaba alguien tiene el manual con los cooked file?? damian lo tenes??

muchas gracias!!!

No tengo un manual, uso generalmente las publicaciones del producto en el sitio de ibm, http://publib.boulder.ibm.com/infocenter/idshelp/v115/index.jsp la parte de administración.
Pero básicamente para cooked files es:

  • seleccionar un directorio
  • crear los archivos (touch nombre_archivo)
  • aplicar los permisos (usuario informix, grupo informix)
  • usar onmonitor para agregar los espacios

gracias damian, lo voy a leer

bueno instale suse 11 pero ahora me da problemas con

Shutting down Informix Online… /opt/informix/bin/onmode: relocation error: /opt/informix/bin/onmode: symbol errno, version GLIBC_2.0 not defined in file libc.so.6 with link time reference
done

lo soluciono con

export LD_ASSUME_KERNEL=2.4.1

pero sigue sin funcionar

alguien tiene alguna respuesta? sobre esto? gracias!!

Si, no te compliques con eso. Usa 11.70 y Open suse 12.1.

el tema es que yo solamente tengo informix 9.21 . se podra bajar de algun lado? o en el extranet esta?

de ignorante hay muchas mejoras de 9 a 11 ?? no trae alguna complicacion ? por que nosotros estamos trabajando con la version 262 gracias!!

Supongo que hay muchas mejoras. Se puede conseguir en el mismo sitio de IBM previa registración. La instalación en Linux es abismalmente mejor. Para mí eso es bastante. Yo tengo muchas bases de datos en diferentes versiones en este motor.
Deberás buscar 11.70 Innovator-C Edition FC4 para sistemas operativos de 64 bits.
Las que me acuerdo son:
un parámetro en el onconfig que impide una inicialización “accidental” de la instancia (oninit -iy) si es que existe en el rootdbs
en el oconfig se puede establecer el valor de TAPEDEVSIZE y LTAPESIZE a cero, para especificar una cantidad ilimitada de espacio
se pueden crear chunks de mas de 2gb en linux
http://publib.boulder.ibm.com/infocenter/idshelp/v117/index.jsp en la parte de visión general del producto\Novedades de Informix
Saludos

listo no dije nada

http://www-01.ibm.com/software/data/informix/

ya me saque la duda

muchas gracias!!

Hola,
con una configuración RAID 1+0, seria muy bueno en cuanto a perfomance y seguridad, debido que vas a tener velocidad y tolerancia a fallas. estas conbinando RAID 0 = alta tranferencia y escritura (en disco) y RAID 1 (disco en espejo) = mirroring para la tolerancia a fallas, pero como contrapartida vas a estar neceitando como minimo 4 discos. (2 discos para hacer escritura en ambos como si fuera uno y 2 para hacer el mirrori.

RAID 0, recomendado cuando el servidor va tener mucho accesos a disco (BD)
RAID 1, recomendado para un servidor WEB, donde no vas a tener mucha escritura en DISCO pero si tolerancia a fallas (si tenes separado el motor en un server y el web del guarani3w en otro, para este caso el servidor web no tiene mucho acceso a disco)
Pero si podés combinar ambos, seria lo ideal…estamos hablando de RAID a nivel de hardware.

Con respecto a RAW y LVM, las maquinas virtuales usan LVM para poder asignar otro disco o aumentar el tamaño de la maquina virtual, ahora, vos parado en tu maquina virtual, deberia usar LVM con el mismo criterio x si te quedas sin espacio en tu base de datos…Lo que no sé por que nunca lo hice en una maquina virtual, si usas el LVM creado de la misma maquina virtual para la configuracion del informix, no estoy seguro, pero deberias crear e instalar el LVm y crear tus propios volumenes logicos independiente de tu maquina virtual…nosé si entendí bien cuando hablas de esto, con respecto a los dispositivos RAW, podés usarlo sin usar LVM, según los manuales el RAW como dice Damian , deberia andar mas rapido por lo que explica, yo no noté la diferencia en usar dispositivos RAW o filesystem…(quizas en una facultad grande con muchos accesos, si se notaria la diferencia)

En cuanto a la versión de informix 9.21 a la 10 si noté diferencia en cuanto perfomance…

te paso un pequeño documento que instala el informix 9.21 sobre debian sin usar LVM y RAW…creo que la clave está en una buena configuración del motor y usar ciertos beneficios que unix nos dá con respecto a un windows…

Si querés seguir con los LVM y RAW, si estás en Centos, habria que ver…donde los crea a los RAW, si mal no recuerdo cuando instale el informix con RAW en un suse, los tenia en path diferentes que en debian.

con respecto al error

oninit: Cannot open chunk '/dev/raw/raw1'. errno = 2 oninit: Fatal error in shared memory initialization done

habria que ver los permisos, en debian…cuando inicia el linux les pone los permisos de root a los RAW, entonces cuando informix queria usarlos no los dejaba, una solución a eso, lo que se hace es en el script que arranca al informix, les cambias los permisos de los raw para informix…

Marcelo


Informix 9.21 en Linux debian sarge.pdf (398 KB)

Hola Diego:
Creo que un poco de historia puede ser un buen aporte.
Informix tiene soporte para raw devices desde la versión 5, allá por el año 90, cuando no había ni siquiera linux. Los unix que se distribuían en ese momento eran bastante desparejos y muchos no soportaban discos virtuales, por eso informix agrega a los cookies files el soporte para raw device que era mucho mas rápido y sobre todo permitía la distribución de carga en varios ejes con reconfiguración en caliente. Cuando aparece linux sale la primer versión de informix compilada con GLIBC, ya para la 9.21 es GLIBC_2.0. Desde entonces las GLIBC evolucionaron enormemente, y mucho mas que eso, las distros de linux con el correr de los años agregaron soprte para virtualización de discos y mucho mas, así que ademas podés tener el problema que los binarios informix compilados con GLIBC_2.0 no van a funcionar. Pero el paradigma ¿uso cookies o raws? en realidad sería ¿uso el FS o el IFX? que en términos modernos sería uso ¿LVM a raws? con lo que usar las dos cosas en apariencia es contradictorio, y claro, la diferencia ya no sólo se achicó sino que el LVM es mucho más evolucionado.
Entonces vos tenés un OS re moderno con la última tecnología y un DBMS de 20 años, lo que trato de decirte es que lo que era verdad hace 20 años (el informix manejaba el disco mucho mejor que el OS, hablamos de RedHat 6 o 7) no tiene porque ser verdad ahora (en todo caso podría serlo si comparás con INF11.7).
Desde mi experiencia, creo que el uso del raw device no te dará mejor performance que el OS.
Dicho esto creo que la recomendación de Damián es lo más sensato. Si no les es posible abandonar el 9.21, entonces al menos usá lo mas que puedas del linux, empezando por olvidarte de los raw devices, y si tenés problemas con las GLIB tendrás que meter un kernel más viejo dentro del Centos4.
Ya otras Facultades de la UBA tienen virtualizado el informix y creo que hay conocimiento aprovechable.
Saludos

freddy muchas gracias !!! me sirvio tu explicacion buen aporte como dijiste !!!

instale con los cooked files. y todo de 10 en centos4.8 !!! ahora voy a empezar hacer pruebas con el I/O que no creo que influya mucho ya que estaria en raid 1+0 con disco sas o sata no recuerdo bien ahora estoy en casa jejej pero en epocas de inscripciones tenemos muchas conexiones a la base de datos lo que consume mucho cpu y memoria.

al tener virtualizado tendria mas performance en el sentido de memoria y cpu , ya que con el servidor anterior solamente tenia 2GB ram y 2 procesadores , y no venia un cuello de botella por el i/o (igualmente este tenia 4 discos sata sin raid pero trabajando con lvm y rawdevices )…

ahora me viene otra pregunta y entiendo que no pero por las dudas. saben si agregaria ( dos disco virtuales VMDK ) y pondria los chunks ( cooked files ) en cada uno de los disco virtuales ganaria performance??.

GRACIAS A TODOS!!!

Diego:

Un pensamiento lateral. En que versión del Guarani estan?

Te cuento que si no están en la última (2.6.4) con el último parche (parche 3). o sea 2.06.4.3, lo mejor que pueden hacer para resolver el tema de las inscripciones es pasarse a esa versión.

Aquí en Filo - UBA acabamos de hacer la inscripción a materias de más de 10.000 alumnos (más de 25.000 inscripciones) en 5 días y sin ningún problema de performance, con un montón de conexiones simultáneas, con esa versión. Por lo que yo sé, se resolvió todo el problema de incripciones con gran cantidad de alumnos como Córdoba y La Plata con esa versión, y yo lo corroboro ya que aquí se aplicó con los volumenes mencionados.

Aquí también tienen servidores virtualizados en Linux.

Creo que otros 2 tips para una buena performance son tener buena cantidad de memoria RAM y tener actualizadas las estadísticas de la base, obviamente todo esto más allá de tener bien configurado el motor Informix.

Saludos

Gustavo

que tal gustavo!! tendras idea con que sistema de virtualizacion estan trabajando? ( yo opte por vmware esxi por tema de facilidad de manejar y los servidores era 100 % compatibles) pero una opcion buena es open xen.

aca en fadu tenemos casi 100 mil inscripciones, ( cpu y memoria es lo imprescindible no vi saturamiento de disco)

otra cosa que estoy haciendo es instalar 4 maquinas con apache y php ( para que no se sature en conexiones la maquina ) hacer balanceo de carga con squid.
alguien lo tiene configurado asi? gracias!!

Hola Diego, como te fue con la instalación de IFX??

Volviendo un poco a la discución, les paso este pdf que encontre googleando, ahí muestra que no hay mucha diferencia entre configurar el motor con raw device o con file system (recordar que el LVM solo es para aumentar el tamaño a particiones en forma dinammica y logica), ahora apartir de la version 10.00 de IFX en adelante, trajeron muchas mejoras acompañando las mejoras que trajeron los kernel de 2.4 al 2.6 de linux como ser el KAIO

para eso debes instalar la librería libaio: Esta biblioteca permite habilitar userspace y usar llamadas de sistema de I/O Linux Kernel asincrónicas, importantes para el funcionamiento de bases de datos y otros usos avanzados.

apt-get install libaio1

para más info en:

http://www.ibm.com/developerworks/data/library/techarticle/dm-0503szabo/

Espero que les sirva.

Saludos!
Marcelo


IDS-linux - scalability.pdf (756 KB)

hola marcelo . bueno te comento que ya quedo todo funcionando con cooked file … con los raw no lo pude hacer andar. voy a leer eso que me pasaste.

quedo informix 9.21 con 8 gigas de ram y 8 procesadores xeon 2.40GHz, tema de i/o no pasa nada ( tengo otras maquinas mas corriendo con otros servicios igualmente hay que ver en las inscripciones. )

tambien configure squid para tener 3 maquinas virutales para hacer el balanceo de carga de la web. ya que al tener un apache solo con tantas conexiones se “satura” aunque este tenga mucha memoria y micro.

veremos que pasa con las inscripciones…

saludos y gracias!!

otra vez yo, ahora molesto con el tema del onconfig, si bien ya esta todo funcionando queria compartir con ustedes mi onconfig a ver que opinan al respecto

8 cpu 8 gigas de ram

ROOTSIZE 2000000
PHYSFILE 819000
NETTYPE soctcp,7,500,CPU
NETTYPE ipcshm,7,500,NET
VPCLASS cpu,num=7,noage ( supuestamente es lo mismo que poner NUMCPUVPS , si estoy equivocado corrijanme )
LOCKS 50000
BUFFERS 524288
NUMAIOVPS 2
PHYSBUFF 512
LOGBUFF 64
LOGSMAX 50
CLEANERS 16
SHMVIRTSIZE 524288
SHMADD 32768
SHMTOTAL 0
CKPTINTVL 600
LRUS 32
LRU_MAX_DIRTY 70
LRU_MIN_DIRTY 50
LTXHWM 50
LTXEHWM 60
TXTIMEOUT 0x12c
STACKSIZE 32
MAX_PDQPRIORITY 100
DS_MAX_QUERIES 32
DS_TOTAL_MEMORY
DS_MAX_SCANS 1048576