前回のIsilonianTechでは、Dockerの永続的なストレージとしてバックエンドにIsilonを使うためのプラグインであるREX-Rayをご紹介しました。

今回はOpenStackの共有ファイルストレージ サービスのプロジェクトであるManilaとIsilonとの連携についてご説明します。

DellEMC-OpenStack.jpg

             thesourceblog.emc.comから引用

 

 

ManilaとIsilon

OpenStackのサイトの情報によると、2017年12月1日現在ではManilaは4年経過しており、14%の利用率(ユーザ調査による本番導入への割合)、5/7の成熟度となっており日々採用が増えています。

OpenStackにおいては、非構造化データという点ではSwiftが先行していましたが、上記の結果から、やはりファイルサービスのニーズが多いというのが伺えます。

IsilonはKiloリリース時からManilaドライバを提供しておりました。私が最初にOpenStack ManilaとIsilonの組み合わせを検証したのは、いまから1年半ほど前なのですが、当時と比べてDellEMC製品全体でManilaドライバのエンハンスが行われており、IsilonやUnityだけではなくOcataリリースからはVMAX eNASがサポートされました。

 

前回のREX-Ray同様、今回もManilaとIsilonの動作を中心に見ていきたいと思います。

なお、テストするにあたり下記の環境を用意しました。

env.png

環境としては、上記のようにOpenStack用のLinuxを最低 1台、Isilon 1クラスタを準備します。OpenStackのインストールについては、巷のコミュニティサイトに情報が沢山ありますしOpenStackの特性から日々更新されますので本ブログでは取り上げません。テスト環境であれば、KollaやPackstackでインストールいただければ問題ありませんし、もちろん、Isilonはシミュレータでも動作上問題ありません。

まず、Isilon側で事前設定をしてから次にManilaの設定をしていきます。

 

 

Isilon側での事前準備

1. ライセンス投入

OpenStack Manilaのバックエンドストレージとして、Isilonを動作させるにあたりSmartQuotasのライセンスが必須となります。

Manilaでは共有を作成する際に容量を指定しますが、従来のストレージの場合は容量=切り出すボリュームの容量となるのに対して、

Isilonはボリュームの概念がないため、内部的にクォータのハードリミットを定義することにより容量を設定します。

(実は当初検証した際に、SmartQuotasライセンスの投入を忘れておりハマりました。ロジックがわかれば何てことは無いのですがManilaのIsilon driverのページにも記載がありませんのでご注意ください。)

 

また、Snapshotを使用する際にはSnapshotIQライセンスが必要となります。

Isilon側での設定は、ライセンスの投入だけで終わりです。

 

 

OpenStack Manilaの設定

1. ドライバの確認

OpenStackのインストールが終わったら、まずIsilonドライバが入っているかを確認します。Isilonドライバは下記の場所に存在します。

/usr/lib/python2.7/site-packages/manila/share/drivers/dell_emc/plugins/isilon/isilon.py

(余談ですが、Mitakaリリース時に検証した際には、Dellとの統合前でしたのでドライバのパスも/usr/lib/python2.7/site-packages/manila/share/drivers/emc/plugins/isilon/isilon.pyでした。)

 

2. manila.confの編集

Manilaを起動する際に必要な/etc/manila/manila.confを以下のように編集します。

~

enabled_share_backends = generic , isilon

~

[isilon]

share_driver = manila.share.drivers.dell_emc.driver.EMCShareDriver

driver_handles_share_servers = False

emc_share_backend = isilon

emc_nas_server = manilafs.isilon.local

emc_nas_login = root

emc_nas_password = Isilon123

emc_nas_root_dir = /ifs/manila

enabled_share_backendsの項目を検索して、追加するバックエンドを追記します。(今回はisilonという名前にします。)

[isilon]は、上記のenabled_share_backendsで指定した名前と同じにします。

emc_share_backendは、isilon(固定)です。

emc_nas_root_dirには、Manilaで利用するディレクトリを定義します。定義したディレクトリ配下にmanila createで作成した共有のディレクトリが作成されます。なお、このディレクトリ(今回の場合は/ifs配下のmanila)は存在しなくてもManilaを起動させた時点でIsilon側にディレクトリが作成されます。


3. サービスの起動

Manilaのサービスを再起動します。

[root@manila ~(keystone_admin)]# systemctl restart openstack-manila-api

[root@manila ~(keystone_admin)]# systemctl restart openstack-manila-share

[root@manila ~(keystone_admin)]# systemctl restart openstack-manila-scheduler

[root@manila ~(keystone_admin)]# systemctl restart openstack-manila-data

 

Manilaの起動確認

[root@manila ~(keystone_admin)]# manila service-list

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

| Id | Binary           | Host            | Zone | Status  | State | Updated_at                 |

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

| 1  | manila-share     | manila@generic  | nova | enabled | up    | 2017-11-29T02:00:43.000000 |

| 2  | manila-share     | manila@isilon   | nova | enabled | up    | 2017-11-29T02:00:43.000000 |

| 3  | manila-scheduler | manila          | nova | enabled | up    | 2017-11-29T02:00:45.000000 |

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


4. extra-specs定義(スナップショットの有効化)

Typeの作成

[root@manila ~(keystone_admin)]# manila type-create isilon F

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

| Property             | Value                                |

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

| required_extra_specs | driver_handles_share_servers : False |

| Name                 | isilon                               |

| Visibility           | public                               |

| is_default           | -                                    |

| ID                   | 7b5c39bd-a08d-4f24-89ad-45ddee6e1823 |

| optional_extra_specs |                                      |

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


スナップショットの有効化

[root@manila ~(keystone_admin)]# manila type-key isilon set snapshot_support=True

[root@manila ~(keystone_admin)]# manila extra-specs-list

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

| ID                                   | Name        | all_extra_specs                      |

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

| 7b5c39bd-a08d-4f24-89ad-45ddee6e1823 | isilon      | snapshot_support : True              |

|                                      |             | driver_handles_share_servers : False |

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



いざ、実行

NFSとSMBの共有を作成していきます。

1. NFS exportの作成

例えば、isi-nfsという名前で200GBの容量のNFS exportを作成する場合は下記となります。

[root@manila ~(keystone_admin)]# manila create --name isi-nfs --share-type isilon NFS 200

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

| Property                              | Value                                |

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

| status                                | creating                             |

| share_type_name                       | isilon                               |

| description                           | None                                 |

| availability_zone                     | None                                 |

| share_network_id                      | None                                 |

| share_server_id                       | None                                 |

| share_group_id                        | None                                 |

| host                                  |                                      |

| revert_to_snapshot_support            | False                                |

| access_rules_status                   | active                               |

| snapshot_id                           | None                                 |

| create_share_from_snapshot_support    | False                                |

| is_public                             | False                                |

| task_state                            | None                                 |

| snapshot_support                      | True                                 |

| id                                    | 0d6c0960-cb0d-4758-8e98-a0b6ee268851 |

| size                                  | 200                                  |

| source_share_group_snapshot_member_id | None                                 |

| user_id                               | f66ef9839c6249228818461bb8a8be59     |

| name                                  | isi-nfs                              |

| share_type                            | 7b5c39bd-a08d-4f24-89ad-45ddee6e1823 |

| has_replicas                          | False                                |

| replication_type                      | None                                 |

| created_at                            | 2017-12-01T07:35:31.000000           |

| share_proto                           | NFS                                  |

| mount_snapshot_support                | False                                |

| project_id                            | 59fd5a09ed42459d86028dd97341a3fb     |

| metadata                              | {}                                   |

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

 

作成したNFS exportの確認

下記、改行表示されて見難いですがexport_locationsが実際のパスとなります。(緑色部分

[root@manila ~(keystone_admin)]# manila show isi-nfs

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

| Property                              | Value                                                                               |

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

| status                                | available                                                                           |

| share_type_name                       | isilon                                                                              |

| description                           | None                                                                                |

| availability_zone                     | nova                                                                                |

| share_network_id                      | None                                                                                |

| export_locations                      |                                                                                     |

|                                       | path = manilafs.isilon.local:/ifs/manila/share-41346526-185d-4470-9e8d-9e09eb1264c3 |

|                                       | preferred = False                                                                   |

|                                       | is_admin_only = False                                                               |

|                                       | id = f8d33c04-e8aa-4514-bf3d-42c1e587cb8c                                           |

|                                       | share_instance_id = 41346526-185d-4470-9e8d-9e09eb1264c3                            |

| share_server_id                       | None                                                                                |

| share_group_id                        | None                                                                                |

| host                                  | manila@isilon#EMC_NAS_Storage                                                       |

| revert_to_snapshot_support            | False                                                                               |

| access_rules_status                   | active                                                                              |

| snapshot_id                           | None                                                                                |

| create_share_from_snapshot_support    | False                                                                               |

| is_public                             | False                                                                               |

| task_state                            | None                                                                                |

| snapshot_support                      | True                                                                                |

| id                                    | 0d6c0960-cb0d-4758-8e98-a0b6ee268851                                                |

| size                                  | 200                                                                                 |

| source_share_group_snapshot_member_id | None                                                                                |

| user_id                               | f66ef9839c6249228818461bb8a8be59                                                    |

| name                                  | isi-nfs                                                                             |

| share_type                            | 7b5c39bd-a08d-4f24-89ad-45ddee6e1823                                                |

| has_replicas                          | False                                                                               |

| replication_type                      | None                                                                                |

| created_at                            | 2017-12-01T07:35:31.000000                                                          |

| share_proto                           | NFS                                                                                 |

| mount_snapshot_support                | False                                                                               |

| project_id                            | 59fd5a09ed42459d86028dd97341a3fb                                                    |

| metadata                              | {}                                                                                  |

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

 

2. SMB共有の作成

続いて、SMB共有を作成していきます。isi-cifsという名前で200GB作成する場合は下記となります。

[root@manila ~(keystone_admin)]# manila create --name isi-smb --share-type isilon CIFS 200

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

| Property                              | Value                                |

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

| status                                | creating                             |

| share_type_name                       | isilon                               |

| description                           | None                                 |

| availability_zone                     | None                                 |

| share_network_id                      | None                                 |

| share_server_id                       | None                                 |

| share_group_id                        | None                                 |

| host                                  |                                      |

| revert_to_snapshot_support            | False                                |

| access_rules_status                   | active                               |

| snapshot_id                           | None                                 |

| create_share_from_snapshot_support    | False                                |

| is_public                             | False                                |

| task_state                            | None                                 |

| snapshot_support                      | True                                 |

| id                                    | 2c841cc1-6f80-48c3-8483-c03ac80ea7e3 |

| size                                  | 200                                  |

| source_share_group_snapshot_member_id | None                                 |

| user_id                               | f66ef9839c6249228818461bb8a8be59     |

| name                                  | isi-smb                              |

| share_type                            | 7b5c39bd-a08d-4f24-89ad-45ddee6e1823 |

| has_replicas                          | False                                |

| replication_type                      | None                                 |

| created_at                            | 2017-12-01T07:38:21.000000           |

| share_proto                           | CIFS                                 |

| mount_snapshot_support                | False                                |

| project_id                            | 59fd5a09ed42459d86028dd97341a3fb     |

| metadata                              | {}                                   |

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

 

作成したSMB共有の確認

NFS同様、export_locationsが実際のパスとなります。(緑色部分

[root@manila ~(keystone_admin)]# manila show isi-smb

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

| Property                              | Value                                                                     |

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

| status                                | available                                                                 |

| share_type_name                       | isilon                                                                    |

| description                           | None                                                                      |

| availability_zone                     | nova                                                                      |

| share_network_id                      | None                                                                      |

| export_locations                      |                                                                           |

|                                       | path = \\manilafs.isilon.local\share-9060f6dd-2da0-4175-af49-eaa154266bf0 |

|                                       | preferred = False                                                         |

|                                       | is_admin_only = False                                                     |

|                                       | id = 7ff04f68-d225-49e0-8ea7-405ab695b9c6                                 |

|                                       | share_instance_id = 9060f6dd-2da0-4175-af49-eaa154266bf0                  |

| share_server_id                       | None                                                                      |

| share_group_id                        | None                                                                      |

| host                                  | manila@isilon#EMC_NAS_Storage                                             |

| revert_to_snapshot_support            | False                                                                     |

| access_rules_status                   | active                                                                    |

| snapshot_id                           | None                                                                      |

| create_share_from_snapshot_support    | False                                                                     |

| is_public                             | False                                                                     |

| task_state                            | None                                                                      |

| snapshot_support                      | True                                                                      |

| id                                    | 2c841cc1-6f80-48c3-8483-c03ac80ea7e3                                      |

| size                                  | 200                                                                       |

| source_share_group_snapshot_member_id | None                                                                      |

| user_id                               | f66ef9839c6249228818461bb8a8be59                                          |

| name                                  | isi-smb                                                                   |

| share_type                            | 7b5c39bd-a08d-4f24-89ad-45ddee6e1823                                      |

| has_replicas                          | False                                                                     |

| replication_type                      | None                                                                      |

| created_at                            | 2017-12-01T07:38:21.000000                                                |

| share_proto                           | CIFS                                                                      |

| mount_snapshot_support                | False                                                                     |

| project_id                            | 59fd5a09ed42459d86028dd97341a3fb                                          |

| metadata                              | {}                                                                        |

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

 

3. IPアドレスでのアクセス制限

isi-nfsに対してaccess-allowを実行します

[root@manila ~(keystone_admin)]# manila access-allow isi-nfs ip 192.168.1.50

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

| Property     | Value                                |

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

| access_key   | None                                 |

| share_id     | 0d6c0960-cb0d-4758-8e98-a0b6ee268851 |

| access_type  | ip                                   |

| access_to    | 192.168.1.50                         |

| access_level | rw                                   |

| state        | queued_to_apply                      |

| id           | cd20b3ed-a5ee-4a78-ba41-9fa442d761e1 |

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

 

アクセスリストの確認

[root@manila ~(keystone_admin)]# manila access-list isi-nfs

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

| id                                   | access_type | access_to     | access_level | state  | access_key |

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

| cd20b3ed-a5ee-4a78-ba41-9fa442d761e1 | ip          | 192.168.1.50  | rw           | active | None       |

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

 

4. スナップショットの作成

isi-nfsに対してisi-nfs-snapという名前のスナップショットを作成します

[root@manila ~(keystone_admin)]# manila snapshot-create --name isi-nfs-snap isi-nfs

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

| Property          | Value                                |

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

| status            | creating                             |

| share_id          | 0d6c0960-cb0d-4758-8e98-a0b6ee268851 |

| user_id           | f66ef9839c6249228818461bb8a8be59     |

| description       | None                                 |

| created_at        | 2017-12-01T08:26:20.673633           |

| size              | 200                                  |

| share_proto       | NFS                                  |

| provider_location | None                                 |

| id                | c06d925c-7161-415d-9d9e-3cc1c369c150 |

| project_id        | 59fd5a09ed42459d86028dd97341a3fb     |

| share_size        | 200                                  |

| name              | isi-nfs-snap                         |

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

 

スナップショットの確認

[root@manila ~(keystone_admin)]# manila snapshot-list

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

| ID                                   | Share ID                             | Status    | Name          | Share Size |

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

| c06d925c-7161-415d-9d9e-3cc1c369c150 | 0d6c0960-cb0d-4758-8e98-a0b6ee268851 | available | isi-nfs-snap  | 200        |

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

 

 

 

おまけ. Isilon側から確認

manila createを実行した際に、Isilon側にはディレクトリおよびNFS/SMB共有が作成されクォータが設定されます。

ディレクトリの確認

s210-1# cd /ifs/manila

s210-1# ls

share-41346526-185d-4470-9e8d-9e09eb1264c3

share-9060f6dd-2da0-4175-af49-eaa154266bf0

 

NFS exportの確認

s210-1# isi nfs exports list

ID   Zone   Paths                                                  Description

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

1    System /ifs                                                   Default export

2    System /ifs/manila/share-41346526-185d-4470-9e8d-9e09eb1264c3 -

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

Total: 2

 

SMB共有の確認

s210-1# isi smb shares list

Share Name                                 Path                                      

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

ifs                                        /ifs                                      

share-9060f6dd-2da0-4175-af49-eaa154266bf0 /ifs/manila/share-9060f6dd-2da0-4175-af49-eaa154266bf0

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

Total: 2

 

クォータの確認(manila createの際に200GBを指定したのでディレクトリクォータでハードリミット200GBと設定されています。)

s210-1# isi quota list

Type      AppliesTo  Path                                                   Snap  Hard    Soft  Adv  Used

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

directory DEFAULT    /ifs/manila/share-41346526-185d-4470-9e8d-9e09eb1264c3 No    200.00G -     -    0

directory DEFAULT    /ifs/manila/share-9060f6dd-2da0-4175-af49-eaa154266bf0 No    200.00G -     -    0

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

Total: 2

 

スナップショットの確認

s210-1# isi snapshot list

ID    Name                                                   Path                    

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

27566 share-snapshot-3a4fcbd7-16dd-402c-b107-5c7544c0f787    /ifs/manila/share-41346526-185d-4470-9e8d-9e09eb1264c3

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

Total: 22

 

以上、少しでもManilaやIsilonの組み合わせについて参考になれば幸いです。

 

 

参考情報

Isilon driver https://docs.openstack.org/ocata/config-reference/shared-file-systems/drivers/emc-isilon-driver.html

Isilon simulator https://www.emc.com/products-solutions/trial-software-download/isilon.htm

 

 

バックナンバー

IsilonianTech 第1回 Isilonとオープンソース ~REX-Ray編~

IsilonianTech 第2回 Isilonとオープンソース ~OpenStack Manila編~

IsilonianTech 第3回 Isilonとオープンソース ~Isilon Data Insights Connector~

IsilonianTech 第4回 Software Defined Storage ~IsilonSD Edge~

IsilonianTech 第5回 Isilonとオープンソース ~Isilon-POSH~

IsilonianTech 第6回 Isilonとオープンソース ~Elastic Stack編~

IsilonianTech 第7回 Isilonとデータアナリティクス ~Cloudera編~

IsilonianTech 第8回 Elastic Cloud Storage (ECS) ~ECS Community Edition~

IsilonianTech 第9回 ISILON + ECS = UNLIMITED ~Isilon CloudPools~

 

 

さいごに

第1回、第2回とDocker/OpenStackのバックエンドストレージでのIsilonについてご紹介しました。

Software Definedの流れがある一方、拡張面や性能面、運用面での課題も多く今回のようにオフロードできる部分は

アプライアンスに任せるとことも、まだまだ多いのが実情です。

(IsilonにもSoftware Definedの製品がありますので、そちらは別途ご紹介したいと思います。)

 

次回は、Isilonで利用可能なツールのお話をしたいと思います。

 

 

安井 謙治

EMCジャパン株式会社

アイシロン事業本部 SE部