Error en xenserver SR_Backend_Failure_47

El otro día un cliente me llamó diciéndome que su sistema iba extremadamente lento. En un principio me acojoné un poco porqué este cliente funciona con Datacore SANsymphony en su versión 9.0 PSP4 (algún día hablaré del Virtual Storage) y con un sistema horrendo llamado Citrix XenServer.

Vale…supongo que ya habré herido algún sentimiento, pero pienso lo escribo: en mi particular ranking, este sistema ocupa el último puesto en cuanto a virtualización. No me gusta nada. Pero como tengo clientes que lo usan, debo saber aprender a manejarlo.

Siguiendo con lo que decía, mi cliente me llamó informándome que todo iba muy lento y cuando me conecté a la consola XenCenter, me fijé que todos los discos virtuales (a.k.a SR), habían perdido un path iSCSI hacia la V-SAN. (NOTA: los errores de multipathing son parecidos a la imagen siguiente, ya que podemos ver los dos servidores y en uno de ellos nos marca Connected y en el otro Unplugged)

¿Y ahora como los conecto? Bueno … pues tirando de manuales:

  • Hacemos clic sobre el servidor xenserver que ha perdido la conexión (NOTA: En un entorno multipathing, los servidores tienen varios caminos o path para acceder a los discos duros de la cabina) y pulsamos la pestaña “Console”

image

  • Veréis que es una consola Linux
  • En ella sacaremos primero de todo el error que nos da. Para ello, primero de todo buscamos el uuid (Universal Unique IDentifier) de nuestro SR asociado al host que ha perdido el path
[root@nuestroservidorxen]# xe sr-list
  • Cogemos el uuid del PBD (Physical Block Disk) asociado al SR anterior
[root@nuestroservidorxen]# xe pbd-list sr-uuid=<em>[Valor que nos a dado el comando anterior]</em>
  • Buscamos el parámetro que nos da el problema:
[root@nuestroservidorxen]# xe pbd-param-get param-name=other-config uuid=<em>[Valor que nos a dado el comando anterior]</em>

Bien, pues nos econtramos con un SR_Backend_Failure_47, que nos viene a decir que el servidor xenserver no se puede conectar con el recurso iSCSI. Dicho esto, debemos comprobar si realmente no existe comunicación entre el host i el recurso. Para ello haremos un ping a la interface de red del recuso iSCSI. Si NO responde, deberemos hallar el problema que muy probablemente será físico, pero si el ping responde, lo más seguro es que el problema sea lógico.

En nuestro error, el problema es lógico, ya que los ping responden sin problemas. Así mismo, para terminar de verificar el problema, podemos probar los siguientes comandos:

[root@nuestroservidorxen]# iscsiadm –m node

Con este comando veremos todos los IQNs disponibles y activos

[root@nuestroservidorxen]# iscsiadm –m session

Con este comando veremos todas la conexiones activas. Si no hay ningún error en ningún comando, entonces es que nuestro xenserver no se puede conectar al SR iSCSI (problema lógico). Pues ale, vamos a probar de conectarlos de nuevo…y lo haremos de dos formas. Pero ¡ojo! la/s máquina/s virtual/es asociada/s a este SR, deben estar apagadas.

Por consola:

root@nuestroservidorxen]# xe sr-list

[root@nuestroservidorxen]# xe pbd-list sr-uuid=<em>[Valor que nos a dado el comando anterior]</em>

[root@nuestroservidorxen]# xe pbd-plug uuid=<em>[Valor que nos a dado el comando anterior]</em>

Por el XenCenter

  1. Apagamos la/s máquina/s virtual/es asociada/s al SR que ha perdido la conexión
  2. Hacemos clic con el botón derecho sobre el SR que ha perdido la conexión y seleccionamos Detach con lo que desconectaremos el SR de todos los xenserver
  3. Hacemos clic con el botón derecho sobre el SR que hemos desconectado y seleccionamos Attach, con lo que podremos generar una conexión nueva

Si todo a ido bien, nuestro SR volverá a estar operativo con los dos (o los que sean) path iSCSI activos de nuevo.

Error en la instalación de vSphere 6.0

Ya sé que hace mucho tiempo que no escribo nada interesante y me han llegado algún que otro mail, quejándose un poco de por qué tengo el Blog desactualizado. La verdad es que no dispongo de mucho tiempo y, cuando encuentro/soluciono alguna incidencia que quiero compartir con vosotros, pues me resulta imposible poderlo hacer. Así que, espere que (por enésima vez) pueda como mínimo escribir con cierta regularidad al respecto.

Dicho esto, os comento un reciente error (de hace algunos meses) que me daba la instalación del vSphere 6.0 como appliance. Los únicos vSphere que había instalado (en su versión 6.0) y por necesidades del guion, fueron sobre Windows Server 2012 R2 y la primera vez que lo instalé como appliance no paraba de darme errores en la instalación: Firstboot script execution error.

Pues bien, la solución la hallé aquí i la comparé en este blog, y la verdad la solución me dejó perplejo: solamente hay que añadir 1 solo registro DNS durante el proceso de instalación (a ser posible el del dominio) y si así persiste el error, añadir un registro DNS al controlador de dominio antes de la instalación (a mi me funcionó el primer paso).

Como comenta alguien en los foros de VMware…

vmware_please

Administrar Active Directory con Powershell: modificar la carpeta personal del perfil de usuario

El otro dia me encontré con un problema bastante «peasado» para resolver. En casa de un cliente, hicimos una migación de servidor de dominio de un Win2k3 hacia un Win2k8R2 con un Win2k12R2 como soporte secundario. La migración fue perfecta pero repasando los perfiles de usuario del ActiveDirectory, vi que muchos de ellos en su perfil tenian configurada una ruta hacia una carpeta personal que ya no servia de nada.

Problema: como hago para poder eliminar la ruta configurada en el perfil de usuario sin ir uno a uno, botón derecho, propieades, perfil … para unos 80 usuarios?

Solución: mi queridíssimo Powershell 🙂 Empezamos!

  • Primer paso (importante): Ejecutar powershell desde nuestro servidor controlador de dominio y tener instalado los modulos de gestión del ActiveDirectory (por defecto cuando promocionamos un servidor, se instalan).
AddWindowsFeature RSAT-AD-PowerShell
Import-Module ActiveDirectory
  • Segundo Paso: Una vez instalado e importado el módulo, deberemos sacar la información de los usuarios. Para ello usaremos el comando Get-ADUser. Pero atención, si lo usamos a «paloseco», se nos pedirà que apliquemos un filtro de búsqueda. Para que hagáis la prueba, ejecutad el siguiente comando:
Get-ADUser -Filter *

El parámetro «-Filter *» nos va a mostrar todos los usuarios del AD.

  • Tercer paso: ahora que sabemos buscar los usuarios, deberemos saber la información contenida en dicho usuario. Para ello usaremos el parámetro «-properties *». Esto nos sacará TODAS las propiedades del usuario. Con ello sabremos que campo modificar:
Get-ADUser [nombre de usuario con el que se loguea] -propierties *

Si nos fijamos en el resultado, ya vemos que campo queremos modificar en nuestro caso concreto: HomeDirectory. Sabiendo esto, podemos acotar aún más el filtro:

Get-ADUser [nombre de usuario con el que se loguea] -properties HomeDirectory
  • Quarto paso:Ahora teniendo ya toda la información, procedemos a la modificación del parámetro HomeDirectory para TODOS los usuarios del ActiveDirectory y lo dejaremos sin ninguna ruta:
Get-ADUser -Filter * -properties HomeDirectory | Set-ADUser -Clear HomeDirectory

Y listos! Nos hemos ahorrado ir usuario a usuario modificando el HomeDirectory y lo hemos podido hacer en solo una línea de código. Ahora bien, si somos un poco ordenados y tenemos inventariadas las rutas de las carpetas locales, podemos hacer filtros y modificar solamente aquellas rutas que nos interesen. Por ejemplo, si solo quiero modificar la ruta Z:\empresa\perfiles\usuarios\ usaría el siguiente comando:

Get-ADUser -Filter * -properties HomeDirectory | where {$_.homedirectory -like "Z:\empresa\perfiles\usuarios" | Set-ADUser -Clear HomeDirectory

O si quiero cambiar a otro directorio de red:

Get-ADUser -Filter * -properties HomeDirectory | where {$_.homedirectory -like "[Directorio Viejo" | Set-ADUser -HomeDirectory "[Directorio Nuevo]"

PowerShell si lo sabemos usar o si queremos administrar nuestro dominio de una forma sencilla y rápida, es una herramienta muy poderosa. Además, siempre podemos tener nuestro repositorio de comandos en un OneNote para tenerlos a mano. En mi caso, no siempre me acuerdo de todo 😛

Espero haberos ayudado!

Error en imprimir con Chrome: se quedan los documentos en la cola de impresión

Chrome Crash

Desde el pasado 27 de Agosto, se ha detectado que la última actualización de Google Chrome está dando problemas cuando queremos imprimir a través del navegador, quedándose los documentos en la cola de impresión. Esto sucede tanto si queremos imprimir a través del menú de Chrome o a través de código. De momento no hay una solución oficial y lo único que podemos hacer es cambiar la ruta del directorio temporal pues al parecer, la sandbox falla al no detectar la ruta correcta.

Esto se puede solucionar con un fichero batch:

echo off
md c:\gtemp\%username%\Temp
setx TEMP c:\gtemp\%username%\Temp
setx TMP c:\gtemp\%username%\Temp

En mi caso, al sucederme esto en un entorno Windows 2012R2, he creado un fichero *.bat y lo he forzado a que se ejecute al inicio de sesión de cada usuario, mediante el Logon script de las GPO. De esta forma el cambio se ejecuta en todos los UPD.

De momento no hay parche a la vista. En cuanto salga, actualizaré el post.

Fuente | Code Google

Microsoft Outlook: como recuperar la caché de contactos sin el fichero NK2

Un pequeño truquito para recuperar el ficherito de la memória caché del Outlook o en lo que en lenguaje coloquial se refiere, a la «lista de contactos que sale en el campo Para cuando pulso la letra a«, lo que el común de los trabajadores considera como su agenda del Outlook.

Bien, en primer lugar esto NO SIRVE PARA GUARDAR CONTACTOS! Simplemente es una cceso rápido a las direcciones de correo electrónico. Dicho esto, también hay que decir que Microsoft se ha puesto las pilas en cuanto a recuperar caché y demás (desde la versión 2010 la lleva incluida en el propio fichero PST), facilitando mucho las cosas con un Archivo -> Abrir -> Importar desde fichero PST.

Ahora bien, ¿que sucede cuando hemos actualizado un Outlook 2007/2010 a 2013 y el cliente dispone de Exchange? es decir, no existe fichero PST sinó fichero OST. Vamos a ello!

  • Navegamos hasta la ruta %APPDATA%\Local\Microsoft\Outlook\RoamCache
  • Aquí dentro deberemos encontrar unos ficheros con extensión *.SRS que empiezan por Stream_Autocomplete_0_XXXX
  • Debemos fijarnos en los tamaños: hay uno (el primero en teoria) que ocupa entre 1Kb y 2 Kb. Justo el sigueinte (en teoria) debe ocupar unos 100Kb o 200Kb. Este fichero es el bueno.

El engaño, el truco, la «magia»:

  1. Con el Outlook cerrado, movemos el segundo fichero en un directorio a parte (vamos a poner por ejemplo C:\backup-cache\
  2. Abrimos el Outlook y nos automandamos un mail. De esta forma se nos generarà un fichero nuevo Stream_Autocomplete_blablabla.srs
  3. Cerramos el Outlook
  4. Movemos este nuevo fichero a otro directorio (por ejemplo C:\backup-cache2\)
  5. Ahora, vamos al segundo directorio (C:\backup-cache2\) nos colocamos sobre el fichero, pulsamos F2 y copiamos el nombre entero del fichero.
  6. Vamos al primer directorio (C:\backup-cache\) nos colocamos sobre el fichero, pulsamos F2 y pegamos el nombre entero del fichero del segundo directorio. De esta forma tenemos un fichero SRS con toda la información pero con el nombre del nuevo fichero que ha generado el Outlook.
  7. Movemos este último fichero modificado a %APPDATA%\Local\Microsoft\Outlook\RoamCache.
  8. Abrimos el Outlook.

Si todo ha funcionado como debería, ya tendremos todo nuestro fichero de memoria caché recuperado. Recordad, este sistema es para recuperar la caché cuando el cliente dispone de un Exchange (en local o Online) y actualizamos la versión del cliente Outlook. En cuentas POP3 recuperando el PST ya nos basta.

Deshabilitar servicios o programas mediante la consola de recuperación de Windows

¿Qué ocurre cuando un servicio se bloquea y nos impide arrancar Windows? Es decir, cuando no sale una pantalla azul (o BSOD), siempre que el error mostrado sea de un controlador/servicio/programa. Os recomiendo este post y este otro post para poder identificar las distintas causas de los pantallazos así como su codificación.

Pues la solución es bastante sencilla: usando la consola de recuperación. Para ello lo que deberemos hacer es lo siguiente:

  • Arrancamos nuestro Pc con el CD de instalación de Windows XP.
  • Una vez se hayan cargado los controladores, pulsaremos la ‘R‘ y accederemos a la consola de recuperación.

Más adelante explicaré algunos de los comandos más usados (o los que más uso) para reparar el sistema operativo. Ahora, de momento, deberemos aprender el comando listsvc. Este comando nos listará todos los servicios en el inicio de Windows.El otro comando que debéis tener en cuenta es disable y  con el parámetro /? podréis ver sus opciones (aunque no tiene ningún secreto).

 

Fijaros que el comando disable nos presenta los distintos estados de los servicios, es decir, los start_type que son:

  • SERVICE_DISABLED: nos dice que el dispositivo está deshabilitado.
  • SERVICE_BOOT_START: nos indica que el controlador de dispositivo es iniciado por el propio sistema operativo.
  • SERVICE_SYSTEM_START: este es un poco extraño. Nos indica que un controlador de dispositivo es iniciado por la función IoInitSystem (lo busqué en el KB de Microsoft porqué no sabía lo que era).
  • SERVICE_AUTO_STAR: nos indica que un un controlador de dispositivo o servicio de Windows es iniciado por el administrador de servicios de manera automática.
  • SERVICE_DEMAND_START: nos especifica que un controlador de dispositivo o servicio de Windows, es iniciado por el administrador de servicios.

Esto quiere decir que si ponemos:

C:\disable [nombre_del_servicio]

A la que hagamos un listsvc, nos mostrará el estado del servicio. Dicho esto y sabiendo cual es el servicio/controlador que nos está causando problemas, lo podremos deshabilitar y arrancar nuestro sistema operativo. Si, aun deshabilitándolo todo, nos sigue saliendo la pantalla azul, el problema ya es otro 😉

Ejecutar una máquina virtual como una sesión en Ubuntu

Puede que el título sea un poco críptico pero lo que vengo a decir es como podemos ejecutar una máquina virtual instalada en nuestro Ubuntu como si fuera un usuario.

Los pasos a seguir son muy muy simples:

  • Creamos un usuario (que en mi caso le he llamado windows)
  • Accedemos dentro del perfil y instalamos la máquina virtual (p.ej. un Windows XP)
  • Añadimos el usuario anteriormente creado al grupo ‘vboxusers’
  • Creamos el script windows.sh:

sudo gedit windows.sh

  • Le añadimos las siguientes líneas de código:

#!/bin/bash

VBoxSDL -fullscreen -vm "WindowsXP"

Donde WindowsXP es el nombre de nuestra máquina virtual.

  • Le damos permisos de ejecución:

sudo chmod +x windows.sh

Vamos a Sistema -> Preferencias -> Aplicaciones al inicio y añadimos el path del script (que en mi caso es home/adriwan/escritorio/windows.sh) y listo.Ahora cuando reiniciemos el sistema podremos escoger entre nuestro usuario normal o nuestro usuario virtual 🙂

Ya me contaréis si os ha funcionado (a mi si y a la primera).

Via | Ubuntu Life

Reparación de un NAS Iomega ix2-200

Uno de los dispositivos de almacenaje para copias de seguridad que ya llevan un tiempo circulando por el mercado y que funcionan muy bien, son los NAS (Network Area Storage) o Dispositivos de Almacenamiento por Red. Estos dispositivo son una solución relativamente económica para las empresas/particulares para poder almacenar sus copias de seguridad. ¡Ojo! Nunca recomiendo tener este dispositivo como único sistema de copias de seguridad, ya que son bastante delicados y se pueden estropear como el caso que os planteo ahora.

Me llegó hace tiempo un NAS Iomega modelo ix2-200 con 2 Tbytes de capacidad de almacenamiento en RAID1 que no reconocía ningún disco (de los dos que tiene), además de encenderse y parpadear constantemente un LED blanco. Posteriormente supe que eso se le llama LED Blanco de la Muerte (o WLoD). Total que se cascó el RAID y no había forma humana de recuperar la información así que decidí cambiar los discos duros, siendo mi sorpresa que el mini sistema operativo que el dispositivo lleva dentro no funcionaba ni arrancaba con lo que me resultaba inútil probar de hacer cualquier tipo de reparación que no fuera la de reinstalar el mini OS.

Hay que decir que estos Iomega funcionan con un sistema operativo «propio» y un sistema Linux instalado en los primeros 100 Mb del disco en una partición primaria. Una de las primeras soluciones que probé, fue la de instalar el firmware propio que me proporciona Iomega y no funcionó con lo que investigando un poco dí con la solución que os presento. Para ello necesitamos:

  • Live CD Knoppix o el que yo utilicé, que fue un System Rescue CD con una distribución Gentoo (cualquier otra LiveCD como p.ej. Ubuntu serviría)
  • ACTUALIZACIÓN: Nuevos links de descarga del firmware
  • El disco duro del NAS enchufado por USB o cable SATA

El sistema operativo que se instalará nos permitirá mediante el gestor Web que estos NAS llevan configurar el resto del disco/s como queramos (RAID1, JBOD, iSCSI, etcétera …) y con ello habremos «resucitado» el NAS.

El primer paso consiste en copiar al directorio /tmp los ficheros ix2-200-2.1.25.299-files.7z.001 y ix2-200-2.1.25.299-files.7z.002. Luego ejecutamos:

sudo root
cd /tmp
7z x ix2-200-2.1.25.299-files.7z.001
tar xvf ix2-200-2.1.25.299-files.tar
rm -f ix2-200-2.1.25.299-files*

Ya tenemos los ficheros descomprimidos y listos para poner en el disco.

Ahora vamos a preaparar el disco duro de 1Tbyte (recordemos que este NAS lleva 2 HDD de 1Tbyte cada uno) y lo que yo hice fue conectarlo al pc mediante un USB-SATA. Buscaremos la unidad (normalmente sdx donde X es el nombre de la unidad. Para facilitar la redacción del post, le diremos sda). Ejecutamos:


sudo dmesg

Y buscamos la unidad. Ahora, una vez encontrada procederemos a prepararla:

sudo fdisk /dev/sda

Bien. Este paso es un poco lioso y procuraré explicarlo lo más fácil posible (después de cada opción pulsaremos <enter>:

  • Usaremos la opción ‘p‘ para comprobar si el disco dispone de alguna partición. En caso de haber alguna, la debemos remover con la opción ‘o
  • Crearemos una nueva partición con la opción ‘n
  • La haremos primaria con la opción ‘p‘ y le diremos que empiece en el cilindro 1 y que el último sea el 254.
  • Debemos asegurar también que el disco tiene el ID 83. En el caso que no sea así, ejecutamos la opción ‘t‘ y le damos manualmente el código 83.
  • Guardamos la configuración con la opción ‘w‘ y salimos de fdisk

La primera partición del disco duro, ya esta lista y preparada para poder ser usada como RAID. En la consola, ejecutaremos el siguiente comando:

sudo mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sda1 missing

NOTA: si no está instalado, sudo apt-get install mdadm y si usáis el System Rescue CD, ya viene instalado.

Y ahora formateamos con el sistema de ficheros ext2

sudo mkfs.ext2 /dev/md0

Y ahora copiamos los ficheros que hemos guardado en el directorio /tmp en el disco duro que acabamos de preparar:

mount /dev/md0 /mnt/
cp -rf /tmp/ix2-200-2.1.23.229-files/* /mnt/
sync
umount /mnt/

Ya tenemos el primer disco preparado. Ahora, debemos coger el otro disco y repetir el proceso de creación de la partición con el fdisk y el mdadm (no hace falta formatear. Montamos en el NAS solamente el primer disco que hemos preparado, lo encendemos y nos conectamos a la unidad mediante la red (creo recordad que la ip por defecto es la 192.168.1.11). Lo apagamos, montamos el segundo disco, lo encendemos y cuando nos volvamos a conectar, nos saldrá un mensaje ‘Data protection is being reconstructed‘. Dejamos que termine el proceso y listo, ya tendremos nuestro Iomega ix2-200 nuevo otra vez 🙂

Tip: crear carpetas protegidas por contraseña en Windows 7

A veces mucha gente me pregunta como puede crear un directorio o carpeta bajo Windows protegida por contraseña, y me quedo con cara de pasmarote pensando «botón derecho -> proteger por contraseña» pero por lo que se ve, no funciona del todo :p Así que os presento un pequeño truco para hacerlo mediante los ficheros por lotes (los ficheros bat).

  • Creamos una carpeta nueva
  • Dentro de ella, creamos un nuevo documento (botón derecho -> Nuevo -> Documento de texto) lo abrimos y dentro escribimos el siguiente código:
cls
@ECHO OFF
title Folder Privada
if EXIST “Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}” goto UNLOCK
if NOT EXIST Privada goto MDLOCKER
:CONFIRM
echo Quieres proteger tu directorio? (S/N)
set/p “cho=>”
if %cho%==S goto LOCK
if %cho%==s goto LOCK
if %cho%==n goto END
if %cho%==N goto END
echo Error. Contesta SI (s/S) o NO (n/N).
goto CONFIRM
:LOCK
ren Privada “Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}”
attrib +h +s “Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}”
echo Carpeta protegida
goto End
:UNLOCK
echo Password para desproteger
set/p “pass=>”
if NOT %pass%== ENTER YOUR PASSWORD HERE goto FAIL
attrib -h -s “Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}”
ren “Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}” Privada
echo Carpeta desprotegida satisfactoriamente
goto End
:FAIL
echo Password no valido
goto end
:MDLOCKER
md Privada
echo Carpeta Privada creada correctamente
goto End
:End

IMPORTANTE: En la línea 23, veréis que hay un sitio que pone ENTER YOUR PASSWORD HERE que es donde deberéis escribir vuestra contraseña para proteger la carpeta.

  • Guardamos el fichero con extensión .bat con el nombre que queramos.
  • Entonces ejecutamos el fichero [nombre_que_sea].bat y éste nos generará otra carpeta que se llama Privada donde pondremos lo que queramos dentro (que posteriormente protegeremos.)
  • Una vez guardado el contenido en su interior, volvemos a hacer doble clic sobre el fichero [nombre_que_sea].bat y se nos abrirá una ventana cmd que nos preguntará si la queremos proteger (a lo que deberemos responder que si pulsando la tecla ‘s’) y automáticamente la protegerá y la ocultará.

  • Para volver a acceder a ella, ejecutamos de nuevo el fichero [nombre_que_sea].bat y le ponemos el password que previamente hemos escrito en el fichero.

¡TACHÁN! ya tenemos un método para proteger las carpetas.

Via | Google