PS Script v1 para Vaulting de SnapShots SME y SMSQL

Estimados lectores,

Hace unas semanas realicé un pequeño desarrollo en Microsoft PowerShell basado en la NetApp Data OnTap PowerShell Toolkit para integrar los SnapManagers de Exchange y/o SQL con SnapVault transfiriendo los snapshots consistentes hacia una cabina de backup. El objetivo de PS Script v1 para Vaulting de SnapShots SME y SMSQL es seleccionar los snapshots recientes del backup consistente de las bases de datos y logs, ubicados en una lista de volúmenes que pasamos como parámetro, para mantener un conjunto de backups en la cabina de destino a modo de archivado.

El script, en su primera versión, está pensado para iniciar las actualizaciones de SnapVault de forma secuencial sobre cada volumen. Este razonamiento se basa en la necesidad de transferir un número relativamente elevado de snapshots sobre enlaces WAN lentos que comparten otros servicios. Con una pequeña modificación del código conseguimos que las actualizaciones se realicen de forma simultánea tal y como veremos en la versión v2.

Para el correcto funcionamiento de PS Script v1 para Vaulting de SnapShots SME y SMSQL se ha diseñado la siguiente lista de parámetros:

[0] ----> Establecer "SMSQL" o "SME" según si transferimos snapshots de SQL o Exchange
[1] ----> Número de snapshots a retener en la controladora de Destino
[2] ----> Nombre de la planificación de snapshots: por ejemplo "Backup_SME" o "Backup_SMSQL"
[3] ----> Controladora de Origen: "NetApp-Produccion"
[4] ----> Controladora de Destino: "NetApp-Backup"
[5] ----> Volumen de Origen:  "Vol_Produccion"
[6] ----> Volumen de Destino: "Vol_Produccion_SnapVault"
[7] ----> Path de Destino:    "/vol/Vol_Produccion_SnapVault/Backup"
[n-2] --> Recursividad Volumen de Origen
[n-1] --> Recursividad Volumen de Destino
[n] ----> Recursividad Path de Destino

El código del script es el siguiente:

# Importar el Módulo DataONTAP instalado previamente en el servidor
Import-Module DataONTAP
# Inicializar variables para SMSQL o SME
if ($args[0] -eq "SMSQL") {
	$SMBBDD = "sqlsnap"
	$SMLOG  = "sqlinfo"
}
elseif ($args[0] -eq "SME") {
	$SMBBDD = "exchsnap"
	$SMLOG  = "eloginfo"
}
# Establecer la retención de snapshots en la controladora de Destino
Connect-NaController $args[4]
for($i=6;$i -lt $args.count;$i=$i+3) {
	Set-NaSnapvaultSecSnapshotSchedule $args[$i] $args[2] -AutoUpdate $false -RetentionCount $args[1]
	-DaysOfWeek "-" -HoursOfDay "0"}
# Iniciar la transferencia de SV seleccionando el snapshot más reciente de SnapManager sobre cada volumen
# de Origen. Esperar a que finalice y generar un snapshot en la controladora de Destino. El bucle está diseñado
# para ejecutar todas las transferencias secuencialmente.
for ($i=5;$i -lt $args.count;$i=$i+3) {
	Connect-NaController $args[3]
	$SnapName = get-nasnapshot $args[$i] | ? { $_.Name -imatch $SMBBDD -Or $_.Name -imatch $SMLOG }
	| Sort-Object AccessTimeDT -Descending | Select-Object -first 1
	Connect-NaController $args[4]
	Start-NaSnapVaultSecTransfer $args[$i+2] -PrimarySnapshot $SnapName.Name
	$EndSleep = $FALSE
	while (!$EndSleep) {
		$SVstate = Get-NaSnapvaultSecStatus -Path $args[$i+2]
		if ($SVstate.status -eq "idle") {
			$EndSleep = $TRUE
			Start-NaSnapvaultSecSnapshot -VolumeName $args[$i+1] $args[2]
		}
    }
}

El script puede integrarse con los Jobs de SMSQL y los de SME añadiendo pasos adicionales sea el caso de trabajos de SQL (SQL Agent) o bien tareas programadas de Windows. En el caso de usar el agente de SQL podemos configurar el paso adicional directamente con el script y su correspondiente paso de argumentos. Para las tareas programadas de Windows nos podemos apoyar de un proceso por lotes (CMD o BAT) y añadir como segunda acción éste mismo. Veamos un ejemplo:

powershell.exe C:\SnapVaultScripts\SV-SME-SMSQL.ps1 "SME"/"SMSQL" 30 Backup_Exchange/SQL NetApp-ORIGEN NetApp-DESTINO
Vol_ORI1 Vol_DST1_SV /vol/Vol_DST1_SV/Backup
Vol_ORI2 Vol_DST2_SV /vol/Vol_DST2_SV/Backup
Vol_ORIn Vol_DSTn_SV /vol/Vol_DSTn_SV/Backup

El archivo .bat del ejemplo hace una llamada a la PowerShell para ejecutar el script recibiendo la lista de parámetros, separados por un espacio en blanco, en el orden diseñado.


Licencia de Creative Commons

This Post by David Solé Pérez is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License

Pagina Principal

¿Te ha gustado este artículo? ¡Suscríbete!

PS Script v1 para Vaulting de SnapShots SME y SMSQL
4.8 (96.67%) 6 votos

Artículos Relacionados

  • Mejorar el rendimiento de SnapVault De forma predeterminada las relaciones de NetApp SnapVault suelen tener un buen rendimiento especialmente en escenarios donde las controladoras de origen y destino están entre enlaces WAN […]
  • SnapManager Service no inicia en Windows 2012 R2 Estimados lectores, Hace unos días estuve instalando unos SnapManagers for SQL Server de NetApp (un día de estos os explicaré cómo instalarlo y las posibilidades que nos brinda está […]
  • Configurar una SnapVault Relationship entre dos cabinas NetApp En esta nueva entrada vamos a ver cómo configurar una SnapVault Relationship entre dos cabinas NetApp para el backup de un volumen. El funcionamiento de esta tecnología está basado en la […]
  • Integrar los backups de SMVI con SnapVault En este nuevo artículo veremos cómo integrar los backups de SMVI con SnapVault mediante un pequeño script que podemos encontrar en la NetApp Community. En este caso usamos el plugin VSC […]
  • NetApp Data OnTap PowerShell Toolkit Con el módulo NetApp Data OnTap PowerShell Toolkit podemos administrar nuestras controladoras de forma remota usando Windows PowerShell. El complemento implementa de forma bastante […]
  • VMware ESXi: comandos para la administración de VMs vía CLI En ocasiones viene bien poder hacer algunas consultas u operaciones usando comandos para la administración de VMs vía CLI ya sea por motivos de acceso a vSphere Client (no tenemos el […]
David Solé Pérez

Autor: David Solé Pérez

Services Director en ID Grup S.A. - Team Leading, Cloud Architect, Project Management, Solutions Architect, IT Consulting , Systems Integration & Deployment

Un comentario en “PS Script v1 para Vaulting de SnapShots SME y SMSQL”

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *