Oracle® Solaris에서 OpenStack(Juno) 설치 및 구성

인쇄 보기 종료

업데이트 날짜: 2016년 6월
 
 

저장소용 원격 시스템 배치

이 절에 설명된 Cinder 배치는 Oracle Solaris 11.3 SRU 2 이상의 릴리스를 실행하는 Juno 설정에 적용됩니다.

SAN을 지원하지 않는 이전 OpenStack 릴리스에서는 ZFS iSCSI 드라이버를 사용할 경우 Cinder 볼륨 서비스를 대상 호스트에서 실행되도록 구성해야 했습니다.

이제 Cinder에서 SAN(Storage Area Network)을 지원하므로 SSH를 사용하여 저장소 호스트 백엔드를 여러 개 구성하고 이러한 호스트의 사용 방식을 결정하는 호스트의 볼륨 유형을 정의할 수 있습니다. 이 유형의 배치에서는 Cinder 패키지와 모든 Cinder 서비스가 개시자 호스트(보통 계산 노드로도 작동하는 호스트)에만 설치됩니다.

OpenStack 패키지를 원격 대상 호스트에 설치할 필요가 없습니다. 이러한 호스트는 COMSTAR 기반의 개시자 호스트에 단순히 LUN 디스크를 제공합니다.

저장소용 원격 시스템의 적합한 배치를 위한 요구 사항은 다음과 같습니다.

  • /etc/cinder/cinder.conf 파일 구성

  • 지정된 사용자에게 적합한 권한 프로파일 부여

  • 추가 패키지 수동 설치

다음 절에서는 이러한 요구 사항에 대해 자세히 설명합니다.

cinder.conf 파일 구성

Cinder 패키지를 개시자 호스트에 설치한 후 /etc/cinder/cinder.conf 파일의 [DEFAULT] 섹션을 편집합니다.

구성 파일의 정의를 이해하려면 다음 예를 참조하십시오.

[DEFAULT]
my_ip = localhost
osapi_volume_workers = 1
auth_strategy = keystone
#num_volume_device_scan_tries = 6
os-volume-api-version = 2
scheduler_driver=cinder.scheduler.filter_scheduler.FilterScheduler

enabled_backends=zfsdriver-1, zfsdriver-2, zfsdriver-3, zfsdriver-4, zfsdriver-5

[zfsdriver-1]
volume_group=zvolumes-1
volume_driver=cinder.volume.drivers.solaris.zfs.ZFSVolumeDriver
volume_backend_name=ZFS_LOCAL
zfs_volume_base = rpool/cinder
san_is_local = True
debug=true
verbose=true
[zfsdriver-2]
volume_group=zvolumes-2
volume_driver=cinder.volume.drivers.solaris.zfs.ZFSISCSIDriver
volume_backend_name=ZFS_REMOTE
zfs_volume_base = rpool/cinder
san_ip = 10.134.13.38
san_login = jdoe
san_password = password
debug=true
verbose=true
[zfsdriver-3]
volume_group=zvolumes-3
volume_driver=cinder.volume.drivers.solaris.zfs.ZFSFCDriver
volume_backend_name=ZFS_REMOTE_FC
zfs_volume_base = rpool/fc
san_ip = 10.134.13.38
san_login = jdoe
san_password = password
debug=true
verbose=true
[zfsdriver-4]
volume_group=zvolumes-4
volume_driver=cinder.volume.drivers.solaris.zfs.ZFSISCSIDriver
volume_backend_name=ZFS_REMOTE
zfs_volume_base = rpool/cinder/zq
san_ip = 10.134.13.38
san_login = jdoe
san_password = password
debug=true
verbose=true
[zfsdriver-5]
volume_group=zvolumes-5
volume_driver=cinder.volume.drivers.solaris.zfs.ZFSISCSIDriver
volume_backend_name=ZFS_REMOTE
zfs_volume_base = rpool/zq
san_ip = 10.134.63.182
san_login = jdoe
san_password = password
debug=true
verbose=true
enabled_backends= zfsdriver-1, zfsdriver-2, zfsdriver-3, zfsdriver-4, zfsdriver-5

사용으로 설정된 백엔드 호스트를 나열합니다. 이 예에서는 5개의 백엔드 호스트가 정의되어 있습니다.

백엔드 호스트는 3개의 호스트에서 3개의 ZFS 드라이버(ZFSVolumeDriver, ZFSISCSIDriver, ZFSFCDriver)를 사용합니다. 이러한 호스트 중 하나는 로컬(localhost)이고, 나머지는 원격(10.134.13.3810.134.63.182)입니다.

volume_backend_name= ZFS_REMOTE

볼륨 유형을 지정된 이름으로 정의합니다. 다음 샘플 명령은 이러한 작업을 각각 수행합니다.

# cinder type-create type-remote
# cinder type-key type-remote set volume_backend_name=ZFS_REMOTE
# cinder create --display-name t1 --volume-type type-remote

위 예에서 각 명령은 다음과 같은 작업을 수행합니다.

  • 새 볼륨 유형 작성

  • 새 볼륨 유형에 백엔드 이름 지정

  • 새 볼륨 유형을 기반으로 새 볼륨 작성

마지막 명령을 실행하면 새 볼륨 t1이 필터링 규칙에 따라 ZFS_REMOTE라는 이름으로 백엔드 중 하나에 만들어집니다.

zfs_volume_base = rpool/zq

새 ZFS 볼륨의 기본 데이터 세트를 각 볼륨 백엔드에 지정합니다.

san_is_local san_ip san_login san_password

모든 ZFS 드라이버는 SAN 드라이버 기반이므로 san_* 매개변수를 설정해야 합니다.

명령은 백엔드 호스트에서 로컬로 또는 SSH를 사용하여 원격으로 실행됩니다. 따라서 백엔드마다 san_is_local = True를 설정하거나 san_ip* 매개변수를 설정하십시오.

debug=true verbose=true

디버깅을 위한 선택적 매개변수입니다. 이러한 매개변수 구성은 생략할 수 있습니다.

Cinder를 올바르게 구성한 후 서비스를 나열하면 각각의 서비스 상태가 표시됩니다.

# cinder service-list
+------------+--------------+------+---------+-------+--------------------+----------+
|  Binary    |     Host     | Zone |  Status | State |      Updated_at    | Disabled |
|            |              |      |         |       |                    |  Reason  |
+------------+--------------+------+---------+-------+--------------------+----------+
|  cinder-   |              |      |         |       |     2015-10-13     |          |
|  backup    |    host-2    | nova | enabled |   up  |  T19:22:45.000000  |  None    |
|            |              |      |         |       |                    |          |
|  cinder-   |              |      |         |       |     2015-10-13     |          |
| scheduler  |    host-2    | nova | enabled |   up  |  T19:22:43.000000  |  None    |
|            |              |      |         |       |                    |          |
|  cinder-   |              |      |         |       |     2015-10-13     |          |
|  volume    |    host-2    | nova | enabled |  down |  T18:31:41.000000  |  None    |
|            |              |      |         |       |                    |          |
|  cinder-   |    host-2    |      |         |       |     2015-10-13     |          |
|  volume    | @zfsdriver-1 | nova | enabled |   up  |  T19:22:46.000000  |  None    |
|            |              |      |         |       |                    |          |
|  cinder-   |    host-2    |      |         |       |     2015-10-13     |          |
|  volume    | @zfsdriver-2 | nova | enabled |   up  |  T19:22:47.000000  |  None    |
|            |              |      |         |       |                    |          |
|  cinder-   |    host-2    |      |         |       |     2015-10-13     |          |
|  volume    | @zfsdriver-3 | nova | enabled |   up  |  T19:22:48.000000  |  None    |
|            |              |      |         |       |                    |          |
|  cinder-   |    host-2    |      |         |       |     2015-10-13     |          |
|  volume    | @zfsdriver-4 | nova | enabled |   up  |  T19:22:47.000000  |  None    |
|            |              |      |         |       |                    |          | 
|  cinder-   |    host-2    |      |         |       |     2015-10-13     |          |
|  volume    | @zfsdriver-5 | nova | enabled |   up  |  T19:22:48.000000  |  None    |
|            |              |      |         |       |                    |          |
|  cinder-   |    host-2    |      |         |       |     2015-10-13     |          |
|  volume    | @zfsdriver-6 | nova | enabled |  down |  T18:32:55.000000  |  None    |
+------------+--------------+------+---------+-------+--------------------+----------+

지정된 사용자에게 권한 부여

san_login에 정의된 사용자가 원격 대상을 사용할 수 있도록 하려면 해당 사용자에게 적절한 권한 프로파일을 부여해야 합니다. 다음 예에서는 사용자 권한 프로파일을 만드는 방법을 보여줍니다.

# useradd -s /usr/bin/pfbash -m jdoe
# passwd jdoe password
# profiles -p "Cinder Storage management"
profiles:Cinder Storage management> set desc="Cinder Storage management on target host"
profiles:Cinder Storage management> add profiles="File System Management"
profiles:Cinder Storage management> add auths="solaris.smf.modify.stmf"
profiles:Cinder Storage management> add cmd=/usr/sbin/itadm
profiles:Cinder Storage management:itadm> set euid=0
profiles:Cinder Storage management:itadm> end
profiles:Cinder Storage management> add cmd=/usr/sbin/stmfadm
profiles:Cinder Storage management:stmfadm> set euid=0
profiles:Cinder Storage management:stmfadm> end
profiles:Cinder Storage management> add cmd=/usr/sbin/zfs
profiles:Cinder Storage management:zfs> set priv=sys_config,sys_mount
profiles:Cinder Storage management:zfs> end
profiles:Cinder Storage management> exit

# usermod -P "Cinder Storage management" jdoe

역할, 프로파일 및 권한에 대한 자세한 내용은 Oracle Solaris 11.3의 사용자 및 프로세스 보안을 참조하십시오.

원격 호스트를 대상으로 설정

원격 호스트를 대상으로 설정하려면 원격 호스트에서 다음 단계를 수행하십시오.

  1. 대상 호스트에 group/feature/storage-server 패키지를 설치합니다.

    # pkg install storage-server
  2. 호스트에서 다음 서비스를 사용으로 설정합니다.

    • svc:/system/stmf:default

    • svc:/network/iscsi/target:default

    예를 들어 다음을 실행합니다.

    remote-host# svcadm enable stmf
    remote-host# svcadm enable -r svc:/network/iscsi/target:default
    
  3. 정의된 zfs_volume_base에 대해 ACL(액세스 제어 목록)을 초기화하고 설정합니다.

    예를 들어 구성 파일에 zfs_volume_base=rpool/fc 정의가 있다고 가정합니다. 이 경우 다음 명령을 실행해야 합니다.

    # chmod A+user:cinder:add_subdirectory:allow /rpool/fc
    # zfs allow cinder clone,create,destroy,mount,snapshot rpool/fc