domingo, 25 de enero de 2009

Ha sido sin querer

Asi empiezan los usuarios, con lágrimas en los ojos, a contarte cómo se acaban de cepillar vilmente un importante fichero. Todos los días hago las copias de seguridad para que no pierdan más de 8 horas de trabajo (algunos ni eso), pero si les veo muy compungidos, hago la prueba con Recuva sobre el disco afectado:


Y en función del color que aparezca junto al fichero sabemos las posibilidades de recuperación que tiene:


Eso si, procura que no esté el usuario delante, pues puede morirse de la verguenza al ver que le has pillado todo el porno que ha borrado ;-)

Controlando el espacio

Otra de las facetas Sherlock Holmes con las que me toca lidiar es buscar dónde se va el espacio en el disco duro, pues según el usuario no hay nada. Para esto existe un programa que viene de perlas, WinDirStat, con el que sólo hay que seleccionar qué unidad queremos analizar:


Y tras unos segundos (depende del tamaño y la cantidad de ficheros) se obtiene la siguiente ventana, donde en la parte inferior nos tendremos que fijar en los rectángulos mayores, pues corresponden a los ficheros de mayor tamaño:


Anda que no he encontrado carpetas de tropecientos gigas perdidas por los discos duros, gracias a esta herramienta. O identificado una carpeta con 32000 ficheros de 1 Mb de Logs.

Refrán informático


"Lo importante no es saber hacerlo, sino tener el teléfono de quien lo sabe hacer."


Usuario cojonero

viernes, 23 de enero de 2009

Gestionando incidencias

En mi trabajo, tengo que responder frecuentemente a preguntas como qué he estado haciendo, qué llevo hecho, qué tengo pendiente, etc...También necesito llevar un histórico de todas las incidencias que tienen los usuarios, adjuntar archivos a las mismas, integrarlo con el email y generar informes con ello. Llevo unos años usando BugTracker .NET con un resultado muy satisfactorio dentro de un entorno multiusuario. La herramienta requiere lo siguiente:

Software en Servidor:

  • IIS con ASP .NET activado (Windows XP o 2003 Server, dependiendo del nº de usuarios). Usa ASP .NET + AJAX + JQuery.
  • SQL Server (vale el Express, gratuito, dependiendo del nº de usuarios).
  • [Opcional] Active Directory para usar autenticación de Windows con los usuarios.
  • [Opcional] MS Exchange u otro servidor de correo.

Software en cliente:

  • Navegador con javascript (testeado con IE y Firefox)
  • [Opcional] Bug shooting para subir pantallazos (gratuito).
  • [Opcional] MS Excel para exportaciones a Excel.
  • [Opcional] Cliente de correo.

Pros:

  • No necesita instalación en el cliente, sólo la cuenta de usuario creada:
  • Permite campos personalizados y su inclusión en búsquedas:
  • Permite generación de informes y gráficos a partir del frontend de búsquedas o de SQL puro y duro:
  • Permite adjuntar archivos, que se guardarán en SQL Server.
  • Tiene buen soporte (para ser opensource) en caso de haber problemas, y es faćilmente modificable.
  • Trae un dashboard donde consultar la actividad actual (según se defina):
  • Permite busquedas avanzadas Lucene.
  • Su programación hace muy sencilla la modificación y personalización del estilo (o a mi me lo parece).
Contras:
  • No está traducido al castellano, lo tienes que hacer tú mismo a mano en cada nueva versión que descargues. Esperemos que lo mejoren.
Demo del programa.

jueves, 22 de enero de 2009

Refrán informático


"No es quien antes lo hace, sino quien antes lo encuentra hecho."


Anónimo descubriendo la potencia de google.Enlace

Comprimiendo ficheros

No es raro oir a un usuario quejarse porque se le bloquea el programa de correo. Cuando llegas ahi, tiene un adjunto de chorrocientos megas en la bandeja de salida o están recibiendo otro regalito por el estilo. El usuario "tipo" no hace un uso adecuado de herramientas de compresión, mientras que el que si lo hace emplea herramientas, por lo general, de pago. No comprendo muy bien por qué, existiendo herramientas como 7 zip:
  • Permite comprimir en diferentes formatos:
  • Permite leer de estos formatos:
  • Permite partir el fichero comprimido en varias partes.
  • Permite establecer contraseña sobre el fichero comprimido.
  • Permite crear archivos .EXE autoextraibles, por si el receptor no tiene el 7 zip.
  • Se integra en el explorador de Windows:
  • Lo mejor, permite el uso desde línea de comandos, ideal para programar tareas de copias de seguridad.
Aunque sólo se anuncie para Windows, existe un port para Linux: . El problema es que carece de frontend, así que mejor que los usuarios de Linux se instalen la versión de Windows usando Wine.

Y dependiendo de la máquina, variará su velocidad:

El uso de CPU mostrado debe ser porque lo ejecuto bajo Linux ;-)

Refrán informático


"Si funciona, no lo toques."

Anónimo con experiencia

sábado, 17 de enero de 2009

Virtualizando con VMWare Server

Poco que contar de esta maravillosa herramienta (que llevo años usando) que no se haya escrito ya. Precisamente ahora, en estos tiempos de crisis en los que el reaprovechamiento de hardware resulta esencial, aprovecho para explicar cómo me va esto de tener varios ordenadores (Guests) dentro de uno solo (Host) usando esta herramienta y qué usos son los que yo he aplicado en mi día a día.

Básicamente, trabajo a diario con estas máquinas virtuales (Guests) y usando estas aplicaciones, todo bajo Hosts de marca con VMWare Server 1.0x:

  • Windows 2003 Server + MS Exchange Server 2003 (menos de 60 usuarios)
  • Windows 2003 Server + MS Sharepoint 2K7 .
  • Windows 2003 Server + MS SQL Server 2005 (BBDD de Sharepoint, menos de 8 Gb).
  • Windows 2003 Server como controlador secundario de Active Directory (ojo, el primario no recomiendan virtualizarle).
  • Varios Windows 2003 Server + IIS.
  • Varios Windows 2003 Server + IIS en clúster.
  • Windows 2003 Server + IIS + Apache + SQL Server Express + MySQL.
  • Windows 2000 Server + IIS + SQL Server 2000.
  • Varios Windows 2000 Server para aplicaciones bajo Terminal Server (menos de 15 usuarios por máquina, hasta 20 aplicaciones distintas).
  • Varios Windows XP para uso de usuario final usando RDP.

Desde el punto de vista del mantenimiento y sostenibilidad del sistema, esta muy bien contar con las ventajas que puede ofrecer VMWare Server:

  • El uso de máquinas virtuales te independiza del hardware usado, pues pasar de un servidor a otro se limita a instalar VMWare Server en el nuevo servidor, copiar los ficheros de los Guests y configurarlos dentro de VMWare Server.
  • Se puede instalar en varios sistemas operativos (Windows, Linux, Solaris, ...). Por si el día de mañana toca cambiar...
  • Es posible mantener Hosts fríos sin coste económico del software. Si el equipo no está encendido...
  • Es maravilloso para hacer pruebas y experimentos con los servidores (usando los de backup, claro).
  • Tiene multitud de Appliances gratuitas disponibles (Guests con aplicaciones preconfiguradas y listas para funcionar), lo que se merece un artículo por si solo.
  • Es asombrosamente estable si el host está bien configurado y cuenta con el hardware apropiado.
No todo es perfecto, al ser una versión gratuita tiene sus limitaciones pero puede ser suficiente para la mayoría:
  • Admite Guests de un máximo de 3.6 Gb de RAM (v1.0x) y 8 Gb (v2.0)
  • Admite Guests de un máximo de 2 procesadores virtuales.
  • No hace magia: Si los Guests hacen uso intensivo de disco, mantenlos en discos duros separados o irá muy despacio. Tampoco puedes montar el proxy de la red de la empresa en un clónico con una sola tarjeta de red a 10 Mb/s, ni ejecutar tu servidor desde el pendrive USB..

A través de mi experiencia, me aventuro a dar estas recomendaciones para los Hosts:

  • La más importante: Compra hardware de marca, con componentes de calidad, porque la fiabilidad tiene que estar garantizada. Haz contrato de mantenimiento con la casa.
  • Procura usar RAID por hardware:0, 1, 0+1 o 1+0, dependiendo de lo que necesites. No uses RAID 5, porque se escribe más despacio en disco respecto a las lecturas y penaliza a las máquinas.
  • Compra toda la RAM que vayas a necesitar, no seas roñoso.
  • Configura VMWare Server para que reserve RAM en exclusiva para cada máquina y no haga SWAP en disco.
  • Procura usar el Host en exclusiva para los Guests.
  • Haz backups periódicos de los Guests y/o mantén copias frías (apagadas) en otros servidores.

Y estas son recomendaciones para los Guests:

  • Instala las VMWare Tools. Siempre.
  • Sólo si el suministro eléctrico está asegurado (SAI) y el hardware es apropiado, se pueden deshabilitar los volcados de RAM a disco en el fichero .VMX, con lo que la velocidad de la máquina aumentará muy significativamente al no trabajar con los ficheros .VMEM. Si tienes un Guestcon >3 Gb de RAM, figúrate que uso de disco hace...
  • Procura no partir de una máquina procedente de P2V a no ser que no te quede más remedio. Si procuras instalarla de 0, con lo justo y necesario que vayas a usar, tendrás un mejor control del Guest y consumirá menos recursos.
  • Si se va a usar el disco del Guest intensivamente, créalo de un tamaño fijo desde el principio (allocate disk space now), si no se hace un uso intensivo o para máquinas de prueba, procura ahorrar espacio.
  • Procura asignar las direcciones IP por DHCP y MAC. Te ahorrará sustos y disgustos.
  • Ojo al copiar, clonar o mover los Guests: Necesitarás conservar los datos identificativos únicos del Guest o volver a generarlos.

Sistemas operativos que uso en servidor (Host):

  • Windows Server 2003 Enterprise: Fiabilidad total, meses sin reiniciar (mala praxis, lo sé...). La versión Enterprise es por aprovechar más de 4 Gb de RAM en el Host. Los Performance Counters de VMWare Server son indispensables para depurar problemas de interacción y/o configuración de los Guests.
  • Fedora 9: Para hacer lo mismo que el anterior, pero gratis. Fiabilidad total. El "pero" es que la instalación es más complicada y cada upgrade del kernel requiere recompilar la aplicación y rezar para que tire (o quedarse con una versión de kernel fija).
  • Windows XP Professional: Tan estable como sea el Windows XP... Sólo recomendable para pruebas o máquinas no críticas. Los problemas no los dará VMWare Server ;-)

Por cierto, respuestas a ciertas preguntas que quedaban en el aire....:

  • ¿Qué aprovechamiento Host/Guest tengo? Actualmente trabajo con unos 4 equipos (Guests) montados en cada servidor (Hosts con SCSI, RAID y doble procesador). Con el mismo coste final, me parece mejor usar un servidor de marca de 6000 Euros que 4 servidores clónicos de 1500 Euros. El ahorro energético también es significativo. Si los Guests consumen poca CPU y disco, se pueden montar más Guests en menos Hosts, pero si trabajan intensivamente cambia la película.
  • ¿Por qué uso la versión 1.0x y no la 2.0? Como dice el viejo dicho del informático: "Si funciona no lo toques...". Me han hablado bien de la v 2.0, pero siempre trabajo con a 1.
  • ¿Por qué VMWare Server y no VMWare Player, gratuito también? Muy sencillo, VMWare Server corre como servicio y no requiere intervención para los encendidos y apagados controlados de las máquinas virtuales cuando se apaga el host: VMWare Server no requiere que un usuario inicie una sesión y es más fácil para trabajar con él de cara a instalarlo en servidores o correr varios Guests.
  • ¿Por qué VMWare Server y no VMWare ESXi (gratuito)? Supongo que porque todavía no lo he probado. Tiene pinta de ser un auténtico cristo trabajar con esa versión. Si realmente necesitase aprovechar la virtualización al máximo, me iría a la versión de pago.
  • ¿Por qué VMWare y no otra plataforma de virtualización? Principalmente trabajo con Hosts/Guests WIndows y Linux y, hoy por hoy, es la mejor opción con diferencia.
  • ¿Cambiaría VMWare Server en un futuro por otro sistema? Estoy siguiendo de cerca las mejoras en Linux y paravirtualización, especialmente XEN. Si tuviese un Mac usaría Parallels sin duda. Pero me parece que los tiros van a ir por otro sitio: alquilar el Host en internet. Mi problema del día de mañana va a consistir en reducir los requisitos de los Guests al mínimo por costes y exprimir la paravirtualización en entornos multiguest.

Enlaces interesantes:

Tabla comparativa de plataformas de virtualización.

viernes, 16 de enero de 2009

Monitorizando equipos (I)

Una de las tareas que te encargan nada más llegar a un puesto de trabajo es la de documentar todos los equipos lo que tienen funcionando: servidores, estaciones de trabajo, modificaciones en los mismos, software instalado, etc... Para registrar todo esto existen multitud de herramientas de pago, pero soluciones gratuitas también., empezaré por las "pequeñas".

Una que siempre me gustó bajo Windows fue SYDI (Script Your Documentation Instantly): unos scripts (.vbs) que recogen información de Windows (muy buena y completa), SQL Server (le hacen falta unos retoques al script), MS Exchange (beta) y Linux (nunca la probé, pero parece "very buggy"). Como se ve, la única que me gusta es la de Windows: Con una línea de comandos (y los privilegios necesarios) puedes documentar un Active Directory con equipos que corran Windows 2000 o superior usando consultas LDAP para especificar los equipos.
Los informes por equipo se pueden generar como XML (para ver individualmente como HTML o parsear varios en Excel y compa) y en formato Word para presentar al jefe:


Tal vez a alguien le interese combinarlo con Silent Runners, otro script (.vbs) que detecta lo que se ejecuta al arrancar Windows y genera un fichero de texto con ello. Comparando 2 ficheros veremos las diferencias, mejor si usas WinMerge:



En modo gráfico también existe Autoruns de Sysinternals, otra de las "imprescindibles" a la hora de revisar lo que ejecuta un equipo:


lunes, 5 de enero de 2009

Monitorizando programitas... (II)

Otra de las herramientas indispensables para realizar el seguimiento de programas es el Process Monitor de Sysinternals (ahora absorbido por Microsoft). Este programa permite escuchar todo lo que se hace en el equipo, además de poder guardarlo o filtrarlo para posteriores búsquedas. Muy útil cuando un programa intenta acceder a algún sitio y no genera ningún error que te de la pista.


Ojo, la cantidad de información que se genera es brutal, recomiendo filtrar primero por Nombre de usuario y Nombre de ejecutable para no sobrecargarlo, aunque todo depende del uso que se le quiera dar.