Buscar

Veeam Backup: VSS vía RPC o VIX

Una funcionalidad poco conocida de Veeam Backup es que es capaz de utilizar dos tipos de conexión VSS en entornos VMWare vSphere ESXi.

El hecho es que cuando procedemos a recuperar granularmente ficheros en un servidor Windows se utiliza el servicio VSS (Volume Shadow Copy Service) del equipo Windows.

De igual forma, si realizamos un backup de una VM que contenga bases de datos SQL o Exchange es buena idea marcar la opción: "Enable application-aware image processing". 

Al marcar esta opción se consigue entrar dentro de la VM vía VSS y realizar un backup consistente.

Aquí tenemos un ejemplo de uso de la opción: "Enable application-aware image processing".


En ambas situaciones, Veeam Backup utiliza VSS:

1) Marcar la opción "Enable application-aware image processing" al hacer un backup de una VM.

2) Restaurar ficheros de forma granular sobre un equipo Windows.

y existen dos métodos de conexión de VSS, uno si se dispone de conectividad TCP/IP con la VM y otro donde no.

Veamos el detalle de la situación:

En una infraestructura de VMware vSphere necesitamos que Veeam Backup sea capaz de conectar al hipervisor ya sea de forma directa al host VMWare ESXi o bien conectando al Virtual Center donde esté registrado el host VMWare ESXi a respaldar.

En ocasiones nos encontramos en infraestructuras donde el TCP/IP de la red del hipervisor es distinta a la red donde tenemos situadas las máquinas virtuales.

Si Veeam Backup es capaz de ver a nivel de TCP/IP el hipervisor podrá respaldar las VMs sin problemas, pero: ¿Qué ocurre si queremos recuperar de forma granular ficheros?

Todo apunta a que necesitamos comunicación TCP/IP entre la máquina virtual donde reside el servidor de ficheros y el equipo donde tenemos instalado Veeam Backup.

También ocurre el mismo problema si queremos realizar un backup de una VM y marcar la opción "Enable application-aware image processing".

Todo apunta a que necesitamos comunicación TCP/IP entre la máquina virtual donde reside la VM con SQL o Exchange y el equipo donde tenemos instalado Veeam Backup.

El hecho es que Veeam backup es capaz de utilizar dos métodos distintos de conexión VSS:

- Conexión VSS vía RPC (Remote Procedure Call): Requiere conexión TCP/IP con la VM.

- Conexión VSS vía VIX (Virtual Infrastructure eXtension): No requiere conexión TCP/IP con la VM.

Veeam Backup: Conexión VSS vía RPC:


Este es el método de conexión VSS que se utiliza de forma predeterminada.

1) Veeam Backup conecta a nuestro Virtual Center por el puerto TCP 443. 

2) Veeam Backup conecta a la máquina virtual Windows:

- Si la máquina virtual Windows es Windows Server 2003, se utilizan los siguientes puertos:

TCP 135 y el siguiente rango de puertos dinámicos: del 1025 al 5000.

- Si la máquina virtual Windows es Windows Server 2008 o superior, se utilizan los siguientes puertos:

TCP 135 y el siguiente rango de puertos dinámicos: del 49152 al 65535.

Como podemos ver, los puertos que se utilizan, son los que corresponde al servicio RPC (Remote Procedure Call).

El puerto 135 corresponde a: "RPC Endpoint Mapper", mientras que los puertos dinámicos corresponden a: "RPC Server Programs"

Veeam Backup: Conexión VSS vía VIX:


Este método se utiliza si falla el método anterior.

1) Veeam Backup conecta a nuestro Virtual Center por el puerto TCP 443. 

2) Veeam Backup conecta al host ESXi por el puerto TCP 902:

Utilizando las APIs de VMware  Virtual Infrastructure eXtension (VIX) de las VMware Tools es posible conectar con la VM y restaurar los ficheros en destino.

Veeam Backup: RPC / VIX, invertir el orden:


También podemos encontrarnos con la posibilidad de la necesidad de invertir el orden, es decir, probar en primer lugar de conectar al host VMWare ESXi y utilizar VIX en vez de conectar a la VM utilizando RPC.

Para ello, podemos configurar la siguiente clave en el registro de Windows en el equipo donde tenemos instalado Veeam Backup:

HKEY_LOCAL_MACHINE\SOFTWARE\Veeam\Veeam Backup and Replication
DWORD: InverseVssProtocolOrder
Valor = 1

Esta clave en el registro funciona a partir de Veeam Backup versión 6.5.

VMWare: Workstation arrancar desde USB

VMWare Workstation es una gran herramienta pensada para realizar todo tipo de laboratorios y pruebas.

En ocasiones, nos encontramos con que necesitamos probar un pendrive USB de arranque, por ejemplo el USB de instalación de ESXi o bien de Windows.

Si consiguiésemos probar el arranque del pendrive USB en una máquina virtual sería mucho más rápido que lo probásemos en una máquina física.

Para conseguir que VMWare Workstation arranque desde un pendrive USB, podemos utilizar la siguiente herramienta gratuita: Plop Boot Manager

Plop Boot Manager es una ISO de arranque que nos permite seleccionar el dispositivo USB físico y arrancar sobre el mismo.

Plop Boot Manager también es útil para equipos físicos que no disponen de soporte para iniciar desde un dispositivo USB.

VMWare Workstation: Arrancar desde USB: Pasos a seguir:


1- Conectamos el USB físico en el equipo donde está instalado VMWare Workstation.

2- Descargamos Plop Boot Manager, de la siguiente URL:


3- Descomprimimos el fichero ZIP que nos hemos descargado y localizamos el fichero ISO para el arranque: plpbt.iso

4- VMWare Workstation: Deberemos crear una máquina virtual para pruebas con como mínimo, el siguiente virtual hardware:

- CD/DVD
- Controladora USB.

5- VMWare Workstation: Deberemos indicar que la máquina virtual inicie desde CD/DVD, para ello deberemos entrar en la BIOS de la máquina virtual y definir el orden de arranque. 

Si tenemos problemas para entrar en la BIOS de máquina virtual, podemos utilizar el siguiente enlace:


6- VMWare Workstation: Editamos la máquina virtual e indicamos en el DVD que inicie con la ISO descargada.

VMWare: Workstation arrancar desde USB

Windows: Programar apagado o reinicio automático

En ocasiones, nos puede interesar programar un apagado o un reinicio automático de un equipo con Windows, ya sea Windows cliente (Windows XP, Vista, 7, 8, 10) o Windows Server (2003, 2008, 2008R2, 2012, 2012R2, 2016).

Para programar apagado o reinicio automático necesitaremos dos herramientas:

- Comando shutdown.

- Programador de tareas (taskschd.msc).

Además disponemos del comando schtasks, que nos permite crear la tarea desde linea de comandos y después es posible verla desde el programador del tareas.

La ventaja de utilizar el comando schtasks para crear la tarea programada es que podemos desplegar la configuración en múltiples equipos mediante un script y una GPO (directiva de grupo).

1) Programar apagado o reinicio automático: Comando shutdown:


Debemos tener en cuenta los siguientes parámetros del comando shutdown:

/s      Apaga el equipo.
/r      Apaga y reinicia el equipo.

/f      Fuerza el cierre de las aplicaciones sin advertir previamente a los usuarios.
/t xxx  Establece el período de tiempo de espera antes del cierre en xxx segundos.
/c "xxx" Muestra el comentario especificado: xxx

Podemos obtener la referencia completa de todos los parámetros del comando shutdown, ejecutando: shutdown /?

Ejemplos:

Para reiniciar el equipo de forma inmediata:

shutdown /r /f /t 0 /c "Reinicio"

Para apagar el equipo de forma inmediata:

shutdown /s /f /t 0 /c "Apago"

2) Programar apagado o reinicio automático: Programador de tareas (taskschd.msc)


Ejecutamos taskschd.msc o bien control schedtasks para cargar el interfaz gráfico del programador de tareas.

También podemos crear la tarea utilizando el comando schtasks.

Ejemplo:

schtasks /create /ru system /rl highest /sc DAILY /tn Reinicio /tr "shutdown /r /f /t 0 /c "Reinicio"" /st 22:30 /F

Explicación de los parámetros:

/create : Crea la tarea programada.

/ru system: Ejecutar la tarea como el usuario SYSTEM.

/rl highest: Ejecutar con los privilegios más altos.

/sc DAILY: Ejecutar la tarea cada día.

/tn Reinicio: Nombre de la tarea.

/tr "shutdown /r /f /t 0 /c "Reinicio"": El comando a ejecutar cada vez es: "shutdown /r /f /t 0 /c "Reinicio"", que reiniciará el equipo cerrando todas las aplicaciones abiertas, sin tiempo de espera.

/st 22:30: La tarea se ejecutará a las 22:30.

/F: En caso de que exista la tarea, se sobreescribirá la configuración.

Si ejecutamos este comando desde una ventana de CMD como administrador y luego ejecutamos taskschd.msc, podemos ver la configuración de la tarea:

Pestaña "General":

Windows: Programar apagado o reinicio automático

VMWare: Entrar BIOS maquina virtual

Como administradores de nuestra infraestructura virtual, una de las tareas que en ocasiones debemos realizar es entrar en la BIOS de una máquina virtual (VM).

Por ejemplo, para cambiar el orden de arranque de los dispositivos deberemos entrar en la BIOS de la VM:

VMWare: Workstation arrancar desde USB (SYSADMIT.com)

En todos los hipervisores de VMWare: ESXi, Workstation, Fusion, etc.. pulsando la tecla F2 en el proceso de POST (Power-on self-test) de la VM, conseguiremos acceder a la BIOS de la VM.

El problema que tenemos es que en muchas ocasiones, no nos da tiempo de pulsar la tecla F2 en el proceso de POST. 

Para solucionar este problema, podemos hacer dos cosas:

1) Aumentar el numero de segundos en el que se produce el POST.

2) Forzar que en el próximo inicio de la VM se entre en la BIOS de forma automática.

Cualquiera de estas dos opciones, requerirán la modificación del fichero de configuración VMX de la máquina virtual.

Los parámetros a configurar serían los siguientes:

Para que en el próximo inicio de la VM, esta entre en la BIOS, habría que añadir:

bios.forceSetupOnce = "TRUE"

Si quisiéramos configurar un retraso en el POST, deberíamos añadir:

bios.bootDelay = "xxxxx"

Donde "xxxxx" es un valor en milisegundos. Máximo 10000 milisegundos.

Estas opciones que podemos configurar en el fichero de configuración VMX de la VM, también lo podemos hacer vía las herramientas de administración de cada tipo de hipervisor VMWare.

En este post veremos como configurar que la máquina virtual inicie en la BIOS en el próximo inicio (bios.forceSetupOnce = "TRUE") dependiendo del hipervisor y herramienta de administración utilizada.

VMWare Workstation: Entrar BIOS maquina virtual


Desde VMWare Workstation, nos situamos sobre la VM y seguimos los siguientes pasos:

VM > Power > Power On to BIOS

o bien (según la versión):

VM > Power > Power On to Firmware

VMWare: Entrar BIOS maquina virtual

Windows: Falta BOOTMGR

Al iniciar el sistema operativo Windows nos podemos encontrar con el siguiente error:

Si Windows está en castellano:

Falta BOOTMGR presione Ctrl+Alt+Supr para reiniciar

Si Windows está en inglés:

BOOTMGR is missing Press Ctrl+Alt+Supr to restart

En este post veremos el funcionamiento del sistema de boot de Windows y cómo solucionar los posibles problemas de arranque.

BOOTMGR: ¿Qué es?


El MBR (Master Boot Record) está situado en el primer sector del disco, los primeros 512 bytes.

El MBR de un disco contiene la tabla de particiones y el código que llama al gestor de arranque. 

En sistemas Linux el gestor de arranque puede ser GRUB.

En sistemas Windows,  se llamará: "Windows Boot Manager". 

El "Windows Boot Manager" a partir de Windows Vista y Windows Server 2008, se llama bootmgr. 

Bootmgr es la aplicación que controla el menú de arranque. 

En sistemas multiboot, aparecería una entrada para cada opción de sistema operativo.

En sistemas operativos Windows XP / Windows Server 2003 o anteriores, el equivalente de bootmgr se llamaba: NTLDR (NT Loader).

El "Windows Boot Manager" también ofrece las típicas opciones de arranque como el modo seguro, modo seguro con funciones de red, la última configuración buena conocida, etc.

Para cargar Windows, bootmgr inicia el fichero Winload.exe.

Para modificar las opciones de arranque, añadir nuevas, etc podemos utilizar el comando bcdedit desde una ventana de CMD como administrador.

Otra característica de este sistema de arranque es el uso de: BCD (Boot Configuration Data), una base de datos con la configuración que queda situada el un directorio de la partición primaria activa del disco.

El equivalente a la base de datos BCD en sistemas "pre-Windows Vista" , sería el fichero boot.ini

Los directorios donde se ubica la base de datos BCD son: \boot\BCD para sistemas con arranque BIOS o bien en: \EFI\Microsoft\Boot\BCD en sistemas con arranque UEFI.

En sistemas operativos cliente mas actuales, como Windows 7, Windows 8, Windows 10 o servidor como Windows Server 2008R2, 2012, 2012R2, 2016 también se utiliza el mismo modelo de arranque.

BOOTMGR: ¿Por qué aparece un error?


El hecho que aparezca un error de BOOTMGR no significa que el fichero este dañado o haya sido borrado.

La causas del error pueden ser diversas.

Algunos ejemplos donde nos podemos encontrar con un error de BOOTMGR:

- El disco está dañado.
- Se ha dañado el MBR.
- Se ha instalado otro sistema operativo y este ha modificado el sector de arranque.
- El identificador del disco de boot ha cambiado.
- Otros...

Como no hay una única causa clara del problema, la solución puede ser distinta en cada ocasión.

BOOTMGR: Solución, reparación automática.


Una vez descartados problemas de hardware, la forma más sencilla de solucionar el problema es proceder a una reparación automática.

Para ello, iniciaremos con el DVD/ISO de Windows.

Debemos utilizar el mismo DVD/ISO que la versión de Windows que queremos reparar.

Las capturas que veremos a continuación corresponden a la versión de sistema operativo: Windows 10, pero el procedimiento es el mismo para otras versiones de Windows.

Una vez seleccionado el idioma, seleccionamos la opción "reparar equipo", "Solucionar problemas", "Opciones avanzadas", "Reparación de inicio":

Windows: Falta BOOTMGR

Linux Package Manager: The Debian Style

The author of this post is: Ahmed Bilal Jan (linkedin.com)

If you have just started using Linux you probably will be saying why people call this operating system an unfriendly?

It’s has almost everything that an operating system has to be classified as user friendly.

Believe me those were opinions of people who used Linux back in early 2000.

I remember when I started using Linux back in 2007 I have to issue mount command in shell to mount my USB stick for using it on Redhat Linux.

As a student we were mostly reluctant in using Linux since we were told that you can’t play your media files in Linux. Excuse me!!! No media files? Our answer was no media files means no computer for us.

Though there were many other such limitations in those days that classify Linux as an operating system only for experts only.

We were happy to use Windows in those days since we can easily play our media files in it.

One of the most challenging thing at that time was installing a software on your Linux distribution.

You download a tar file from Internet and go through its readme file and then when you start installing it you were prompted that the software you trying to install has dependency on some X library when you try to install X library you were told that X has dependency on Y please install first Y and the story continuous on.

Thanks to Linux package manager users nowadays don't have to bear all that.

In this article I am going to explain how package manager works in a Debian based distribution.

Although name of package manger differs in rpm based distribution but the principle on which package manager works remain the same.

In Debian based distribution the installable binaries of software came in the form of files with .deb extension.
 
To install these .deb files, there is a command line tool available called dpkg, short for Debian package manager.

The dpkg only install the .deb file which is passed to it as an argument. It doesn't take the responsibility of installing the dependency files and also no configuration setting is being done by dpkg.

You can say dpkg is manual method of installing a file. For example to install a package we issue following command in terminal:

    $ sudo dpkg -i packagename.deb
 
To view all installed packages:

    $ sudo dpkg -l

To remove a package let say name tcl, we use:

    $ sudo dpkg -r tcl

To find out which package a file belongs. Let say we need to find package of networkctl file:

    $ sudo dpkg -S /bin/networkctl

There is no guarantee that software which you are trying to install may got installed in first go. It may prompt you with message that software you trying to install is dependent on some library which is missing please install it first.

To overcome the limitations of dpkg, software developers invented the apt-get utility for Debian based distribution.

It is referred as front end of dpkg in a sense that real package manager is still dpkg.

A part from installing new software apt-get do the dependency work for you, as its automatically install all dependencies and also do configuration settings for you.

The apt-get can also be used to un-install a package and update a package. Some example of apt-get utility are:

To install a package:

    $apt-get install [package name]

To remove a package:

    $apt-get remove [package name]

There are three apt-get commands: update, upgrade and dist-upgrade

    $ sudo apt-get update
    $ sudo apt-get upgrade
    $ sudo apt-get dist-upgrade

The update command only update the list of available packages and their versions, but it does not install or upgrade any packages.

While the upgrade command upgrade the software installed on your system.

It is recommended that you should first run “apt-get update” so that package manager knows the latest version of software available.

The third one “apt-get dist-upgrade” do the same thing of updating softwares installed on your distribution. In addition “apt-get dist-upgrade” also smartly handles the  dependencies.

It also intelligently handles changing dependencies with new versions of packages.

There is GUI version of apt-get as well. To install GUI version of apt-get use following command:

    $ sudo apt-get install synaptic

You can access synaptic by tying synaptic in terminal. Synaptic can do all tasks which can be done by command line apt-get like installing, un-installing and updating package.

One important thing to mention here is repositories.

You can see repositories in file /etc/apt/sources/list.

Whether you use command line utility like apt-get or its GUI counterpart they both make use of repository in /etc/apt/sources.list.

If you open this file you will see lines starting with deb followed by web links.

A repository is collection of software for your distribution on server.

Your package manager apt-get or synaptic goes to these servers and grab the software you want to install along with their dependencies files. A typical line in /etc/apt/sources.list looks like this:


deb http://pk.archive.ubuntu.com/ubuntu/ xenial main restricted

You may enable or disable lines in repository. Lines starting with # are considered disabled.

Linux package manager can safely be classified as one of the factor which makes Linux an operating system for home use. Without this utility it will be very hard for Linux to be classified as an OS for everyone.

Veeam Backup: Per-VM backup files

Una opción muy interesante introducida por primera vez en la versión 9 de Veeam Backup & Replication es: "Per-VM backup files".

Uno de los problemas de incluir más de una máquina virtual en un job de backup es que el fichero resultante se puede convertir fácilmente en un fichero enorme.

Si dentro de un job de backup seleccionamos varias máquinas virtuales (VMs), independientemente si nuestro modelo de backup es "Incremental" o "Reverse incremental", se realizará un único juego de ficheros.

Un único juego de ficheros muy grandes puede provocar que cualquier operación que se realice sobre los ficheros tarde mas que si tuviéramos ficheros separados para cada VM respaldada.

Ante este problema, muchos administradores de sistemas optan por utilizar jobs concatenados y en cada job incluir una sola VM.

Con los jobs concatenados y una sola VM en cada job también se consigue que no hayan varios snapshots simultáneos sobre el mismo datastore.

El problema de los jobs concatenados es que si algún job de la cadena se cuelga, los siguientes jobs no se ejecutan.

Otro problema de los jobs concatenados es que se tarda más en configurarlos ya que es necesario configurar un job para cada VM y además tendremos que configurar las concatenaciones entre los mismos.

Una alternativa a los jobs concatenados es la opción: "Per-VM backup files".

Con la opción "Per-VM backup files" conseguimos que cuando tenemos un job con más de una VM,  se genere un único juego de ficheros para cada VM.

La ventaja de la opción de "Per-VM backup files" frente a los clásicos jobs concatenados de "VM a VM" es que si queremos, podemos disponer de varios respaldos de varias VMs ejecutándose de forma simultanea obteniendo igualmente como resultado un solo juego de ficheros para cada VM.

La opción "Per-VM backup files" la encontraremos a partir de la versión 9 de Veeam Backup & Replication y la podemos activar a nivel de repositorio en las opciones avanzadas del mismo.

Para activar la opción, editamos el repositorio:

Vista "Backup infraestructure", nos situamos sobre: "Backup Repositories", seleccionamos el repositorio, botón derecho, "Properties", pulsamos siguiente hasta llegar al apartado de "Repository" y a continuación, pulsamos sobre el botón: "Advanced".

Finalmente, podemos ver la última opción: "Per-VM backup files".

Veeam Backup: Per-VM backup files

De forma predeterminada, esta opción se encuentra desactivada tanto al crear un repositorio nuevo como en los repositorios ya existentes.

Si habilitamos la opción en un repositorio que ya existe, necesitaremos ejecutar un full backup después de habilitar la opción.

Linux: Directory Structure


The author of this post is: Ahmed Bilal Jan (linkedin.com)

Linux file system or directory structure looks very strange to most of Linux users in their early days of encounter with Linux.

In this article I want to review some of key areas of Linux file system which may help new Linux users in getting familiar with it.

Please do not confuse file system with a format on how operating system stores files on hard disk, here by file system we mean how a Linux operating system organizes a data on individual computer.

Linux file system is derived from UNIX file system where it stores files in hierarchical tree. The top of this hierarchical tree structure is referred as root directory.

Linux consider everything as a file. Your hardware (HDD, Pen drives, CD ROM), boot media (Kernel, boot loader), configuration settings, user accounts etc from the eyes of Linux operating system all of them are files.

It’s a famous quote about Linux that “In Linux everything is file, if it’s not a file it’s a process”. So it’s very important for us to know how Linux directory structure is organized.

To get started use ls command, for example: ls / -l and you will be displayed with a folder which in turns contains many other directories like  bin, boot, cdrom, media, mnt, lib, var, root and many others.

What these folders contain? to answer we need to just go back and see what I wrote “Linux consider everything as a file”.

Your entire computer which Linux operating system sees is stored in these directories as files. Yes everything.

From binary executable of software you install on your hard disks to your configuration settings, from your boot media to user accounts, from operating system libraries to even your keyboard everything is file and is stored somewhere in a directory under “ / ”.

This “ / ” is refereed as root directory it has no parent directory everything else follow this directory.

It's very important for new comers to browse these directories under “ / ”  and then start understanding what each directory contains.

Just for illustration I am going to write one line description of important directories.

/bin: Binaries of command executed in shell reside here. Shell available for your distribution also reside here.

/boot: Files required for starting Linux resides here. Linux kernel, boot loader configuration files reside here.

/cdrom: Just for legacy support this directory is created to mount CD-ROM.

/dev: All hardware attached to your computer resides here in the form of files like HDD,keyboard,mouse.

/etc: Contains configuration files. This is one of most important directory.

/home: Contains home directories for users created on system.

/lib & /lib64: 32-bit and 64-bit libraries and kernel modules resides here respectively.

/media: External devices like HDD can be mounted here. Its just for legacy support.

/mnt: Also used as mounting point but specifically for temporarily mounted devices.

/opt: Software not managed by package manager reside here.

/proc: Contains runtime system information. It provides mechanism for kernel to send information to processes.

/run: Contains daemons which are required at very early stage of boot like systemd and udev.

/root: It’s the superuser/root user home directory.

/sbin: It's short of system binary. Contains binary files of important administrative commands.

/srv: Contains directories for services like HTTP/FTP.

/var: Contains variable data like log files, database files.

You should also know how to browse Linux directory structure via command line as GUI is not always available in Linux specially if you are working on Linux  server. There are few commands I would like to talk about.

$ pwd
: This command prints out your current directory. If you forget where you are, use this.

$ ls: This command is used to display contents of your current directory. Directory name are displayed in color form. Always use this to browse contents of directory.

$ tree: Display contents of directory in tree like form.

So question pops up in everyone mind. Does this Linux directory structure has any advantage? Yes it does. 


As you browse directories under root directory you may see that similar files are stored under same directory like logs files are under /var/log , binaries of commands executed in shell are stored in /bin,  library files are found under /lib and /lib64 and so on.