Ubuntu, clave para la producción de la pelicula Avatar

La revolucionaria película “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.

Nota: si quereis bajaros la pelicula Avatar visitar tuentishare.com

Solución al error: MySQL query failed: Incorrect information in file: ‘./psa/misc.frm’

Síntomas

En la página Inicio de Sesión de Parallels Plesk Panel en https://plesk.host.name:8443, aparece el siguiente error:

ERROR: PleskMainDBException
MySQL query failed: Incorrect information in file: ‘./psa/misc.frm’

0: /usr/local/psa/admin/plib/common_func.php3:216
db_query(string ‘select param, val from misc’)
1: /usr/local/psa/admin/plib/common_func.php3:513
get_param(string ‘mysql41_compatible’)
2: /usr/local/psa/admin/plib/common_func.php3:410
db_set_names()
3: /usr/local/psa/admin/plib/common_func.php3:389
db_connect_real(string ‘localhost’, string ‘admin’, string ‘***********’, string ‘psa’)
4: /usr/local/psa/admin/plib/common_func.php3:369
db_connect()
5: /usr/local/psa/admin/auto_prepend/auth.php3:87

Causa

La causa de este problema son unos permisos incorrectos al directorio /tmp. Por este motivo, MySQL no puede crear sus archivos temporales correctamente para el motor InnoDB en el inicio.

Los permisos correctos son:

~# ls -ld /tmp/
drwxrwxrwt 4 root root 36864 Aug  8 08:41 /tmp/
~#

Resolución

Corrija los permisos con el siguiente comentario:

~# chmod 1777 /tmp

Información Adicional

Para ver el error, actualice la sección [mysqld] en el archivo /etc/my.cnf con esta línea:

/etc/my.cnf
--->8---
[mysqld]
innodb_force_recovery = 4
---8<---

Ahora reinicie el servicio con:

~# /etc/init.d/mysqld restart
Stopping MySQL:                                            [  OK ]
Starting MySQL:                                            [  OK ]
~#

En el archivo de registro de errores de MySQL debería aparecer el siguiente error:

/var/log/mysqld.log
--->8---
^G/usr/libexec/mysqld: Can't create/write to file '/tmp/ib1suXEE' (Errcode: 13)
020326 22:26:17  InnoDB: Error: unable to create temporary file; errno: 13
020326 22:26:18 [Note] /usr/libexec/mysqld: ready for connections.
---8<---

La ubicación del archivo de registro de errores de MySQL se define en el archivo de configuración:

~# grep log-error /etc/my.cnf
log-error=/var/log/mysqld.log
~#

Buscar y reemplazar texto en todos los archivos dentro de un directorio y todos los subdirectorios – TIP Linux

Si buscabas como reemplazar texto dentro de varios archivos en una sola linea de comando, has llegado a la web correcta. Muchas veces tenemos que buscar o hacer cambios a un texto determinado y para empezar no sabemos ni en cual archivo, documento o directorio puede estar.

Digamos que le cambiamos la dirección IP al servidor, o cambiamos de servidor web y es necesario hacer los cambios en todos los archivos de configuracion y los donde aparezca la IP del servidor anterior.

Para no estar buscando durante horas entre todos los archivos de nuestro servidor, les escribo aqui los distintos tips para reemplazar strings alfanumericos en linux.

  • Para reemplazar un texto o string cada vez que aparezca en los archivos:

~# find /path/directorio «*.txt» | xargs perl -pi -e ‘s/texto/reemplazo/g’

  • Para reemplazar la primera vez que aparezca el texto:

~# find /path/directorio «*.txt» | xargs perl -pi -e ‘s/texto/reemplazo/’

  • Para reemplazar todos los archivos dentro de un directorio:

~# for arg in `ls -C1`; do perl -pi -e ‘s/texto/reemplazo/g’; done;

Existe infinidad de combinaciones posibles utilizando el shell de la linea de comandos. Tomemos como ejemplo la primera busqueda:

~# for arg in `find /your/home/dir -name «*.txt»` ; do perl -pi -e ‘s/texto/reemplazo/g’ $arg; done;

Muchas veces solamente es necesario buscar un path o una cadena dentro de multitud de ficheros sobre todo en las migraciones, para ello usaremos los siguientes comandos:

grep Busca cadenas dentro de ficheros»» -n señala el nº de la linea donde está la cadena

Ejemplo: grep -n micadena *

Busqueda recursiva de una cadena dentro de multitud de ficheros:

grep -n micadena * -R