# 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.

Regenerar certificado SSL para FilerView (Netapp)

Al intentar acceder a la gestión web de una cabina Netapp con SSL terminaba con este error:

sec_error_reused_issuer_and_serial

Al parecer significa que hay dos certificados con el mismo número de serie y del mismo fabricante. Como no tenía demasiadas ganas de revisar el origen del problema, directamente generé un nuevo certificado SSL para esta cabina desde la línea de comandos del filer.

Primero podemos verificar que tenemos activados correctamente los accesos seguros:

filer> secureadmin status
ssh2	- active
ssh1	- inactive
ssl	- active

Desactivamos temporalmente SSL:

filer> secureadmin disable ssl

Y generamos un nuevo certificado:

filer> secureadmin setup -f ssl
Country Name (2 letter code) [US]:
State or Province Name (full name) [California]:
Locality Name (city, town, etc.) [Santa Clara]:
Organization Name (company) [Your Company]:
Organization Unit Name (division):
Common Name (fully qualified domain name) [xxxxxxx.]:
Administrator email:
Days until expires [5475] :
Key length (bits) [512] :
Fri Aug 27 09:49:53 CEST [syst1002: secureadmin.ssl.setup.success:info]: Starting SSL with new certificate.

Automáticamente se inicia el servicio web SSL y ya podemos acceder nuevo a FilerView.

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.

NetApp System Manager: interfaz gráfica para gestión de Filers

Gracias al NetApp System Manager podemos gestionar desde un único punto múltiples Filers/cabinas de almacenamiento Netapp. Podemos realizar gran parte de las gestiones básicas como configurar protocolos (CIFS, NFS, iSCSI…), gestionar los discos, volúmenes y monitorizar los sistemas entre otras cosas.

Actualmente podemos descargar la versión System Manager 1.1 desde el siguiente enlace (hay que ser usuario registrado de now.netapp). Está disponible para sistemas Windows y en el enlace anterior encontraréis todas las posibilidades que nos ofrece. Para poder hacer uso de la utilidad las cabinas tienen que tener instalada como mínimo la versión 7.2.6 de Data ONTAP. En este vídeo tenéis una pequeña explicación:

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