Azure Native Qumulo ahora disponible en la UE, el Reino Unido y Canadá: Más información

qq y la API REST de Qumulo

Escrito por:

Qumulo envía una nueva versión de nuestro software Qumulo Core aproximadamente cada dos semanas, y con cada versión de Qumulo Core lanzamos una nueva versión de la API REST de Qumulo, junto con un Envoltura de pitón como una conveniencia para los desarrolladores de lenguajes Python. Esto es muy útil para usuarios de lenguajes de programación de alto nivel como Python o cualquier otro lenguaje de programación que pueda hacer llamadas REST directamente.

Pero, ¿qué pasa con los administradores de sistemas y otros que usan scripts bash / shell para muchas de sus tareas? ¿Cómo pueden aprovechar el poder de la API REST de Qumulo? Para estos usuarios, la herramienta de línea de comandos qq (CLI) proporcionada por Qumulo es la forma de aprovechar el poder de la API REST de Qumulo desde la CLI y en los scripts de shell. La totalidad de la API REST de Qumulo está expuesta a través de qq.

Esta publicación le mostrará algunas formas en que puede aprovechar la información de su grupo Qumulo a través de qq directamente en el shell o en los scripts de bash, con algunos ejemplos que muestran cómo integrar la salida de qq en otros scripts de administración.

Instalar qq

La forma más sencilla de instalar qq es instalar la API REST de Qumulo desde PyPI (el repositorio público de Python Package Index):

https://pypi.python.org/pypi/qumulo_api/

Para instalar, abra un indicador de comando y luego ejecute:

pip install qumulo-api</var/www/wordpress>

Necesitarás Python 2.7 para ejecutar qq. Si lo prefieres, también puedes correr. qq localmente en su clúster (a través de ssh) donde está preinstalado.

Primeros pasos: iniciar sesión y ver el contenido del clúster

Para comenzar, debe iniciar sesión en su clúster qumulo, así:

qq --host [hostname or IP address] login -u [username] -p [password]</var/www/wordpress>

Donde el nombre de usuario y la contraseña son credenciales en su grupo Qumulo. Si el inicio de sesión se realiza correctamente, se crea un token de acceso detrás de la escena, de modo que si bien ese token es válido, no necesita especificar el nombre de usuario y la contraseña para los siguientes comandos qq.

Para ver todas las opciones desde la línea de comandos, intente ejecutar qq --help</var/www/wordpress>.

Una vez que se haya autenticado, puede ver información sobre el contenido del clúster ... Este comando enumera los contenidos que comienzan en el directorio raíz:

qq --host music fs_read_dir --path /</var/www/wordpress>

Lo que devuelve contenido como este (unos pocos miles de líneas de salida eliminadas aquí ...):

{"child_count": 131, "files": [(...) {"blocks": "1", "change_time": "2017-01-04T22: 59: 52.909017431Z", "child_count": 30, " creation_time ":" 2016-03-15T20: 12: 07.722559693Z "," datablocks ":" 0 "," file_number ":" 3 "," group ":" 17179869184 "," group_details ": {" id_type ":" NFS_GID "," id_value ":" 0 "}," id ":" 3 "," metabloques ":" 1 "," modo ":" 0777 "," modificación_tiempo ":" 2017-01-04T22: 59: 52.909017431 Z "," nombre ":" usuarios "," num_links ": 30," propietario ":" 12884901888 "," detalles_propietario ": {" id_type ":" NFS_UID "," id_value ":" 0 "}," ruta " : "/ users /", "tamaño": "15360", "symlink_target_type": "FS_FILE_TYPE_UNKNOWN", "type": "FS_FILE_TYPE_DIRECTORY"}], "id": "2", "paging": {"siguiente": "", "anterior": "/ v1 / archivos /% 2F / entradas /? before = 4190957568 & limit = 16"}, "ruta": "/"}

Esta salida ilustra algunas cosas sobre qq y la API REST de Qumulo:

  1. La salida de los comandos qq es el formato JSON
  2. Para algunos comandos qq, la salida puede ser muy detallada

La filosofía unix es "escribir programas para manejar flujos de texto", y esa es también la base de shell scripting en Unix. Mientras que el formato JSON es texto, es más común canalizar valores separados por comas o tabulaciones a los comandos subsiguientes. Por lo tanto, para adaptar la salida de los comandos qq para que sea más concisa y produzca diferentes formatos, para esta publicación del blog usaremos el popular Procesador JSON de línea de comandos jq para ilustrar cómo puede hacer que qq encaje más fácilmente con otras herramientas CLI (en una Mac, puede instalar jq utilizando homebrew; para Linux, Windows y otros tipos, consulte el sitio web de la herramienta).

Usando el ejemplo anterior, tomemos parte de la salida de qq y usemos jq para que sea más fácil de leer y reutilizar en otras herramientas (hay una Tutorial para jq que te muestra algo de lo que puedes hacer):

qq --host music fs_read_dir --path /media | jq '[.path, .id, .files[0].blocks] | @csv'</var/www/wordpress>

Esto devolverá la ruta, la identificación y el valor de los bloques de la primera entrada devuelta por fs_read_dir en formato csv, como esto:

"\"/media/\",\"1000003\",\"1\""</var/www/wordpress>

Que luego podría canalizarse a otras herramientas que esperan formato CSV. Tenga en cuenta que también puede crear archivos y directorios utilizando qq y la API REST, pero la forma más común es montar recursos compartidos utilizando NFS o SMB y crear contenido en el clúster de esa manera.

Información sobre su Clúster, y visualización y creación de usuarios, grupos y recursos compartidos de NFS o SMB

Supongamos que desea recuperar la capacidad y el estado de todas las ranuras (discos) de su grupo, ordenar los resultados por ranura y luego almacenar los resultados en un archivo csv como parte de un informe de estado de TI. Podrías correr:

qq --host music cluster_slots | jq '[ .[] | {"cap":.capacity, "slot":.slot_type, "state":.state }] | sort'</var/www/wordpress>

Puedes crear grupos:

qq --host music auth_add_group --name "My Test Group"</var/www/wordpress>

{"gid": "", "id": "1026", "name": "Mi grupo de prueba", "sid": "S-1-5-21-1203876804-525990034-1406135336-1026"} Identidad ampliada información para el grupo 1026: [{"id_type": "LOCAL_GROUP", "id_value": "Mi grupo de prueba"}]

Y agrega usuarios al grupo:

qq --host music auth_add_user --name "My_Test_User" --primary-group "My Test Group" -p junk</var/www/wordpress>

{"id": "1027", "name": "My_Test_User", "primary_group": "1026", "sid": "S-1-5-21-1203876804-525990034-1406135336-1027", "uid" : ""} Información de identidad ampliada para el usuario 1027: [{"id_type": "LOCAL_USER", "id_value": "My_Test_User"}, {"id_type": "LOCAL_GROUP", "id_value": "Mi grupo de prueba"}]

Y luego crea un directorio y agrega un recurso compartido para el nuevo grupo:

qq --host music fs_create_dir --name "my_test" --path "/"</var/www/wordpress>

Con:

qq --host music smb_add_share --name "my_test_smb_share" --fs-path "/my_test/"</var/www/wordpress>

O si estás usando NFS:

qq --host music nfs_add_share --fs-path "/my_test/" --export-path "/my_nfs_export" --no-restrictions</var/www/wordpress>

Rendimiento: recuperación de datos analíticos y agregados

Uno de los aspectos más poderosos de la API REST de Qumulo son los análisis en tiempo real y los datos agregados sobre el sistema de archivos expuesto a través de nuestra API REST. Al utilizar qq, estos datos se exponen a los usuarios que también utilizan scripts de bash.

Supongamos que desea recuperar toda la actividad actual en el clúster y mostrarla en forma tabular similar a iostat y otras herramientas. Para obtener la actividad actual puede simplemente ejecutar:

qq --host music current_activity_get | jq '.entries | sort_by(.ip)'</var/www/wordpress>

Como todos los comandos qq, esto devolverá datos basados ​​en JSON, en este caso mostrando la actividad actual del clúster, como el rendimiento de archivos y metadatos y los IOP, agrupados por dirección IP del cliente:

 

Luego, estos datos se pueden canalizar a otras herramientas, como las herramientas de monitoreo.

Lecturas adicionales y herramientas

Hay un buen tutorial sobre JSON y la herramienta jq aquí.

Si actualmente es cliente de Qumulo, puede encontrar más información en el Qumulo Community site (busca 'qq' en las conversaciones).

Artículos Relacionados

Ir al Inicio