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