27.4. libStorageMgmt 사용


대화식으로 libStorageMgmt 를 사용하려면 lsmcli 도구를 사용합니다.
lsmcli 도구를 실행하려면 다음 두 가지가 필요합니다.
  • 배열에 연결하는 플러그인을 식별하는 데 사용되는 URI(Uniform Resource Identifier) 및 배열에 필요한 구성 가능한 옵션입니다.
  • 배열에 유효한 사용자 이름 및 암호입니다.
URI 형식은 다음과 같습니다.
plugin+선택적-transport://user-name@host:port/?query-string-parameters
각 플러그인에는 필요한 요구 사항이 다릅니다.

예 27.1. 다양한 플러그인 요구 사항의 예

사용자 이름 또는 암호가 필요하지 않은 Simulator 플러그인

sim://

사용자 이름 루트를 사용한 SSL을 통한 NetApp 플러그인

ontap+ssl://root@filer.company.com/

EMC Array용 SSL을 통한 SMI-S 플러그인

smis+ssl://admin@provider.com:5989/?namespace=root/emc

URI를 사용할 수 있는 세 가지 옵션이 있습니다.
  1. URI를 명령의 일부로 전달합니다.
    $ lsmcli -u sim://
  2. URI를 환경 변수에 저장합니다.
    $ export LSMCLI_URI=sim://
  3. ~/.lsmcli 파일에 "="로 구분된 이름-값 쌍을 포함하는 URI를 배치합니다. 현재 지원되는 유일한 구성은 'uri'입니다.
이 순서대로 사용할 URI를 결정합니다. 세 가지를 모두 제공하면 명령줄에서 첫 번째 항목만 사용됩니다.
명령줄에서 -P 옵션을 지정하거나 환경 변수 LSMCLI_PASSWORD 에 배치하여 암호를 제공합니다.

예 27.2. lsmcli의 예

명령줄을 사용하여 새 볼륨을 생성하고 이니시에이터에 표시되는 예제입니다.
이 연결에서 서비스를 제공하는 배열 나열:
$ lsmcli list --type SYSTEMS
ID     | Name                          | Status
-------+-------------------------------+--------
sim-01 | LSM simulated storage plug-in | OK
스토리지 풀을 나열합니다.
$ lsmcli list --type POOLS -H
ID   | Name          | Total space          | Free space           | System ID
-----+---------------+----------------------+----------------------+-----------
POO2 | Pool 2        | 18446744073709551616 | 18446744073709551616 | sim-01
POO3 | Pool 3        | 18446744073709551616 | 18446744073709551616 | sim-01
POO1 | Pool 1        | 18446744073709551616 | 18446744073709551616 | sim-01
POO4 | lsm_test_aggr | 18446744073709551616 | 18446744073709551616 | sim-01
볼륨을 생성합니다.
$ lsmcli volume-create --name volume_name --size 20G --pool POO1 -H
ID   | Name        | vpd83                            | bs  | #blocks  | status | ...
-----+-------------+----------------------------------+-----+----------+--------+----
Vol1 | volume_name | F7DDF7CA945C66238F593BC38137BD2F | 512 | 41943040 | OK     | ...
iSCSI 이니시에이터를 사용하여 액세스 그룹을 생성합니다.
$ lsmcli --create-access-group example_ag --id iqn.1994-05.com.domain:01.89bd01 --type ISCSI --system sim-01
ID                               | Name       | Initiator ID                     |SystemID
---------------------------------+------------+----------------------------------+--------
782d00c8ac63819d6cca7069282e03a0 | example_ag | iqn.1994-05.com.domain:01.89bd01 |sim-01
iSCSI 유도기를 사용하여 액세스 그룹을 생성합니다.
$ lsmcli access-group-create --name example_ag --init iqn.1994-05.com.domain:01.89bd01 --init-type ISCSI --sys sim-01
ID                               | Name       | Initiator IDs                    | System ID
---------------------------------+------------+----------------------------------+-----------
782d00c8ac63819d6cca7069282e03a0 | example_ag | iqn.1994-05.com.domain:01.89bd01 | sim-01
새로 생성된 볼륨에 액세스 그룹 가시성을 허용합니다.
$ lsmcli access-group-grant --ag 782d00c8ac63819d6cca7069282e03a0 --vol Vol1 --access RW
라이브러리 설계는 프로세스 간 통신(IPC)을 통해 클라이언트와 플러그인 간의 프로세스 분리를 제공합니다. 이렇게 하면 플러그인의 버그가 클라이언트 애플리케이션을 충돌하지 않습니다. 또한 플러그인 작성자는 원하는 라이센스로 플러그인을 작성할 수 있는 수단을 제공합니다. 클라이언트가 URI를 전달하는 라이브러리를 열면 클라이언트 라이브러리는 사용할 플러그인을 결정하기 위해 URI를 찾습니다.
플러그인은 기술적으로 단독으로 애플리케이션이지만, 명령줄에서 파일 설명자를 전달하도록 설계되었습니다. 그런 다음 클라이언트 라이브러리에서 해당 Unix 도메인 소켓을 열어 데몬에서 플러그인을 분기하고 실행합니다. 이를 통해 클라이언트 라이브러리에 플러그인의 통신 채널을 가리킬 수 있습니다. 기존 클라이언트에 영향을 주지 않고 데몬을 다시 시작할 수 있습니다. 클라이언트에 해당 플러그인에 대해 열려 있는 라이브러리가 있는 동안 플러그인 프로세스가 실행 중입니다. 하나 이상의 명령이 전송되고 플러그인이 닫히면 플러그인 프로세스가 정리된 후 종료됩니다.
lsmcli의 기본 동작은 작업이 완료될 때까지 대기하는 것입니다. 요청된 작업에 따라 잠재적으로 시간이 오래 걸릴 수 있습니다. 일반 사용법으로 돌아가려면 명령줄에서 -b 옵션을 사용할 수 있습니다. 종료 코드가 0이면 명령이 완료됩니다. 종료 코드가 7이면 명령이 진행 중이며 작업 식별자가 표준 출력에 기록됩니다. 그런 다음 사용자 또는 스크립트는 lsmcli --jobstatus JobID를 사용하여 필요에 따라 작업 ID를 사용하고 명령 상태를 쿼리할 수 있습니다. 작업이 이제 완료되면 종료 값이 0이 되고 결과가 표준 출력에 출력됩니다. 명령이 계속 진행 중인 경우 반환 값은 7이 되고 완료 백분율이 표준 출력에 출력됩니다.

예 27.3. 비동기의 예

명령이 즉시 반환되도록 -b 옵션을 전달하는 볼륨을 생성합니다.
$ lsmcli volume-create --name async_created --size 20G --pool POO1 -b JOB_3
종료 값을 확인합니다.
$ echo $?
7
7은 작업이 아직 진행 중임을 나타냅니다.
작업이 완료되었는지 확인합니다.
$ lsmcli job-status --job JOB_3
33
종료 값을 확인합니다. 7은 작업이 아직 진행 중임을 나타내므로 표준 출력은 지정된 화면을 기반으로 한 백분율 또는 33%입니다.
$ echo $?
7
잠시 기다렸다가 종료 값을 다시 확인합니다.
$ lsmcli job-status --job JOB_3
ID   | Name          | vpd83                            | Block Size  | ...
-----+---------------+----------------------------------+-------------+-----
Vol2 | async_created | 855C9BA51991B0CC122A3791996F6B15 | 512         | ...
0은 성공이고 표준 아웃이 새 볼륨을 표시합니다.
스크립팅의 경우 -t SeparatorCharacters 옵션을 전달합니다. 이렇게 하면 출력을 더 쉽게 구문 분석할 수 있습니다.

예 27.4. 스크립팅 예

$ lsmcli list --type volumes -t#
Vol1#volume_name#049167B5D09EC0A173E92A63F6C3EA2A#512#41943040#21474836480#OK#sim-01#POO1
Vol2#async_created#3E771A2E807F68A32FA5E15C235B60CC#512#41943040#21474836480#OK#sim-01#POO1
$ lsmcli list --type volumes -t " | "
Vol1 | volume_name | 049167B5D09EC0A173E92A63F6C3EA2A | 512 | 41943040 | 21474836480 | OK | 21474836480 | sim-01 | POO1
Vol2 | async_created | 3E771A2E807F68A32FA5E15C235B60CC | 512 | 41943040 | 21474836480 | OK | sim-01 | POO1
$ lsmcli list --type volumes -s
---------------------------------------------
ID         | Vol1
Name       | volume_name
VPD83      | 049167B5D09EC0A173E92A63F6C3EA2A
Block Size | 512
#blocks    | 41943040
Size       | 21474836480
Status     | OK
System ID  | sim-01
Pool ID    | POO1
---------------------------------------------
ID         | Vol2
Name       | async_created
VPD83      | 3E771A2E807F68A32FA5E15C235B60CC
Block Size | 512
#blocks    | 41943040
Size       | 21474836480
Status     | OK
System ID  | sim-01
Pool ID    | POO1
---------------------------------------------
Python 라이브러리를 사용하여 스크립팅을 사용하지 않는 것이 좋습니다.
lsmcli 에 대한 자세한 내용은 lsmcli 매뉴얼 페이지 또는 lsmcli --help 를 참조하십시오.
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.