Red Hat Training

A Red Hat training course is available for Red Hat OpenStack Platform

第4章 ファイル共有

OpenStack Shared File Systems サービス (openstack-manila) は、複数のインスタンスで消費可能な共有ファイルシステムを簡単にプロビジョニングするための手段を提供します。以前は、OpenStack のユーザーは、インスタンスにマウントする前に共有ファイルシステムを手動でデプロイする必要がありました。一方で、Shared File Systems サービスでは、事前設定済みのストレージプールからファイル共有を簡単にプロビジョニングして、セキュアにマウントする準備を整えることができます。次に、ニーズを満たすためこのプールを個別に管理、スケーリングすることができます。

4.1. バックエンド

この環境に Red Hat OpenStack Platform をデプロイする際は director を使用することを推奨します。director を使用することで、Shared File Systems サービス (拡張でバックエンドも含む) など、各サービスが正しく設定されるようにします。director には、複数のバックエンド設定が統合されています。

サポート対象のバックエンドアプライアンスおよびドライバーの完全な一覧は、「Red Hat OpenStack Platform におけるコンポーネント、プラグイン、およびドライバーのサポート」 を参照してください。

4.2. 共有種別の作成と管理

デフォルト以外のバックエンドでファイル共有を作成する場合は、使用するバックエンドを明示的に指定する必要があります。プロセスがユーザーにとってシームレスになるように、共有種別 を作成して、バックエンドの share_backend_name の値と関連付けます。SHARETYPE という名前の共有種別を作成するには、OpenStack の admin として、以下を実行します。

# manila type-create --is_public false SHARETYPE DHSS

DHSS (または driver handles share servers) は、共有種別がファイル共有サーバーを処理するドライバーを使用するかどうかを指定します。これは、バックエンドの定義の driver_handles_share_servers の値と一致する必要があります (true または false)。

--is_public false オプションは、共有種別がパブリックにアクセス可能であってはならないことを示します。共有種別をパブリックにする場合には、このオプションは削除してください。

たとえば、driver_handles_share_servers=false で設定されたバックエンドをベースにして general という名前の非パブリック共有種別を作成するには、以下のコマンドを実行します。

# manila type-create --is_public false general false

共有種別の作成後に、バックエンドにマッピングすることができます。これには、以下のコマンドを実行します。

# manila type-key SHARETYPE set share_backend_name='SHAREBACKEND'

SHAREBACKEND はバックエンドの名前に置き換えます (例: share_backend_name の値)。これで、Shared File System サービスは (「ファイル共有の作成」のように) ファイル共有の作成時に SHARETYPE を呼び出すたびに、SHAREBACKEND のバックエンドを使用します。たとえば、共有種別 general をバックエンド cdotSingleSVM にマッピングするには、以下を実行します。

# manila type-key general set share_backend_name='cdotSingleSVM'
ヒント

OpenStack の管理者は、ユーザーが Dashboard でパブリックの共有種別を作成しないようにすることができます。関連情報は、「Dashboard を使用したパブリックのファイル共有および共有種別の作成の無効化」を参照してください。

今回のリリースでは、Shared File Systems サービスは、バックエンドとして NetApp ストレージコントローラーのみをサポートしています。NetApp がサポートする 追加スペック に関する情報は、「Creating and Defining Manila Share Types」を参照してください。

4.3. ファイル共有の作成

ファイル共有を作成するには、Shared File System サービスのホストにログインして、以下のコマンドを実行します。

# manila create --share-type SHARETYPE --name SHARENAME PROTO GB

上記の設定で、

  • SHARETYPE は、指定の共有種別に関連する設定を適用します。
  • SHARENAME は、ファイル共有名に置き換えます。
  • PROTO は、使用する共有プロトコルに置き換えます。
  • GB は、ファイル共有のサイズ (GB) に置き換えます。

たとえば、「共有種別の作成と管理」で、general という名前の共有種別を作成し、バックエンド cdotSingleSVM にマッピングしました。cdotSingleSVM バックエンドに share-01 という名前の 1 GB NFS 共有を作成するには、以下のコマンドを実行します。

# manila create --share-type general --name share-01 nfs 10
 +-------------------+--------------------------------------+
 | Property          | Value                                |
 +-------------------+--------------------------------------+
 | status            | creating                             |
 | description       | None                                 |
 | availability_zone | nova                                 |
 | share_network_id  | None                                 |
 | export_locations  | []                                   |
 | share_server_id   | None                                 |
 | host              | None                                 |
 | snapshot_id       | None                                 |
 | is_public         | False                                |
 | id                | d760eee8-1d91-48c4-8f9a-ad07072e17a2 |
 | size              | 10                                   |
 | name              | share-01                             |
 | share_type        | 8245657b-ab9e-4db1-8224-451c32d6b5ea |
 | created_at        | 2015-09-29T16:27:54.092272           |
 | export_location   | None                                 |
 | share_proto       | NFS                                  |
 | project_id        | a19dc7ec562c4ed48cea58d22eb0d3c7     |
 | metadata          | {}                                   |
 +-------------------+--------------------------------------+

4.4. ファイル共有とエクスポートの情報の一覧表示

ファイル共有が正常に作成されたことを確認するには、以下のコマンドを実行します。

# manila list
 +--------------------------------------+----------+-----+-----------+
 | ID                                   | Name     | ... | Status    ...
 +--------------------------------------+----------+-----+-----------+
 | d760eee8-1d91-48c4-8f9a-ad07072e17a2 | share-01 | ... | available ...
 +--------------------------------------+----------+-----+-----------+

manila list コマンドは、共有の export location も表示します。

 +-------------------------------------------------------------+
 | Export location                                             ...
 +-------------------------------------------------------------+
 | 10.70.37.46:/manila-nfs-volume-01/share-d760eee8-1d91-...
 +-------------------------------------------------------------+

この情報は後ほど、ファイル共有をマウントする際に使用します (「インスタンスへのファイル共有のマウント」)。

4.5. ファイル共有に対するアクセス権の付与

インスタンスにファイル共有をマウントする前に、インスタンスがファイル共有にアクセスできるようにする必要があります。

# manila access-allow SHAREID IDENT IDENTKEY

上記の設定で、

  • SHAREID は、「ファイル共有の作成」で作成したファイル共有の ID に置き換えます。
  • IDENT は、Shared File Systems サービスがユーザーまたはインスタンスの認証に使用する必要のあるメソッドに置き換えます。
  • IDENTKEY は、IDENT にどの認証の手法を選択するかにより異なります。

    • cert: この手法は、TLS 証明書でインスタンスを認証するのに使用します。
    • user: これはユーザーまたはグループ名で認証するのに使用します。
    • ip: IP アドレスでインスタンスを認証するのに使用します。

たとえば、インスタンス (IP 10.70.36.85 として識別される) に読み取り/書き込みアクセス権を付与するには、以下のコマンドを実行します。

# manila access-allow d760eee8-1d91-48c4-8f9a-ad07072e17a2 ip 10.70.36.85
 +--------------+--------------------------------------+
 | Property     | Value                                |
 +--------------+--------------------------------------+
 | share_id     | d760eee8-1d91-48c4-8f9a-ad07072e17a2 |
 | deleted      | False                                |
 | created_at   | 2015-09-29T16:35:33.862114           |
 | updated_at   | None                                 |
 | access_type  | ip                                   |
 | access_to    | 10.70.36.85                          |
 | access_level | rw                                   |
 | state        | new                                  |
 | deleted_at   | None                                 |
 | id           | b4e990d7-e9d1-4801-bcbe-a860fc1401d1 |
 +--------------+--------------------------------------+

ファイル共有へのアクセスには、b4e990d7-e9d1-4801-bcbe-a860fc1401d1 という独自の ID (ACCESSID) が指定されていることに注目してください。

正常にアクセス設定が行われたことを確認するには、以下のコマンドを実行します。

# manila access-list d760eee8-1d91-48c4-8f9a-ad07072e17a2
 +---------------------------+-----------+-----------+--------------+
 | id                        |access type|access to  | access level ...
 +---------------------------+-----------+-----------+--------------+
 |b4e990d7-e9d1-4801-bcbe-...|ip         |10.70.36.85| rw           ...
 +---------------------------+-----------+-----------+--------------+

4.6. ファイル共有へのアクセスの取り消し

以前に付与したアクセス権を取り消すには、ファイル共有へのアクセス権を削除する必要があります。

# manila access-deny SHAREID ACCESSID

たとえば、先ほど 「ファイル共有に対するアクセス権の付与」 で付与したアクセス権を取り消すには、以下のコマンドを実行します。

# manila access-list d760eee8-1d91-48c4-8f9a-ad07072e17a2
 +---------------------------+-----------+-----------+--------------+
 | id                        |access type|access to  | access level ...
 +---------------------------+-----------+-----------+--------------+
 |b4e990d7-e9d1-4801-bcbe-...|ip         |10.70.36.85| rw           ...
 +---------------------------+-----------+-----------+--------------+
# manila access-deny d760eee8-1d91-48c4-8f9a-ad07072e17a2 b4e990d7-e9d1-4801-bcbe-a860fc1401d1

この時点で、インスタンスはマウントしたファイル共有を使用することができなくなります。

4.7. インスタンスへのファイル共有のマウント

インスタンスを認証するようにファイル共有を設定した後に、その共有をマウントすることができます。たとえば、「ファイル共有の作成」からのファイル共有を、「ファイル共有に対するアクセス権の付与」 からのインスタンスの /mnt にマウントするには、通常通りにインスタンスにログインしてマウントします。

# ssh root@10.70.36.85
# mount -t nfs -o vers=3 10.70.37.46:/manila-nfs-volume-01/share-d760eee8-1d91-48c4-8f9a-ad07072e17a2 /mnt

ファイル共有のエクスポート情報を表示する方法については、「ファイル共有とエクスポートの情報の一覧表示」 を参照してください。

4.8. ファイル共有の削除

ファイル共有を削除するには以下のコマンドを実行します。

# manila delete SHAREID

例:

# manila delete d760eee8-1d91-48c4-8f9a-ad07072e17a2

4.9. Dashboard を使用したパブリックのファイル共有および共有種別の作成の無効化

Dashboard では、ユーザーがファイル共有または共有種別の作成時にチェックボックスで パブリック に指定することが可能です。ファイル共有の作成時には 全ユーザーに公開する チェックボックスでファイル共有をパブリックに設定します。

share default cropped

共有種別の作成インターフェースには、パブリック のチェックボックスがあり、同じ機能を果たします。

share type public default cropped

このチェックボックスを無効にして、ユーザーが作成するパブリックのファイル共有および共有種別の数を制限することができます。そのためには、コントローラーノードにログインして、以下の内容を /etc/openstack-dashboard/local_settings に追加します。

OPENSTACK_MANILA_FEATURES = {
    'enable_public_shares': False
    'enable_public_share_type_creation': False, }

'enable_public_shares':False の設定により、全ユーザーに公開する のチェックボックスが無効になります。また同様に、'enable_public_share_type_creation':False の設定により、共有種別の作成インターフェースの パブリック チェックボックスが無効になります。

高可用性の構成で OpenStack をデプロイした場合には、同じ変更を全コントローラーノードに適用してから、任意のコントローラーノードで httpd サービスを再起動します。

# pcs resource restart httpd-clone

そうでない場合には、以下のコマンドを使用して httpd サービスを再起動します。

# systemctl restart httpd

変更を確認するには、ダッシュボードを再読み込みします。対応するインターフェースには、チェックボックスが表示されなくなったはずです。

重要

これらのチェックボックスを無効しても、ユーザーまたは OpenStack の管理者がファイル共有または共有種別を 作成後に パブリックに設定するのを防ぐことはできません。