#Manilaとは
Manilaとは、ファイル共有サービスを提供するOpenStackのコンポーネントです。Libertyから正式リリースされました。
今回は、Devstackを使用してNetAppストレージのFASシリーズ上にNFSサーバを作成しVMからmountするまでの手順について記載します。
2015/12/19時点の情報になります。
#Manila on NetAppアーキテクチャ
NetAppのFASシリーズ用のOSであるONTAPは、仮想ストレージとしてSVM(storage virtual machine)を提供することができます。NetApp Manila Driverは、このSVMの提供方式の違いにより2つの構成を取ることができます。
##Single SVM構成
1つのSVMを複数のテナントで共有します。
以下のネットワーク構成例では、Floating IP経由で接続するパターンとNFS接続専用のネットワークを使用する構成について記載しています。
##Multi SVM構成
テナントごとにSVMを作成して占有します。
DataONTAP8.3から、IPspaceという機能がサポートされました。IPspaceにより1台の物理ストレージ内でIPアドレスの重複が可能になりテナントごとにIPアドレスのレンジを考慮する必要がなくなります。
以下のネットワーク構成例では、テナントごとにIPspaceが作成されそれぞれが独立したネットワークとNFSサーバを持っています。
#環境と前提
以下のURLを参考にDevstackでmanilaを構築する
[https://wiki.openstack.org/wiki/Manila/manila-devstack-script]
#Manila ネットワークプラグイン
以下の3つのプラグインが準備されています。NetApp Manila Driverは、SVMのLIFやVlanを作成する際の入力情報をプラグイン経由で取得します。
・Standalone Network Plugin
OpenStackのネットワーク系のコンポートネントと連携せず、手動でIPアドレスレンジ、ネットマスク、デフォルトゲートウェイ、vlanをmanila.confに記載してその情報を元にSVMのLIF、vlanなどを作成する。
・Nova Network Plugin
Share Network作成時に指定したNova Networkの情報を元にSVMのLIF、vlanなどを作成する。
・Neutron Network Plugin
Share Network作成時に指定したNeutron Networkの情報を元にSVMのLIF、vlanなどを作成する。
#Multi SVM構成の手順
ONTAP8.3とNeutron Pluginを使用する環境
1.Devstackで作成したbr-eth1にNFS接続用のインターフェースを追加して起動する。
$ sudo ovs-vsctl add-port br-eth1 eth1
$ sudo vi /etc/network/interfaces
#追加(IPアドレスなし)
auto eth1
iface eth1 inet manual
up ip link set dev $IFACE up
down ip link set dev $IFACE down
$ sudo ifup eth1
2.Neutron設定。ONTAPがvxlanをサポートしていないため、テナントネットワークをvlanに変更する。
$ vi /etc/neutron/plugins/ml2/ml2_conf.ini
#修正
tenant_network_types = vlan
3.Neutronサービスを再起動する。
4.Neutron Networkとsubnetを作成する。vlan idとネットワークは適当につける。
$ cd devstack/
$. openrc admin demo
$ neutron net-create private2 --provider:network_type vlan --provider:physical_network physnet1 --provider:segmentation_id 151
$ neutron subnet-create --name private2-subnet private2 192.168.210.0/24
5.Manila設定する。
$ vi /etc/manila/manila.conf
[DEFAULT]
・・・
#修正
enabled_share_backends = cdotMultipleSVM
#追加(Neutron Pluginを設定)
network_api_class=manila.network.neutron.neutron_network_plugin.NeutronNetworkPlugin
[cdotMultipleSVM83]
share_backend_name=cdotMultipleSVM83
share_driver=manila.share.drivers.netapp.common.NetAppDriver
driver_handles_share_servers=True
netapp_storage_family=ontap_cluster
netapp_server_hostname=[Cluster管理用のIPアドレスを指定]
netapp_server_port=80
netapp_login=admin
netapp_password=[adminユーザのパスワード]
netapp_transport_type=http
netapp_root_volume_aggregate=[SVMのroot volumeを作成するaggrを指定]
netapp_aggregate_name_search_pattern=[NFS Share用のFlexVolを作成するaggrを指定]
netapp_port_name_search_pattern=[LIFのhome portとなるインターフェースを指定]
netapp_trace_flags=True
6.Manilaサービスを再起動する。
7.Share network作成する。ここで指定したNeutron NetworkとSubnetをもとにSVM作成時のLIFのIPアドレスとvlanが自動作成される。
$ manila share-network-create --neutron-net-id [net-id] --neutron-subnet-id [subnet-id] --name sn
$ manila share-network-list
$ manila share-network-show [share-network-id]
8.NFS shareを作成する。
$ manila create --share-type default --share-network sn NFS 1
$ manila list
$ manila show [share-id]
9.mount確認
$ ssh [ユーザ名]@[vmのFixed IPアドレス]
$ sudo mount -t nfs [LIFのIPアドレス]:/[Share名] /mnt
$ df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/vda1 1124108 705164 339104 68% /
none 4 0 4 0% /sys/fs/cgroup
udev 49552 4 49548 1% /dev
tmpfs 11804 472 11332 4% /run
none 5120 0 5120 0% /run/lock
none 59016 0 59016 0% /run/shm
none 102400 0 102400 0% /run/user
*192.168.210.3:/share_dde064f8_99ba_4b27_9f89_f0d3d993971b 996160 128 996032 1% /mnt*
#NetApp Manila Driverの動作の流れ
MultiSVM + ONTAP8.3 + 2Node Cluster環境でmanila createした際の動きは以下になります。
- IPspaceを作成する。
- svm作成を作成する。
- svmが管理するaggrを変更。manila.confの「netapp_aggregate_name_search_pattern」で指定したaggrに変更する。
- vlanを作成する。*FASのnode数分実施
- LIF(Logical Interface)を作成する。*FASのnode数分実施
- Broadcast Domainを作成する。
- NFSサービスを有効化する。
- export ruleを作成する。
- NFS Share用のFlexVolを作成する。
#参考URL
DevstackによるManila構築
[https://wiki.openstack.org/wiki/Manila/manila-devstack-script]
Manilaのネットワークプラグインについて
[https://wiki.openstack.org/wiki/Setting_up_Manila_Network_Plugins]
OpenStack Deployment and Operations Guide
[http://netapp.github.io/openstack-deploy-ops-guide/kilo/content/]