OpenStack を 拡張する NetApp Unified Driver の使い方 Vol.001
-
Upload
takeshi-kuramochi -
Category
Technology
-
view
916 -
download
5
description
Transcript of OpenStack を 拡張する NetApp Unified Driver の使い方 Vol.001
How to use The NetApp Unified Driver For OpenStack Vol.001
2014/10/17
Takeshi Kuramochi
自己紹介
• 倉持健史(くらもち たけし)
• 現在のお仕事
フラッシュメモリ技術
BigData(Hadoop ディストリと組み合わせ)
OpenStack(+NetApp インテグレーション)
SNIA日本支部 教育委員会 副委員長
• 他への興味
データ分析・・・R、RStudo を使い始めた
囲碁・・・まだ 9路盤 の域を出ない超初心者
ゴルフ・・・とりあえずスタートは 160
Python・・・シンプルでいいと思い始めた
SoC・・・ラズパイと Cubieboard がゴロゴロしてる
はじめに
• 本文書は、OpenStack に関わる技術者向けになっています。
• 各 OpenStack プロジェクトをコードネームで表記しています。
• コミュニティのドキュメントやベンダー提供のガイドも存在するがもっとわかりやすくステップを踏まえて作成出来る流れにしています。
• 本書では Linux ディストリビューションは Fedora 20 を使用しています。また、OpenStack のリリースは RDO Icehouse Release -4 を使用しています。
• Linux および OpenStack のオペレーションが含まれますが、個々の詳細な解説はされておりません。
• NetApp のオペレーションが含まれますが、詳細な解説はされておりません。
目次
1. NetApp Unified Driver ってなに?
2. NetApp Unified Driver を使うと何がいい?
3. 事前準備と前提、本書の構成
4. 設定方法
5. 確認方法
6. 参考情報
7. 予定
NetApp Unified Driver
ってなに?
NetApp Unified Driver
• Cinder のバックエンドストレージとしてNetAppストレージを使うためのドライバ
• コミュニティに提供されており、だれでも使える
• 以下の NetApp ストレージOSに対応 – Data ONTAP 7-Mode – Clustered Data ONTAP(本書はこちらを前提) – E-Series
• NetApp Unified Driver と組み合わせた NFS Copy Offload
Client のツールも存在するがそれは次回で解説
NetApp Unified Driver を使うと何がいいの?
NetApp Unified Driver を使うと・・・
• Cinder Volume に対して多くの付加価値をつけることができる – 重複排除や圧縮処理が施されるボリューム
– データミラーされているボリューム
– QoS(性能制限)がかけられているボリューム
– アーカイブ専用なボリューム
– 高速を求めるボリューム
• ストレージが得意な処理をホストのリソースを使うことなく、つま
り負荷をかけずに、且つユーザに透過的に行える – ボリュームのコピー、スナップショットやクローニングをストレージ
上で負荷軽減およびリソース無駄を排除
もともと NetApp Data ONTAP のコア技術 Snapshot は負荷をかけずにスナップショットを取ることができる
事前準備と前提
本書の構成
事前準備と前提
• OpenStack のプラットフォーム
– 少なくとも Keystone , Nova , Neutron , Glance , Cinder , Horizon が構成済みである事
– マルチノード、オールインワンどちらの構成でも可能
• NetApp FAS シリーズの物理配置と結線等完了済みである事
• Clustered Data ONTAP の初期セットアップ済み
本書の環境
• OpenStack はオールインワン構成 – Fedora 20 – RDO Icehouse Release -4
• NetApp clustered Data ONTAP 8.2.1 使用
• ざっくり概略図
OpenStack Platform
Clustered Data ONTAP
Internet
設定方法
設定方法
以下2点の設定を行う。
• Clustered Data ONTAP 側設定
– NFS 設定(iSCSI 用は参考につける)
– API アクセスロール作成
• Cinder の設定
– cinder.conf の設定
– Type , Extra-specs の設定
Clustered Data ONTAP 側の設定
以下、clustered Data ONTAP 上でのオペレーション
• SVM を1つ作成
• NFS 用の LIF を作成
• NFS 用の「ノーマル」「重複排除用」「圧縮用」「ミラーリング用」のボリュームを作成 – 重複排除用と圧縮用では以下の設定を入れる
volume efficiency on -vserver <SVM名> -volume <重複排除用Volume名> volume efficiency on -vserver <SVM名> -volume <圧縮用Volume名> volume efficiency modify -vserver <SVM名> -volume <圧縮用Volume名> -compression true -inline-compression true
Clustered Data ONTAP 側の設定
• NFS v4 , v4.1 の設定
– NFS Copy Offload Client を使う場合は v4.x 以上が必要
• API アクセス用のロール作成
– NetApp Unified Driver では ONTAP API を通じて clustered Data ONTAP にアクセスする、そのための専用のユーザおよびロールを作成
nfs modify -vserver demo-nfs-svm -v4.0 enabled -v4.1 enabled -v4.1-pnfs enabled
NetApp Unified Driver からリクエストされる”コマンド”に対して”アクセスレベル”をロールに割り当てる # 各コマンドに必要なアクセスレベルは下記のテーブルに記載があるので参照 # http://netapp.github.io/openstack-deploy-ops-guide/icehouse/content/cinder.fas.configuration.html security login role create -role <ロール名> -cmddirname <コマンド> -access <アクセスレベル> 作成したロールを持つユーザを作成する security login create -username <ユーザ名> -application ontapi -authmethod password -role <ロール名>
Cinder の設定(NFS)
[DEFAULT]
# 中略
enabled_backends=cdot-nfs
[cdot-nfs]
volume_backend_name=cdot-nfs
volume_driver=cinder.volume.drivers.netapp.common.NetAppDriver
netapp_server_hostname=10.130.202.180 # cluster management lif のアドレス
netapp_server_port=80
netapp_storage_protocol=nfs
netapp_storage_family=ontap_cluster
netapp_login=openstack # ロールとして新たに作ったAPI用のユーザ
netapp_password=netapp123 # ロールとして新たに作ったAPI用のユーザのパスワード
netapp_vserver=demo-nfs-svm # 対象のSVM
nfs_shares_config=/etc/cinder/nfs.shares # ファイルを作る
/etc/cinder.conf (cinder-volume が稼働しているホスト) <例>
Cinder の設定(NFS)
• cinder.conf を設定した後は cinder-volume を再起動
• cinder-volume は設定したボリュームを自動的にNFSマウントする
10.130.208.55:/vol5_plain # 特別な設定はない通常のボリューム
10.130.208.55:/vol2_dedup # SVM上で条幅排除設定をしたボリューム) 10.130.208.55:/vol3_compressed # SVM上で圧縮設定をしたボリューム) 10.130.208.55:/vol4_mirrored # SVM上でミラー設定をしたボリューム)
/etc/cinder/nfs.shares SVM の NFS 用 LIF : /各ボリュームジャンクションパス <例>
[root@tkstack (keystone_admin)]# df –h (一部省略) 10.130.208.55:/vol4_mirrored 50G 1.1M 50G 1% /var/lib/cinder/mnt/7a2ad54f8ce5ac4c4f092e6cb1f1b39b 10.130.208.55:/vol2_dedup 100G 627M 100G 1% /var/lib/cinder/mnt/ea9ebfcad8827c2df164a5792194d80e 10.130.208.55:/vol5_plain 150G 832K 150G 1% /var/lib/cinder/mnt/980e55e4b6bcbba7ff1f0adc1016e52e 10.130.208.55:/vol3_compressed 100G 448K 100G 1% /var/lib/cinder/mnt/5fa24de47b0ced340706db7fde94ab64
Type と Extra-specs の設定
• Cinder サービスリストの確認 [root@tkstack (keystone_admin)]# cinder service-list +------------------+-------------------------------+------+---------+-------+----------------------------+-----------------+ | Binary | Host | Zone | Status | State | Updated_at | Disabled Reason | +------------------+-------------------------------+------+---------+-------+----------------------------+-----------------+ | cinder-scheduler | tkstack.sample.net | nova | enabled | up | 2014-08-08T09:07:36.000000 | None | | cinder-volume | tkstack.sample.net@cdot-nfs | nova | enabled | up | 2014-08-08T09:07:40.000000 | None | +------------------+-------------------------------+------+---------+-------+----------------------------+-----------------+
• Type 作成 [root@tkstack ~(keystone_admin)]# cinder type-create normal [root@tkstack ~(keystone_admin)]# cinder type-create gold [root@tkstack ~(keystone_admin)]# cinder type-create silver [root@tkstack ~(keystone_admin)]# cinder type-create bronze [root@tkstack ~(keystone_admin)]# cinder type-list +--------------------------------------+-----------+ | ID | Name | +--------------------------------------+-----------+ | 3f615755-fef0-46d4-b3d7-aa7d87977209 | normal | | 577d372e-9e6c-4468-ba8b-a4b0e11939f7 | silver | | 9081d1c7-5812-4e94-9ce9-fc1aa9118d5b | gold | | f6b87b16-0a08-4270-a5f0-1707ffcd68c0 | bronze | +--------------------------------------+-----------+
Type と Extra-specs の設定
• Extra-specs 設定 [root@tkstack ~(keystone_admin)]# cinder type-key normal set storage_protocol=nfs [root@tkstack ~(keystone_admin)]# cinder type-key gold set netapp_mirrored=true [root@tkstack ~(keystone_admin)]# cinder type-key silver set netapp_dedup=true [root@tkstack ~(keystone_admin)]# cinder type-key bronze set netapp_compression=true [root@tkstack ~(keystone_admin)]# cinder extra-specs-list +--------------------------------------+-----------+--------------------------------------------+ | ID | Name | extra_specs | +--------------------------------------+-----------+--------------------------------------------+ | 3f615755-fef0-46d4-b3d7-aa7d87977209 | normal | {u'storage_protocol': u'nfs'} | | 577d372e-9e6c-4468-ba8b-a4b0e11939f7 | silver | {u'netapp_dedup': u'true'} | | 9081d1c7-5812-4e94-9ce9-fc1aa9118d5b | gold | {u'netapp_mirrored': u'true'} | | f6b87b16-0a08-4270-a5f0-1707ffcd68c0 | bronze | {u'netapp_compression': u'true'} | +--------------------------------------+-----------+--------------------------------------------+
確認方法
確認方法
以下を実施し正しく構成できているかを確認します。実施は Horizon UI からでもコマンドラインからでもどちらでもよい。
• Type を指定して Cinder Volume を作成
• Cinder Volume のスナップショットの作成
Type を指定して Cinder Volume 作成
下記はコマンドで実行した例を示す。
• display-name : Volume 名
• volume-type : gold (タイプ)
• 容量は1GB で作成
[root@tkstack ~(keystone_demo)]# cinder create --display-name myGold --volume-type gold 1 +---------------------+--------------------------------------+ | Property | Value | +---------------------+--------------------------------------+ | attachments | [] | | availability_zone | nova | | bootable | false | | created_at | 2014-08-08T09:21:05.783889 | | display_description | None | | display_name | myGold | | encrypted | False | | id | 2355d34e-eede-4c92-b609-aa4f6d3853b8 | | metadata | {} | | size | 1 | | snapshot_id | None | | source_volid | None | | status | creating | | volume_type | gold | +---------------------+--------------------------------------+
Type を指定して Cinder Volume 作成
正しく作られている事を確認
• ”Status”が available となっていれば作成完了して使える状態
• この「gold」タイプ の Cinder Volume はストレージ上でミラーリングされているボリューム上に作られたもの
[root@tkstack ~(keystone_demo)]# cinder list +--------------------------------------+-----------+----------------+------+-------------+----------+-------------+ | ID | Status | Display Name | Size | Volume Type | Bootable | Attached to | +--------------------------------------+-----------+----------------+------+-------------+----------+-------------+ | 2355d34e-eede-4c92-b609-aa4f6d3853b8 | available | myGold | 1 | gold | false | | +--------------------------------------+-----------+----------------+------+-------------+----------+-------------+
[root@tkstack ~(keystone_demo)]# df -h /var/lib/cinder/mnt/7a2ad54f8ce5ac4c4f092e6cb1f1b39b Filesystem Size Used Avail Use% Mounted on 10.130.208.55:/vol4_mirrored 50G 896K 50G 1% /var/lib/cinder/mnt/7a2ad54f8ce5ac4c4f092e6cb1f1b39b [root@tkstack ~(keystone_demo)]# ls -lR /var/lib/cinder/mnt # (略) /var/lib/cinder/mnt/7a2ad54f8ce5ac4c4f092e6cb1f1b39b: total 0 -rw-rw-rw- 1 nobody nobody 1.0G Aug 2 23:42 volume-2355d34e-eede-4c92-b609-aa4f6d3853b8
Cinder Volume のスナップショットの作成
• Cinder Volume のスナップショット作成を実行した場合、NetApp Unified Driver により clustered Data ONTAP で FlexClone が働きファイルが作成される
• /var/lib/cinder/mnt 以下の該当のボリュームが存在する場所に保存される
• Cinder の volume.log には NetApp Unified Driver が使用された旨表示される(これは Cinder Volume 作成時にも出力される)
2014-09-01 10:09:31.087 25163 INFO cinder.volume.drivers.netapp.ssc_utils [-] Running stale ssc refresh job for server: 10.130.202.180 and vserver demo-nfs-svm 2014-09-01 10:09:31.450 25163 INFO cinder.volume.drivers.netapp.ssc_utils [-] Successfully completed stale refresh job for server: 10.130.202.180 and vserver demo-nfs-svm
Cinder Volume のスナップショットの作成
• Clustered Data ONTAP のコンソールから diag 権限、systemshell でクラスタノードにログインして下記のログを確認することにより、FlexClone が動作したことを確認可能
kuramochi-cdot-01% tail –f /mroot/etc/log/mlog/command-history.log 0000007f.00159fc7 01a5fc8f Mon Sep 01 2014 08:10:08 +00:00 [kern_command-history:info:958] ontapi :: 10.130.205.95 :: openstack :: <netapp xmlns="http://www.netapp.com/filer/admin" version="1.21" vfiler="demo-nfs-svm"><clone-create> <volume>vol2_dedup</volume><destination-path>snapshot-0b650160-b933-45e8-a67c-c589d590ebb4</destination-path><source-path> volume-4df54053-1e01-4e4c-bf32-392711577375</source-path></clone-create></netapp> :: Pending 0000007f.00159fc9 01a5fc8f Mon Sep 01 2014 08:10:08 +00:00 [kern_command-history:info:958] ontapi :: 10.130.205.95 :: openstack :: clone-create :: Success
参考情報
• OpenStack Deployment and Operations Guide
– http://netapp.github.io/openstack-deploy-ops-guide/
• OpenStack Documentation
– http://docs.openstack.org/
• OpenStack@NetApp
– http://netapp.github.io/openstack/
• NetApp Community – OpenStack Discussions
– http://community.netapp.com/t5/OpenStack-Discussions/bd-p/openstack-discussions
Cinder の設定(iSCSI)
[DEFAULT]
# 中略
enabled_backends=cdot-iscsi
[cdot-nfs]
volume_backend_name=cdot-nfs
volume_driver=cinder.volume.drivers.netapp.common.NetAppDriver
netapp_server_hostname=10.130.202.180 #・・・・cluster management lif のアドレス
netapp_server_port=80
netapp_storage_protocol=iscsi
netapp_storage_family=ontap_cluster
netapp_login=openstack #・・・ロールとして新たに作ったAPI用のユーザ
netapp_password=netapp123 #・・・ロールとして新たに作ったAPI用のユーザのパスワード
netapp_vserver=demo-iscsi-svm #・・・対象のSVM
/etc/cinder.conf
予定
• Vol.002
– NFS Copy Offload Client の特徴と設定
• Vol.003
– “Glance , Nova” + Cinder での特徴
• Vol.00X (未定)
– Manila
– E-Series
おしまい