# rm-rf.es | Administración de sistemas

Bitácora personal de un SysAdmin Gnu/Linux, Windows, BSD...

Cambiar a modo de comandos avanzados en Data Ontap Netapp

Hay ciertas tareas desde línea de comandos, ya sea por ssh o consola dentro de una cabina Netapp que requieren que el usuario acceda a un modo avanzado. Entre otras por ejemplo la de reparación de discos. Vamos a ver los dos modos disponibles y el modo de acceso a cada uno de ellos, que se gestionan con el comando priv.

Tipos de acceso en Data Ontap:

filer1> priv ?
Usage:  priv
        priv set [ -q ] [  ]
        priv help

        priv -level   (DEPRECATED FORM)

Valid privilege levels are
  admin          administrative commands

  advanced       potentially dangerous commands that should be
                 used under guidance from NetApp Global Services;
                 also includes the admin commands

Acceso a modo avanzado de comandos:

filer1> priv set advanced

Cuando estemos en el modo avanzado aparecerá un * en el prompt:

filer*>

Para volver al modo de administrador:

filer1*> priv set admin
filer1>

Cómo instalar el simulador de NetApp Data ONTAP

Hoy vamos a crear un entorno de pruebas para cabinas de almacenamiento Netapp. Se trata de un simulador de Data ONTAP (Sistema operativo de Netapp) con el cual podremos disponer de una cabina 100% funcional sobre la que hacer pruebas y modificaciones sin necesidad de utilizar las cabinas de producción.

El simulador se puede descargar desde el sitio web oficial (con registro). Esta es la dirección.

Vamos a proceder a la instalación, es realmente sencilla. Descomprimimos el fichero descargado y ejecutamos el setup (como root) del simulador:

# gunzip 7.3.4-tarfile-v22.tgz
# tar -xvf 7.3.4-tarfile-v22.tar
# sudo ./setup.sh

La salida de la instalación es similar a lo siguiente, veréis que os hace una serie de preguntas. Tenemos la posibilidad de añadir los discos que estimemos necesarios, crear un cluster, etc.

Script version 22 (18/Sep/2007)
Where to install to? [/sim]:
Would you like to install as a cluster? [no]:
Would you like full HTML/PDF FilerView documentation to be installed [yes]:
Continue with installation? [no]: yes
Creating /sim
Unpacking sim.tgz to /sim
Configured the simulators mac address to be [00:50:56:10:a8:fe]
Please ensure the simulator is not running.
Your simulator has 3 disk(s). How many more would you like to add? [0]: 9

The following disk types are available in MB:
        Real (Usable)
  a -   43   ( 14)
  b -   62   ( 30)
  c -   78   ( 45)
  d -  129   ( 90)
  e -  535   (450)
  f - 1024   (900)

If you are unsure choose the default option a
What disk size would you like to use? [a]: e
Disk adapter to put disks on? [0]:
Use DHCP on first boot? [yes]:
Ask for floppy boot? [no]:
Checking the default route...
Which network interface should the simulator use? [default]:
How much memory would you like the simulator to use? [512]: 256
Create a new log for each session? [no]:
Overwrite the single log each time? [yes]:
Adding 9 additional disk(s).
Complete. Run /sim/runsim.sh to start the simulator.

Procedemos a arrancar el simulador:

sudo /sim/runsim.sh

En el primer arranque, se ejecutará el asistente al igual que en una cabina real, donde configuraremos la red, hostname y demás configuraciones iniciales:

NetApp Release 7.3.4: Thu May 27 15:43:26 PDT 2010
System ID: 0099929383 ()
System Serial Number: 987654-32-0 ()
System Storage Configuration: Multi-Path
System ACP Connectivity: NA
Model Name: Simulator
Processors: 1
slot 0: NetApp Virtual SCSI Host Adapter v0
               12 Disks:              5.0GB
	1 shelf with LRC
	slot 1: NetApp Virtual SCSI Host Adapter v1
	slot 2: NetApp Virtual SCSI Host Adapter v2
	slot 3: NetApp Virtual SCSI Host Adapter v3
	slot 4: NetApp Virtual SCSI Host Adapter v4
                12 Disks:              5.0GB
		1 shelf with LRC
	slot 5: NetApp Virtual SCSI Host Adapter v5
	slot 6: NetApp Virtual SCSI Host Adapter v6
	slot 7: NetApp Virtual SCSI Host Adapter v7
	slot 8: NetApp Virtual SCSI Host Adapter v8
                4 Tapes:            VT-100MB
                                    VT-100MB
                                    VT-100MB
                                    VT-100MB
Please enter the new hostname []: filer1
Do you want to enable IPv6? [n]:
Do you want to configure virtual network interfaces? [n]:
Please enter the IP address for Network Interface ns0 []: 192.168.0.199
Please enter the netmask for Network Interface ns0 [255.255.255.0]:
Please enter media type for ns0 {100tx-fd, auto} [auto]:
Please enter the IP address for Network Interface ns1 []:
Would you like to continue setup through the web interface? [n]:
Please enter the name or IP address of the IPv4 default gateway:
	The administration host is given root access to the filer's
	/etc files for system administration.  To allow /etc root access
	to all NFS clients enter RETURN below.
Please enter the name or IP address of the administration host:
Please enter timezone [GMT]:
Where is the filer located? []:
What language will be used for multi-protocol files (Type ? for list)?:
language not set
Do you want to run DNS resolver? [n]:
Do you want to run NIS client? [n]:
	The Shelf Alternate Control Path Management process provides the ability
	to recover from certain SAS shelf module failures and provides a level of
	availability that is higher than systems not using the Alternate Control
	Path Management process.
Do you want to configure the Shelf Alternate Control Path Management interface for SAS shelves [n]:
Setting the administrative (root) password for filer1 ...
.
Do you want to configure the filer's DNS resolver service? [y]:
What is the filer's DNS domain name? []: 

CIFS local server is running.
....
....
....

Tras la configuración, accederemos directamente al login de la cabina y podremos comenzar a trabajar con el simulador:

filer1> sysconfig -r
Aggregate aggr0 (online, raid0) (zoned checksums)
  Plex /aggr0/plex0 (online, normal, active)
    RAID group /aggr0/plex0/rg0 (normal)

      RAID Disk	Device	HA  SHELF BAY CHAN Pool Type  RPM  Used (MB/blks)    Phys (MB/blks)
      ---------	------	------------- ---- ---- ---- ----- --------------    --------------
      data    	v4.16	v4    1   0   FC:B   -  FCAL  N/A  120/246784        127/261248
      data    	v4.17	v4    1   1   FC:B   -  FCAL  N/A  120/246784        127/261248
      data    	v4.18	v4    1   2   FC:B   -  FCAL  N/A  120/246784        127/261248 

Spare disks

RAID Disk	Device	HA  SHELF BAY CHAN Pool Type  RPM  Used (MB/blks)    Phys (MB/blks)
---------	------	------------- ---- ---- ---- ----- --------------    --------------
Spare disks for zoned checksum traditional volumes or aggregates only
spare   	v4.19	v4    1   3   FC:B   -  FCAL  N/A  520/1065984       527/1080448
spare   	v4.20	v4    1   4   FC:B   -  FCAL  N/A  520/1065984       527/1080448
spare   	v4.21	v4    1   5   FC:B   -  FCAL  N/A  520/1065984       527/1080448
spare   	v4.22	v4    1   6   FC:B   -  FCAL  N/A  520/1065984       527/1080448
spare   	v4.24	v4    1   8   FC:B   -  FCAL  N/A  520/1065984       527/1080448
spare   	v4.25	v4    1   9   FC:B   -  FCAL  N/A  520/1065984       527/1080448
spare   	v4.26	v4    1   10  FC:B   -  FCAL  N/A  520/1065984       527/1080448
spare   	v4.27	v4    1   11  FC:B   -  FCAL  N/A  520/1065984       527/1080448
spare   	v4.28	v4    1   12  FC:B   -  FCAL  N/A  520/1065984       527/1080448

En futuros artículos comenzaremos a modificar configuraciones en el simulador para ver todas sus posibilidades.

NetApp Filer: Configurar el número de discos spare

En ciertas configuraciones Data OnTAP de NetApp, tiene configurado por defecto un número de discos spare mínimo que puede no satisfacer nuestras necesidades. Por ejemplo, con configuraciones con pocos discos, dos discos spare puede ser demasiado.

Pongamos el caso de que tenemos configurado Data OnTAP para tener un mínimo de dos discos spare (creo que por defecto viene así). Para poder modificar esta restricción, tenemos que acceder a la línea de comandos y modificar la opción de configuración options raid.min_spare_count:

filer> options raid.min_spare_count 1

En este caso hemos dejado el mínimo a uno para poder utilizar para datos un disco extra y dejar un disco spare. Si quisieramos quitar la restricción de mantener un disco spare (para casos en los que tenemos doble paridad por ejemplo):

filer> options raid.min_spare_count 0

Ahora, una vez quitada la restricción, para añadir el disco a un agregado tendremos que hacerlo desde la línea de comandos, ya que desde GUI sigue sin dejar:

filer> aggr add aggr0 -d 0c.00.2

En el caso anterior hemos añadido el disco 0c.00.2 al agregado aggr0. La salida de dicho comando sería algo así:

Fri Feb 26 21:48:53 GMT [filerXXX: raid.vol.disk.add.done:notice]:
Addition of Disk /aggr0/plex0/rg0/0c.00.2 Shelf 0 Bay 6
[NETAPP   XXXX_XXXXXXXXXX NA00] S/N [9XXXXX50] to aggregate aggr0 has completed
 successfully
Addition of 1 disk to the aggregate has completed.

Pasos para activar la deduplicación en Filer NetApp

La deduplicación de datos es una tecnología novedosa y fundamental para hacer frente a la proliferación de datos. Los volúmenes de disco de UNIX® o Windows® suelen contener miles e incluso millones de objetos de datos duplicados. Conforme los datos se crean, distribuyen, copian y archivan, se almacenan elementos duplicados en todos los niveles de almacenamiento. Como consecuencia, los recursos de almacenamiento de datos se utilizan de forma poco eficiente.

Al eliminar los elementos redundantes y disponer únicamente del original, se produce un aumento inmediato de la eficacia general de todo el sistema de almacenamiento.

Activar la deduplicación en volumenes dentro de un Filer NetApp es muy sencillo. Nos conectamos por SSH al Filer y ejecutamos los siguientes comandos.

Nota: Es necesario adquirir y activar en el Filer la licencia correspondiente de deduplicación.

Primero activamos la deduplicación en el volumen seleccionado:

filer> sis on <volumen>

Ejemplo:

filer> sis on /vol/test01

Una vez realizado esto, los comandos básicos para trabajar con la deduplicación son los siguientes:

Chequeo de estado, podemos ver si está activada, el estado y el progreso en caso de estar trabajando la deduplicación:

filer> sis status /vol/test01
Path                           State      Status     Progress
/vol/test01                 Enabled    Idle       Idle for 21:47:18

Para comprobar el espacio usado en el volumen y el ahorro producido por la deduplicación utilizamos el comando df. En este caso vemos que hemos ahorrado un 25% de espacio:

filer> df -s /vol/test01
Filesystem                used      saved       %saved
/vol/test01/       18018920    5532416          23%

Finalmente el comando sis config nos dirá cuando está planificado que la deduplicación trabaje, por defecto se hace a media noche todos los días:

filer> sis config /vol/test01
Path                           Schedule
/vol/test01                 sun-sat@0

Os recomiendo también utilizar la GUI de NetAPP, NetApp System Manager para gestionar todo esto. Se hace extremadamente sencillo modificar los Schedules, ver gráficas de rendimiento y ahorra de espacio, etc.

Configurar NTP en Netapp Filer vía SSH

Para configurar la sincronización horaria de un filer de Netapp (Data ONTAP), además de poder hacerlo desde la interfaz web, desde SSH o consola sería así:

Primero accedemos al filer y vemos la configuración correspondiente a la gestión de hora:

filer> options timed
timed.enable                 on
timed.log                    off
timed.max_skew               30m
timed.min_skew               10
timed.proto                  rtc
timed.sched                  1h
timed.servers
timed.window                 0s   

Vemos que no tiene un servidor NTP configurado y que el protocolo elegido es rtc. Para usar NTP y asignar un servidor de sincronización horaria hacemos lo siguiente:

filer> options timed.proto ntp
filer> options timed.servers 10.0.3.110

Donde ntp es el protocolo y 10.0.3.110 es el servidor NTP en este caso (ntp local), si la cabina tuviera acceso a Internet podríamos configurar directamente el servidor externo:

filer> options timed.servers hora.rediris.es

Y la configuración final:

filer> options timed
timed.enable                 on
timed.log                    off
timed.max_skew               30m
timed.min_skew               10
timed.proto                  ntp
timed.sched                  1h
timed.servers                10.0.3.110
timed.window                 0s      

Data ONTAP: Copiar un volumen de un filer a otro

Para realizar la copia íntegra de un volumen entre dos cabinas NetAPP tenemos varias posibilidades, dependiendo de las licencias que tengáis podréis utilizar una u otra (SnapMirror, NDM, etc). En este caso vamos a hacer la copia con NDM.

Para este caso, necesitamos hacer un primer volcado total del volumen y posteriormente hacer copias incrementales para ir actualizando el contenido en el volumen de destino.

En primera instancia nos aseguramos que ndm está activo en ambos filer y que utilizan la misma versión

filer1> ndmpd on
filer1> ndmpd version
filer2> ndmpd on
filer2> ndmpd version

Posteriormente revisamos si hay conectividad entre los dos filer:

filer1> ping filer2
filer2> ping filer1

Bien, ahora hay que crear un volumen en el filer de destino, con un tamaño igual o superior al que vamos a “clonar”. Una vez realizado ya podemos comenzar la copia del volumen, en este primer caso es un volcado completo:

filer1> ndmpcopy -da usuario:clave -l 0 /vol/volumen_original filer2:/vol/volumen_destino

Como podéis observar, especificamos el usuario y clave de acceso al filer de destino, así como que el tipo de copia es tipo 0 (full).

Cuando haya terminado este primer volcado, ya podemos repetir tantas veces como necesitamos copias incrementales del volumen para ir actualizando el destino (cambiamos -l 0 por -l 1:

filer1> ndmpcopy -da usuario:clave -l 1 /vol/volumen_original filer2:/vol/volumen_destino

Si os conectáis por SSH o consola al filer1 podréis ver el progreso de copia, también podéis comprobar el estado de la sesión ndmpd con el siguiente comando (en ambos filer).

ndmpd status

Data ONTAP: prevenir Ping Flood y denegación de servicio

Data ONTAP (Netapp) permite configurar el número máximo de paquetes ICMP que se aceptan por segundo. En el momento que se supere este límite los paquetes serán descartados para evitar ping flood y ataques de denegación de servicio.

La opción es la siguiente, por defecto acepta 150 paquetes como máximo por segundo:

options ip.ping_throttle.drop_level 150

Para modificar este valor, simplemente cambiamos el nº de paquetes, si quisiéramos cambiarlo a 1000:

filer> options ip.ping_throttle.drop_level 1000

Podéis comprobar si estos cambios surten efecto lanzando un ping flood contra la IP de la NetAPP:

ping -A XX.XX.XX.XX

Hay otras opciones como options ip.ping_throttle.alarm_interval, que especifica cuán a menudo los pings descartados son registrados en el audit log. Esto pretende prevenid que se haga flood al log de auditoría.

Por defecto está a 5:

options ip.ping_throttle.alarm_interval 5

También podemos deshabiltar los icmp redirects:

ip.icmp_ignore_redirect.enable off

NetApp Filer: activar y probar Autosupport

Autosupport es una utilidad que es imprescindible tener configurada en cualquier filer NetApp. Básicamente sirve para que en cuanto se detecta un fallo en cualquiera de los componentes del filer, ya sea en los discos, controladoras, fuentes, etc, automáticamente se envía un correo al soporte técnico de NetApp y a la dirección que tú configures para tus alertas. De este modo, se agiliza y detecta con mayor rapidez cualquier posible fallo de Hardware en la máquina.

Los pasos para activar Autosupport (vía telnet, SSH o consola) son los siguientes:

Configuramos el host encargado de enviar los correos  donde mailhost_ip es la IP de tu servidor de correo:

filer> options autosupport.mailhost mailhost_ip

Usaremos el protocolo SMTP:

filer> options autosupport.support.transport smtp

Dirección en la que nosotros queremos recibir las alarmas donde email_address es la dirección de correo:

filer> options autosupport.to email_address

Nombre que saldrá como remitente del correo, donde email_address es la dirección de correo:

filer> options autosupport.from email_address

Finalmente, probamos si la configuración es correcta enviando un correo de prueba:

filer> options autosupport.doit TESTING_ASUP

Nota: Este correo se enviará tanto al soporte de NetAPP como a la cuenta que hayáis configurado. Si todo ha ido bien recibiréis una respuesta automática por parte del soporte de NetApp, y el log del filer mostrará algo similar a esto:

Wed Mar  3 12:22:53 CET [syst1002: asup.smtp.sent:notice]: Cluster Notification mail sent: Cluster Notification from XXXX (USER_TRIGGERED (TESTING_ASUP)) INFO
Wed Mar  3 12:23:57 CET [syst1002: asup.smtp.sent:notice]: Cluster Notification mail sent: Cluster Notification from XXXX (USER_TRIGGERED (Testing)) INFO

Si preferís hacerlo desde la interfaz web (FilerView) es muy sencillo, los pasos son los siguientes:

Filer -> Configure Autosupport

Una vez dentro, cambiamos “Autosupport enabled” a “YES” y rellenamos los campos correspondientes y pinchamos en “Apply”

Para probar si funciona:

Test Autosupport on the left -> Send Mail