11/6/17

Rendimiendto de red lenta en maquinas Virtuales de Hyper-V

Este problema de latencia en maquinas virtuales de Hyper-V (ya sean windows o linux) se presenta por lo general con NIC de la marca Broadcom, notaras que la trasferencia desde y hacia estas maquinas virtuales será sumamente lenta y al hacer un ping la latencia estará por sobre los 128ms.

La solución es ingresar a las opciones avanzadas del adaptador de red utilizado como switch de hyper-v (o de la maquina especifica) y deshabilitar la "Linea de Espera para Maquinas Virtuales" (Virtual Machine Queues).



15/5/17

Disk2VHD e Hyper-V "Error loading operating system"

Convirtiendo una maquina física a virtual con la herramienta disk2vhd, es muy común que al montarla en el host de Hyper-V e intentar iniciar, nos encontremos con el mensaje "Error loading operating system".


 La solución a este problema es:

1. Apagar la Maquina Virtual.
2. Montar el disco virtual en el administrador de discos, ya sea del host (o cualquier otro equipo), de la siguiente forma:
NOTA: Seguramente Windows te dirá que la unidad debe ser formateada, ignora el mensaje.
3. Descargar y descomprimir TestDisk:
4. Ejecutar testdisk_win.exe
5. Seguir los pasos de este vídeo:


6. Desmontar el disco virtual:


 ¡Y eso es todo! Ahora la maquina virtual debería poder iniciar sin problema alguno.

6/3/17

Resilio en Ubuntu Server 16.04 LTS [Off-Site Backup]

"Dos son Uno y Uno es Nada" Esa máxima se aplica para todos los factores de seguridad/prevención y el campo de la informática no es la excepción. Las tareas de backup son una necesidad, en especial en entornos empresariales y una de las mejores practicas es tener un backup off-site (o "en la nube" como insisten en llamarle actualmente).

En un articulo anterior, mostramos como crear un sistema local de backup con "Backupc", en este nuevo articulo usaremos el mismo servidor de Backuppc y le instalaremos Resilio (Anteriormente llamado BitTorrent Sync) para enviar el respaldo a un equipo remoto. Comencemos:

Para instalarlo, editamos el listado de repositorio:

sudo nano /etc/apt/sources.list

Añadiendo la linea:

Nota: Para salir de editor  "nano" y guardar los cambios se pulsa "Ctrl + x", luego "S" (o "Y" si lo tienes en ingles) y por ultimo pulsamos "Enter".
deb http://linux-packages.resilio.com/resilio-sync/deb resilio-sync non-free
Solicitamos la llave publica:

wget https://linux-packages.resilio.com/resilio-sync/key.asc

Y la añadimos:

sudo apt-key add key.asc

Actualizamos:

sudo apt-get update

Instalamos Resilio:

sudo apt install resilio-sync

Le permitimos que inicie con el sistema:

sudo systemctl enable resilio-sync

Editamos el archivo de configuración y cambiamos 127.0.0.1 (Lo cual significa "localhost") por 0.0.0.0 (lo cual permitirá acceder a la GUI desde cualquier PC).

sudo nano /etc/resilio-sync/config.json


Permitimos el paso del puerto "8888" en el firewall:

sudo ufw allow 8888

Iniciamos el servicio de Resilio:

sudo systemctl start resilio-sync

Vamos a un navegador en la red e ingresamos a la dirección: "ipdetubuntu:8888", lo cual en mi caso es: 192.168.0.15:8888 ya con esto podemos crear nuestro usuario.


 Asignamos un nombre al equipo:


Añadiendo la carpeta a sincronizar:

Primero.... Volvemos a la terminal y damos permiso de lectura y escritura al usuario "rslsync" a la carpeta que sincronizaremos, la cual pudiera ser el directorio que utiliza Backuppc.

sudo setfacl -R -m "u:rslsync:rwx" /carpeta_a_sincronizar

Y ahora si puedes agregar la carpeta desde la GUI y elegir el método con el que queramos compartir la carpeta, (para el objetivo de Backup Off-Site, utiliza la opción key).

Hasta este punto ya tienes un equipo que puede enviar tus respaldos a un servidor remoto, ahora repite el proceso en tu servidor remoto y agrega la carpeta utilizando la "Key" que generaste, pero primeramente crea una carpeta para tal fin y asigna permiso al usuario "rslsync", Ej:

sudo mkdir /directorio_y_nombre_de_carpeta
sudo setfacl -R -m "u:rslsync:rwx" /directorio_y_nombre_de_carpeta

Nota Final:

Resilio, no solo tiene clientes para Linux, también los tiene para Windows, Mac, Android, iPhone y muchos otros dispositivos. (listado acá), todos muy sencillos de configurar. Y no necesariamente debemos utilizarlo para realizar backup off-site, también podemos utilizarlo como un reemplazo de Dropbox o Google Drive.

4/3/17

Carpeta como unidad de disco.

Hay ocasiones en las que puede interesarnos que una carpeta se muestre en el sistema como una unidad de disco, un caso común en el que suelo utilizar dicho "truco" es en las implementaciones de Terminal Server, ya que es mucho más estable y sencillo, compartir un "disco" como recurso local, que una carpeta de red (la conexión suele perderse), todo esto para que el usuario comparta archivos cómodamente entre su PC Local y el Terminal Server.

Paso 1: Crear una Carpeta (cuyo nombre no contenga espacio ni caracteres especiales), en el directorio que gustes, en mi caso creare "TerminalServer" en la raíz de C:


Paso 2: Desde la consola de comandos (CMD), ejecutamos "subst T: C:\TerminalServer", donde "T:" es la letra que le asignaremos a la unidad.

Una vez, ejecutado el comando, ya veremos la nueva "unidad de disco" al ingresar a "Este Equipo/Mi PC".
Paso 3: Para que el cambio sea permanente debemos editar el registro de Windows, de no hacerlo la unidad desaparecerá cada vez que el equipo se reinicie o se cierre la sesión. 
ADVERTENCIA: Si nos equivocamos en la sintaxis, el equipo no iniciará y tendremos que restaurar el sistema, tenga cuidado de colocar todo en el orden correcto y no tener errores de tipeo.
Vamos a la clave de registro:
  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\DOS Devices
 
Y creamos un nuevo valor, con el nombre de la letra de la unidad (en mayúscula y acompañado de ":" Ejemplo T:) y la informacion: \DosDevices\C:\TerminalServer
REPITO: Cuidado con la sintaxis o el equipo no iniciará nuevamente.


Ahora podrás acceder a tu carpeta como si de una unidad de disco (o partición) se tratase, por ejemplo impartiéndola con un terminal server, lo cual (repito) es mucho más confiable y estable que compartir una carpeta como unidad de red.