Azure Native Qumulo 이제 EU, 영국 및 캐나다에서 사용 가능 – 자세히 알아보기

qq 및 Qumulo REST API

작성자 :

Qumulo는 약 XNUMX주마다 Qumulo Core 소프트웨어의 새 버전을 제공하며, Qumulo Core의 각 버전과 함께 Qumulo REST API의 새 버전을 출시합니다. 파이썬 래퍼 Python 언어 개발자의 편의를 위해. 이것은 Python 또는 REST 호출을 직접 만들 수 있는 다른 프로그래밍 언어와 같은 고급 프로그래밍 언어 사용자에게 매우 유용합니다.

그러나 많은 작업에 bash/shell 스크립팅을 사용하는 시스템 관리자와 다른 사람들은 어떻습니까? Qumulo REST API의 기능을 어떻게 활용할 수 있습니까? 이러한 사용자의 경우 Qumulo에서 제공하는 qq 명령줄(CLI) 도구는 CLI 및 셸 스크립트에서 Qumulo REST API의 기능을 활용하는 방법입니다. Qumulo의 REST API 전체는 qq를 통해 노출됩니다.

이 게시물은 qq를 통해 직접 쉘 또는 bash 스크립트에서 Qumulo 클러스터의 정보를 활용할 수 있는 몇 가지 방법을 보여주고 qq의 출력을 다른 관리 스크립트로 통합하는 방법을 보여주는 몇 가지 예를 보여줍니다.

qq 설치

qq를 설치하는 가장 간단한 방법은 PyPI(공개 Python 패키지 색인 저장소)에서 Qumulo REST API를 설치하는 것입니다.

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

설치하려면 명령 프롬프트를 열고 다음을 실행합니다.

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

실행하려면 Python 2.7이 필요합니다. qq. 원하는 경우 실행할 수도 있습니다. qq 사전 설치된 클러스터(ssh를 통해)에서 로컬로.

시작하기: 로그인 및 클러스터 콘텐츠 보기

시작하려면 다음과 같이 qumulo 클러스터에 로그인해야 합니다.

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

여기서 사용자 이름과 암호는 Qumulo 클러스터의 자격 증명입니다. 로그인에 성공하면 액세스 토큰이 백그라운드에서 생성되므로 해당 토큰이 유효한 동안 후속 qq 명령에 대해 사용자 이름과 암호를 지정할 필요가 없습니다.

명령줄에서 모든 옵션을 보려면 다음을 실행해 보십시오. qq --help</var/www/wordpress>.

인증을 받으면 클러스터 콘텐츠에 대한 정보를 볼 수 있습니다… 이 명령은 루트 디렉터리에서 시작하는 내용을 나열합니다.

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

다음과 같은 내용을 반환합니다(여기서는 몇 천 줄의 출력이 생략됨….).

{ "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", "metablocks": "1", "mode": "0777", "modification_time": "2017-01-04T22:59:52.909017431 Z", "이름": "사용자", "num_links": 30, "소유자": "12884901888", "owner_details": { "id_type": "NFS_UID", "id_value": "0" }, "경로" : "/users/", "크기": "15360", "symlink_target_type": "FS_FILE_TYPE_UNKNOWN", "유형": "FS_FILE_TYPE_DIRECTORY" } ], "id": "2", "paging": { "다음": "", "이전": "/v1/files/%2F/entries/?before=4190957568&limit=16" }, "경로": "/" }

이 출력은 qq 및 Qumulo REST API에 대한 몇 가지 사항을 보여줍니다.

  1. qq 명령의 출력은 JSON 형식입니다.
  2. 일부 qq 명령의 경우 출력이 매우 장황할 수 있습니다.

XNUMXD덴탈의 유닉스 철학 "텍스트 스트림을 처리하는 프로그램을 작성하는 것"이며 이는 유닉스에서 쉘 스크립팅의 기초이기도 합니다. JSON 형식은 텍스트이지만 쉼표 또는 탭으로 구분된 값을 후속 명령으로 파이프하는 것이 더 일반적입니다. 따라서 qq 명령의 출력을 보다 간결하고 다양한 형식으로 출력하기 위해 이 블로그 게시물에서는 인기 있는 jq 명령줄 JSON 프로세서 다른 CLI 도구와 함께 qq를 더 쉽게 맞출 수 있는 방법을 설명하기 위해(Mac에서는 homebrew를 사용하여 jq를 설치할 수 있습니다. Linux, Windows 및 기타 버전의 경우 도구 웹 사이트 참조).

위의 예를 사용하여 qq의 출력 중 일부를 가져오고 jq를 사용하여 다른 도구에서 더 쉽게 읽고 용도를 ​​변경할 수 있도록 해 보겠습니다. 수행할 수 있는 작업을 보여주는 jq용 자습서):

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

다음과 같이 fs_read_dir에서 csv 형식으로 반환된 첫 번째 항목의 경로, ID 및 블록 값을 반환합니다.

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

그런 다음 CSV 형식을 예상하는 다른 도구로 파이프할 수 있습니다. qq 및 REST API를 사용하여 파일 및 디렉토리를 생성할 수도 있지만 더 일반적인 방법은 NFS 또는 SMB를 사용하여 공유를 마운트하고 그런 방식으로 클러스터에 콘텐츠를 생성하는 것입니다.

클러스터에 대한 정보와 사용자, 그룹, NFS 또는 SMB 공유 보기 및 생성

클러스터에 있는 모든 슬롯(디스크)의 용량과 상태를 검색하고 결과를 슬롯별로 정렬한 다음 결과를 IT 상태 보고서의 일부로 csv 파일에 저장한다고 가정해 보겠습니다. 다음을 실행할 수 있습니다.

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

다음과 같이 그룹을 만들 수 있습니다.

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

{ "gid": "", "id": "1026", "name": "내 테스트 그룹", "sid": "S-1-5-21-1203876804-525990034-1406135336-1026" } 확장된 ID 그룹 1026에 대한 정보: [ { "id_type": "LOCAL_GROUP", "id_value": "내 테스트 그룹" } ]

그리고 그룹에 사용자를 추가합니다.

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" : "" } 사용자 1027에 대한 확장된 ID 정보: [ { "id_type": "LOCAL_USER", "id_value": "My_Test_User" }, { "id_type": "LOCAL_GROUP", "id_value": "내 테스트 그룹" } ]

그런 다음 디렉터리를 만들고 새 그룹에 대한 공유를 추가합니다.

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

와:

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

또는 NFS를 사용하는 경우:

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

성능: Analytics 검색 및 데이터 집계

Qumulo REST API의 가장 강력한 측면 중 하나는 REST API를 통해 노출된 파일 시스템에 대한 실시간 분석 및 집계 데이터입니다. qq를 사용하면 이 데이터가 bash 스크립트를 사용하는 사용자에게도 노출됩니다.

클러스터의 모든 현재 활동을 검색하여 다음과 유사한 표 형식으로 표시한다고 가정해 보겠습니다. iostat 및 기타 도구. 현재 활동을 얻으려면 다음을 실행하면 됩니다.

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

모든 qq 명령과 마찬가지로 클라이언트 IP 주소별로 그룹화된 JSON 기반 데이터(이 경우 파일 및 메타데이터 처리량 및 IOP와 같은 현재 클러스터 활동을 보여줌)를 반환합니다.

 

그런 다음 이 데이터를 모니터링 도구와 같은 다른 도구로 전달할 수 있습니다.

추가 자료 및 도구

좋은 튜토리얼이 있습니다 JSON 및 jq 도구는 여기.

현재 Qumulo 고객인 경우 다음에서 자세한 정보를 찾을 수 있습니다. Qumulo 커뮤니티 사이트 (대화에서 'qq' 검색).

관련 게시물

위쪽으로 스크롤