'명령어'에 해당되는 글 3건

  1. 2012.12.13 Cinder 명령어로 볼륨 생성하기
  2. 2012.10.23 OpenStack Glance 명령어 정리 (2)
  3. 2012.08.29 Hadoop 명령어 정리 (3)
OpenStack2012.12.13 16:21

오픈테크넷에서 세미나를 한 후 저에게 질문을 해 오시는 분들이 생기기 시작했습니다. 저도 아직 오픈스택에 대해 많은 것을 알고 있는것이 아니라, 그냥 단지 먼저 삽질을 시작한 것 뿐이고 아직 삽질하지 못한 부분이 더 많이 있습니다. 


그리고, 질문들이 제가 이전에 겪었던 그래서 커뮤니티 회원의 누군가로부터 도움을 받았던 내용들이라 저도 그 내용을 다시 전파를 해 주었습니다. 오늘은 어떤 분이 cinder 볼륨과 nova 볼륨에 대한 질문을 해 오셨기에 저도 아직 사용해 보지 않은 내용이고 많이 테스트 해 보지 않은 부분이라서 cinder 명령어를 테스트 해 보고, 정리해 보았습니다.



Cinder 명령어는 nova 명령어와 같이 cinder-manage 로 시작하는 명령어가 있고, cinder로 시작하는 명령어가 있다. 어떤 종류의 서브 명령어와 옵션들이 있는지 궁금하다면 help를 치면 친절하게 어떤 명령어들이 있는지 나온다.

$ cinder-manage --help

Available categories:

       config

       db

       host

       logs

       shell

       sm

       version

       volume

       migrate

 

$ cinder --help

Command-line interface to the OpenStack Volume API.

Positional arguments:

  <subcommand>

    absolute-limits     Print a list of absolute limits for a user

    create              Add a new volume.

    credentials         Show user credentials returned from auth

    delete              Remove a volume.

    endpoints           Discover endpoints that get returned from the

                        authenticate services

    extra-specs-list    Print a list of current 'volume types and extra specs'

                        (Admin Only).

    list                List all the volumes.

    quota-class-show    List the quotas for a quota class.

    quota-class-update  Update the quotas for a quota class.

    quota-defaults      List the default quotas for a tenant.

    quota-show          List the quotas for a tenant.

    quota-update        Update the quotas for a tenant.

    rate-limits         Print a list of rate limits for a user

    rename              Rename a volume.

    show                Show details about a volume.

    snapshot-create     Add a new snapshot.

    snapshot-delete     Remove a snapshot.

    snapshot-list       List all the snapshots.

    snapshot-rename     Rename a snapshot.

    snapshot-show       Show details about a snapshot.

    type-create         Create a new volume type.

    type-delete         Delete a specific volume type

    type-key            Set or unset extra_spec for a volume type.

    type-list           Print a list of available 'volume types'.

    bash-completion     Prints all of the commands and options to stdout so

                        that the

    help                Display help about this program or one of its

                        subcommands.


cinder-manage 의 서브 커맨드들은 9개가 존재를 하며 그중에서도 가장 많이 쓰이는 것이 host 가 아닐까 싶다.

cinder volume storage로 설정되어 있는 host 리스트 정보를 보여준다. 아직까지는 cinder가 제대로 구현이 되지 않아 debug 도 함께 보이지만, 이것도 좀 업데이트 되지 않을까 싶다.

$ cinder-manage host list

host                          zone          

2012-12-13 15:49:35 DEBUG cinder.utils [req-f93bbb68-15a9-47e6-a104-20c5cde70c3c None None] backend <module 'cinder.db.sqlalchemy.api' from '/opt/stack/cinder/cinder/db/sqlalchemy/api.pyc'> from (pid=5719) __get_backend /opt/stack/cinder/cinder/utils.py:557

openstack02                   nova          

openstack01                   nova          

openstack03                   nova


그외에 cinder-manage의 서브 커맨드들은 어떤 옵션들이 있는걸까? Help를 통해 알아보자

$ cinder-manage config   # 이 명령어는 cinder.conf 파일을 보여준다.

/usr/local/bin/cinder-manage category action [<args>]

Available actions for config category:

       list

 

$ cinder-manage db       # DB와 내용을 sync시키고, version정보를 보여준다.

/usr/local/bin/cinder-manage category action [<args>]

Available actions for db category:

       sync

       version

 

$ cinder-manage logs     # cinder를 사용하면서 발생하는 에러로그와 시스템로그를 보여준다.

/usr/local/bin/cinder-manage category action [<args>]

Available actions for logs category:

       errors

       syslog


지금까지는 cinder-manage 명령어에 대해서 알아보았다. 지금부터는 cinder 로 시작하는 명령어에 대해서 알아보도록 하자.

나는 우선 cinder 명령어를 익히기 위해서 Dashboard에서 다 지원하지만, Command 로 볼륨을 생성하고 인스턴스에 Attach를 시켜보았다. 같이 한번 해 보도록 하자.


1. 우선 내가 생성할 수 볼륨 사이즈가 어떻게 되는지 알아본다. 이건 다음과 같이 다양한 명령어로 확인할 수 있다. 

$ cinder absolute-limits

+-------------------------+-------+

|           Name          | Value |

+-------------------------+-------+

| maxTotalVolumeGigabytes |  1000 |

|     maxTotalVolumes     |   10  |

+-------------------------+-------+

 

$ cinder quota-show nalee   # nalee는 내 계정이 소속된 Tenant 명이다.

+-----------+-------+

|  Property | Value |

+-----------+-------+

| gigabytes |  1000 |

|  volumes  |   10  |

+-----------+-------+

$ cinder quota-defaults nalee

+-----------+-------+

|  Property | Value |

+-----------+-------+

| gigabytes |  1000 |

|  volumes  |   10  |

+-----------+-------+

$ cinder quota-class-show nalee

+-----------+-------+

|  Property | Value |

+-----------+-------+

| gigabytes |  1000 |

|  volumes  |   10  |

+-----------+-------+


2. cinder create 명령어로 volume을 생성한다.

$ cinder create --display-name "testvol" --display-description "test" --availability-zone "nova" 100

+---------------------+--------------------------------------+

|       Property      |                Value                 |

+---------------------+--------------------------------------+

|     attachments     |                  []                  |

|  availability_zone  |                 nova                 |

|       bootable      |                false                 |

|      created_at     |      2012-12-13T05:28:13.131825      |

| display_description |                 test                 |

|     display_name    |               testvol                |

|          id         | a6257e84-a8a9-403a-8587-ee70aa476a58 |

|       metadata      |                  {}                  |

|         size        |                 100                  |

|     snapshot_id     |                 None                 |

|        status       |               creating               |

|     volume_type     |                 None                 |

+---------------------+--------------------------------------+


이렇게 생성을 하면 Dashboard의 Volumes 메뉴에서 확인이 가능하다.

 

3. 볼륨이 잘 생성되었는지 cinder list로 확인한다.

$ cinder list

+--------------------------------------+-----------+--------------+------+-------------+----------+-------------+

|                  ID                  |   Status  | Display Name | Size | Volume Type | Bootable | Attached to |

+--------------------------------------+-----------+--------------+------+-------------+----------+-------------+

| 260d2060-eb6f-4ed9-9b46-c7ae999379fb | available |   testvol    | 100  |     None    |  false   |             |

+--------------------------------------+-----------+--------------+------+-------------+----------+-------------+


4. 이번에는 volume의 상세정보를 한번 확인해 보자.

$ cinder show 260d2060-eb6f-4ed9-9b46-c7ae999379fb

+------------------------------+--------------------------------------+

|           Property           |                Value                 |

+------------------------------+--------------------------------------+

|         attachments          |                  []                  |

|      availability_zone       |                 nova                 |

|           bootable           |                false                 |

|          created_at          |      2012-12-13T05:28:13.000000      |

|     display_description      |                 test                 |

|         display_name         |               testvol                |

|              id              | 260d2060-eb6f-4ed9-9b46-c7ae999379fb |

|           metadata           |                  {}                  |

|    os-vol-host-attr:host     |             openstack02              |

| os-vol-tenant-attr:tenant_id |   1e1cf5cd2c3b419a858f9730a320860e   |

|             size             |                 100                  |

|         snapshot_id          |                 None                 |

|            status            |              available               |

|         volume_type          |                 None                 |

+------------------------------+--------------------------------------+


5. 그럼 이제 인스턴스와 cinder 볼륨을 연결시켜보자. 다음과 같이 nova-list 로 인스턴스 정보를 확인하고 cinder list로 볼륨 정보를 확인한다. 

$ nova list

+--------------------------------------+--------+--------+--------------------+

| ID                                   | Name   | Status | Networks           |

+--------------------------------------+--------+--------+--------------------+

| 88b90166-88aa-4d2d-acc1-90b3ca9016c8 | testvm | ACTIVE | private=10.4.128.2 |

+--------------------------------------+--------+--------+--------------------+

$ cinder list

+--------------------------------------+-----------+--------------+------+-------------+----------+-------------+

|                  ID                  |   Status  | Display Name | Size | Volume Type | Bootable | Attached to |

+--------------------------------------+-----------+--------------+------+-------------+----------+-------------+

| 260d2060-eb6f-4ed9-9b46-c7ae999379fb | available |   testvol    | 100  |     None    |  false   |             |

+--------------------------------------+-----------+--------------+------+-------------+----------+-------------+

$ nova volume-attach 88b90166-88aa-4d2d-acc1-90b3ca9016c8 260d2060-eb6f-4ed9-9b46-c7ae999379fb /dev/vdc

+----------+--------------------------------------+

| Property | Value                                |

+----------+--------------------------------------+

| device   | /dev/vdc                             |

| id       | 260d2060-eb6f-4ed9-9b46-c7ae999379fb |

| serverId | 88b90166-88aa-4d2d-acc1-90b3ca9016c8 |

| volumeId | 260d2060-eb6f-4ed9-9b46-c7ae999379fb |

+----------+--------------------------------------+


이렇게 생성하고 나면 Dashboard에서 역시 인스턴스와 볼륨이 연결되어 있는 걸을 확인 할 수 있다.



처음 오픈스택을 시작했을 때는 Help 기능이 있는지도 잘 몰라서 많이 헤매었는데 몇 개월동안 삽질을 하다보니 이제 당연히 Help를 보고 따라 쳐보면 되겠구나 라는 생각이 든다. 나도 그동안 많이 발전한 거겠지~~~ 삽질을 통해서 말이다.ㅋ


오픈스택이라는 오픈소스는 먼저 삽질을 시작한 선배들에게서 배우고, 또 이제 막 삽질을 시작한 후배들에게 정보를 공유할 수 있어 이것이 바로 오픈소스를 공부하고 사용하는 또 하나의 매력이 아닌가 싶다. ^^

저작자 표시 비영리 변경 금지
신고
Posted by 나리 짱!!! naleejang
OpenStack2012.10.23 14:51

요즘 Openstack을 설치하고, 운영하면서 Glance라는 녀석과 매일 싸우고 있다. 그러면서, 자연스럽게 Glance 명령어 옵션에는 무엇이 있을까? 라는 의문을 갖게 되고, 관련된 문서를 찾아보고 하면서 알게된 Glance 명령어 옵션들을 정리해 보았다. Openstack을 운영하거나 스터디하는 사람들에게 도움이 되길 바라며서 블로그에 자료를 공유한다. 


glance --help를 입력하면 아래와 같은 glance 명령어 옵션을 확인할 수 있다. 나는 아래에 있는 이 명령어 옵션들에 대한 사용법은 어떤 것이고, 더 입력해야할 파라메터는 어떤것들이 있는지, 그리고, 사용 예제까지 아주 꼼꼼하게 분석해 보았다.


** Glance 명령어 옵션

add                 DEPRECATED! Use image-create instead.

    clear               DEPRECATED!

    delete              DEPRECATED! Use image-delete instead.

    details             DEPRECATED! Use image-list instead.

    image-create        Create a new image.

    image-delete        Delete a specific image.

    image-download      Download a specific image.

    image-list          List images you can access.

    image-members       DEPRECATED! Use member-list instead.

    image-show          Describe a specific image.

    image-update        Update a specific image.

    index               DEPRECATED! Use image-list instead.

    member-add          DEPRECATED! Use member-create instead.

    member-create       Share a specific image with a tenant.

    member-delete       Remove a shared image from a tenant.

    member-images       DEPRECATED! Use member-list instead.

    member-list         Describe sharing permissions by image or tenant.

    members-replace     DEPRECATED!

    show                DEPRECATED! Use image-show instead.

    update              DEPRECATED! Use image-update instead.

    help                Display help about this program or one of its

                        subcommands.

 

Add : image-create와 같은 명령어로 Glance 저장공간으로 이미지를 추가한다.

-      공식

$ glance add name=”{image name}” is_public=true container_format={container format} disk_format={disk format} < {image file name}

 

-      파라메터 설명

{image name}

사용자가 식별하기 쉬운 OS Image명을 입력한다.

{container format}

Container format에는 ari, ami, aki, bare가 있으며, ari RAMDISK, ami KERNEL, aki RamDisk Kernel 을 가지고 있는 image 를 올릴 때 사용한다. 대표적인 Linux OS cirros가 있다. kernel이나 ramdisk가 없는 일반 img 파일은 모두 bare로 입력하면 된다.

{disk format}

Disk format역시 ari, ami, aki가 있으며, 이외에 확장자에 따라 img파일은 raw, qcow2 파일은 qcow2 로 표현한다.

{image file name}

업로드 할 OS Image 명을 입력하면 된다. 단 업로드 할 이미지는 현재 실행디렉토리에 있어야만 한다. 만일 다른 디렉토리에 이미지가 있다면 해당 경로를 전부 써 주어야 한다.

 

-      예제

$ glance add name=”Ubuntu 12.04 LTS” is_public=true container_format=bare  disk_format=raw < ubuntu-12.04-server-cloudimg-amd64-disk1.img

Added new image with ID : ca5b58ac-e97c-437c-b06e-f195159ab475


 

Clear : glance 저장공간에 업로드 되어 있는 모든 image를 삭제한다.

-      공식

$ glance clear

Deleting image 0449eee2-8081-48a8-a7b3-ae679dee1b57 “cirros-0.3.0-x86_64-uec-ramdisk” … done

Completed in 0.0328 sec.

 

 

Delete : 특정 이미지를 삭제할 경우 delete 명령을 사용하는데 image-delete와 같다.

-      공식

$ glance delete {image id}

 

-      파라메터 설명

{image id}

glance image-list에서 조회되는 ID를 입력하면 된다.

 

-      예제

$ glance delete ca5b58ac-e97c-437c-b06e-f195159ab475

Deleted image ca5b58ac-e97c-437c-b06e-f195159ab475

 

 

Details : glance 저장공간에 업로드 되어 있는 모든 image의 상세정보를 확인할 수 있다.

-      공식 및 예제

$ glance details

====================================================================

URI: http://211.111.174.182:9292/v1/images/ca5b58ac-e97c-437c-b06e-f195159ab475

Id: ca5b58ac-e97c-437c-b06e-f195159ab475

Public: Yes

Protected: No

Name: Ubuntu 12.04 LTS

Status: active

Size: 226426880

Disk format: qcow2

Container format: ovf

Minimum Ram Required (MB): 0

Minimum Disk Required (GB): 0

Owner: 8855a00a79414352bc033697e6ccd2e8

Created at: 2012-10-09T08:34:05

Deleted at: None

Updated at: 2012-10-09T08:34:07

====================================================================

 


 

Image-create : glance 저장공간으로 이미지를 추가한다.

-      공식

$ glance image-create –name ”{image name}” --public --container_format {container format}  --disk_format {disk format} < {image file name}

 

-      파라메터 설명 : 파라메터는 add 명령어의 파라메터와 같으므로 생략~!

 

-      예제

$ glance image-create –name ”Ubuntu 12.04 LST” --public --container_format bare --disk_format raw < ubuntu-12.04-server-cloudimg-amd64-disk1.img

+------------------+--------------------------------------+

| Property         | Value                                |

+------------------+--------------------------------------+

| checksum         | 44e30efc9e9450b39eea0a42ecd44c7a     |

| container_format | bare                                 |

| created_at       | 2012-09-27T04:59:49                  |

| deleted          | False                                |

| deleted_at       | None                                 |

| disk_format      | raw                                  |

| id               | c01e2c2e-5d4d-4a03-a76e-ada8622fa414 |

| is_public        | True                                 |

| min_disk         | 0                                    |

| min_ram          | 0                                    |

| name             | Ubuntu 12.04 LTS                     |

| owner            | 4aafa99227af447d9041ff38a3c1e687     |

| protected        | False                                |

| size             | 219340260                            |

| status           | active                               |

| updated_at       | 2012-09-27T04:59:51                  |

+------------------+--------------------------------------+

 

 

Image-delete : 위에서 살펴본 delete 명령어와 같이 특정 이미지를 삭제한다.

-      예제

$ glance image-delete ca5b58ac-e97c-437c-b06e-f195159ab475

Deleted image ca5b58ac-e97c-437c-b06e-f195159ab475

 

 

Image-download : Help에는 특정이미지 파일을 로컬 폴더로 다운로드 받는다고 나오나 아직은 제대로 구현이 되어 있지 않으므로 실행하지 않길 바란다.

-      공식

$ glance image-download {image id}

 

-      파라메터 설명

{image id}

glance image-list에서 조회되는 ID를 입력하면 된다.

 

 

Image-list : glance 저장공간에 업로드 되어 있는 모든 이미지 목록을 보여준다.

-      공식 및 예제

$ glance image-list

+--------------------------------------+---------------------------------+-------------+------------------+-----------++

| ID                                   | Name                            | Disk Format | Container Format | Size      ||

+--------------------------------------+---------------------------------+-------------+------------------+-----------++

| 0449eee2-8081-48a8-a7b3-ae679dee1b57 | cirros-0.3.0-x86_64-uec-ramdisk | ari         | ari              | 2254249   ||

| a9aa8c3d-c6d8-472a-b76e-33bdfb7ee038 | cirros-0.3.0-x86_64-uec         | ami         | ami              | 25165824  ||

| c6c42034-370a-488a-a08d-83ef1713b5f4 | cirros-0.3.0-x86_64-uec-kernel  | aki         | aki              | 4731440   ||

| ca5b58ac-e97c-437c-b06e-f195159ab475 | Ubuntu 12.04 LTS                | qcow2       | ovf              | 226426880 ||

+--------------------------------------+---------------------------------+-------------+------------------+-----------++

 

 

Image-members : 특정 이미지를 쉐어한 User가 누구인지를 확인할 수 있다.

-      공식 

$ glance image-members {image id}

 

-      파라메터 설명

{image id}

glance image-list에서 조회되는 ID를 입력하면 된다.


       -      예제

$ glance image-members ca5b58ac-e97c-437c-b06e-f195159ab475

admin

nalee



Image-show : 특정 이미지의 상세정보를 확인할 수 있다.

-      공식

$ glance image-show {image id}

 

-      파라메터 설명

{image id}

glance image-list에서 조회되는 ID를 입력하면 된다.

 

-      예제

$ glance image-show a9aa8c3d-c6d8-472a-b76e-33bdfb7ee038

+-----------------------+--------------------------------------+

| Property              | Value                                |

+-----------------------+--------------------------------------+

| Property 'kernel_id'  | c6c42034-370a-488a-a08d-83ef1713b5f4 |

| Property 'ramdisk_id' | 0449eee2-8081-48a8-a7b3-ae679dee1b57 |

| checksum              | 2f81976cae15c16ef0010c51e3a6c163     |

| container_format      | ami                                  |

| created_at            | 2012-10-09T08:23:22                  |

| deleted               | False                                |

| disk_format           | ami                                  |

| id                    | a9aa8c3d-c6d8-472a-b76e-33bdfb7ee038 |

| is_public             | True                                 |

| min_disk              | 0                                    |

| min_ram               | 0                                    |

| name                  | cirros-0.3.0-x86_64-uec              |

| owner                 | 8855a00a79414352bc033697e6ccd2e8     |

| protected             | False                                |

| size                  | 25165824                             |

| status                | active                               |

| updated_at            | 2012-10-09T08:23:23                  |

+-----------------------+--------------------------------------+

 

 

Image-update : 이 명령어를 이용하면 특정 이미지의 정보나 이미지 파일을 다른 파일로 변경할 수 있다.

-      공식

$ glance image-update [--name <NAME>] [--disk-format <CONTAINER_FORMAT>]

                           [--container-format <DISK_FORMAT>]

                           [--owner <TENANT_ID>] [--size <SIZE>]

                           [--min-disk <DISK_GB>] [--min-ram <DISK_RAM>]

                           [--location <IMAGE_URL>] [--file <FILE>]

                           [--checksum <CHECKSUM>] [--copy-from <IMAGE_URL>]

                           [--is-public IS_PUBLIC]

                           [--is-protected IS_PROTECTED]

                           [--property <key=value>] [--purge-props]

                           <IMAGE_ID>

 

-      파라메터 설명

[--name <NAME>]

사용자가 식별하기 쉬운 OS Image명을 입력한다.

[--container-format <CONTAINER_FORMAT>]

Container format에는 ari, ami, aki, bare가 있으며, ari RAMDISK, ami KERNEL, aki RamDisk Kernel 을 가지고 있는 image 를 올릴 때 사용한다. 대표적인 Linux OS cirros가 있다. kernel이나 ramdisk가 없는 일반 img 파일은 모두 bare로 입력하면 된다.

[--container-format <DISK_FORMAT>]

Disk format역시 ari, ami, aki가 있으며, 이외에 확장자에 따라 img파일은 raw, qcow2 파일은 qcow2 로 표현한다.

[--owner <TENANT_ID>]

해당 이미지의 member id를 입력한다. 하지만 대체적으로는 생략한다.

[--size <SIZE>]

이미지 사이즈 정보로 생략한다.

[--min-disk <DISK_GB>]

최소사양의 DISK 사이즈를 GB단위로 입력한다.

[--min-ram <DISK_RAM>]

최소사양의 RAM 사이즈를 입력한다.

[--location <IMAGE_URL>]

업로드하고자 하는 원격이미지 웹 URL을 입력한다.

[--file <FILE>]

업로드하고자 하는 파일이 로컬에 있을 경우 해당 이미지 파일명을 입력한다.

[--checksum <CHECKSUM>]

Checksum을 입력하는데 대체적으로 생략한다.

[--copy-from <IMAGE_URL>]

Location과 같이 원격 이미지 웹 URL을 입력한다.

[--is-public IS_PUBLIC]

이미지를 공개한다는 뜻이다.

[--is-protected IS_PROTECTED]

같은 tenant member에게만 이미지를 공개한다는 뜻이다.

[--property <key=value>]

RamDisk 파일과 Kernel 파일이 있을 경우 속성으로 그 값을 입력한다.

ex) --property kernel_id=7edc921d-53d9-4fa2-9a9d-31cad37de01f

[--purge-props]

다른 속성값이 있으면 계속 속성을 입력한다.

<IMAGE_ID>

변경하고자 하는 image id를 입력한다.

 

Index : index 명령어 역시 image-list와 같은 역할을 하며 다음과 같은 정보를 확인할 수 있다.

$ glance index

ID                                   Name                           Disk Format          Container Format     Size         

------------------------------------ ------------------------------ -------------------- -------------------- --------------

ca5b58ac-e97c-437c-b06e-f195159ab475 Ubuntu 12.04 LTS               qcow2                ovf                       226426880

a9aa8c3d-c6d8-472a-b76e-33bdfb7ee038 cirros-0.3.0-x86_64-uec        ami                  ami                        25165824

0449eee2-8081-48a8-a7b3-ae679dee1b57 cirros-0.3.0-x86_64-uec-ramdis ari                  ari                         2254249

c6c42034-370a-488a-a08d-83ef1713b5f4 cirros-0.3.0-x86_64-uec-kernel aki                  aki                         4731440

 

 

Member-add : member를 추가시키는 명령어로 member-create 와 같은 명령어이다.

-      공식

$ glance member-add [--can-share] image_id member_id

 

-      파라메터 설명

image_id

멤버를 추가하고자 하는 이미지 id를 입력한다.

member_id

추가하고자 하는 tenant 명을 입력한다.

[--can-share]

해당 옵션을 넣은 사용자는 이미지를 쉐어할 수 있다.

 

-      예제

$ glance member-add ca5b58ac-e97c-437c-b06e-f195159ab475 nalee

 

 

Member-create : member-add와 같은 명령어이다.

-      공식

$ glance member-create [--can-share] <IMAGE_ID> <TENANT_ID>

 

-      파라메터 설명

<IMAGE_ID>

멤버를 추가하고자 하는 이미지 id를 입력한다.

<TENANT_ID>

추가하고자 하는 tenant 명을 입력한다.

[--can-share]

해당 옵션을 넣은 사용자는 이미지를 쉐어할 수 있다.

 

-      예제

$ glance member-create ca5b58ac-e97c-437c-b06e-f195159ab475 admin

 

Member-delete : 특정 이미지의 특정 사용자를 삭제할 때 사용하는 명령어이다.

-      공식

$ glance member-delete <IMAGE_ID> <TENANT_ID>

 

-      파라메터 설명

<IMAGE_ID>

삭제하고자 하는 이미지 id를 입력한다.

<TENANT_ID>

삭제하고자 하는 tenant 명을 입력한다.

 

-      예제

$ glance member-images <member-id>

 

 

Member-images : 특정 사용자만 사용할 수 있는 이미지 목록을 보여준다.

-      공식

$ glance member-images <member-id>

 

-      파라메터 설명

<member_id>

검색하고자 하는 tenant 명을 입력한다.

 

-      예제

$ glance member-images admin

ca5b58ac-e97c-437c-b06e-f195159ab475

 

 

Member-list : 특정 이미지나 특정 사용자의 이미지 목록을 보여준다.

-      공식

$ glance member-list -–image-id <IMAGE_ID> or -–member-id <TENANT_ID>

 

-      파라메터 설명

<IMAGE_ID>

검색하고자 하는 이미지 id를 입력한다.

<TENANT_ID>

검색하고자 하는 tenant 명을 입력한다.

 

-      예제

$ glance member-list --image-id ca5b58ac-e97c-437c-b06e-f195159ab475

+--------------------------------------+-----------+-----------+

| Image ID                             | Member ID | Can Share |

+--------------------------------------+-----------+-----------+

| ca5b58ac-e97c-437c-b06e-f195159ab475 | admin     |           |

| ca5b58ac-e97c-437c-b06e-f195159ab475 | nalee     |           |

+--------------------------------------+-----------+-----------+


    

Members-replace : 본 명령어를 통해 해당 이미지의 사용자 정보 중 이미지 쉐어 여부를 수정할 수 있다고 Help 명령어에는 나오나 직접 실행을 해 보면 이 명령어는 사라지고 없음을 바로 확인할 수 있다.

 

 

Show : 특정 이미지의 상세 정보를 확인할 수 있는 명령어로 image-show와 같은 역할을 한다.

-      공식

$ glance show <IMAGE_ID>

 

-      예제

$ glance show ca5b58ac-e97c-437c-b06e-f195159ab475

URI: http://211.111.174.182:9292/v1/images/ca5b58ac-e97c-437c-b06e-f195159ab475

Id: ca5b58ac-e97c-437c-b06e-f195159ab475

Public: No

Protected: No

Name: Ubuntu 12.04 LTS

Status: active

Size: 226426880

Disk format: qcow2

Container format: ovf

Minimum Ram Required (MB): 0

Minimum Disk Required (GB): 0

Owner: 8855a00a79414352bc033697e6ccd2e8

Created at: 2012-10-09T08:34:05

Updated at: 2012-10-23T02:42:29

 

 

Update : image-update와 같은 명령어로 특정 이미지의 메타정보나 이미지 파일을 변경할 때 사용하는 명령어이다.

-      공식

$ glance update <IMAGE_ID>

 

-      예제

$ glance -v update ca5b58ac-e97c-437c-b06e-f195159ab475 is_public=true

Updated image ca5b58ac-e97c-437c-b06e-f195159ab475

Updated image metadata for image ca5b58ac-e97c-437c-b06e-f195159ab475:

URI: http://211.111.174.182:9292/v1/images/ca5b58ac-e97c-437c-b06e-f195159ab475

Id: ca5b58ac-e97c-437c-b06e-f195159ab475

Public: Yes

Protected: No

Name: Ubuntu 12.04 LTS

Status: active

Size: 226426880

Disk format: qcow2

Container format: ovf

Minimum Ram Required (MB): 0

Minimum Disk Required (GB): 0

Owner: 8855a00a79414352bc033697e6ccd2e8

Created at: 2012-10-09T08:34:05

Deleted at: None

Updated at: 2012-10-23T05:46:53

 


Help : 명령어 옵션의 상세 설명 또는 들어가야 할 파라메터 정보등을 알려준다.

-      예제

$ glance help image-create

usage: glance image-create [--id <IMAGE_ID>] [--name <NAME>]

                           [--disk-format <DISK_FORMAT>]

                           [--container-format <CONTAINER_FORMAT>]

                           [--owner <TENANT_ID>] [--size <SIZE>]

                           [--min-disk <DISK_GB>] [--min-ram <DISK_RAM>]

                           [--location <IMAGE_URL>] [--file <FILE>]

                           [--checksum <CHECKSUM>] [--copy-from <IMAGE_URL>]

                           [--is-public IS_PUBLIC]

                           [--is-protected IS_PROTECTED]

                           [--property <key=value>]

 

Create a new image.

 

Optional arguments:

  --id <IMAGE_ID>       ID of image to reserve.

  --name <NAME>         Name of image.

  --disk-format <DISK_FORMAT>

                        Disk format of image.

  --container-format <CONTAINER_FORMAT>

                        Container format of image.

  --owner <TENANT_ID>   Tenant who should own image.

  --size <SIZE>         Size of image data (in bytes). Only used with '--

                        location' and '--copy_from'.

  --min-disk <DISK_GB>  Minimum size of disk needed to boot image (in

                        gigabytes).

  --min-ram <DISK_RAM>  Minimum amount of ram needed to boot image (in

                        megabytes).

  --location <IMAGE_URL>

                        URL where the data for this image already resides. For

                        example, if the image data is stored in the filesystem

                        local to the glance server at

                        '/usr/share/image.tar.gz', you would specify

                        'file:///usr/share/image.tar.gz'.

  --file <FILE>         Local file that contains disk image to be uploaded

                        during creation. Alternatively, images can be passed

                        to the client via stdin.

  --checksum <CHECKSUM>

                        Hash of image data used Glance can use for

                        verification.

  --copy-from <IMAGE_URL>

                        Similar to '--location' in usage, but this indicates

                        that the Glance server should immediately copy the

                        data and store it in its configured image store.

  --is-public IS_PUBLIC

                        Make image accessible to the public.

  --is-protected IS_PROTECTED

                        Prevent image from being deleted.

  --property <key=value>

                        Arbitrary property to associate with image. May be

                        used multiple times.

 

 

 

** Glance Help의 명령어를 보면 DEPRECATED! 라고 써있는 명령어 옵션을 볼 수 있을 것이다.이 말 뜻은 곧 폐지될 예정이므로, 그 옆에 나와있는 명령어 옵션을 쓰길 권고한다.”는 뜻이다.

 

 

 

참조 URL : http://docs.openstack.org/developer/glance/glance.html


저작자 표시 비영리 변경 금지
신고
Posted by 나리 짱!!! naleejang
Cloud2012.08.29 17:27
나는 이런 Hadoop 명령어 정리를 해 놓은 블로그나 웹사이트를 검색할 수 없었기 때문에 블로그로 정리해 공유하고자 한다. 


실은 이것보다도 더 큰 이유는 몇일동안 Hadoop을 공부하면서 왜 서버를 내렸다 올리면 HDFS가 실행이 안 될까? 하는 의문을 가졌기 때문이다. 구글링을 해보고 책을 봐도 특별한 해답이 보이질 않았는데, 오늘  드디어 그 비밀을 알아냈다.


하둡 설치 폴더에서 hadoop을 보면 hadoop은 스크립트 파일이다. 특정 언어로 프로그래밍한 것이 아니라, 단순한 Linux Shell Script 라는 것이다. hadoop 명령을 그냥 치면 다음과 같이 hadoop 명령어들이 나오는데, 해답은 저 명령어 안에 있었다.


그래서 오늘은 hadoop 명령어들을 한번 정리해 보도록 하겠다.


Usage: hadoop [--config confdir] COMMAND

where COMMAND is one of:

  namenode -format     format the DFS filesystem

  secondarynamenode    run the DFS secondary namenode

  namenode             run the DFS namenode

  datanode             run a DFS datanode

  dfsadmin             run a DFS admin client

  mradmin              run a Map-Reduce admin client

  fsck                 run a DFS filesystem checking utility

  fs                   run a generic filesystem user client

  balancer             run a cluster balancing utility

  fetchdt              fetch a delegation token from the NameNode

  jobtracker           run the MapReduce job Tracker node

  pipes                run a Pipes job

  tasktracker          run a MapReduce task Tracker node

  historyserver        run job history servers as a standalone daemon

  job                  manipulate MapReduce jobs

  queue                get information regarding JobQueues

  version              print the version

  jar <jar>            run a jar file

  distcp <srcurl> <desturl> copy file or directories recursively

  archive -archiveName NAME -p <parent path> <src>* <dest> create a hadoop archive

  classpath            prints the class path needed to get the

                       Hadoop jar and the required libraries

  daemonlog            get/set the log level for each daemon

 or

  CLASSNAME            run the class named CLASSNAME

Most commands print help when invoked w/o parameters.


그림과 함께 보도록 하자. 우리의 이해를 더 높여줄 것이다. 

아래 그림은 http://hadoop.apache.org 에 있는 HDFS 아키텍처이다.



hadoop namenode -format

말 그대로 namenode을 포맷한다. hadoop은 기본적으로 namenode라는 저장공간을 가지고 있으며, 그곳에 디렉토리를 생성하기도 하고, 파일을 업로드하기도 한다. 그런데 이 명령어를 실행하면 namenode 안의 모든 내용들이 삭제된다. 그러니 처음 Hadoop을 설치했을때만 사용해야 한다.


hadoop secondarynamenode

하둡은 분산파일 시스템이라고 했다. namenode가 하나만 존재할리가 없다. master 에 존재하는 namenode 말고, 

그외의 slave 에 존재하는 namenode를 클라이언트가 접속해 사용할 수 있도록 Running 시킨다.


hadoop namenode

아래 분석이 내용이 틀리다는 사실을 오늘 알아냈다. namenode 포맷을 하면 /tmp 폴더에 hadoop namenode가 생성이 되는데 이 폴더는 서버를 내렸다가 올리면 사라진다. 그러므로 서버를 shutdown시키면 안되는 것이다. 

이 namenode 명령어는 namenode를 Running 시키는 명령어인데, start-all.sh나 start-dfs.sh를 실행하면 자동으로 함께 실행된다. 전에 서버를 내렸다가 올렸을때 namenode가 실행되지 않은 이유는 namenode 폴더가 없었기 때문이였다.

서버를 내렸다가 올리면 hdfs가 실행이 되지 않는 이유는 바로 이 명령어 때문이였다. 

서버를 재시작 했을 경우에는 namenode가 서버가 종료되면서 같이 종료가 되는지 서버를 시작하면 자동으로 올라오지 않는다. 그렇기 때문에 이 명령어를 실행시켜 꼭 master server의 namenode을 Running 시켜줘야 한다. 이 명령어가 바로 그 명령어다.


hadoop datanode

이 명령어는 실 데이터를 저장하는 datanode를 Running 시키는 명령어이다. 이 명령어는 start-all.sh나 start-dfs.sh를 실행하면 자동으로 실행이 된다.


hadoop dfsadmin

dfsadmin은 DFS Admin Web UI에서 확인할 수 있는 내용들을 linux command로 hdfs server 정보를 확인할 수 있는 명령어이다. 이 명령어에는 다양한 옵션들이 존재하는데 요건 다음 번 포스팅에서 작성하도록 하겠다.


hadoop mradmin

mradmin 명령어는  Service, Queues, UserGroup, SuperUserGroup, Node등의 정보를 다시 refresh 하는 기능들로 구성이 되어 있다.


hadoop fsck

fsck 명령어는 DFS filesystem을 체킹할 수 있는 Utility인데, 해당 Path의 파일을 move하거나 삭제, 파일 목록을 확인하는 등등의 7가지 관련 옵션들이 존재한다.


hadoop fs

우리가 가장 많이 사용하는 명령어가 바로 이 fs 명령어일 것이다. fs 명령어는 파일에 대한 모든 system 명령어를 제공한다.

그래서, 명령어 설명도 제일 잘 되어 있다. 그러므로 여기서는 설명을 생략하도록 하겠다. 


o Hadoop Shell Commands : http://hadoop.apache.org/common/docs/r0.17.2/hdfs_shell.html

o Hadoop 파일시스템 명령어 정리 : http://blog.acronym.co.kr/370


hadoop balancer

이 명령어는 hadoop cluster간의 balancing을 맞추기 위한 명령어이다.


hadoop fetchdt

fetchdt 명령어는 NameNode로부터 delegation 토큰 파일을 회수한다. 사전에는 delegation이 대표단, 파견단 이런 뜻으로 나오는데 대표 토큰 파일을 말하는것인지도 모르겠다.


hadoop jobtracker

MapReduce job Tracker node를 Running 시키는 명령어로 start-all.sh 나 start-mapred.sh 를 실행하면 자동으로 실행된다.


hadoop pipes

이 명령어는 Job을 실행시키기 위해 directory path나 jar file, java class file 등을 연결시켜 주는 명령어이다. pipes 명령어에는  이와 관련된 10개의 옵션들이 있다.


hadoop tasktracker

MapReduce task Tracker node를 Running 시키는 명령어로 start-all.sh 나 start-mapred.sh 를 실행하면 자동으로 실행된다.


hadoop historyserver

standalone 데몬의 history server를 Running 시키는 명령어인데 이 명령어 역시 start-all.sh나 start-mapred.sh를 실행하면 자동으로 실행된다.


hadoop job

현재 실행되고 있는 mapreduce job의 상태를 확인한다든가 kill 시킨다든가 job list를 확인할 때 쓰는 명령어로 관련 옵션이 13개의 command 옵션이 존재한다.


hadoop queue

job을 실행할때 사용하는 queue의 정보를 조회해 온다.


hadoop version

hadoop version은 버전 정보를 보여준다.


hadoop jar <jar>

우리가 자바로 프로그래밍한 jar 파일을 실행할 때 사용하는 명령어이다. 


hadoop distcp <srcurl> <desturl>

hdfs://A:8020/user/foo/bar 식으로 생긴 srcurl에서 desturl로 파일을 복사하는 기능인데 목적지 URL로 Overwrite 할 수 있으며, 삭제도 할 수 있다. 이외에도 다양한 옵션들이 존재한다.


hadoop archive -archiveName NAME -p <parent path> <src>* <dest> 

이 명령어 좀 복잡한데 하둡의 아카이브를 생성하는 명령어란다.


hadoop classpath

하둡에 설정되어 있는 관련 클래스패스들을 보여준다.


hadoop daemonlog

이건 하둡의 데몬의 log을 남길때 log 레벨을 설정하거나 정보를 확인할 수 있다.


hadoop CLASSNAME

이 명령어는 자바로 프로그래밍한 자바 클래스 파일을 실행시켜준다고 했는데 잘 안된다. 오류가 발생한다. 요건 나도 잘 모르겠다. 이걸 어떻게 실행하는건지 알아냈다. 다음번 포스팅에서 그 비밀을 알려주도록 하겠다.



이상으로 23개의 Hadoop 명령어를 살펴보았다. 제일 좋은건 이렇게 남이 써 놓은 글만 보지 말고 직접 실행해 보고 눈으로 확인해 보길 바란다. 그렇지 않으면 내것이 되지 않기 때문이다. 

저작자 표시 비영리 변경 금지
신고
Posted by 나리 짱!!! naleejang