未解決
Community Manager
•
3.1K メッセージ
0
450
IsilonianTech 第2回 Isilonとオープンソース ~OpenStack Manila編~
投稿者 kenji_yasui
オリジナル投稿日: Dec 1, 2017 6:23:29 PM
前回のIsilonianTechでは、Dockerの永続的なストレージとしてバックエンドにIsilonを使うためのプラグインであるREX-Rayをご紹介しました。
今回はOpenStackの共有ファイルストレージ サービスのプロジェクトであるManilaとIsilonとの連携についてご説明します。
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の動作を中心に見ていきたいと思います。
なお、テストするにあたり下記の環境を用意しました。
環境としては、上記のように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~
IsilonianTech-第10回-Isilonとデータアナリティクス-Isilon-Ambari-Management
IsilonianTech 第11回 OneFS 8.2リリース!
IsilonianTech-第12回-データファーストを支援するソフトウェア-DataIQ
IsilonianTech-第13回-vRealize-Orchestratorプラグイン
さいごに
第1回、第2回とDocker/OpenStackのバックエンドストレージでのIsilonについてご紹介しました。
Software Definedの流れがある一方、拡張面や性能面、運用面での課題も多く今回のようにオフロードできる部分はアプライアンスに任せるとことも、まだまだ多いのが実情です。
(IsilonにもSoftware Definedの製品がありますので、そちらは別途ご紹介したいと思います。)
次回は、Isilonで利用可能なツールのお話をしたいと思います。
安井 謙治
EMCジャパン株式会社
アイシロン事業本部 SE部