はじめに
Data ONTAP(NetAppストレージOS)が提供するAPIを使用したストレージ管理方法について記載します。
今回はAPIを実行するためにNetApp Manageability SDK(NMSDK)を使用します。
APIの種類としては以下になります。
7-Mode
:7-Mode用のAPI
Cluster mode
:Clustered Data ONTAP用のAPI、SVM(vserver)の作成やaggrの操作などクラスタレベルのオブジェクトを操作をしたい場合に使用します。
Vserver
:volume作成やSnapshot作成などSVM(vserver)レベルのオブジェクトを操作したい場合に使用します。
事前準備
1 NMSDKのダウンロード
ここからダウンロード
※要アカウント
2 配置
使用したい言語のライブラリをサーバに配置
netapp-manageability-sdk-5.2\lib
* perl
* python
* ruby
* DotNet
* Java
* C
主に使用するライブラリは、NaServerとNaElementになります。
NaServerは、FASへの接続やAPIの実行などで使用します。
NaElementは、XMLパーサーでAPIの入出力を管理します。
NMDSKの基本的な使い方
NMSDKを使用したAPIの処理の流れは、以下になります。
- FASへの接続するためのNaServerインスタンスを作成
- 実行したいAPIとその引数を指定してNaElementインスタンスを作成
- NaElementインスタンスを引数にしてNaServerインスタンスからAPIを実行
- 実行結果を確認
使用例
Pythonを使用したサンプルが以下になります。
import sys
import pickle
sys.path.append("./nmsdk")
from NaServer import *
storage = "Cluster mgmtのIPアドレス"
user = "ユーザ名"
password = "パスワード"
s = NaServer(storage, 1, 20)
s.set_admin_user(user, password)
api = NaElement('vserver-create') #vserver-create APIを指定
api.child_add_string('language','C');
xi1 = NaElement('name-server-switch');
api.child_add(xi1)
xi1.child_add_string('nsswitch','file')
api.child_add_string('root-volume','svm_root')
api.child_add_string('root-volume-aggregate','aggr10')
api.child_add_string('root-volume-security-style','unix')
api.child_add_string('vserver-name','demo_svm');
output = s.invoke_elem(api) #APIの実行
print(output.results_status()) #実行結果の確認
便利なツール
NMSDKに含まれるzexplore.exeを使用するとC#,C,JAVA,Perl,Python,Rubyのコードを自動生成してくれます。
各種APIで必要な引数などの情報などを確認することができます。
使い方は簡単でAPIの種類とバージョンを指定したうえで、APIを右クリックして「Generate」するとコードが自動生成されます。
言語はPreferences-Languagesで指定できます。