第6章 OpenStack で NFS バックエンドを使用するための設定
本章は、OpenStack Volume サービス (openstack-cinder-volume
) が既存の NFS サーバーを追加のバックエンドとして使用するように設定する方法について説明します。さらに、NFS 共有をバックエンドとしたボリュームの作成を呼び出すために使用可能なボリューム種別の作成方法についても記載しています。
必須条件:
- バックエンドとして使用する NFS 共有は、事前に正しく設定しておく必要があります。
- OpenStack Volume サービスをホストするノードには、NFS 共有への読み取り/書き込み権限が必要です。
-
また、OpenStack Volume サービスをホストするノードへの
root
アクセスが必要です。
前提条件:
- OpenStack デプロイメントが Red Hat Enterprise Linux OpenStack Platform インストーラー でプロビジョニングされていないこと
-
OpenStack Block Storage サービスがデフォルトのバックエンドを使用していること (このバックエンドでは Packstack でデプロイされた
lvm
というバックエンド名を使用)
6.1. SELinux の設定
クライアントで SELinux が有効になっており、クライアントがインスタンス上の NFS ボリュームにアクセスする必要がある場合には、virt_use_nfs のブール値も有効にする必要があります。このブール値を有効にして (再起動後も有効な状態を保つには)、root
で以下のコマンドを実行してください。
# setsebool -P virt_use_nfs on
インスタンス上の NFS ボリュームにアクセスする必要がある全クライアントのホストで、このコマンドを実行します。これには、全コンピュートノードも含まれます。
6.3. 新規バックエンドの定義の作成
デフォルトでは、Packstack により、LVM のバックエンドの定義が /etc/cinder/cinder.conf
に作成されます。
[lvm] iscsi_helper=lioadm volume_group=cinder-volumes iscsi_ip_address= volume_driver=cinder.volume.drivers.lvm.LVMISCSIDriver volume_backend_name=lvm
/etc/cinder/cinder.conf
で NFS 共有を定義した後には、この共有に対して、追加でバックエンドの定義を設定することができます。この設定には、以下を実行します。
-
OpenStack Volume サービスをホストするノードへ
root
でログインします。 NFS バックエンドの新しい定義を作成して、Volume Servive が NFS 共有を定義するファイル (
/etc/cinder/nfs_share
) を使用するように設定します。# openstack-config --set /etc/cinder/cinder.conf nfs nfs_shares_config /etc/cinder/nfs_shares
ここでは、定義名に
nfsbackend
という名前を使用します。Volume サービスが
cinder.volume.drivers.nfs.NfsDriver
という名前の NFS ボリュームドライバーを使用するように設定します。# openstack-config --set /etc/cinder/cinder.conf nfs volume_driver cinder.volume.drivers.nfs.NfsDriver
NFS バックエンドのボリュームのバックエンド名を定義します (以下のコマンドでは、
nfs
という名前を使用します)。# openstack-config --set /etc/cinder/cinder.conf nfs volume_backend_name nfsbackend
必要なマウントオプションを (
MOUNTOPTIONS
) nfs_mount_options の設定キーに追加します。# openstack-config --set /etc/cinder/cinder.conf nfs nfs_mount_options _MOUNTOPTIONS_
この時点で、以下のセクションが /etc/cinder/cinder.conf
に表示されるはずです。
[nfs] nfs_shares_config = /etc/cinder/nfs_shares volume_driver = cinder.volume.drivers.nfs.NfsDriver volume_backend_name = nfsbackend nfs_mount_options =
NFS バックエンドを有効化できるようになりました。バックエンドは、/etc/cinder/cinder.conf
の enabled_backends
設定キーで有効化します。Packstack で作成されるデフォルトのバックエンドは、そこに表示されているはずです。
enabled_backends=lvm
以下のように、一覧に新規の NFS バックエンド定義を追加します。
enabled_backends=lvm,nfs
NFS バックエンドが有効になったら、OpenStack の Volume サービスを再起動します。
# openstack-service restart cinder-volume
6.4. NFS バックエンドのボリューム種別の作成
新規の NFS バックエンドが利用できるようになりましたが、新規ボリュームの作成時にはまだ使用することができません。新規ボリュームがこの NFS バックエンドを使用するように設定するには、まず、このボリュームに ボリュームの種別 を作成する必要があります。
既存のボリューム種別を表示します。デフォルトでは、lvm バックエンドに対して、(iscsi という名前の) ボリューム種別が存在します。
+--------------------------------------+-------+ | ID | Name | +--------------------------------------+-------+ | f8d31dc8-a20e-410c-81bf-6b0a971c61a0 | iscsi | +--------------------------------------+-------+
NFS バックエンドに
nfstype
という名前の新規ボリューム種別を作成します。# cinder type-create nfstype
バックエンド名 (
nfsbackend
) を使用して、NFS バックエンドでnfstype
というボリューム種別 が使用されるように設定します。# cinder type-key nfstype set volume_backend_name=nfsbackend
新しい種別が正しく作成、設定されていることを確認します。
+--------------------------------------+---------+ | ID | Name | +--------------------------------------+---------+ | bbff44b5-52b1-43d6-beb4-83aa2d20bc59 | nfstype | | f8d31dc8-a20e-410c-81bf-6b0a971c61a0 | iscsi | +--------------------------------------+---------+ +-----------------------+-------+---------------------------------------+ | ID | Name | extra_specs | +-----------------------+-------+---------------------------------------+ |bbff44b5-~-83aa2d20bc59|nfstype|{u'volume_backend_name': u'nfsbackend'}| |f8d31dc8-~-6b0a971c61a0| iscsi | {u'volume_backend_name': u'lvm'} | +-----------------------+-------+---------------------------------------+
ボリューム種別の作成や設定は、Dashboard からも行うことができます。詳しくは、「ボリューム種別へのボリューム設定の関連付け」を参照してください。
6.5. 新しい NFS バックエンドのテスト
新規 NFS バックエンドをテストするには、nfsvolume
という新規ボリュームを作成し、nfstype
というボリューム種別を呼び出します。
+---------------------+--------------------------------------+ | Property | Value | +---------------------+--------------------------------------+ | attachments | [] | | availability_zone | nova | | bootable | false | | created_at | 2015-01-06T05:14:09.271114 | | display_description | None | | display_name | nfsvolume | | encrypted | False | | id | 0cd7ac45-622a-47b0-9503-7025bbedc8ed | | metadata | {} | | size | 1 | | snapshot_id | None | | source_volid | None | | status | creating | | volume_type | nfstype | +---------------------+--------------------------------------+
ボリュームが正しく作成されたら、(NFS サーバー上の) NFS 共有を確認します。該当するボリューム (名前に新規作成されたボリュームの ID が含まれているボリューム) が以下のように表示されるはずです。
drwxrwxrwx. 2 root root 4.0K Jan 6 15:14 . drwxr-xr-x. 18 root root 4.0K Jan 5 04:03 .. -rw-rw-rw-. 1 nfsnobody nfsnobody 1.0G Jan 6 15:14+ +volume-0cd7ac45-622a-47b0-9503-7025bbedc8ed