Sunday, December 31, 2006

Ayyyy... te encuntro o no te encuentro con ifind

En estos días todo se trata de lo inalámbrico en el mundo de las computadoras. Tenemos WiFi, infrarrojo, bluetooth, WiMAX, etc. Es claro que surgirán servicios que aprovechan esta infraestructuras, que permiten las conexiones inalámbricas entre dispositivos, computadores y a Internet.

Uno de estos servicios que me intereso fue el ifind, desarrollado por senseable labs en la universidad de MIT. Este servicio consiste en un programa de instant messeging (mensajeria instantánea) con lista de contactos de estudiantes con coreo @mit.edu. Entonces si se esta en el campus conectado con wi-fi en uno de los, y tienes usuarios en tu lista de amigos (buddy list) podrás ver en un mapa del campus donde esta localizado tus compañeros.

Este sistema solo trabaja en el champús de MIT con laptops con tarjeta wi-fi porque la posición se determina calculando la fuerza de la señal con relación a los access points (los cuales son alrededor de 2,800). Así que con un manejan de error de uno par de metros podrás saber donde estas todos tus contactos conectados a la red wi-fi de MIT. Esto da facilidades de reunirse con los compañeros de forma más fácil, perseguir a tus amigos o alguna chica o chico, jugar con encuentros casuales y oportunos (serendipity).

Se puede bajar el código fuente del cliente, pero el código fuente del servidor no esta disponible. Pero si se desea el documento de el protocolo cliente/servidor, se puede escribir correo (a senseable-ifind at mit punto edu) solicitándoles el documento.

Esta tecnología puede se utilizada de formas muy interesantes por las organizaciones. Se imaginan empresas grandes que utilicen esto para mantener un control de donde están sus empelados trabajando. Quiere decir que sus empleados pueden estar trabajando en cualquier parte de la empresa con su laptop y pueden ser localizados fácilmente para sus reuniones.

Imagínense también tener un robot entregando correspondencia, o haciendo cualquier actividad rondando por la oficina. Pues también puede ser localizado por medio de este sistema.

El éxito de las ideas depende en la exactitud del sistema para calcular posición, velocidad, interoperabilidad y facilidad de implementación.

Panic! At the Debian Server






Una de las cosas más útiles de Windows y su GUI es el recycle bin. No existe peor cosa que borrar archivos (o datos valiosos) de una PC y más de un servidor. Si pasa eso, no debe haber pánico, solo se busca en el recycle bin y se recupera todo. Claro que si utilizamos la línea de comando de Windows y ejecutamos el siguiente comando:

C:\del

entonces el archivo no va al recycle bin, sino que es borrado.

A Partir de Windows XP tenemos la utilidad de restore, por si nos equivocamos de gran manera con alguna instalación, configuración de Windows, se puede recobrar. Claro siempre y cuando que se cree un checkpoint, como se puede ver aquí. Pero esto no ayuda recobrar los archivos borrados, sino recobrar cambios hechos al sistema.

¿Entonces que se debe hacer si borramos archivos? En realidad se debe tener un backup de archivos. Y que hay los archivos de sistema de un servidor? Pues se debe tener un backup de esos servidores para disminuir el downtime. Pero claro muchas veces no tenemos ni un backup, y lo único que nos queda es tratar de recobrar esos archivos.

Siempre escuchamos por allí que siempre es posible recobrar archivos borrados, incluso después de un format. La pregunta del millón es ¿cómo?. Primero debemos de dejar de trabajar con el disco, si es posible apagar la computadora. Después tenemos que investigar la estructura de nuestro filesystem. De esta forma se podrá saber las herramientas que existen para recobrar archivos borrados.

En mi experiencia con un servidor debían, donde se borraron archivos del sistema, el file system era reiserfs, un file system de tipo journaled soportado por Linux. Reiserfs guarda metada, entradas de directorio, bloques de inodes en un solo y combinado arbol B+. Entonces al borrar archivos lo que se hace es “podar” el árbol para eliminar el enlace correspondiente al archivo.

Lo primero que se debe hacer es pasar el disco donde borramos los archivos a otra computadora con Linux. Después debemos montar la el disco y hacer un backup de la data que existe actualmente. El backup nos sirve debido a que si ocurre un problema durante la recuperación de archivos que corrompe el disco por completó entonces no perdemos todo. Se tiene que recordar que el proceso de recuperación de archivos no siempre concluye con éxito. Una vez con el backup, proseguimos a recuperar los archivos. Para trabajar de la mejor forma necesitamos otro disco duro libre para hacer una copia de la partición donde están los archivos que deseamos recuperar. Entonces tendremos tres discos duros:

El del filesytem de nuestra maquina con Linux, el que deseamos salvar y el que funciona de backup.

  1. Revisar que tenemos instaladas las herramientas de reiserfs, para ello haga un simple

$ man reisefsck

o

$ reiserfsck.

Si no aparece nada entonces se debe instalar las herramientas. Para ello podemos utilizar yum (por si utilizamos fedora core o redhat)

$ yum install reiserfsprogs

  1. Una vez instalado seguimos a crear un backup de la partición que deseamos recuperar los archivos, hacemos lo siguiente:
    1. Bajamos al nivel de usuario 1 con

$ init 1

    1. Después desmontamos nuestra particiones suponiendo que la que queremos recuperar esta en sdb y el backup estaría en sdc

$ umount /dev/sdb1; umount /dev/sdc1

    1. Tocaría hacer el backup con ddrescue el origen es sdb y el destino es sdc.

$ ddrescue /dev/sdb /dev/sdc

  1. El momento de la verdad, utilizaremos reiserfsck para reconstruir el árbol. Lo aremos en backup para así poder intentar otros métodos.

$ reiserfsck –scan-whole-partition –rebuild-tree -l /root/recovery.log /dev/sdc1

Este proceso toma bastante tiempo en particiones grandes y todo depende en la velocidad de los discos. En un disco de 20 gigas me tomo alrededor de 8 horas.

La opcion scan-whole-partition revisa toda la partición, incluso la parte que esta vacia.

La opción –rebuild-tree se encarga de buscar los nodos y colocarlos en el árbol. Si por alguna razón no puede colocar el nodo en el árbol entonces coloca el archivo en un directorio llamado lost+found.

La opcion –l permite crear un log de recovery.

Conclusiones….

Este proceso ayuda, pero recobrar archvivos que no son parte del sistema operativo, pero cuando lo son no es como en Windows que solo tenemos que remplazar el archivo y todo funciona de maravilla. Se debe tomar los archivos que se necesitan y volver a instalar el sistema operativo, es porque se gataria demasiado esfuerzo tratar de dejar el Sistema operativo como estaba antes de ser borrado.

Se debe tener backups de todo, backups que sean verificables y continuos.

Finalmente nunca se debe trabajar con root en un servidor. Nunca, se debe crear usuarios destinados a cada servicio que el servidor provee, asi encapsulamos cualquier error y no se propaga. Aquí es donde chroot juega un papel importante.

Enlaces de que me ayudaron y espero que les ayuden…

http://antrix.net/journal/techtalk/reiserfs_data_recovery_howto.comments

http://www.cyberciti.biz/tips/repairing-reiserfs-file-system-with-reiserfsck.html

http://recover.sourceforge.net/unix/

http://docs.cs.byu.edu/docs/mounting/2.php

De regreso

Desde octubre no hago un post, eso no es bueno porque deseaba tener continuidad. Pero como siempre antes de un deadline se desea terminar varias cosas. Asi que para seguir esa tradición pienso terminar varios posts para terminar e iniciar 2006 y 2007 en ritmo…