Manila を RDO で試してみる（準備編）

>バージョンKILOでやっておりますが、LIBERTY（2015/11/25現在）でも手順一緒です。

> ちなみに2015年2月時点で Devstack で NetApp Manila Driver を試す方法は以下で掲載済み
> [Try The Manila with NetApp !](http://community.netapp.com/t5/Japan/Try-The-Manila-with-NetApp/ba-p/101231)

少し前まで devstack でしか試せなかったがRDO/Packstackで試せるようにったのでやってみた。まずは、準備編 RDO の allinone はだいぶこなれてきたとおもうので結構さらっと書く。

>OpenStack Manila の基本的なところをさくっとしりたい方はこちらをどうぞ。
<iframe src="//www.slideshare.net/slideshow/embed_code/key/oA8JxPb8OXolq" width="595" height="485" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;" allowfullscreen> </iframe> <div style="margin-bottom:5px"> <strong> <a href="//www.slideshare.net/tsarah0822/openstack-manila-55315574" title="やっとでた！ OpenStack Manila" target="_blank">やっとでた！ OpenStack Manila</a> </strong> from <strong><a href="//www.slideshare.net/tsarah0822" target="_blank">tksarah</a></strong> </div>

# 環境

* HP ProLiant ML110 G7
* VMware ESXi 5.5 Nested VM
* vCPU 2Core
* Mem 8G
* SSD 20G
* NIC
    * ens33 管理用
    * ens34 外部接続用
* OS
    * CentOS-7-x86_64-Minimal-1503-01

# 流れ

1. OSインストール（省略）
2. RDOインストール
3. Packstack 実行
4. Network再設定
5. インスタンス作成と試行（確認用インスタンス）
6. Manila サービス確認


# RDOインストール

ここは、ドキュメント通り。他は余計なものを処理してる。sudo はダルいのでrootで実行。

```shell-session
# systemctl disable postfix
rm '/etc/systemd/system/multi-user.target.wants/postfix.service'
# systemctl stop postfix

# systemctl stop NetworkManager
# systemctl disable NetworkManager
# systemctl enable network

# yum update -y
# yum install -y https://rdoproject.org/repos/rdo-release.rpm
# yum install -y openstack-packstack
```

```file:/etc/sysconfig/network-scripts/ifcfg-ens34
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=ens34
UUID=f2839b90-48c1-460a-8e0d-5e6661ad3c78
DEVICE=ens34
ONBOOT=yes
```


# Packstack 実行

アンサーファイルを作って、それを少し編集。今回は、Nova , Neutron , Glance , Cinder , Horizon , Manila だけにしとく。
アンサーファイルの差分は以下の感じ。

```shell-session:変更部分（set_ans.txt）
CONFIG_MANILA_INSTALL=y
CONFIG_SWIFT_INSTALL=n
CONFIG_CEILOMETER_INSTALL=n
CONFIG_NAGIOS_INSTALL=n
CONFIG_CINDER_VOLUMES_SIZE=5G
```

実行。

```shell-session
# packstack --answer-file=./set_ans.txt

Applying 192.168.0.125_postscript.pp
192.168.0.125_postscript.pp:                         [ DONE ]
Applying Puppet manifests                            [ DONE ]
Finalizing                                           [ DONE ]

 **** Installation completed successfully ******

Additional information:
 * File /root/keystonerc_admin has been created on OpenStack client host 192.168.0.125. To use the command line tools you need to source the file.
 * To access the OpenStack Dashboard browse to http://192.168.0.125/dashboard .
Please, find your login credentials stored in the keystonerc_admin in your home directory.
 * Because of the kernel update the host 192.168.0.125 requires reboot.
 * The installation log file is available at: /var/tmp/packstack/20150801-202505-nVJoZH/openstack-setup.log
 * The generated manifests are available at: /var/tmp/packstack/20150801-202505-nVJoZH/manifests
```

# Network 再設定

## パブリックのネットワーク再設定

```shell-session
# neutron router-gateway-clear router1
# neutron subnet-delete public_subnet
# neutron router-interface-delete router1 private_subnet
# neutron router-delete router1

# neutron subnet-create public 192.168.0.0/24 \
--name public_subnet \
--allocation-pool start=192.168.0.70,end=192.168.0.80 \
--disable-dhcp \
--gateway 192.168.0.1

デモテナントにて
# neutron router-create demo-router
# neutron router-interface-add demo-router private_subnet
Added interface 921487cc-b50a-4e10-838f-8793dbed1487 to router demo-router.
# neutron router-gateway-set demo-router public
Set gateway for router demo-router
```

## インタフェースの関連付

```shell-session
# ifup ens34
# ovs-vsctl add-port br-ex ens34
```

# インスタンス作成と試行（確認用インスタンス）

```shell-session
[root@kilo ~(keystone_demo)]# nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0
+-------------+-----------+---------+-----------+--------------+
| IP Protocol | From Port | To Port | IP Range  | Source Group |
+-------------+-----------+---------+-----------+--------------+
| icmp        | -1        | -1      | 0.0.0.0/0 |              |
+-------------+-----------+---------+-----------+--------------+
[root@kilo ~(keystone_demo)]# nova secgroup-add-rule default  tcp 22 22 0.0.0.0/0
+-------------+-----------+---------+-----------+--------------+
| IP Protocol | From Port | To Port | IP Range  | Source Group |
+-------------+-----------+---------+-----------+--------------+
| tcp         | 22        | 22      | 0.0.0.0/0 |              |
+-------------+-----------+---------+-----------+--------------+
[root@kilo ~(keystone_demo)]# neutron floatingip-create public
Created a new floatingip:
+---------------------+--------------------------------------+
| Field               | Value                                |
+---------------------+--------------------------------------+
| fixed_ip_address    |                                      |
| floating_ip_address | 192.168.0.71                         |
| floating_network_id | e438e09f-84a6-43ad-a237-79cfcfee471e |
| id                  | c1701156-6cdd-4c7e-b84b-b41dd48ec5c1 |
| port_id             |                                      |
| router_id           |                                      |
| status              | DOWN                                 |
| tenant_id           | 7f3e00027cf0483eafc7c10866833813     |
+---------------------+--------------------------------------+

[root@kilo ~(keystone_demo)]# nova keypair-add --pub_key ~/.ssh/id_rsa.pub demo-key
```

Horizon から cirros インスタンス作成してフローティングIPアドレスをセットし、接続できるか確認。

```shell-session
[root@kilo ~(keystone_demo)]# ssh -i .ssh/id_rsa cirros@192.168.0.71
The authenticity of host '192.168.0.71 (192.168.0.71)' can't be established.
RSA key fingerprint is 8f:34:44:6e:c1:f1:17:86:25:e3:68:c3:d0:f1:46:95.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.0.71' (RSA) to the list of known hosts.
$
```

# Manila サービス確認

Manila のプロセスは、api , scheduler , share の３つ、RDO on CentOS7 では systemdにて　openstack-manila-api , openstack-manila-scheduler , openstack-manila-share と登録されている。

サービスとしては以下のように２つが確認できる。

```shell-session
$ manila service-list
+----+------------------+-----------------+------+---------+-------+----------------------------+
| Id |      Binary      |       Host      | Zone |  Status | State |         Updated_at         |
+----+------------------+-----------------+------+---------+-------+----------------------------+
| 1  |   manila-share   | stackt@generic1 | nova | enabled |   up  | 2015-01-08T04:47:12.000000 |
| 2  | manila-scheduler |      stackt     | nova | enabled |   up  | 2015-01-08T04:47:12.000000 |
+----+------------------+-----------------+------+---------+-------+----------------------------+
```

* 今回の環境ではOS立ち上げ直後、**manila-share** については down していたが手動であげると起動した。Neutron 群の起動処理とのタイミングによるっぽいのでとりあえずスルー。

**Manila 設定確認編**に続く。。。

バージョンKILOでやっておりますが、LIBERTY（2015/11/25現在）でも手順一緒です。

# 参考

https://www.rdoproject.org/
http://netapp.github.io/openstack/2014/08/26/manila-incubated/index.html