Samba 4.xでActive Directoryを1から立てる


このコンテンツの更新版として「Samba 4.7.xでActive Directoryを1から立てる」(2018/03/02)を公開しています。


LinuxでActive Directoryサーバを立てることにした。
アプライアンスとして作られているものがあるのは知ってるけど、あえて、それは使わないことにし、CentOS6で環境を作ることにした。

メリットについて上げてみる。
・samba 4.xでは、DNSサーバ/LDAPサーバ機能を統合してしまっているので
 sambaの設定をするだけでおしまい
・Active Directoryユーザの作成などは、ADに参加しているWindowsマシンに管理者ユーザでログオンし
 その端末にインストールしたActive Directory管理ツールから行える。

えぇ、bindの設定とかopenldapの設定とか、気にしなくていいんです。
(ただし、小規模の場合。大規模になると、パフォーマンスの問題でbindも使った方がいいらしい。openldapは機能が足らないせいでお役御免です)
(追記: WindowsServer2012のクラスタリングのためには使えませんでした)


では、「Samba AD DC HOWTO」を見ながらセットアップ。

1. 関連ソフトウェアパッケージのインストール
Sambaをセットアップするにあたり必要な周辺ソフトウェア群の準備を行う。
Samba 4/OS Requirements」を参考にパッケージをインストールしていく。

CentOS6.5の最小インストール状態なので、いろいろ追加していくことになる。

設定中、sshセッションが切れたりすることがあるかもしれないので「screen」を追加。

# yum install screen 

Requirementsに記載されているパッケージを追加。

# yum install gcc libacl-devel libblkid-devel gnutls-devel \
   readline-devel python-devel gdb pkgconfig krb5-workstation \
   zlib-devel setroubleshoot-server libaio-devel \
   setroubleshoot-plugins policycoreutils-python \
   libsemanage-python setools-libs-python setools-libs \
   popt-devel libpcap-devel sqlite-devel libidn-devel \
   libxml2-devel libacl-devel libsepol-devel libattr-devel \
   keyutils-libs-devel cyrus-sasl-devel cups-devel bind-utils

ドキュメントの製作で使うらしい以下のパッケージも追加

# yum install docbook-style-xsl libxslt

2. ファイルシステムのマウントオプション調整
Sambaで利用したいファイルシステムのマウントオプションを調整する。
Samba 4/OS Requirements」の「File System Support」に記載されているようにext3/ext4の場合、「user_xattr,acl,barrier=1」オプションをつけてマウントしろ、とのこと。

CentOS6の場合、標準状態では、以下のように/etc/fstabで指定されていた。

UUID=080add24-43d7-4502-aa31-2e7a4b9116d5 /home                   ext4    defaults        1 2

この場合、/proc/mountsで確認できるマウント状況は、以下の様になっている。

/dev/sdb1 /home ext4 rw,seclabel,relatime,barrier=1,data=ordered 0 0

「user_xattr,acl」が足らないようなので/etc/fstabを以下のように書き換えた。

UUID=080add24-43d7-4502-aa31-2e7a4b9116d5 /home                   ext4    user_xattr,acl,barrier=1         1 2

が、/proc/mounts は同じ状態。

/dev/sdb1 /home ext4 rw,seclabel,relatime,barrier=1,data=ordered 0 0

mount -vではきちんと反映されているように見えるという点が非常に謎。

/dev/sdb1 on /home type ext4 (rw,user_xattr,acl,barrier=1)

以下の様にテストを実行し、このような出力結果が出れば問題ない、とのことなので、上記のマウントの件は問題なし、とした。

# touch test.txt
# setfattr -n user.test -v test test.txt
# setfattr -n security.test -v test2 test.txt
# getfattr -d test.txt
# file: test.txt
user.test="test"

# getfattr -n security.test -d test.txt
# file: test.txt
security.test="test2"

# touch test3.txt
# setfacl -m g:adm:rwx test3.txt
# getfacl test3.txt
# file: test3.txt
# owner: root
# group: root
user::rw-
group::r--
group:adm:rwx
mask::rwx
other::r--

#

3. ソース取得
wgetでsamba 4.1.5のソースを取得。

# wget http://ftp.samba.org/pub/samba/samba-4.1.5.tar.gz

4. configure

# tar xfz samba-4.1.5.tar.gz
# cd samba-4.1.5
# ./configure

で構成情報取得。

Requirementにある以外に必要となったもの。

# yum install perl openldap-devel

以下はあったほうがいいのかなぁ?という感じのもの。

# yum install pam-devel

ちなみに「openldap-devel」をインストールしないと、以下のメッセージが出て、Active Directory機能が使えないので注意。

# ./configure
<略>
Active Directory support not available: LDAP support ist not available.
Building without Active Directory support.
<略>
#

5. make & make install

# make
<略>
# make install
<略>
#

6.インストール完了確認
sambaのバージョン確認

# /usr/local/samba/sbin/samba -V
Version 4.1.5
#

7. Active Directoryのセットアップ
ドメイン「adosakana.local」を作成します。
また、sambaの機能を使ってAD DNSを構築するので「SAMBA_INTERNAL」を選択します。

# /usr/local/samba/bin/samba-tool domain provision --use-rfc2307 --interactive
Realm: adosakana.local
 Domain [adosakana]:
 Server Role (dc, member, standalone) [dc]:
 DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]:
 DNS forwarder IP address (write 'none' to disable forwarding) [172.30.50.100]:
Administrator password:
Retype password:
Looking up IPv4 addresses
Looking up IPv6 addresses
No IPv6 address will be assigned
Setting up share.ldb
Setting up secrets.ldb
Setting up the registry
Setting up the privileges database
Setting up idmap db
Setting up SAM db
Setting up sam.ldb partitions and settings
Setting up sam.ldb rootDSE
Pre-loading the Samba 4 and AD schema
Adding DomainDN: DC=adosakana,DC=local
Adding configuration container
Setting up sam.ldb schema
Setting up sam.ldb configuration data
Setting up display specifiers
Modifying display specifiers
Adding users container
Modifying users container
Adding computers container
Modifying computers container
Setting up sam.ldb data
Setting up well known security principals
Setting up sam.ldb users and groups
Setting up self join
Adding DNS accounts
Creating CN=MicrosoftDNS,CN=System,DC=adosakana,DC=local
Creating DomainDnsZones and ForestDnsZones partitions
Populating DomainDnsZones and ForestDnsZones partitions
Setting up sam.ldb rootDSE marking as synchronized
Fixing provision GUIDs
A Kerberos configuration suitable for Samba 4 has been generated at /usr/local/samba/private/krb5.conf
Setting up fake yp server settings
Once the above files are installed, your Samba4 server will be ready to use
Server Role:           active directory domain controller
Hostname:              adcent6
NetBIOS Domain:        ADOSAKANA
DNS Domain:            adosakana.local
DOMAIN SID:            S-1-5-21-3559328066-3556283577-2939567822
#

8. sambaを起動

# /usr/local/samba/sbin/samba
# ps -ef|grep samba
root      5516     1  4 11:08 ?        00:00:00 /usr/local/samba/sbin/samba
root      5517  5516  0 11:08 ?        00:00:00 /usr/local/samba/sbin/samba
root      5518  5516  0 11:08 ?        00:00:00 /usr/local/samba/sbin/samba
root      5519  5517  4 11:08 ?        00:00:00 /usr/local/samba/sbin/smbd -D --option=server role check:inhibit=yes --foreground
root      5520  5516  0 11:08 ?        00:00:00 /usr/local/samba/sbin/samba
root      5521  5516  0 11:08 ?        00:00:00 /usr/local/samba/sbin/samba
root      5522  5516  6 11:08 ?        00:00:00 /usr/local/samba/sbin/samba
root      5523  5516  0 11:08 ?        00:00:00 /usr/local/samba/sbin/samba
root      5524  5516  0 11:08 ?        00:00:00 /usr/local/samba/sbin/samba
root      5525  5516  0 11:08 ?        00:00:00 /usr/local/samba/sbin/samba
root      5526  5516  0 11:08 ?        00:00:00 /usr/local/samba/sbin/samba
root      5527  5516  0 11:08 ?        00:00:00 /usr/local/samba/sbin/samba
root      5528  5516  0 11:08 ?        00:00:00 /usr/local/samba/sbin/samba
root      5529  5516  0 11:08 ?        00:00:00 /usr/local/samba/sbin/samba
root      5530  5516  0 11:08 ?        00:00:00 /usr/local/samba/sbin/samba
root      5534  5519  0 11:08 ?        00:00:00 /usr/local/samba/sbin/smbd -D --option=server role check:inhibit=yes --foreground
root      5537  1081  0 11:08 pts/1    00:00:00 grep samba
#

9. 動作確認
CentOS内部からSMB接続を行うテストを実施。

# /usr/local/samba/bin/smbclient --version
Version 4.1.5
# /usr/local/samba/bin/smbclient -L localhost -U%
Domain=[ADOSAKANA] OS=[Unix] Server=[Samba 4.1.5]

        Sharename       Type      Comment
        ---------       ----      -------
        netlogon        Disk
        sysvol          Disk
        IPC$            IPC       IPC Service (Samba 4.1.5)
Domain=[ADOSAKANA] OS=[Unix] Server=[Samba 4.1.5]

        Server               Comment
        ---------            -------

        Workgroup            Master
        ---------            -------
#

もう1つ。
netlogon共有にAdministrator権限でアクセスできるか確認。

# /usr/local/samba/bin/smbclient //localhost/netlogon -UAdministrator -c 'ls'
Enter Administrator's password:
Domain=[ADOSAKANA] OS=[Unix] Server=[Samba 4.1.5]
  .                                   D        0  Tue Feb 25 11:06:38 2014
  ..                                  D        0  Tue Feb 25 11:06:48 2014

                35275 blocks of size 524288. 31250 blocks available
#

10.AD DNSの動作テスト
AD DNSが想定通りに動作しているかテストします。

まず、どんなzoneが登録されているのか確認

# /usr/local/samba/bin/samba-tool dns zonelist 127.0.0.1 -U Administrator
Password for [ADOSAKANA\Administrator]:
  2 zone(s) found

  pszZoneName                 : adosakana.local
  Flags                       : DNS_RPC_ZONE_DSINTEGRATED DNS_RPC_ZONE_UPDATE_SECURE
  ZoneType                    : DNS_ZONE_TYPE_PRIMARY
  Version                     : 50
  dwDpFlags                   : DNS_DP_AUTOCREATED DNS_DP_DOMAIN_DEFAULT DNS_DP_ENLISTED
  pszDpFqdn                   : DomainDnsZones.adosakana.local

  pszZoneName                 : _msdcs.adosakana.local
  Flags                       : DNS_RPC_ZONE_DSINTEGRATED DNS_RPC_ZONE_UPDATE_SECURE
  ZoneType                    : DNS_ZONE_TYPE_PRIMARY
  Version                     : 50
  dwDpFlags                   : DNS_DP_AUTOCREATED DNS_DP_FOREST_DEFAULT DNS_DP_ENLISTED
  pszDpFqdn                   : ForestDnsZones.adosakana.local
#

Active Directoryで使用するDNSのSRVレコードが登録されているか確認。

# host -t SRV _ldap._tcp.adosakana.local 127.0.0.1
Using domain server:
Name: 127.0.0.1
Address: 127.0.0.1#53
Aliases:

_ldap._tcp.adosakana.local has SRV record 0 100 389 adcent6.adosakana.local.
# host -t SRV _kerberos._udp.adosakana.local 127.0.0.1
Using domain server:
Name: 127.0.0.1
Address: 127.0.0.1#53
Aliases:

_kerberos._udp.adosakana.local has SRV record 0 100 88 adcent6.adosakana.local.
#

ADサーバのホスト名が登録されているか確認

# host -t A adcent6.adosakana.local 127.0.0.1
Using domain server:
Name: 127.0.0.1
Address: 127.0.0.1#53
Aliases:

adcent6.adosakana.local has address 172.17.44.216
#

11. DNSサーバの変更
ADサーバの/etc/resolv.confを、ADサーバ自身を使う様に書き換え

12. /etc/krb5.conf の変更
/usr/local/samba/private/krb5.conf にあるので、それを使用する。

# cat /usr/local/samba/private/krb5.conf
[libdefaults]
        default_realm = ADOSAKANA.LOCAL
        dns_lookup_realm = false
        dns_lookup_kdc = true
# cp /usr/local/samba/private/krb5.conf /etc/krb5.conf
cp: `/etc/krb5.conf' を上書きしてもよろしいですか(yes/no)? y
#

13. Kerberosの動作確認

# kinit administrator@ADOSAKANA.LOCAL
Password for administrator@ADOSAKANA.LOCAL:
Warning: Your password will expire in 41 days on Tue Apr  8 11:06:46 2014
#

正常に設定されていれば、Administratorユーザのパスワード有効期限が表示されます。

例えば、DNSサーバの指定が誤っていると、以下のエラーとなります。

# kinit administrator@ADOSAKANA.LOCAL
kinit: Cannot resolve servers for KDC in realm "ADOSAKANA.LOCAL" while getting initial credentials
#

これは、kinitは、DNSサーバに登録されているkerberos関連のSRVレコードを読みにいくためです。

# kinit administrator@adosakana.local
kinit: KDC reply did not match expectations while getting initial credentials
#

こっちのメッセージがでる場合は、ドメイン名を小文字で指定していることが原因です。
大文字で指定し直します。

なお、kinitではなく、「klist」コマンドで一覧表示も可能です。

# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: administrator@ADOSAKANA.LOCAL

Valid starting     Expires            Service principal
02/25/14 11:42:49  02/25/14 21:42:49  krbtgt/ADOSAKANA.LOCAL@ADOSAKANA.LOCAL
        renew until 03/04/14 11:42:46
#

以上で、Active Directoryサーバとしての設定は終了でした。

このあと、Windows Server 2012を、この作成したばかりのADOSAKANA.LOCALに参加させたところ、正常に参加できました。


2014/05/08追記

この手順で作成した場合、ドメイン/フォレストの機能レベルは「Windows Server 2003」になります。
samba 4.1.7においては、「Windows Server 2008 R2」まで上げることができます。
手順については、「samba 4.xでドメイン/フォレストの機能レベルを変更する」にて解説しています。

Nimble Storageにsshでログインしてみた


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とは全然違う・・・と感じましたね。

Nimble Storageの総代理店権を東芝が持ってった


2018/02/21 追記
このページ、いまも時々アクセスされているので、その後のことを書いておきます。

東芝が日本の総代理店ではなくなってやりやすくなった!
と思った矢先にHPE買収、なんて事態になりました。
HPEのプロダクトとしてやっていますが、果たして、今度、どうなることやら?


いままで何度か紹介しているSSD/HDDハイブリッド型のストレージNimble Storage。
10月にアセンテックが日本での取扱を開始した。

で、1月から本格的にいろいろ動き出すはずだったのが、いろいろスローダウン・・・

その原因が一昨日発表に・・・
東芝「米・ニンブルストレージ社と日本における総代理店契約を締結

えぇ、東芝が日本国内の総代理店権を持っていったのです。

まぁ、夏頃から、東芝ITが保守やるのかなぁ?という感じのアクセスログがあったりしたので、保守レベルが上がるんじゃないかと想定される、というのはいいんですけど、
早いところ、いろいろ済ませて欲しいところです。

うちの過去記事リスト
2012/08/06:Nimble Storage
2013/05/21:SSD+SATAのハイブリッドストレージ Nimble Storageについて調べてみた
2013/10/30:Nimble Storageの日本代理店が発表になったようで
2013/11/08:Nimble Storageについていろいろ調べたこと 2013/11/08

さて、これだけしかないのもなんなので写真でも入れときますね

外観1

裏面はこんな感じ
裏面1

Nimble Storageについていろいろ調べたこと 2013/11/08


vForum2013 TOKYOにNimble Storageが出てたので、いろいろ確認してみた。
あと、マニュアルも入手したので、そこで調べた疑問点も列挙してある。


・海外事例を見るとパフォーマンス増強のために
 コントローラアップグレードがあるようだが
 日本でも提供するのか?

日本でも提供する予定だが、提供方法に関して詳細が決まっていない。

なお、アップグレードには2種類ある。
・Scale performance
・Scale cache

「Scale performance」はコントローラのアップグレードで、これは、マザーボードを丸ごと上位機種のものに入れ替えることになる。
Nimble Storageは「CS2x0用CPUを1つ積んだマザー」と「CS4x0用CPUを2つ積んだマザー」がある。
このため、「Scale performance」が適用できるものはCS2x0シリーズのみとなり、アップグレード後は「CS4x0」になる。
片コントローラずつ交換することでオンライン交換が可能。

「Scale cache」はSSDの容量増加である。
Nimble Storageでは、SSDを4本使用している。
この4本のSSDを交換し、容量を増加させることでパフォーマンスを上げる。
交換し、一時的にReadパフォーマンスが劣化するが、オンラインのままで行うことができる。
ちなみにSSDはslot7~10にあるが、slot7から順に交換する必要があるらしい。


・「Scale performance」の効能は?
CPUリソースや搭載メモリ(DRAM)が増加することにより、ランダムI/O・シーケンシャルI/Oのスループット増加が見込める。
いろんなボトルネック要素に対して効果がある。

・「Scale cache」の効能は?
Nimble Storageでは、SSDはRead cache目的で利用している。
このため、SSD容量の増加は、よく使われるデータが多い場合に有用である。
逆にSSDの利用率が低い場合は、効果が薄い。


・Firmwareってどんな感じなのか?

一般向けGAリリースの最新は2013/07/29リリースのv1.4.7.0。
(その1つ前は2013/04/12リリースのv1.4.6.0)
次期バージョンとして、v2.0系列の開発が進んでおり、2013/11/04にv2.0.5.0がリリースされているが、まだβ扱いとなっている。


・複数のNimble Storageを1つのように使うのってどんな感じなの?
実はv2.0からの新機能で「Group」という名称のクラスタ機能です。

1つのNimble Storageをマスターとして、その配下に他のNimble Storageをおく、というようなイメージになる。
システムの停止は必要となるが、運用中の「複数のNimble Storage」または「複数のGroup」を、ディスクの中身はそのままに統合することもできる。

ちなみに管理画面上は下記の様になる。
nimble


・ボリュームの最大数は?
255個作成可能。

・snapshotの最大数は?
ボリューム毎で最大1000、システム全体で10000まで作成できる


・実現できるレプリケーションの種類は?
基本的には、1volume→1volumeの内容丸ごとコピーのレプリケーション。
帯域制限をかけることもできる。
同期/非同期/スケジュール同期、といった設定はなく、「非同期」相当のみ。

・指定できる帯域制限の種類は?
月,火,水,木,金の8:00~19:00は、1Mbpsに制限
といった「曜日」と「時間帯」を指定した、帯域制限をかけることができる。
この指定は複数おこなうことができる。


・シリアルコンソールがある
アクティブ側のコントローラにのみシリアルコンソールログインができる。
初期設定やfirmwareアップデートをシリアルコンソールから行うことも可能。

Nimble Storageの日本代理店が発表になったようで


2012年8月に紹介したNimble Storageですが、このたび、アセンテックが国内総代理店として取り扱うことが決まったようです。

・プレスリリース:アセンテック、ハイブリッド型ストレージシステム 「Nimble Storage」の国内販売開始
アセンテック Nimble Storage製品ページ

春ぐらいからNimble Storageの日本上陸に関する話がちらほらあり、うちの記事がNimble Storageに関する唯一の日本語記事ということもあって、サポートとかを担当しそうないろんなベンダさんのIPアドレスから、アクセスがいろいろあったのがなかなかおもしろかったですね。
(もちろん、アセンテックさんからのアクセスも結構ありました。というか、参考にしたんだから謝礼くださいw)

過去記事の紹介
Nimble Storage(2012/08/06)
SSD+SATAのハイブリッドストレージ Nimble Storageについて調べてみた(2013/05/21)
ネットワークストレージ業界の標準ハードウェアSupermicro 6036ST-6LR(2013/05/15)

Nimble Storageについて知りたい人は、2番目の記事(SSD+SATAのハイブリッドストレージ Nimble Storageについて調べてみた)。

要約
・汎用的に使えるiSCSIストレージ
・SSDはReadキャッシュとして使用する
・書き込みの高速化は「データの圧縮」と「バッファ蓄積による書き込みのシーケンシャルWrite化」などで実現
・SSDは壊れても大丈夫な構成(実データは全てHDD上にある)
・VSS(Microsoft)やSRM/VAAI(VMware)などの連携プラグインも提供済み
・筐体間レプリケーションもサポート
・Nimble Storageの筐体はSupermicro 6036ST-6LRを採用