Oracle® Solaris での OpenStack (Kilo) のインストールと構成

印刷ビューの終了

更新: 2016 年 6 月
 
 

ストレージのためのリモートシステムの配備

SAN のサポートのない以前の OpenStack リリースでは、Cinder ボリュームサービスは、ZFS iSCSI ドライバが使用されている場合はターゲットホスト上で動作するように構成する必要がありました。

Cinder でのストレージエリアネットワーク (SAN) のサポートにより、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 ドライバ (ZFSVolumeDriverZFSISCSIDriverZFSFCDriver) を使用します。これらのホストのうち、1 つはローカル (localhost) であり、その他はリモート (10.134.13.38 および 10.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

最後のコマンドは、フィルタリング規則に基づいて、ZFS_REMOTE という名前のバックエンドの 1 つに新しいボリューム t1 を作成します。

同じ一連のコマンドを発行して、ZFS_LOCAL および ZFS_REMOTE_FC のボリュームタイプを作成します。

zfs_volume_base

各ボリュームバックエンド上の新しい ZFS ボリュームの基本データセットを指定します。

san_is_local san_ip san_login san_password

すべての ZFS ドライバの基となる SAN ドライバのパラメータ。これらのパラメータは、バックエンドホスト上で、SSH を使用してローカルまたはリモートでコマンドを発行できるようにするために設定する必要があります。

バックエンドごとに、次の 2 つの方法のいずれかで SAN パラメータを設定します。

  • san_is_local = True のみを設定します

  • san_ipsan_login、および san_password を一緒に設定します。

4 つすべての SAN パラメータを設定しないでください。

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

プロファイルと権利の詳細については、オペレーティングシステムのドキュメントの、使用している Oracle Solaris バージョンのライブラリにある『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