第4章 ファイル共有
OpenStack File Share サービス (openstack-manila) は、複数のインスタンスで消費可能な共有ファイルシステムを簡単にプロビジョニングするための手段を提供します。以前は、OpenStack のユーザーは、インスタンスにマウントする前に共有ファイルシステムを手動でデプロイする必要がありました。一方で、File Share サービスでは、事前設定済みのストレージプールから共有を簡単にプロビジョニングして、セキュアにマウントする準備を整えることができます。次に、ニーズを満たすためこのプールを個別に管理、スケーリングすることができます。
4.1. 共有の作成、管理
デフォルト以外のバックエンドで共有を作成する場合は、使用するバックエンドを明示的に指定する必要があります。プロセスがユーザーにとってシームレスになるように、共有種別を作成して、バックエンドの share_backend_name
の値と関連付けます。SHARETYPE という名前の共有種別を作成するには、OpenStack の admin として、以下を実行します。
# manila type-create SHARETYPE DHSS_
DHSS (または driver handles share servers) は、共有種別が共有サーバーを処理するドライバーを使用するかどうかを指定します。これは、バックエンドの定義の driver_handles_share_servers
の値と一致する必要があります (true
または false
)。
たとえば、driver_handles_share_servers=false
で設定されたバックエンドをベースにして general
という名前の共有種別を作成するには、以下を実行します。
# manila type-create 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'
今回のリリースでは、Shared File System サービスは、バックエンドとして NetApp ストレージコントローラーのみをサポートしています。NetApp がサポートする 追加スペック に関する情報は、「Creating and Defining Manila Share Types」を参照してください。
4.2. 共有の作成
共有を作成するには、File Share サービスのホストにログインして、以下のコマンドを実行します。
# 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.3. 共有とエクスポートの情報の一覧表示
共有が正常に作成されたことを確認するには、以下のコマンドを実行します。
# 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.4. 共有に対するアクセス権の付与
インスタンスに共有をマウントする前に、インスタンスが共有にアクセスできるようにする必要があります。
# manila access-allow SHAREID IDENT IDENTKEY
上記の設定で、
- SHAREID は、 「共有の作成」 で作成した共有の ID に置き換えます。
- IDENT は、File Share サービスは共有ユーザーまたはインスタンスの認証に使用する手法に置き換えます。
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.5. インスタンスへの共有のマウント
インスタンスを認証するように共有を設定した後に、共有をマウントすることができます。たとえば、「共有の作成」 からの共有を、「共有に対するアクセス権の付与」 からのインスタンスの /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.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. 共有の削除
共有を削除するには以下のコマンドを実行します。
# manila delete SHAREID
例:
# manila delete d760eee8-1d91-48c4-8f9a-ad07072e17a2