前回クラスタセットアップウィザードが起動するところまでをやったので、今回はクラスタセットアップ編になります。
クラスタの作り方
ONTAPがOSとして起動したあとはストレージクラスタの設定になりますが、設定方法としては主に三種類に分かれます。
- IPアドレスが設定済み
- REST APIを使う
- Web GUIを使う
- IPアドレスが設定されていない・アクセスできない
- ConsoleからCUIを使う
個人的な好みと 自動化の楽ちんさから APIで行いたいと思います。
REST APIによるクラスタ設定
Cluster作成 APIの詳細については、公式のPOST /clusterを参照してください。
POSTデータの準備
設定値のうち、必須で必要となるのは、クラスタの名前と管理者パスワードのみです。
ここでは configuration_backupを除いて、推奨されているプロパティを全て設定することにします。
今回、私の環境でポストする内容は以下のようになります。
{
"name": "ontapsim",
"password": "supersecret1!",
"location": "my desktop pc",
"contact": "admin@local.netapp.com",
"dns_domains": [
"local.netapp.com"
],
"name_servers": [
"192.168.255.254"
],
"ntp_servers": [
"ntp.nict.jp"
],
"license": {
"keys": [
"XXXXXXXXXXXXXXAAAAAAAAAAAAAA",
"XXXXXXXXXXXXXXABGAAAAAAAAAAA",
"ライセンスを必要な分だけ追加AAA"
]
},
"management_interface": {
"ip": {
"address": "192.168.255.210",
"gateway": "192.168.255.254",
"netmask": "255.255.255.0"
}
},
"nodes": [
{
"name": "ontapsim-01",
"management_interface": {
"ip": {
"address": "192.168.255.211"
}
}
}
]
}
設定値の簡単な説明は以下のようになります。ネットワーク等の設定値は適宜調整してください。
名前 | 設定値 |
---|---|
name | クラスタ名 |
password | クラスタ管理者のパスワード(英文字以外に数字が最低限1文字必要) |
location | クラスタを設置する場所等を示す任意の文字列 |
contact | 管理者のメールアドレス等、連絡先を示す任意の文字列 |
dns_domains | リスト: 名前解決に使われるドメイン名です。"local"は使えないので注意 |
name_servers | リスト: DNSサーバをIPv4か IPv6で指定 |
ntp_servers | リスト: 時刻合わせを行うNTPサーバ名 |
license.keys | リスト: ライセンスキー文字列 |
management_interface.ip.address | クラスタ管理IPアドレス |
management_interface.ip.netmask | クラスタ管理IPアドレス |
management_interface.ip.gateway | クラスタ管理IPアドレス |
nodes | リスト: クラスタのノード |
nodes[0].name | 最初のノードの名前 |
nodes[0].management_interface.ip.address | 最初のノードの管理IPアドレス(netmask等はクラスタIPをベースに設定される) |
REST APIで管理IPを変更したときの注意
暫定的な管理IPが DHCPや Auto IPで自動付与された物(インターフェース名:mgmt_auto)で、management_interface.ipを指定した場合、Cluster APIで設定完了後 自動付与されたアドレスが削除されます。
APIを投げるのに利用したアドレスではアクセスが出来なくなりますので注意してください。
また、REST APIでクラスタを作るタイミングでは、管理ネットワークのポート等を細かく設定する事が出来ないため、ネットワーク要件等で細かいポート指定等がある場合、ここで指定せずに、クラスタ作成後に適宜設定を入れていく必要があります。
license.keysについて
ライセンスのキーについてはダウンロードしたテキストファイルにかかれている 28文字の 文字列です。
Cluster Base Licenseと Feature Licenseを全て記入してしまって構いません。
# Clusterライセンスは以下のような形で 1つ
Cluster Base license = XXXXXXXXXXXXXXAAAAAAAAAAAAAA
# Featureライセンスは以下のような形で 各機能について 2つ=2ノード分記載されています。
CIFS XXXXXXXXXXXXXXXXXAAAAAAAAAAA CIFS protocol
管理IPの確認
管理IPの確認をします。コンソールからadminでログインして、以下のコマンドを実行します。
network interface show
必要なときだけ:作業端末での IP Aliasの設定
私の環境では、ONTAP Simulatorに Auto IPが設定されており、作業端末に Auto IPが無いためこの作業が必要になります。
DHCP等でIPが与えられていて作業端末から接続が可能な場合は、この項目は飛ばしてください。
Auto IPのアドレスには pingが届かないので、一時的に作業端末に対して 169.254.0.0/16で IP aliasを設定してやります。
作業をしている Linux端末で macvtap1の interfaceが 同じbridgeに接続されています。以下のコマンドでstaticにアドレス1を設定します。
sudo ip address add 169.254.0.1/16 dev macvtap1
Auto IPでの作業が終わったら以下のコマンドで削除します。
sudo ip address del 169.254.0.1/16 dev macvtap1
APIの実行
まず最初に pingで 管理IPへの疎通を確認します。
user@kvm:~/work/ontap9.11.1$ ip address show macvtap1
11: macvtap1@br1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
inet 169.254.0.1/16 scope global macvtap1
valid_lft forever preferred_lft forever
user@kvm:~/work/ontap9.11.1$ ping 169.254.224.62
PING 169.254.224.62 (169.254.224.62) 56(84) bytes of data.
64 bytes from 169.254.224.62: icmp_seq=1 ttl=64 time=0.587 ms
curlを使って投げます。ここでは一つのノードしか使いませんので、シングルノードクラスターを指定します。
curl -s -k -X POST "https://169.254.224.62/api/cluster?single_node_cluster=true" -d "@cluster-create.json" -u admin:
以下の様にJob IDが帰ってくればClusterの作成がスタートしています。エラーの場合には、なんらかのメッセージが戻ってきます。
{
"job": {
"uuid": "869d4926-46ef-11ed-b130-0ba1a7e2cc91",
"_links": {
"self": {
"href": "/api/cluster/jobs/869d4926-46ef-11ed-b130-0ba1a7e2cc91"
}
}
}
}
Jobの完了待ち
ClusterセットアップのJob IDが戻ってきたので状況を確認します。
セットアップ中に、DHCPやAuto IPで自動的についていたmgmt_autoのIPアドレスは消去されるため、cluster作成時に指定したIPに対して APIを発行します。
Jobの確認用のAPIについては公式のGET /cluster/josb/{uuid}をご確認ください。
curl -s -k -X GET "https://192.168.255.210/api/cluster/jobs/869d4926-46ef-11ed-b130-0ba1a7e2cc91" -u "admin:supersecret1!"
以下のように stateが runningから successになったら完了です。エラーが出た場合はメッセージを確認して対処します。
user@kvm:~/work/ontap9.11.1$ curl -s -k -X GET "https://192.168.255.210/api/cluster/jobs/869d4926-46ef-11ed-b130-0ba1a7e2cc91" -u "admin:supersecret1!"
{
"uuid": "869d4926-46ef-11ed-b130-0ba1a7e2cc91",
"description": "POST /api/cluster",
"state": "success",
"message": "success",
"code": 0,
"start_time": "2022-10-08T09:56:48+00:00",
"end_time": "2022-10-08T09:58:32+00:00",
"_links": {
"self": {
"href": "/api/cluster/jobs/869d4926-46ef-11ed-b130-0ba1a7e2cc91"
}
}
}
クラスタ管理画面(System Manager)へのアクセス
Cluster作成時に設定した管理IPに対して httpsでアクセスするとログイン画面が表示されます。
ここから設定した adminパスワードでログインできれば完了です。
この後は……
ここまでで、クラスタが出来たので、あとはRAIDやデータ用のネットワーク・インターフェース、iSCSIやNFS/CIFS等を設定して使っていくだけなのですが、ONTAP Simulatorでは、その前にやっておくと良い設定があるので次回はその説明をします。
-
APIPAがアサインするのは 169.254.1.0以後なので、このアドレスであればAuto IPにはぶつからないと思うのですが、ちょっと安直すぎます。ネットワークが閉じられていない等の理由で安全を考えるなら avahi-autoipd 等を使うべきかもしれません。 ↩