第4章 ファイル共有

重要

本リリースでは、OpenStack Shared File System は テクノロジープレビュー として提供されているため、Red Hat では全面的にはサポートしていません。これは、テスト目的のみでご利用いただく機能で、実稼働環境にデプロイすべきではありません。テクノロジープレビューについての詳しい情報は「Scope of Coverage Details」を参照してください。

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

OpenStack Shared File System サービスでは、管理者は OpenStack Block Storage サービスで ボリューム種別 を使用するのと同じ方法で、異なる種別のシェアの設定を定義することができます。さらに、Shared File System サービスは、プロビジョニングした共有のアクセス、セキュリティー、スナップショットを管理する手段を提供します。

現在、Shared File System サービスは手動でしかデプロイできません。Shared File System サービスの手動でのデプロイ方法は、「Shared File System サービスのインストール (テクノロジープレビュー)」を参照してください。

4.1. 共有の作成、管理

以下のセクションは、「Shared File System サービスのインストール (テクノロジープレビュー)」「OpenStack Shared File System Service (Manila)」の説明に従って Shared File System サービスを手動でデプロイ済みであることを前提とします。そのため、この時点で、共有に NetApp ドライバー (manila.share.drivers.netapp.common.NetAppDriver) を使用する必要があります。

このドライバーでは、以下の操作を実行できるはずです。

  • 共有を作成、削除します。
  • 共有へのアクセスを許可 (読み取り/書き込み) または拒否します。

共有を作成する前に、共有のタイプ を先に作成してください。通常、このステップは、 「定義済みのバックエンドの共有タイプの作成」に記載の Shared File System サービスのデプロイメントの一部です。

以下の手順は、NetApp のバックエンドが次の条件を満たしていることを前提としています。

  • NetApp という名前の共有タイプで呼び出しができること
  • NFS 共有プロトコルをサポートしていること

4.2. 共有の作成

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

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

上記の設定で、

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

たとえば、NetApp を使用して share-00 と言う名前の 1 GB の NFS 共有を作成するには、以下のコマンドを実行します。

# manila create --share-type netapp --name share-00 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