Tuxjm el sitio de jmedina

Tag: Servidores (page 2 of 3)

Como ver el tipo de tabla en MySQL

Aqui les dejo un tip para algo que ya habia requerido más de una vez, como ver el tipo o en especifico el motor de una tabla en MySQL. Esta es una pregunta que me hice hace rato cuando revisaba alguna información sobre respaldos en MySQL.

Para este ejercicio usaremos una base de datos que se llama “Syslog” y tiene una tabla llamada “SystemEvents”, para ver su tipo lanzamos el siguiente query:

mysql> show table status like 'SystemEvents';
+--------------+--------+---------+------------+-----------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+------------+-------------------+----------+----------------+---------+
| Name | Engine | Version | Row_format | Rows | Avg_row_length | Data_length | Max_data_length | Index_length | Data_free | Auto_increment | Create_time | Update_time | Check_time | Collation | Checksum | Create_options | Comment |
+--------------+--------+---------+------------+-----------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+------------+-------------------+----------+----------------+---------+
| SystemEvents | MyISAM | 10 | Dynamic | 288527454 | 153 | 44233702400 | 281474976710655 | 2960958464 | 0 | 288527455 | 2011-02-28 17:50:31 | 2011-04-25 22:13:18 | NULL | latin1_swedish_ci | NULL | | |
+--------------+--------+---------+------------+-----------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+------------+-------------------+----------+----------------+---------+
1 row in set (2.56 sec)

La salida de arriba se ve algo egorrosa porque son muchas columnas, pero el resultado es el de la segunda “Engine” la cual es “MyISAM”, ahi esta :P.

Espero que este tipo les sea de utilidad como lo es para mi.

Configuración de Canal Bonding modo Active-Backup en Ubuntu Server

Aquí les dejo un documento que describe la implementación de un canal bonding (Port Trunking) en modo Active-Backup para ofrecer tolerancía de fallas a nivel red en un sistema Ubuntu Server.

Este documento ha sido probado en Ubuntu Server LTS 8.04 y Ubuntu Server Karmic 9.10.

Para ver el documento en línea vaya al URL: Configuración de Canal Bonding modo Active-Backup en Ubuntu Server.

Saludos.

Granja de 35,000 nucleos con Ubuntu, clave para la producción de Avatar

IMPORTANTE: Este articulo es original de TuxRoot y pueden ver la versión original en el URL: http://tuxroot.wordpress.com/2010/01/19/ubuntu-clave-para-la-produccion-de-avatar.

Como señalan nuestros compañeros de MuyComputer, La revolucionaria “Avatar” se ha convertido en una referencia para el futuro del cine en tres dimensiones, pero aquellos que quieran producir una película similar tendrán que tener en cuenta las ingentes necesidades que impone.

Una charla de uno de los administradores de sistemas de Weta Digital -la empresa encargada de los efectos especiales- ha revelado algunos detalles sobre los centros de datos que se utilizaron para una producción que usó  Ubuntu como sistema operativo.

Uno de los asistentes a las conferencias Linux Conf Australia 2010 (LCA2010) ha contado cómo en una de las charlas intervino Paul Gunn, administrador de sistemas en Weta Digital, responsable de los efectos visuales de la película Avatar.

En el post de Dustin Kirkland -que trabaja en Ubuntu Server- se indica que la infraestructura del centro de datos que tuvo que poner en marcha Weta Digital para esta producción fue impresionante. Ya habíamos hablado de la matriz de almacenamiento con capacidad para hasta 2 Petabytes, pero aún hay más detalles.

Entre otros, que se usó una red de conectividad a 10 Gbps, que había más de 4.000 HP Blades con cerca de 35.000 núcleos de proceso en su interior en el centro de datos y 104 Tbytes de memoria RAM en total, y que aún así se tardaba 48 horas en renderizar algunas de las secuencias gráficas.

Según Paul Gunn, responsable de la charla “Challenges in Data Center Growth“, Ubuntu fue el sistema operativo base de todo este desarrollo, y estaba instalado en todos los nodos de renderizado y en el 90% de los PCs de sobremesa de Weta Digital. De hecho, Gunn indicó que su propia “granja de renderizado” hace uso de Ubuntu Server, y no de RHEL como se publicó en algunos medios.

Eso ha permitido generar una película en la cual cada minuto ha ocupado nada menos que 17,28 Gbytes de datos, y curiosamente para refrigerar toda la instalación se limitaron a establecer la temperatura a 25º C, una cifra mayor que la mayoría de centros de datos, pero que les permitió ahorros energéticos importantes

Entre otros, que se usó una red de conectividad a 10 Gbps, que había más de 4.000 HP Blades con cerca de 35.000 núcleos de proceso en su interior en el centro de datos y 104 Tbytes de memoria RAM en total, y que aún así se tardaba 48 horas en renderizar algunas de las secuencias gráficas.

Como deshabilitar el soporte IPv6 en Ubuntu

En diferentes versiones de Ubuntu Desktop y Server se tiene habilitado el soporte IPv6 por default, esto ocaciona que algunas conexiones a Internet se alenten, en especial aquellas relacionadas con el consultas DNS, esto es debido a que la biblioteca resolver por default hace primero una consulta a servidores DNS por IPv6 y hasta que falla hace la consulta por IPv4 lo que para algunos usuarios y administradores no es nada deseable.

En este articulo veremos como deshablitar el soporte IPv6 en Ubuntu en sus diferentes versiones, tanto Escritorio como Servidor, siga las instrucciones especificas para la versión que tenga instalada.

En Ubuntu Server 8.0.4 LTS:

Primero edite el archivo /etc/modprobe.d/blacklist.local y desactive la carga al arranque del sistema del modulo ipv6, por ejemplo:

$ sudo sh -c 'echo "install ipv6 /bin/true" > /etc/modprobe.d/blacklist.local'

Para que los cambios anteriores tomen efecto re incie el sistema:

$ sudo reboot

Después de haber re iniciado el sistema verifique que el modulo ipv6 ya no este cargado:

$ lsmod | grep ipv6

También pude usar ifconfig para verificar que la dirección ipv6 ya no este disponible.

Para Ubuntu 8.04 este metodo fué el único efectivo, hay algunos otros metodos descritos en el articulo WebBrowsingSlowIPv6IPv4 del wiki de la comunidad Ubuntu.

ACTUALIZACIÓN: El método anterior también funciona en Debian Lenny.

El métido anterior no funciona para Ubuntu Karmic 9.10, para desactivar la carga del modulo ipv6 al arranque del sistema en 9.10 debe pasar el parametro ipv6.disable=1 al kernel a través del gestor de arranque.

Para GRUB2 edite el archivo /etc/default/grub y agregue el parametro ipv6.disable=1, por default esta así:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

Cambiela a:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash ipv6.disable=1"

Ahora actualice la configuración de grub:

$ sudo update-grub2

Re inicie el sistema y verifique que el modulo ipv6 no este cargado.

Recursos adicionales:

WebBrowsingSlowIPv6IPv4:
https://help.ubuntu.com/community/WebBrowsingSlowIPv6IPv4

Como ver el ChangeLog de un paquete Debian

Siempre es recomendable leer el ChangeLog o la bitacora de cambios de un paquete ya sea por que queremos estar al tanto de nuevas funcionalidades el paquete actual o en la versión más reciente, verificar los cambios también es recomendable cuando se realice una actualización de un paquete critico en el sistema, por ejemplo, un servicio critico para la empresa es el servicio LDAP, por lo tanto veremos la lista de cambios de la versión más reciente usando aptitude, por ejemplo:

$ sudo aptitude changelog slapd
openldap (2.4.18-0ubuntu1) karmic; urgency=low
* New upstream release: (LP: #419515):
+ pcache overlay supports disconnected mode.
* Fix nss overlay load (LP: #417163).
-- Mathias Gug
Mon, 07 Sep 2009 13:41:10 -0400
openldap (2.4.17-1ubuntu3) karmic; urgency=low
* Install a minimal slapd configuration instead of creating a default
database with a default DIT:
+ Move openldap user home from /var/lib/ldap to /nonexistent.
+ Remove all code and templates dealing with the default database and DIT
creation.
+ Add an Authz map from root user (UID=0) to cn=localroot,cn=config and
grant all access to the latter in the cn=config database as well as the
default backend configuration.
* Add cn=localroot,cn=config authz mapping on upgrades.
— Mathias Gug
Tue, 11 Aug 2009 14:48:56 -0400

Y ahi esta!, ahora veamos si alguno de los cambios pudiera afectar la operación, claro la actualización debe ser creada en un ambiente de producción, la virtualización ofrece esa ventaja a un bajo costo :).

Aun cuando los cambios de la nueva versión no involucre cambios importantes siempre es recomendado respaldar una versión del paquete .deb y dependencias (por si requiere recuperar el sistema y no tiene internet), archivos y directorios de configuración, archivos y directorios de cache, spool, datos y logs de tal forma que podamos restaurar un sistema a un estadio limpio.

Como verificar si una interfaz de red en GNU/Linux tiene enlace fisico

Uno de los promeros diagnosticos para verificar si un servidor Linux tiene conectividad es verificar el enlace fisico a nivel Ethernet, en GNU/Linux podemos verificar y cambiar ciertos parametros a nivel Ethernet para una NIC usando el program ethtool.

Para verificar el enlace fisico de la interfaz de red eth0 use ethtool:

# ethtool eth0
Settings for eth0:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
Advertised auto-negotiation: Yes
Speed: 100Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 1
Transceiver: internal
Auto-negotiation: on
Supports Wake-on: g
Wake-on: g
Current message level: 0×000000ff (255)
Link detected: no

La información importante es la de “Link detected“, como podemos ver en el ejemplo podemos ver que no hay enlace fisico, puede revisar la conectividad desde el cable, patch panels o switches, una interfaz de red con enlace fisico se debe ver:

# ethtool eth0
Settings for eth0:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
Advertised auto-negotiation: Yes
Speed: 100Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 1
Transceiver: internal
Auto-negotiation: on
Supports Wake-on: g
Wake-on: g
Current message level: 0×000000ff (255)
Link detected: yes

Si la prueba de enlace fisico pasa ahora puede empezar a usar ping :).

En algunas distribuciones no se incluye el programa ethtool ya que incluyen el programa mii-tool(8)que también lo puede usar para validar
la conectividad fisica, por ejemplo:

# mii-tool eth0
eth0: negotiated 100baseTx-FD flow-control, link ok

Referencias:

man ethtool(8)
man mii-tool(8)
man ping(8)

Como respaldar y restaurar una base de datos de OpenLDAP

Como buen administrador siempre procuramos tener una copia de seguridad reciente de las bases de datos de las apliaciones que administramos para poder re establecer el sistema en caso de desastre.

En este articulo explicare como crear una copia de seguridad de una base de datos en un servidor OpenLDAP, generaremos respaldos en frio y en caliente, los respaldos serán generados en formato LDIF.

Suponiendo que en el archivo slapd.conf(5) tenemos una definición de base de datos así:

# Specific Backend Directives for hdb:
backend hdb
# Specific Directives for database #1, of type hdb:
database hdb
# The base of your directory in database #1
suffix "dc=example,dc=com"
# Where the database file are physically stored for database #1
directory "/var/lib/ldap"

El programa slapcat(8) lee la información de la base de datos en orden secuencial y genera la salida correspondiente en formato LDIF incluyendo atributos de usuario y operacionales, el programa slapcat solo respaldara las entradas que se leyeron en el momento de la ejecución, si en el momento de que slapcat esta ejecutandose se realiza una operación de escritura sobre alguna entrada dicho cambio no será incluido en el respaldo.

En OpenLDAP las bases de datos de tipo hdb y bdb pueden ser respaldadas mientras el servicio slapd(8) esta en ejecución usando el programa slapcat, a este tipo de respaldo se le llama en caliente.

Si no esta seguro de que no habrá modificacioens en los datos de las bases de datos de OpenLDAP y no sabe si dichos cambios puedan afectar las aplicaciones o clientes LDAP se recomienda que detenga el servicio slapd antes de generar el respaldo con slapcat, a este tipo de respaldo se le llama en frio.

Para crear un respaldo en frio de una base de datos de OpenLDAP siga el siguiente procedimiento:

1.- Detener el servicio slapd:

# /etc/init.d/slapd stop

2.- Respaldar la base de datos usando el programa slapcat:

# slapcat -b dc=example,dc=com -l respaldo-dc=example,dc=com-`date +%d-%b-%Y`.ldif

El comando slapcat generará un respaldo de la base de datos dc=example,dc=com definida por el parametro -b en el archivo respaldo-dc=example,dc=com-`date +%d-%b-%Y`.ldif definido por el parametro -l.

Para crear un respaldo en caliente de una base de datos de OpenLDAP solo ejecute el comando slapcat como en el paso dos del ejemplo anterior.

Se recomienda que el archivo del respaldo sea movido a un lugar fuera del servidor.

Para restaurar la base de datos a partir del archivo LDIF generado por slapcat siga el siguiente procedimiento:

1- Apagar el servicio slapd:

# /etc/init.d/slapd stop

2.- Limpiar el directorio de base de datos de slapd:

# (cd /var/lib/ldap/; rm -fv alock __db.* *.bdb log.*)

3.- Restaurar directorio a partir del archivo LDIF:

# slapadd -v -b dc=example,dc=com -l respaldo-dc=example,dc=com-`date +%d-%b-%Y`.ldif

– Opcionalmente Re indexe todos los atributos :

# slapindex -v

– Re establecer permisos al directorio de datos:

# chown -R openldap:openldap /var/lib/ldap

– Iniciar el servicio slapd:

# /etc/init.d/slapd start

Referencias:

El formato LDIF
man slapd.conf(5)
man slapd(8)
man slapcat(8)
man slapadd(8)
OpenLDAP Software 2.4 Administrator’s Guide – Directory Backups

Como Cambiar la contraseña del Root DN de OpenLDAP

En OpenLDAP el DN definido en la directiva rootdn del archivo slapd.conf(5) no es sujeto a las restricciones impuestas por las ACLs, ya que esta es una cuenta privilegiada se recomienda que se asigne una contraseña fuerte y que dicha cuenta solo se use para tareas que requieran privilegios elevados.

Para cambiar o asignar una nueva contraseña al rootdn sigamos el siguiente procedimiento:

– En el archivo slapd.conf(5) tenemos nuestra definición de base de datos tenemos las siguientes directivas:

rootdn cn=Manager,dc=example,dc=com
rootpw secret

En este ejemplo la contraseña del rootdn esta en texto plano, para cambiarla y y protegerla usando un hash criptográfico generamos el hash de contraseña con el programa slappasswd:

# slappasswd
New password:
Re-enter new password:
{SSHA}VanYekdrphCkbjDffLCXbBsxsg3QJBI6

NOTA: El hash predefinido es SSHA, si desea cambiar el tipo de hash use la opción -h para definir un hash diferente, por ejemplo: -h {CRYPT}, para más información vea la pagina del manual de slappasswd(8).

Copie el HASH {SSHA}VanYekdrphCkbjDffLCXbBsxsg3QJBI6 y cambielo en el valor rootpw del archivo slapd.conf(5).

IMPORTANTE: Asegurese de que el archivo slapd.conf(5) tenga los permisos adecuados, por ejemplo en Debian/Ubuntu se recomiendan los permisos: root:openldap / 640.

Para que el cambio tome efecto reinicie el servicio LDAP:

# /etc/init.d/slapd restart

Tambiñen puede mantener la contraseña del rootdn fuera del archivo slapd.conf(5), es decir, puede eliminar la directiva rootpw del archivo slapd.conf(5) y agregar una entrada para el DN en el directorio LDAP.

Los beneficios que obtenemos al mantener la entrada el rootdn en el directorio son:

– Puede actualizar la contraseña de forma dinamica sin reiniciar el servicio usando una operación de modificación desde cualquier cliente LDAP.
– Si olvida la contraseña siempre puede realizar la configuración manual usando slappasswd(8) y slapd.conf(5).

Para mantener la entrada del RootDN en el directorio LDAP siga este procedimiento:

– Cree una entrada en el directorio usando el archivo LDIF:

dn: cn=Manager,dc=example,dc=com
cn: Manager
sn: Manager
objectClass: person
objectClass: top
userPassword: {SSHA}someSSHAdata

– Agrega el LDIF usando ldapadd:

# ldapadd -v -x -D "cn=Manager,dc=example,dc=com" -W -h localhost -f rootdn.ldif

Se recomienda que no use la cuenta cn=Manager,dc=example,dc=com en sus tareas de administración de rutina, en su lugar se recomienda que cree una cuenta privilegiada para tales propositos, por ejemplo en Debian/Ubuntu se usa el DN de la cuenta cn=admin,dc=example,dc=com la cual ya tiene los ACLs predefinidos para que tenga permisos completos sobre la base de datos predefinida.

Referencias:

OpenLDAP Software 2.4 Administrator’s Guide – Access Control

Como agregar nuevos indices de atributos en OpenLDAP

Cuando usa OpenLDAP con backends basados en BerkeleyDB por ejemplo el backend tipo hdb debe de tener indexados los atributos más utilizados en las consultas LDAP y así incrementar el rendimiento en las consultas desde las aplicaciones y clientes LDAP, un ejemplo de un atributo no indexado lo podemos ver en los logs de OpenLDAP:

slapd[4164]: <= bdb_equality_candidates: (uniqueMember) not indexed

El mensaje anterior nos muestra que se estan haciendo consultas para el atributo uniqueMember y no esta indexado lo cual se puede reflejar en bajo rendimiento del servicio LDAP.

Para agregar uno o más atributos a la lista de indices para una base de datos en OpenLDAP debe de seguir el siguiente procedimiento:

– Agregar definición de indice para los atributos deseados al archivo de configuración del servicio OpenLDAP:

# vim /etc/ldap/slapd.conf

NOTA: Estas tareas se realizan sobre distribuciones basadas en Debian como Unbuntu.

Bajo la definición de la base de datos en cuestion agregue los indices:

index memberUid,uniqueMember eq

En este caso agregamos los atributos memberUid y uniqueMember de tipo Equality.

Si solo reinicia el servicio slapd solo se indexarán los atributos para las nuevas
entradas, para que los atributos existentes también sean indexados debe detener el
servicio slapd y ejecutar el programa slapindex, por ejemplo:

Detener servicio slapd:

# invoke-rc.d slapd stop

Indexar los atributos memberUid y uniqueMember:

# slapindex -v memberUid uniqueMember

Re establecer permisos para archivos de bases de datos de slapd:

# chown -R openldap:openldap /var/lib/ldap

Ahora ya puede iniciar el servicio slapd con todos los atributos indexados.

# invoke-rc.d slapd stop

Referencias:

FAQ de OpenLDAP sobre Performance Tunning

Como iniciar una maquina virtual VirtualBox desde el shell

Algunas veces requerimos iniciar una maquina virtual desde el shell probablemente porque no tenemos acceso a las X y el unico acceso es por ssh.

Primero usamos el comando VBoxManage para listar las maquinas virtuales registradas:

$ VBoxManage list vms
VirtualBox Command Line Management Interface Version 3.0.12
(C) 2005-2009 Sun Microsystems, Inc.
All rights reserved.
"plantilla-karmic-i386" {a81882fc-04c5-498c-8f40-ef32499b271d}
"mail-karmic-i386" {5769a40f-05e4-44b5-a927-9da75aa6a5fd}

La maquina que deseamos iniciar es mail-karmic-i386, para iniciarla usamos el comando VBoxManage con la opción startvm, por ejemplo:

$ VBoxManage startvm -type headless mmail-karmic-i386

Para confirmar que la maquina virtual fue iniciada listamos las maquinas virtuales:

$ VBoxManage list runningvms
VirtualBox Command Line Management Interface Version 3.0.12
(C) 2005-2009 Sun Microsystems, Inc.
All rights reserved.
"mail-karmic-i386" {5769a40f-05e4-44b5-a927-9da75aa6a5fd}

Para apagar la maquina virtual use:

$ VBoxManage controlvm mail-karmic-i386 poweroff

Espero que les sirva este tip.

Olderposts Newerposts

Copyright © 2019 Tuxjm el sitio de jmedina

Theme by Anders NorenUp ↑