Nimble Storageにsshでログインしてみた。
ユーザは「admin」(標準で作成されている管理者ユーザ)。
パスワードは初期セットアップ時に指定したものを使う。
# ssh admin@IPアドレス
Password:
/ $ su
bash: su: command not found
/ $
一般ユーザっぽい雰囲気だったので、権限をかえられるのか?と「su」を実行してみたがコマンドがないらしい。
とりあえずディレクトリ構成確認。
/ $ ls -al
drwxr-xr-x 13 0 0 1024 Nov 8 04:24 .
drwxr-xr-x 13 0 0 1024 Nov 8 04:24 ..
drwxr-xr-x 2 0 0 1024 Nov 8 04:24 bin
drwxr-xr-x 3 0 0 1024 Nov 8 04:24 dev
drwxr-xr-x 2 0 0 1024 Nov 8 04:23 diags
drwxr-xr-x 5 0 0 1024 Nov 8 04:24 etc
drwxr-xr-x 3 0 0 4096 Jan 4 11:11 home
drwxr-xr-x 2 0 0 1024 Nov 8 04:24 lib64
drwxr-xr-x 2 0 0 1024 Nov 8 04:23 mnt
drwxr-xr-x 3 0 0 1024 Nov 8 04:19 nimble
drwxr-xr-x 2 0 0 1024 Nov 8 04:23 sbin
drwxr-xr-x 6 0 0 1024 Nov 8 04:23 usr
drwxr-xr-x 3 0 0 4096 Jan 4 11:08 var
/ $ df
bash: df: command not found
/ $ cat /proc/mounts
cat: can't open '/proc/mounts': No such file or directory
/ $
dfコマンドや/proc/mountsを使って、パーテーション構成を確認する、といったことはできないようだ。
設定ファイルはどんなものがあるのかな?と/etc配下を見てみる。
/ $ ls -al /etc
drwxr-xr-x 5 0 0 1024 Nov 8 04:24 .
drwxr-xr-x 13 0 0 1024 Nov 8 04:24 ..
drwxr-xr-x 2 0 0 1024 Nov 8 04:23 acpi
drwxr-xr-x 3 0 0 1024 Nov 8 04:23 diag
lrwxrwxrwx 1 0 0 14 Nov 8 04:24 group -> /var/etc/group
-rw-r--r-- 1 0 0 48 Aug 16 2012 hosts
lrwxrwxrwx 1 0 0 18 Nov 8 04:24 localtime -> /var/etc/localtime
drwxr-xr-x 2 0 0 1024 Nov 8 04:23 nimpart
-rw-r--r-- 1 0 0 56 Aug 16 2012 nsswitch.conf
lrwxrwxrwx 1 0 0 15 Nov 8 04:24 passwd -> /var/etc/passwd
-rw-r--r-- 1 0 0 291 Aug 16 2012 profile
lrwxrwxrwx 1 0 0 20 Nov 8 04:24 resolv.conf -> /var/etc/resolv.conf
/ $ ls -l /var/etc
-rw-r--r-- 1 0 0 14 Jan 4 11:08 group
-rw-r--r-- 1 0 0 331 Jan 29 16:25 localtime
-rw-r--r-- 1 0 0 44 Jan 4 11:08 passwd
-rw-rw-rw- 1 0 0 42 Jan 29 16:26 resolv.conf
/ $
/etcの中はreadonlyのようで、ユーザがカスタマイズするファイルについては/var/etc/に置かれる、という形を取っているようだ。
登録済みのユーザとグループはこんな感じ。
/ $ cat /etc/passwd
admin:x:1000:1000:CLI user:/home:/bin/clish
/ $ cat /etc/group
admin:x:1000:
/ $
adminユーザしか載ってない、というもの。
次に、実行できそうなコマンドは何があるのか確認してみる。
/ $ ls /bin
ash dd getopt man pwd stat vi
bash echo grep mkdir rm stty watch
cat ed hostname mktemp rmdir sync zcat
chmod egrep ln more sed touch
cp false ls mv sh true
cut fgrep lsattr printenv sleep usleep
/ $ ls /sbin
arp busybox
/ $ ls /usr/bin
[ du id readlink tail uptime
[[ env install realpath tee wc
awk expand length reset telnet wget
basename expr less resize test which
cksum find md5sum script tftp whoami
clear fold mkfifo seq time xargs
cmp ftpget nohup sha1sum tr yes
comm ftpput nslookup sort traceroute
dc hd od split ttysize
diff head patch strings unexpand
dirname hexdump ping sum uniq
dos2unix hostid printf tac unix2dos
/ $ ls /usr/sbin
/ $
busyboxでいろいろ代用している模様。
/ $ busybox
BusyBox v1.13.0 (2013-11-07 11:23:31 PST) multi-call binary
Copyright (C) 1998-2008 Erik Andersen, Rob Landley, Denys Vlasenko
and others. Licensed under GPLv2.
See source distribution for full notice.
Usage: busybox [function] [arguments]...
or: function [arguments]...
BusyBox is a multi-call binary that combines many common Unix
utilities into a single executable. Most people will create a
link to busybox for each function they wish to use and BusyBox
will act like whatever it was invoked as!
Currently defined functions:
[, [[, arp, ash, awk, basename, cat, chmod, cksum, clear, cmp, comm,
cp, dc, dd, diff, dirname, dos2unix, du, echo, ed, egrep, env, expand,
expr, false, fgrep, find, fold, ftpget, ftpput, getopt, grep, hd,
head, hexdump, hostid, hostname, id, install, length, ln, ls, lsattr,
md5sum, mkdir, mkfifo, mktemp, more, mv, nohup, nslookup, od, patch,
printenv, printf, pwd, readlink, realpath, reset, resize, rm, rmdir,
script, sed, seq, sh, sha1sum, sleep, sort, split, stat, strings,
stty, sum, sync, tac, tail, tee, telnet, test, tftp, time, touch,
tr, true, ttysize, unexpand, uniq, unix2dos, uptime, usleep, watch,
wc, wget, which, whoami, xargs, yes
/ $
Nimble独自の管理プログラム系はどこにあるのかな?と$PATHを確認してみると、/nimble/usr/binというディレクトリが・・・
/ $ echo $PATH
/bin:/usr/bin:/sbin:/usr/sbin:/nimble/usr/bin
/ $ ls /nimble/usr/bin
? failover perfpolicy snapcoll version
alert halt prottmpl software vmwplugin
array help reboot sshkey vol
chapuser initiatorgrp route stats volcoll
ctrlr ip setup subnet
date nic shelf timezone
disk partner snap useradmin
/ $
コマンド名を見る限りでは、Nimble StorageのWeb GUIで操作することができることが、CLIでも実装されている、というような感じに見受けられる・・・というか、おそらく、Web GUIのバックエンドでは、これらのCLIが実行されているだけ、という気がする。
とりあえず、「array」というコマンドを実行してみる。
/ $ array
ERROR: One of following options must be specified: --info, --edit, --resetup, --create_throttle, --delete_throttle, --edit_throttle, --autosupport_validate, --autosupport_initiate, --unset_http_proxy
INFO: Use --help option to view usage information.
/ $ array --info
Model: CS220G
Serial: AF-******
Version: 1.4.8.0-54807-opt
Array name: **************
Array IP address: xxx.xxx.xxx.xx1
Array IP netmask: 255.255.0.0
Discovery IP address: xxx.xxx.xxx.xx1
Discovery IP netmask: 255.255.0.0
Domain name: **************
DNS server(s): **************
NTP server: **************
Timezone: Asia/Tokyo
SMTP server: **************
SMTP port: 25
Minimum alert email severity level: WARNING
Alert email recipient address(es): *******@***********
Alert email from address: *******@***********
Copy alert email to Nimble Storage support: Yes
Send event data to Nimble Storage support: Yes
Allow Nimble Storage support to establish secure connection to array: No
HTTP proxy server:
HTTP proxy server port:
HTTP proxy server username:
HTTP proxy server password: (on file if set)
Default volume reserve (% of volume size): 0
Default volume quota (% of volume size): 100
Default volume warn level (% of volume size): 80
Default snapshot reserve (% of volume size): 0
Default snapshot quota (% of volume size): unlimited
Default snapshot warn level (% of volume size): 0
Total capacity (MB): 7740973
Volume usage (MB): 71797
Volume compression: 1.46X
Volume space saved (MB): 33001
Snapshot usage (MB): 2143
Snapshot compression: 1.59X
Snapshot space reduction: 324.41X
Snapshot space saved (MB): 693238
Unused reserve (MB): 0
Free space (MB): 7667032
Last login: admin @
Throttled replication bandwidth: unlimited
Replication throttles: N/A
iSNS enabled: No
iSNS hostname:
iSNS port: 3205
SNMP trap enabled: No
SNMP trap hostname: N/A
SNMP trap port: N/A
SNMP get enabled: No
SNMP community: N/A
SNMP get port: N/A
SNMP system location: N/A
SNMP system contact: N/A
Array time: Thu Jan ** **:**:** 2014
/ $
Web GUI上では「Manage」→「Array」に相当する操作になるようだ。
「ctrlr」コマンドは何なのか?
/ $ ctrlr --info
ERROR: required parameter is missing in 'info'
INFO: Use --help option to view usage information.
/ $ ctrlr --list
----+----------+--------------------+----------------+--------+-------+--------
Name State Hostname Support IP Power Fans Temper-
Supplies Status -ature
Status Status
----+----------+--------------------+----------------+--------+-------+--------
A active xxx.xxx.xxx.xx3 OK OK OK
B standby xxx.xxx.xxx.xx4 OK OK OK
/ $ ctrlr --info A
Name: A
Serial number: AF-xxxxxx-C1
State: active
Hostname:
Support IP address: xxx.xxx.xxx.xx3
Support IP netmask: 255.255.0.0
Support IP nic: eth1
Hostname:
Power supply: OK
power-supply1 at left rear: ok
power-supply2 at right rear: ok
Cooling fans: OK
fan1 at lower front of controller A: ok, speed: 11730rpm
fan2 at lower left rear of controller A: ok, speed: 10608rpm
fan3 at lower right rear of controller A: ok, speed: 10608rpm
fan4 at upper right front of controller A: ok, speed: 10410rpm
fan5 at upper left front of controller A: ok, speed: 10245rpm
fan6 at upper left rear of controller A: ok, speed: 10560rpm
Temperature sensors: OK
motherboard at motherboard: ok, temperature: 28C
bp-temp1 at left-side backplane: ok, temperature: 37C
System partition status: OK
Last AutoSupport contact: Jan 30 2014 00:50:39
/ $ ctrlr --info B
Name: B
Serial number: AF-xxxxxx-C2
State: standby
Hostname:
Support IP address: xxx.xxx.xxx.xx4
Support IP netmask: 255.255.0.0
Support IP nic: eth1
Hostname:
Power supply: OK
power-supply1 at left rear: ok
power-supply2 at right rear: ok
Cooling fans: OK
fan1 at lower front of controller B: ok, speed: 10608rpm
fan2 at lower left rear of controller B: ok, speed: 10608rpm
fan3 at lower right rear of controller B: ok, speed: 10608rpm
fan4 at upper right front of controller B: ok, speed: 10410rpm
fan5 at upper left front of controller B: ok, speed: 10275rpm
fan6 at upper left rear of controller B: ok, speed: 10365rpm
Temperature sensors: OK
motherboard at motherboard: ok, temperature: 28C
bp-temp2 at right-side backplane: ok, temperature: 38C
System partition status: OK
Last AutoSupport contact: N/A
/ $
各コントローラ(マザーボード)の状態を取得するコマンドであったようだ。
システム停止するための操作は、Web GUI上だと「Administrator」→「shutdown」だったので、shutdownコマンドを探したんですが、rebootしかないなー、と思ってしまったのですが、こちらは「halt」コマンドでした。
/ $ halt
ERROR: One of following options must be specified: --array, --controller
INFO: Use --help option to view usage information.
/ $ halt --array
The array is shutting down and the head shelf will power off. You will not be able to use the user interface.
Once the array head shelf is powered down, it is safe to manually turn off any expansion shelves attached to this array.
To re-establish the user interface, you must first power any expansion shelves back on, power the array back on and log in again.
INFO: Initiated array shutdown.
/ $
「halt –array」にてシステム停止ができました。
いまのところ、Nimble Storage側に、UPS連携の仕組みが用意されていないですが、sshでログインして「halt –array」コマンドを実行することで停止ができるので、そういうUPSを用意すれば問題がないですね。
UPSソリューションズのAdvanced NWボード対応のUPSシリーズ(UPSS-SP,UPSS-HP,UPSS-HS)とかが使えるでしょうね。(Nimble StorageはSSH v2対応で、SSH v1のみ対応のSNMP/Webボードは使えません)
まぁ、コマンドを全部紹介していってもきりがないので、これくらいで・・・
各コマンドの詳細については、「man コマンド名」でちゃんと表示されます。
しっかりとCLI管理の場合も考えられている良い作りになっています。
・・・どこぞのWeb GUIがほぼ全てのTintri VMstoreとは全然違う・・・と感じましたね。