Post

Pure Storage

Pure Storage

Las cabinas de discos molan.

En las cabinas de discos es donde de verdad está la chicha, allí es donde vamos a tener el espacio disponible para nuestra infraestructura. Aunque la interfaz gráfica puede ser cómoda para algunas tareas, la gestión de volúmenes, discos, grupos de volúmenes, pods, etc… es mas cómoda realizarla por comandos. Estos comandos me han sido útiles en esas tareas de gestión por ser muy repetitivas, y a medida que vaya usando mas, los iré documentando aquí.

Listar volúmenes:

1
2
3
purehost list --connect NOMBREHOST*
purehost list --connect NOMBREHOSTGROUP*
purevol list --space --sort size,total

Listar volúmenes de un pod:

1
purepod listobj --type vol NOMBREPOD

Desconectar volúmenes:

1
2
puregroup disconnect NOMBREHOSTGROUP --vol VOL::UMEN
puregroup connect NOMBREHOSTGROUP --vol VOL::UMEN

Remover Array de un pod:

1
purepod remove --array NOMBREARRAY NOMBREPOD

Desconectar volúmenes de un host:

1
purevol disconnect NOMBREVOL_001 NOMBREVOL_002 --host NOMBREHOST

Desconectar volumen de un hostgroup:

1
purevol disconnect NOMBREVOL_001 --hgroup NOMBREHOSTGROUP

Desconectar volumen de un host:

1
purevol disconnect NOMBREVOL_001 --host NOMBREHOST

Destruir volumen:

1
purevol destroy NOMBREVOL_001

Destruir volúmenes:

1
purevol destroy NOMBREVOL_001 NOMBREVOL_002

Nos conectamos a la pure por ssh y sacamos los datos.

1
2
3
4
ssh -i ./.ssh/pure user@array1.net "purevol list --all"
ssh -i ./.ssh/pure user@array1.net "purehost list --connect"
ssh -i ./.ssh/pure user@array2.net "purevol list --all"
ssh -i ./.ssh/pure user@array2.net "purehost list --connect"

Ver volumenes desconectados de los hosts.

Script en ksh que se alimenta de dos ficheros, en uno están todos los volúmenes existentes, y en otro están todos los volúmenes conectados a algún host existente en el array.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#!/bin/ksh

# Archivos de entrada
ALL_VOLUMES_FILE="/RUTA/FICHERO/TODOSVOLUMENES"         # Lista de todos los volúmenes
CONNECTED_VOLUMES_FILE="/RUTA/FICHERO/VOLUMENESCONECTADOS"  # Lista de volúmenes conectados

# Verificar que los ficheros existen
if [[ ! -f "$ALL_VOLUMES_FILE" || ! -f "$CONNECTED_VOLUMES_FILE" ]]; then
  echo "Error: No se encontraron los ficheros necesarios."
  echo "Asegúrate de que $ALL_VOLUMES_FILE y $CONNECTED_VOLUMES_FILE existan."
  exit 1
fi

# Inicializar variables para los volúmenes
ALL_VOLUMES=""
CONNECTED_VOLUMES=""
DISCONNECTED_VOLUMES=""

# Leer los nombres de volúmenes de ambos archivos
ALL_VOLUMES=$(awk 'NR > 1 {print $1}' "$ALL_VOLUMES_FILE")         # Saltar encabezado y obtener la columna Name
CONNECTED_VOLUMES=$(awk 'NR > 1 {print $1}' "$CONNECTED_VOLUMES_FILE") # Saltar encabezado y obtener la columna Name

# Encontrar volúmenes desconectados
for volume in $ALL_VOLUMES; do
  found=0
  for connected in $CONNECTED_VOLUMES; do
    if [[ "$volume" == "$connected" ]]; then
      found=1
      break
    fi
  done
  if [[ $found -eq 0 ]]; then
    # Extraer tamaño del volumen desde el archivo de todos los volúmenes
    size=$(awk -v vol="$volume" '$1 == vol {print $2}' "$ALL_VOLUMES_FILE")
    DISCONNECTED_VOLUMES="$DISCONNECTED_VOLUMES\n$volume [$size]"
  fi
done

# Mostrar resultados
printf "===================================================\n"
printf "Volúmenes desconectados:\n"
printf "===================================================\n"
printf "%b\n" "$DISCONNECTED_VOLUMES" | sed '/^$/d'  # Mostrar y eliminar líneas vacías

Fuente comandos: https://www.rajeshvu.com/storage/pure/articles/pure-storage-cli-questions

This post is licensed under CC BY 4.0 by the author.