Upload
lammien
View
230
Download
2
Embed Size (px)
Citation preview
OpenStack Project Manila~devstackを使って試すための手順~Takeshi Kuramochi, NetAppFebruary 2015
概要
本書は NetAppが開発に貢献している、OpenStackのManilaプロジェクトについてのドキュメント
です。本書リリース時点では Incubatedステータスでありコアプロジェクトに向けて開発が進められ
ています。細かい部分はこれから調整されるところもありますが概要を理解する上ではほぼ形作られて
おり、devstackを用いて動作を確認することができます。本書ではその手順を紹介しています。
目次
1 本書について 3
2 Manilaについて 4
3 準備と前提 4
3.1 Manilaの準備 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3.2 インスタンスの準備 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
4 Manilaの設定 7
4.1 Manilaシェア用ネットワーク作成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
4.2 Manila共有ファイル領域作成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
4.3 Manila共有ファイル領域の ACL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
5 Manila with NetApp Unified Driver 10
6 Manila with Backend cDOT Driver 12
7 Manila共有ファイル領域のマウント 15
8 補足情報 16
8.1 Manila devstack版ソースコード . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
8.2 serviceテナントで Cinder Volumeを確認できるようにする . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
8.3 Manila用 Horizon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
8.4 問題 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
8.5 主要コマンドリスト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
8.6 manila.confのパラメータ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
9 参考 17
Manila A Shared File System Service 2 @2015 NetApp K.K. All right reserved
1 本書について
本書は devstackを使って開発中であるManilaを試すための手順を記したものです。Linuxの基本オペレーションの詳細や一
部のコマンド標準出力は省略しています。また、開発中であるため以下の点に注意が必要です。
• brunch stable/junoを使用(2015年 1月末時点での試行を元にしている手順です)
• 予定されている一部の動作を試すことができない• 操作中に予期せぬ不具合が発生する可能性がある
Manila A Shared File System Service 3 @2015 NetApp K.K. All right reserved
2 Manilaについて
NetAppの技術者が中心となって設計・開発を進めている、OpenStackの新しい Project
図 1 Shared File Systems - Manila
• 共有ファイルシステム提供をするサービス• OpenStack のプロジェクトとして 2014年 11月に Incubation に昇格して、次期 Kilo に向けて開発中
• 複数のバックエンドサポート(clustered Data ONTAP , VNX , GlusterFS , GPFS,…)
• マルチテナントモデル• 共有タイプの設定(Cinder同様)
3 準備と前提
• 1ノード devstackを使う事でManilaを試す
• on VMでも可能(ただし、その場合は Hypervisorにしかるべき設定をいれること)
• NICは 3つ搭載
– 管理用
– 外部ブリッジ用
– ストレージネットワーク用
• devstackはmaster branch
3.1 Manilaの準備
1. Ubuntu 14.04 LTS インストール(省略)
2. OSアップデート
# apt -get update
# apt -get upgrade
# apt -get install git
# reboot
3. stackユーザ追加(sudoユーザとして追加)
4. NTP設定
5. devstack準備
stack@stackt :~$ git clone https ://git.openstack.org/openstack -dev/devstack
Cloning into ’devstack ’...
remote: Counting objects: 23420, done.
remote: Compressing objects: 100% (10662/10662) , done.
Manila A Shared File System Service 4 @2015 NetApp K.K. All right reserved
remote: Total 23420 (delta 16655) , reused 19040 (delta 12570)
Receiving objects: 100% (23420/23420) , 4.68 MiB | 2.30 MiB/s, done.
Resolving deltas: 100% (16655/16655) , done.
Checking connectivity ... done.
stack@stackt :~$ git clone -b stable/juno git:// github.com/openstack/manila.git
Cloning into ’manila ’...
remote: Counting objects: 9373, done.
remote: Compressing objects: 100% (201/201) , done.
remote: Total 9373 (delta 88), reused 23 (delta 2)
Receiving objects: 100% (9373/9373) , 3.08 MiB | 1.91 MiB/s, done.
Resolving deltas: 100% (6637/6637) , done.
Checking connectivity ... done.
stack@stackt :~$ cp ./ manila/contrib/devstack/lib/manila ./ devstack/lib
stack@stackt :~$ cp ./ manila/contrib/devstack/extras.d/70- manila.sh ./ devstack/extras.d/
stack@stackt :~$ cd devstack/
6. local.conf編集(もしくは localrc)
[[local|localrc ]]
# Credentials
DATABASE_PASSWORD=devstack
MYSQL_PASSWORD=devstack
ADMIN_PASSWORD=devstack
SERVICE_PASSWORD=devstack
SERVICE_TOKEN=devstack
RABBIT_PASSWORD=devstack
GUEST_PASSWORD=devstack
CINDER_BRANCH=master
TROVE_BRANCH=master
NEUTRON_BRANCH=master
NOVA_BRANCH=master
GLANCE_BRANCH=master
HORIZON_BRANCH=master
OSLOUTILS_BRANCH=master
REQUIREMENTS_BRANCH=master
MYSQL_HOST =127.0.0.1
MYSQL_USER=root
RABBIT_HOST =127.0.0.1
LIBVIRT_TYPE=qemu
GLANCE_HOSTPORT =127.0.0.1:9292
ENABLED_SERVICES=key ,n-api ,n-crt ,n-obj ,n-cpu ,n-net ,n-cond ,n-sch ,n-novnc ,n-xvnc ,n-cauth
#glance
ENABLED_SERVICES +=,g-api ,g-reg
#cinder
ENABLED_SERVICES +=,cinder ,c-sch ,c-api ,c-vol ,c-bak
#trove
ENABLED_SERVICES +=,trove ,tr-api ,tr-tmgr ,tr-cond
#manila
ENABLED_SERVICES +=,manila ,m-api ,m-sch ,m-shr
#others
ENABLED_SERVICES +=,horizon ,rabbit ,mysql ,tempest
#neutron needs for manila
disable_service n-net
enable_service q-svc ,q-agt ,q-dhcp ,q-l3 ,q-meta ,neutron
#
LOGDAYS =1
LOGFILE=$DEST/devstack.log
SCREEN_LOGDIR=$DEST/logs/screen
RECLONE=yes
API_RATE_LIMIT=False
Q_PLUGIN=ml2
ENABLE_TENANT_VLANS=True
ML2_VLAN_RANGES=physnet1 :100:4000
PHYSICAL_NETWORK=physnet1
OVS_PHYSICAL_BRIDGE=br -eth1
Q_ML2_PLUGIN_MECHANISM_DRIVERS=openvswitch
Q_ML2_PLUGIN_TYPE_DRIVERS=vlan ,vxlan
SHARE_BACKING_FILE_SIZE =8G
Manila A Shared File System Service 5 @2015 NetApp K.K. All right reserved
FLAT_INTERFACE=eth1
FIXED_RANGE =10.0.0.0/24
NETWORK_GATEWAY =10.0.0.1
FLOATING_RANGE =192.168.10.0/24
PUBLIC_NETWORK_GATEWAY =192.168.10.254
7. stack.sh実行
stack@stackt :~/ devstack$ ./stack.sh
....
Horizon is now available at http ://192.168.20.240/
Keystone is serving at http ://192.168.20.240:5000/ v2.0/
Examples on using novaclient command line is in exercise.sh
The default users are: admin and demo
The password: devstack
This is your host ip: 192.168.20.240
2015 -01 -06 09:07:57.838 | stack.sh completed in 309 seconds.
8. Manila動作確認
stack@stackt :~/ devstack$ . openrc admin demo
stack@stackt :~/ devstack$ manila list
mani+----+------+------+-------------+--------+-------------+-----------------+------+
| ID | Name | Size | Share Proto | Status | Volume Type | Export location | Host |
+----+------+------+-------------+--------+-------------+-----------------+------+
+----+------+------+-------------+--------+-------------+-----------------+------+
stack@stackt :~/ devstack$ manila service -list
+----+------------------+-----------------+------+---------+-------+----------------------------+
| Id | Binary | Host | Zone | Status | State | Updated_at |
+----+------------------+-----------------+------+---------+-------+----------------------------+
| 1 | manila -share | stackt@generic1 | nova | enabled | up | 2015 -01 -08 T04 :47:12.000000 |
| 2 | manila -scheduler | stackt | nova | enabled | up | 2015 -01 -08 T04 :47:12.000000 |
+----+------------------+-----------------+------+---------+-------+----------------------------+
9. 外部ネットワークへ接続可能か確認
• br-exに外部接続用の eth1が紐付いているか確認し、必要に応じて修正
# ovs -vsctl show
# ovs -vsctl add -port br-ex eth1
• eth1が UPしているか確認(ip addr, ifconfig)
3.2 インスタンスの準備
1. Fedora20などイメージ入れとく
2. Fedora21を使うなら
http://ftp.jaist.ac.jp/pub/Linux/Fedora/releases/21/Cloud/Images/x86 64/Fedora-Cloud-Base-20141203-21.x86 64.qcow2
3. キーペア登録
4. セキュリティグループ、ルール登録(icmp,ssh)
5. インスタンス作成
6. Floating IPアドレスをいくつか作成
7. Floating IPアドレス経由でアクセスできるか確認
イメージ登録サンプル
[stack@stackt ~(admin)]$ glance image -create --name ’Ubuntu 14.04 x86_64 ’ \
> --disk -format qcow2 --container -format bare --is -public true
> --copy -from http ://192.168.20.254/ qcow2/ubuntu -14.04 - server -cloudimg -amd64 -disk1.img
[stack@stackt ~(admin)]$ glance image -create --name ’Fedora 20 x86_64 ’ \
> --disk -format qcow2 --container -format bare --is -public true
> --copy -from http ://192.168.20.254/ qcow2/fedora -20. x86_64.qcow2
Manila A Shared File System Service 6 @2015 NetApp K.K. All right reserved
4 Manilaの設定
4.1 Manilaシェア用ネットワーク作成
プライベートネットワークから接続するシェアネットワークを作成する
stack@stackt :~$ manila share -network -create \
--neutron -net -id 33f83ef3 -4277 -4078 -947b -525449195 bed \
--neutron -subnet -id eea339f8 -8634 -4e24 -be3d -dc58e6bcfe4d \
--name manila_share
+-------------------+--------------------------------------+
| Property | Value |
+-------------------+--------------------------------------+
| cidr | None |
| created_at | 2015 -01 -08 T05 :06:55.595393 |
| description | None |
| id | e0ed982e -7a28 -427d-88c3-ff335560982d |
| ip_version | None |
| name | manila_share |
| network_type | None |
| neutron_net_id | 33f83ef3 -4277 -4078 -947b -525449195 bed |
| neutron_subnet_id | eea339f8 -8634 -4e24 -be3d -dc58e6bcfe4d |
| project_id | 98299 c1e5ebb498ebc100e5e98a6d66c |
| segmentation_id | None |
| updated_at | None |
+-------------------+--------------------------------------+
stack@stackt :~$ manila share -network -list
+--------------------------------------+--------------+
| id | name |
+--------------------------------------+--------------+
| e0ed982e -7a28 -427d-88c3 -ff335560982d | manila_share |
+--------------------------------------+--------------+
stack@stackt :~$
4.2 Manila共有ファイル領域作成
まず、一般的な構成においてManilaを使って共有ファイル領域を作成する
図 2 Manila General Configuration
Manila A Shared File System Service 7 @2015 NetApp K.K. All right reserved
stack@stackt :~$ manila create \
--name devstack_share \
--share -network e0ed982e -7a28 -427d-88c3-ff335560982d NFS 3
stack@stackt :~$ manila list
「manila list」コマンドで Statusが creatingから availableになる事が確認できる
ここで何が行われているかというと以下のように、NFSサーバが構成されている
1. NFSサーバ用に用意されたていたテンプレートイメージから、NFSサーバインスタンスを起動
2. Cinderにより指定された容量分のブロックストレージを作成
3. 作成された Cinder Volumeを NFSサーバインスタンスにアタッチ
4. アタッチされた領域をエクスポート
NFSサーバの情報は下記のように確認できる
stack@stackt :~$ manila share -server -list # id を確認
stack@stackt :~$ manila share -server -show 483d30b7 -7b03 -433f-9666 -919 b5e9d9412
+------------------------+--------------------------------------+
| Property | Value |
+------------------------+--------------------------------------+
| created_at | 2015 -01 -08 T05 :08:09.000000 |
| details:instance_id | a3eda1a6 -fae6 -412f-ab91 -442334 ab5185 |
| details:ip | 10.254.0.18 |
| details:password | ubuntu |
| details:pk_path | /home/stack/.ssh/id_rsa |
| details:public_address | 10.254.0.18 |
| details:router_id | c50f4013 -9116 -4fcb -aebe -59 d3fe6a6fc5 |
| details:subnet_id | f8dda690 -d2b0 -417c-9dfd -b86ea53e6d47 |
| details:username | ubuntu |
| host | stackt@generic1 |
| id | 483d30b7 -7b03 -433f-9666 -919 b5e9d9412 |
| project_id | 98299 c1e5ebb498ebc100e5e98a6d66c |
| share_network_id | e0ed982e -7a28 -427d-88c3-ff335560982d |
| share_network_name | manila_share |
| status | ACTIVE |
| updated_at | 2015 -01 -08 T05 :10:29.000000 |
+------------------------+--------------------------------------+
Manilaのログは以下で確認
• /opt/stack/logs/screen/screen-m-api.log
• /opt/stack/logs/screen/screen-m-shr.log
• /opt/stack/logs/screen/screen-m-sch.log
また、プライベートネットワークとシェアネットワークは異なるセグメントであるため、Neutron経由でルータの設定が追加
される
stack@stackt :~$ neutron net -list
stack@stackt :~$ neutron subnet -list
stack@stackt :~$ neutron router -port -list router1
4.3 Manila共有ファイル領域の ACL
作成した共有ファイル領域にどのホストが接続するかを登録する
stack@stackt :~$ manila access -list devstack_share
+----+-------------+-----------+-------+
| id | access type | access to | state |
+----+-------------+-----------+-------+
+----+-------------+-----------+-------+
stack@stackt :~$
stack@stackt :~$ manila access -allow devstack_share ip 10.0.0.2
+-------------+--------------------------------------+
| Property | Value |
+-------------+--------------------------------------+
| access_to | 10.0.0.2 |
Manila A Shared File System Service 8 @2015 NetApp K.K. All right reserved
| access_type | ip |
| created_at | 2015 -01 -08 T05 :28:40.438816 |
| deleted | False |
| deleted_at | None |
| id | 69791815 -ddb3 -43d4-a6f1 -9 b9fdfb55cdb |
| share_id | a0f9484a -32b6 -4721 -aeae -7 a53bcf47957 |
| state | new |
| updated_at | None |
+-------------+--------------------------------------+
stack@stackt :~$ manila access -list devstack_share
+--------------------------------------+-------------+-----------+--------+
| id | access type | access to | state |
+--------------------------------------+-------------+-----------+--------+
| 69791815 -ddb3 -43d4 -a6f1 -9 b9fdfb55cdb | ip | 10.0.0.2 | active |
+--------------------------------------+-------------+-----------+--------+
Manila A Shared File System Service 9 @2015 NetApp K.K. All right reserved
5 Manila with NetApp Unified Driver
Manila は標準で Cinder Volumeを作成するためその Cinderの Backend Volume Driver としてNetApp Unified Driver
を使う設定を入れる
図 3 Manila with NetApp Unified Driver
1. devstackホストに nfs-commonを入れる(NFSマウントできるように)
root@stackt :~# apt -get install nfs -common
root@stackt :~# more /proc/filesystems |grep nfs
nodev nfs
nodev nfs4
nodev nfsd
2. cinder-volume , cinder-backup停止
root@stackt :~# kill <pid >
3. cinder.conf の設定(編集)
default_volume_type = cdot -nfs
enabled_backends = lvmdriver -1 , cdot -nfs
[cdot -nfs]
volume_backend_name=cdot -nfs
volume_driver=cinder.volume.drivers.netapp.common.NetAppDriver
netapp_server_hostname =192.168.20.10
netapp_server_port =80
netapp_storage_protocol=nfs
netapp_storage_family=ontap_cluster
netapp_login=openstack
netapp_password=netapp123
netapp_vserver=vs_nfs
nfs_shares_config =/etc/cinder/nfs.shares
nfs_mount_options = sec=sys
4. /etc/cinder/nfs.sharesファイルを作成
192.168.30.20:/ vol_plain
5. cinder-volume起動
root@stackt :~# /usr/local/bin/cinder -volume \
--config -file /etc/cinder/cinder.conf 2>&1 | tee -a /opt/stack/logs/cinder -volume.log &
6. Cinderサービス確認(cdot-nfsが追加され Stateが UPになっているか)
stack@stackt :~/ devstack$ source openrc admin admin
stack@stackt :~/ devstack$ cinder service -list
Manila A Shared File System Service 10 @2015 NetApp K.K. All right reserved
7. Typeと Extra-specs作成
stack@stackt :~/ devstack$ cinder type -create cdotnfs
+--------------------------------------+---------+
| ID | Name |
+--------------------------------------+---------+
| df195fcf -8f85 -4083 -ad58 -fb9f6ca3b304 | cdotnfs |
+--------------------------------------+---------+
stack@stackt :~/ devstack$ cinder type -list
+--------------------------------------+-------------+
| ID | Name |
+--------------------------------------+-------------+
| 4bd40653 -44a3 -4fb6 -a306 -9 eaca90b6d03 | lvmdriver -1 |
| df195fcf -8f85 -4083 -ad58 -fb9f6ca3b304 | cdotnfs |
+--------------------------------------+-------------+
stack@stackt :~/ devstack$ cinder type -key cdotnfs set storage_protocol=nfs
stack@stackt :~/ devstack$ cinder extra -specs -list
+--------------------------------------+-------------+------------------------------------------+
| ID | Name | extra_specs |
+--------------------------------------+-------------+------------------------------------------+
| 4bd40653 -44a3 -4fb6 -a306 -9 eaca90b6d03 | lvmdriver -1 | {u’volume_backend_name ’: u’lvmdriver -1’} |
| df195fcf -8f85 -4083 -ad58 -fb9f6ca3b304 | cdotnfs | {u’storage_protocol ’: u’nfs ’} |
+--------------------------------------+-------------+------------------------------------------+
8. Novaへの対応
Cinder Volumeをインスタンスにアタッチする時、Novaは NFSマウントすることになるため、nova-computeが以下の
オプション付きでマウントできるようにする
nova.confを編集し、nova-computeを再起動
/etc/nova/nova.conf
[libvirt]
....
nfs_mount_options = vers=4,sec=sys
root@stackt :~# sg libvirtd /usr/local/bin/nova -compute \
--config -file /etc/nova/nova.conf 2>&1 | tee /opt/stack/logs/nova -compute.log &
Manila A Shared File System Service 11 @2015 NetApp K.K. All right reserved
6 Manila with Backend cDOT Driver
Manilaのバックエンドストレージとして clustered Data ONTAPを置く構成
図 4 Manila with Backend cDOT Driver
• clustered Data ONTAPにしかるべきライセンスを投入しておく
• 本ドキュメント作成現在は、Manilaはシェアを作成するところまでできるが L2 Routingの仕組みまで連携させていない
ためインスタンスからは NFSマウントできない
1. manila.conf 編集(以下一部略)
[keystone_authtoken]
signing_dir = /var/cache/manila
admin_password = devstack
admin_user = manila
admin_tenant_name = service
auth_protocol = http
auth_port = 35357
auth_host = 192.168.20.240
[DEFAULT]
...
rabbit_userid = stackrabbit
rabbit_password = devstack
rabbit_hosts = 127.0.0.1
rpc_backend = manila.openstack.common.rpc.impl_kombu
enabled_share_backends = generic1 , netapp1
neutron_admin_password = devstack
cinder_admin_password = devstack
nova_admin_password = devstack
state_path = /opt/stack/data/manila
osapi_share_extension = manila.api.contrib.standard_extensions
rootwrap_config = /etc/manila/rootwrap.conf
api_paste_config = /etc/manila/api -paste.ini
share_name_template = share -%s
scheduler_driver = manila.scheduler.filter_scheduler.FilterScheduler
verbose = True
debug = True
auth_strategy = keystone
[DATABASE]
connection = mysql :// root:devstack@127 .0.0.1/ manila?charset=utf8
[oslo_concurrency]
lock_path = /opt/stack/manila/manila_locks
[generic1]
Manila A Shared File System Service 12 @2015 NetApp K.K. All right reserved
driver_handles_share_servers = True
service_instance_password = ubuntu
service_instance_user = ubuntu
service_image_name = ubuntu_1204_nfs_cifs
path_to_private_key = /home/stack /.ssh/id_rsa
path_to_public_key = /home/stack /.ssh/id_rsa.pub
share_backend_name = generic1
share_driver = manila.share.drivers.generic.GenericShareDriver
[generic2]
driver_handles_share_servers = True
service_instance_password = ubuntu
service_instance_user = ubuntu
service_image_name = ubuntu_1204_nfs_cifs
path_to_private_key = /home/stack /.ssh/id_rsa
path_to_public_key = /home/stack /.ssh/id_rsa.pub
share_backend_name = generic2
share_driver = manila.share.drivers.generic.GenericShareDriver
[netapp1]
driver_handles_share_servers = True
share_driver=manila.share.drivers.netapp.cluster_mode.NetAppClusteredShareDriver
netapp_root_volume_aggregate = aggr_sas
netapp_nas_login = admin
netapp_nas_password = netapp123
netapp_nas_server_hostname = 192.168.20.10
share_backend_name=netapp1
2. Manilaサービス再起動(screen使用可)
[stack@stackt ~( admin)]$ /usr/local/bin/manila -share \
--config -file /etc/manila/manila.conf 2>&1 | tee -a /opt/stack/logs/manila -share &
[stack@stackt ~( admin)]$ /usr/local/bin/manila -api \
--config -file /etc/manila/manila.conf 2>&1 | tee -a /opt/stack/logs/manila -api &
[stack@stackt ~( admin)]$ /usr/local/bin/manila -scheduler \
--config -file /etc/manila/manila.conf 2>&1 | tee -a /opt/stack/logs/manila -scheduler &
3. Manilaサービス確認(netapp1が追加され Stateが UPとなっているか)
[stack@stackt ~( admin)]$ manila service -list
+----+------------------+-----------------+------+---------+-------+----------------------------+
| Id | Binary | Host | Zone | Status | State | Updated_at |
+----+------------------+-----------------+------+---------+-------+----------------------------+
| 1 | manila -share | stackt@generic1 | nova | enabled | up | 2015 -01 -31 T14 :52:23.000000 |
| 2 | manila -scheduler | stackt | nova | enabled | up | 2015 -01 -31 T14 :52:24.000000 |
| 3 | manila -share | stackt@netapp1 | nova | enabled | up | 2015 -01 -31 T14 :52:18.000000 |
+----+------------------+-----------------+------+---------+-------+----------------------------+
4. Typeを作る
[stack@stackt ~( admin)]$ manila type -create cDOT
[stack@stackt ~( admin)]$ manila type -create generic1
[stack@stackt ~( admin)]$ manila type -key cDOT set share_backend_name=netapp1
[stack@stackt ~( admin)]$ manila type -key generic1 set share_backend_name=generic1
[stack@stackt ~( admin)]$ manila type -list
+--------------------------------------+----------+
| ID | Name |
+--------------------------------------+----------+
| 7ffa7de2 -2889 -43a2-b139 -a222c9bb521d | cDOT |
| 6ec93115 -483a-423a-8ced -413865535561 | generic1 |
+--------------------------------------+----------+
[stack@stackt ~( admin)]$ manila extra -specs -list
+--------------------------------------+----------+--------------------------------------+
| ID | Name | extra_specs |
+--------------------------------------+----------+--------------------------------------+
| 7ffa7de2 -2889 -43a2-b139 -a222c9bb521d | cDOT | {u’share_backend_name ’: u’netapp1 ’} |
| 6ec93115 -483a-423a-8ced -413865535561 | generic1 | {u’share_backend_name ’: u’generic1 ’} |
+--------------------------------------+----------+--------------------------------------+
5. manila shareを作る
[stack@stackt ~(demo)]$ manila create \
--name cdotnfs --share -network manila_share --volume -type cDOT NFS 3
ここで行われていることは、
Manila A Shared File System Service 13 @2015 NetApp K.K. All right reserved
(a)SVM 作る
(b)LIF作る(TAG付き VLAN)
(c)FlexVol作る(この開発段階では、存在する Aggregateの中で一番空き容量が大きいところに FlexVolが作成される)
(d)エクスポートする
clustered Data ONTAP側
• os ⟨share server id⟩という SVMができる
• share ⟨share id⟩という FlexVolができる
• これら、“os ”と“share ”はパラメータで変更可能
kuramochi -cdot::> vserver show
Admin Root Name Name
Vserver Type State Volume Aggregate Service Mapping
----------- ------- --------- ---------- ---------- ------- -------
kuramochi -cdot
admin - - - - -
kuramochi -cdot -01
node - - - - -
kuramochi -cdot -02
node - - - - -
os_adb1fcd7 -ae07 -4818 -822d-911 f694dfe78
data running root aggr_sas file file
vs_nfs data running vsroot aggr_sas file file
5 entries were displayed.
kuramochi -cdot::>
kuramochi -cdot::> volume show -vserver os_adb1fcd7 -ae07 -4818 -822d-911 f694dfe78
Vserver Volume Aggregate State Type Size Available Used%
--------- ------------ ------------ ---------- ---- ---------- ---------- -----
os_adb1fcd7 -ae07 -4818 -822d-911 f694dfe78
root aggr_sas online RW 1GB 972.7 MB 5%
os_adb1fcd7 -ae07 -4818 -822d-911 f694dfe78
share_5ad1870e_11fb_4d5a_8904_2995567be8de
aggr_sata online RW 3GB 2.85GB 5%
2 entries were displayed.
kuramochi -cdot::>
kuramochi -cdot::> network interface show -vserver os_adb1fcd7 -ae07 -4818 -822d-911 f694dfe78
Logical Status Network Current Current Is
Vserver Interface Admin/Oper Address/Mask Node Port Home
----------- ---------- ---------- ------------------ ------------- ------- ----
os_adb1fcd7 -ae07 -4818 -822d-911 f694dfe78
os_a48e9cf9 -42f9 -4541 -85ab-ad28b5b8e8a9
up/up 10.0.0.59/24 kuramochi -cdot -01
e0a -1001
true
os_befd8607 -b6b1 -4adc -bf84 -4 f90764f38c0
up/up 10.0.0.58/24 kuramochi -cdot -02
e0a -1001
true
2 entries were displayed.
Manila A Shared File System Service 14 @2015 NetApp K.K. All right reserved
7 Manila共有ファイル領域のマウント
インスタンス Fedora20からマウントする例
1. DNSサーバ登録 , resolv.conf
2. sudo yum install bind-utils nfs-utils
3. sudo mount -t nfs 10.254.0.3:/shares/share-0aec76d3-4cff-410b-af0b-48df2698fbe8 /mnt
マウントするためのエクスポート情報は manila list コマンドで確認できる
[fedora@fedora20 ~]$ sudo mount -t nfs 10.254.0.18:/ shares/share -XXXX -YYYY -ZZZZ /mnt
[fedora@fedora20 ~]$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 20G 761M 19G 4% /
devtmpfs 994M 0 994M 0% /dev
tmpfs 1002M 0 1002M 0% /dev/shm
tmpfs 1002M 17M 986M 2% /run
tmpfs 1002M 0 1002M 0% /sys/fs/cgroup
10.254.0.18:/ shares/share -XXXX -YYYY -ZZZZ 3.0G 69M 2.8G 3% /mnt
[fedora@fedora20 ~]$
Manila A Shared File System Service 15 @2015 NetApp K.K. All right reserved
8 補足情報
8.1 Manila devstack版ソースコード
devstackのManila cDOT Driver
/opt/stack/manila/manila/share/drivers/netapp/cluster mode.py
root@stackt :/opt/stack/manila/manila/share/drivers/netapp# ls -ltr合計72
-rw-r--r-- 1 stack stack 49709 月 1 8 13:09 cluster_mode.py
-rw-r--r-- 1 stack stack 18352 月 1 8 13:09 api.py
-rw-r--r-- 1 stack stack 0 月 1 8 13:09 __init__.py
8.2 serviceテナントで Cinder Volumeを確認できるようにする
Manilaが作成する Cinder Volumeを確認できるようにする
[stack@demo ~(admin)]$ keystone user -role -add --user=admin --role=_member_ --tenant=service
rcファイルを作っておく
export OS_USERNAME=admin
export OS_TENANT_NAME=service
export OS_PASSWORD=devstack
export OS_AUTH_URL=http ://192.168.0.105:5000/ v2.0/
export PS1=’[\u@\h \W(service )]\$ ’
[stack@demo ~(admin)]$ source servicerc
[stack@demo ~( service )]$ cinder list
8.3 Manila用 Horizon
すでに稼働している HorizonではManilaの操作ができないため下記のように別途 Horizon*1 を起動する
# git clone -b manila_juno https :// github.com/NetApp/horizon.git
# cd horizon
# cp openstack_dashboard/local/local_settings.py.example openstack_dashboard/local/local_settings.py
local settings.pyを編集する
OPENSTACK_HOST = "192.168.20.240" # <- devstack host
screenしてから起動
$ sudo python manage.py runserver 0.0.0.0:8000
ただし、一部の GUIオペレーションでうまくいっていかない(demoユーザのインスタンスが表示されないなど)ところがあ
り、ログを確認すると「172.18.195.254」へアクセスしいっていいた
下記のファイルで URLがこのアドレスにリプレイスされていたようであり、修正し再起動
/home/stack/horizon/openstack dashboard/api/base.py
[stack@stackt api(admin)]$ diff base.py _base.py
283 c283
< return url.replace ( ’127.0.0.1 ’ , ’192.168.20.240 ’)
---
> return url.replace ( ’127.0.0.1 ’ , ’172.18.195.254 ’)
(*)192.168.20.240は devstackが稼働している管理用 NICのアドレス
8.4 問題
Cinderの Volume Backend Driverをマルチに設定していると、途中で片方が落ちる(未解析)
• cinder-volume.log
• cinder service-list
*1 https://wiki.openstack.org/wiki/Manila/docs/HOWTO use manila with horizon
Manila A Shared File System Service 16 @2015 NetApp K.K. All right reserved
8.5 主要コマンドリスト
参照
コマンド 説明
manila list 共有ファイル領域を表示
manila service-list 設定されたすべてのサービスを表示
manila share-network-list 共有専用のネットワークを表示
manila share-server-list NFS、CIFSサーバを表示
manila type-list タイプを表示
manila access-list ACLの登録情報を表示
manila snapshot-list スナップショットを表示
manila extra-specs-list エクストラスペックを表示
作成・登録
コマンド 説明
manila create 共有ファイル領域を作成
manila share-network-create 共有専用のネットワークを作成
manila type-create ボリュームのタイプを作成
manila type-key ボリュームタイプのエクストラスペックを作成
manila snapshot-create スナップショットを作成
manila access-allow 共有ファイル領域へのアクセス許可を登録
8.6 manila.confのパラメータ
パラメータ 説明
share driver manila.share.drivers.netapp.cluster mode.NetAppClusteredShareDriver
netapp nas login clustered Data ONTAPコントローラへログインするユーザ名(Default:admin)
netapp nas password 上記のユーザのパスワード
netapp nas server hostname clustered Data ONTAPコントローラのホスト名
netapp nas transport type 転送プロトコルタイプ(Default:http)
netapp nas volume name template NetAppボリューム名のテンプレート(Default:share %(share id)s)
netapp vserver name template NetApp SVM名のテンプレート(Default:os %s)
netapp lif name template LIF名のテンプレート(Default:os %(net allocation id)s)
netapp aggregate name search pattern プロビジョニングのための有効な Aggregateを検索するパターン(Default:(.*))
netapp root volume aggregate root volumeを作る Aggregateの指定
netapp root volume name root volume名を指定
9 参考
参考ページ情報
• Manila
https://wiki.openstack.org/wiki/Manila
• OpenStack Deployment and Operations Guide
http://netapp.github.io/openstack-deploy-ops-guide/
• OpenStack@NetApp
http://netapp.github.io/openstack/
• NetApp Community OpenStack Discussions
http://community.netapp.com/t5/OpenStack-Discussions/bd-p/openstack-discussions
Manila A Shared File System Service 17 @2015 NetApp K.K. All right reserved
NetAppは、本ドキュメントで提供されるいかなる情報または推奨事項の正確性、信頼性、有用
性について、またはいかなる情報の使用または推奨事項の順守による結果についても、表明また
は保証は一切行いません。本ドキュメントの情報は現状のまま提供され、本ドキュメントの情報
の使用または推奨内容や手法の実施は、お客様の評価および業務環境への統合能力に基づいて、
お客様の責任でお行われるものとします。
本ドキュメントの記載内容は、いかなる箇所においても NetAppからの書面による事前の許可なく複製、転載することを禁じます。記記載事項は、予告なく変更される場合があります。NetApp、NetApp のロゴ、Go further, faster、Data ONTAPは、米国およびその他の国における NetApp, Inc.の商標または登録商標です。その他のすべてのブランドおよび製品は、それを所有する各社の商標または登録商標であり、相応の取り扱いが必要です。