Qumulo fournit une nouvelle version de notre logiciel Qumulo Core environ toutes les deux semaines et, avec chaque version de Qumulo Core, nous publions une nouvelle version de l’API REST Qumulo, ainsi Wrapper Python comme commodité pour les développeurs de langage Python. Ceci est très utile pour les utilisateurs de langages de programmation de haut niveau tels que Python ou tout autre langage de programmation pouvant effectuer des appels REST directement.

Mais qu'en est-il des administrateurs système et des autres utilisateurs qui utilisent les scripts bash / shell pour la plupart de leurs tâches? Comment peuvent-ils tirer parti de la puissance de l’API REST Qumulo? Pour ces utilisateurs, l'outil de ligne de commande qq fourni par Qumulo est le moyen d'exploiter la puissance de l'API REST de Qumulo à partir de l'interface de ligne de commande et des scripts shell. L'intégralité de l'API REST de Qumulo est exposée via qq.

Cet article vous montrera comment exploiter les informations de votre cluster Qumulo via qq directement dans le shell ou dans les scripts bash, avec quelques exemples montrant comment intégrer la sortie de qq dans d'autres scripts de gestion.

Installer qq

Le moyen le plus simple d'installer qq consiste à installer l'API REST Qumulo à partir de PyPI (le référentiel public d'index de package Python):

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

Pour installer, ouvrez une invite de commandes, puis exécutez:

pip install qumulo-api

Vous aurez besoin de python 2.7 pour exécuter qq. Si vous préférez, vous pouvez aussi courir qq localement sur votre cluster (via ssh) où il est pré-installé.

Mise en route: connexion et affichage du contenu du cluster

Pour commencer, vous devez vous connecter à votre cluster qumulo, comme suit:

qq --host [nom d'hôte ou adresse IP] login -u [nom d'utilisateur] -p [mot de passe]

Où nom d'utilisateur et mot de passe sont des informations d'identification sur votre cluster Qumulo. En cas de connexion réussie, un jeton d'accès est créé en arrière-plan. Par conséquent, même si ce jeton est valide, vous n'avez pas besoin de spécifier le nom d'utilisateur et le mot de passe pour les commandes qq suivantes.

Pour voir toutes les options de la ligne de commande, essayez de courir qq --help.

Une fois authentifié, vous pouvez afficher des informations sur le contenu du cluster. Cette commande répertorie le contenu à partir du répertoire racine:

qq --host music fs_read_dir --path /

Ce qui retourne un contenu comme celui-ci (quelques milliers de lignes de sortie sont indiquées ici….):

{"child_count": 131, "fichiers": [(...) {"blocs": "1", "change_time": "2017-01-04T22: 59: 52.909017431Z", "child_count": 30, "creation_time ":" 2016-03-15T20: 12: 07.722559693Z "," datablocks ":" 0 "," numéro_fichier ":" 3 "," groupe ":" 17179869184 "," group_details ": {" id_type ":" NFS_GID " , "id_value": "0"}, "id": "3", "metablocks": "1", "mode": "0777", "modification_heure": "2017-01-04T22: 59: 52.909017431Z", "name": "users", "num_links": 30, "owner": "12884901888", "owner_details": {"id_type": "NFS_UID", "id_value": "0"}, "path": "/ users / "," size ":" 15360 "," symlink_target_type ":" FS_FILE_TYPE_UNKNOWN "," type ":" FS_FILE_TYPE_DIRECTORY "}]," id ":" 2 "," paging ": {" next ":" ", "prev": "/ v1 / files /% 2F / entries /? before = 4190957568 & limit = 16"}, "path": "/"}

Cette sortie illustre quelques points à propos de qq et de l’API REST Qumulo:

  1. Le résultat des commandes qq est le format JSON
  2. Pour certaines commandes qq, la sortie peut être très verbeuse

Le philosophie unix consiste à «écrire des programmes pour gérer les flux de texte», et c'est également la base du script shell sous Unix. Alors que le format JSON est du texte, il est plus courant de transmettre des valeurs séparées par des virgules ou des tabulations aux commandes suivantes. Donc, pour adapter la sortie des commandes qq afin d’être plus concise et de produire différents formats, nous utiliserons pour ce billet Processeur JSON en ligne de commande jq pour illustrer comment vous pouvez faire en sorte que qq s'intègre plus facilement avec d'autres outils CLI (sur Mac, vous pouvez installer jq en utilisant l'homebrew; pour Linux, Windows et d'autres versions, consultez le site Web de l'outil).

En utilisant l'exemple ci-dessus, prenons une partie de la sortie de qq et utilisons jq pour la rendre plus facile à lire et à utiliser dans d'autres outils (il y a un tutoriel pour jq qui vous montre une partie de ce que vous pouvez faire):

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

Cela retournera le chemin, l'id et la valeur de blocs de la première entrée renvoyée par fs_read_dir au format csv, comme ceci:

"\" / media / \ ", \" 1000003 \ ", \" 1 \ ""

Ce qui pourrait ensuite être redirigé vers d'autres outils qui attendent le format CSV. Notez que vous pouvez également créer des fichiers et des répertoires à l'aide de qq et de l'API REST, mais la méthode la plus courante consiste à monter des partages à l'aide de NFS ou SMB et à créer du contenu sur le cluster de cette manière.

Informations sur votre cluster et affichage et création d'utilisateurs, de groupes et de partages NFS ou SMB

Supposons que vous souhaitiez récupérer la capacité et l'état de tous les emplacements (disques) de votre cluster, ordonner les résultats par emplacement, puis stocker les résultats dans un fichier csv dans un rapport d'état informatique. Vous pourriez courir:

qq --host music cluster_slots | jq '[. [] | {"cap":. Capacity, "slot":. slot_type, "state":. state}] | Trier'

Vous pouvez créer des groupes:

qq --host music auth_add_group --name "Mon groupe de tests"

{"gid": "", "id": "1026", "nom": "Mon groupe de tests", "sid": "S-1-5-21-1203876804-525990034-1406135336-1026"} Identité étendue informations pour le groupe 1026: [{"id_type": "LOCAL_GROUP", "id_value": "Mon groupe de tests"}]

Et ajouter des utilisateurs au groupe:

qq - musique hôte auth_add_user --name "My_Test_User" - groupe primaire "Mon groupe de tests" -p indésirable

{"id": "1027", "name": "My_Test_User", "primary_group": "1026", "sid": "S-1-5-21-1203876804-525990034-1406135336-1027", "uid" : ""} Informations d'identité étendues pour l'utilisateur 1027: [{"id_type": "LOCAL_USER", "id_value": "My_Test_User"}, {"id_type": "LOCAL_GROUP", "id_value": "Mon groupe de tests"}]

Et puis créez un répertoire et ajoutez un partage pour le nouveau groupe:

qq --host music fs_create_dir --name "my_test" --path "/"

Avec:

qq --host music smb_add_share --name "my_test_smb_share" --fs-path "/ my_test /"

Ou si vous utilisez NFS:

qq --host music nfs_add_share --fs-path "/ my_test /" --export-path "/ my_nfs_export" --no-restrictions

Performance: récupération des données analytiques et agrégées

L'un des aspects les plus puissants de l'API REST de Qumulo est l'analyse en temps réel et les données agrégées sur le système de fichiers exposées via notre API REST. En utilisant qq, ces données sont également exposées aux utilisateurs utilisant des scripts bash.

Supposons que vous souhaitiez récupérer toute l'activité en cours dans le cluster et l'afficher sous forme de tableau similaire à iostat et d'autres outils. Pour obtenir l'activité actuelle, vous pouvez simplement exécuter:

qq --host music current_activity_get | jq '.entries | sort_by (.ip) '

Comme toutes les commandes qq, cela renvoie des données basées sur JSON - dans ce cas, montrant l'activité actuelle du cluster, telles que le débit de fichiers et de métadonnées et les IOP - groupées par adresse IP du client:

Ces données peuvent ensuite être acheminées vers d'autres outils tels que des outils de surveillance.

Lectures complémentaires et outils

Il y a un bon tutoriel sur JSON et l'outil jq ici.

Si vous êtes actuellement un client Qumulo, vous pouvez trouver plus d'informations sur le Site communautaire de Qumulo (recherchez "qq" dans les conversations).

Partager avec votre réseau

OBTENIR UNE DEMO