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

인쇄 보기 종료

업데이트 날짜: 2016년 6월
 
 

저장소용 원격 시스템 배치

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

Cinder의 SAN(Storage Area Networks)에 대한 지원을 통해 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 = user-name
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 = user-name
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 = user-name
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 = user-name
san_password = password
debug=true
verbose=true
enabled_backends

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

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

volume_backend_name

볼륨 유형을 지정된 이름으로 정의합니다. 이 매개변수는 볼륨 유형을 식별합니다. 하지만 다음 명령을 사용하여 볼륨 유형을 수동으로 만들어야 합니다.

# cinder type-create vol-type
# cinder type-key vol-type set volume_backend_name=backend-name
# cinder create --display-name display --volume-type vol-type

이러한 명령은 각각 다음 작업을 실행합니다.

  • 새 볼륨 유형을 만듭니다.

  • 백엔드 이름을 새 볼륨 유형에 지정합니다.

  • 새 볼륨 유형에 따라 새 볼륨을 만듭니다.

이전 샘플 Cinder 구성 파일을 바탕으로 하여 다음 명령을 입력합니다.

# 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을 만듭니다. t1은 필터링 규칙을 기준으로 이름이 ZFS_REMOTE인 백엔드 중 하나에서 생성됩니다.

ZFS_LOCALZFS_REMOTE_FC에 대한 볼륨 유형을 만들기 위한 동일한 명령 세트를 실행합니다.

zfs_volume_base

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

san_is_local san_ip san_login san_password

모든 ZFS 드라이버가 기반으로 하는 SAN 드라이버의 매개변수입니다. 이러한 매개변수를 설정하여 백엔드 호스트에서 로컬로 또는 SSH를 사용하여 원격으로 실행할 명령을 사용으로 설정해야 합니다.

각 백엔드의 경우 다음 두 가지 방법 중 하나로 SAN 매개변수를 설정합니다.

  • san_is_local = True만 설정

  • san_ip, san_loginsan_password를 함께 설정

SAN 매개변수 4개를 모두 설정하지 마십시오.

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/fcadm
profiles:Cinder Storage management:itadm> set privs=file_dac_read,sys_devices
profiles:Cinder Storage management:itadm> end
profiles:Cinder Storage management> add cmd=/usr/sbin/fcinfo
profiles:Cinder Storage management:itadm> set privs=file_dac_read,sys_devices
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/lib/rad/module/mod_zfsmgr.so.1
profiles:Cinder Storage management:mod_zfsmgr.so.1> set privs={zone}:/system/volatile/*, \
   sys_config,sys_mount
profiles:Cinder Storage management:mod_zfsmgr.so.1> 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

프로파일 및 권한에 대한 자세한 내용은 Operating Systems Documentation의 사용 중인 Oracle Solaris 버전 라이브러리에서 Securing Users and Processes in Oracle Solaris를 참조하십시오.

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

대상인 원격 호스트를 사용으로 설정하려면 다음 단계를 수행합니다.

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

    # pkg install storage-server
  2. 개시자 및 원격 호스트 모두에 다음 서비스를 사용으로 설정합니다.

    • svc:/system/stmf:default

    • svc:/network/iscsi/target:default

    • svc:/system/rad:remote

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

    remote-host# svcadm enable stmf
    remote-host# svcadm enable -r svc:/network/iscsi/target:default
    remote-host# svcadm enable rad
  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