NetApp ONTAP9.xでNDMPバックアップする場合の設定項目


NetApp ONTAP 9.xでNDMPバックアップを取得する際に必要な設定項目についての覚え書き

公式のマニュアル:SVMを対象としたNDMPの設定FlexVolのSVMを対象としたNDMPモードの管理

以前は各物理ノードがNDMPを受け付けていたものが、現在はNetAppの管理Storage VM(クラスタ)がNDMPの命令を受け付けるようになっている。

(1) NDMPの有効化

まず、現状有効になっているかを「vserver services ndmp status」を実行して確認する。

ontap-select-cluster::> vserver services ndmp status
This table is currently empty.

ontap-select-cluster::>

有効にするには「vserver services ndmp on -vserver 管理SVM名」を実行する

ontap-select-cluster::> vserver services ndmp on -vserver ontap-select-cluster

ontap-select-cluster::> 

有効になったことを「vserver services ndmp show」を実行して確認する。

ontap-select-cluster::> vserver services ndmp show
VServer       Enabled   Authentication type
------------- --------- -------------------
ontap-select-cluster
              true      challenge
svm0          false     challenge
2 entries were displayed.

ontap-select-cluster::> 

(2) ユーザ作成

NDMPアクセス用のユーザを、NetAppのローカルユーザとして作成する。

下記の例では「backupadmin」というユーザを作成している。「role:backup」という権限で作成することが重要です。

なお、ここで指定するパスワードをそのままNDMPバックアップ時に指定するわけではありません。

ontap-select-cluster::> security login create -user-or-group-name backupadmin -application ssh -authmethod password -role backup

Please enter a password for user 'backupadmin':
Please enter it again:
ontap-select-cluster::> 

NDMPバックアップ時に使用するパスワードは、自動生成のパスワードになります。

「vserver services ndmp generate-password -vserver 管理SVM名 -user ユーザ名」でパスワードを確認します。なお、ユーザ作成時のパスワードを元に生成しているので、generate-passwordを実行するたびにパスワードが変わるということはありません。

ontap-select-cluster::>  vserver services ndmp generate-password -vserver ontap-select-cluster -user backupadmin

 Vserver: ontap-select-cluster
    User: backupadmin
Password: qG5CqQHYxw9fE57g
ontap-select-cluster::> 

(3) LIFの作成

NDMPバックアップは、ネットワークインタフェースのroleがinterclusterであるものを使用します。

現状のinterclusterを確認するには「network interface show -role intercluster」を実行します

ontap-select-cluster::> network interface show -role intercluster
There are no entries matching your query.

ontap-select-cluster::>

存在しない場合は、新規で作成するか、既存のLIFを流用するための設定を行います。

流用する場合は公式マニュアルの「LIFの設定」をみていろいろやります。(面倒くさいはず)

作成する際は、「-home-node」と「-home-port」で主として使用する物理ノードとネットワークポートを指定します。

ontap-select-cluster::> network interface create -vserver ontap-select-cluster -lif cluster_intercluster -role intercluster -service-policy default-intercluster -address 172.17.44.109 -netmask 255.255.0.0 -home-node ontap-select-node -home-port e0a

ontap-select-cluster::>

作成されたことを「network interface show -role intercluster」を実行して確認します。

ontap-select-cluster::> network interface show -role intercluster
            Logical    Status     Network            Current       Current Is
Vserver     Interface  Admin/Oper Address/Mask       Node          Port    Home
----------- ---------- ---------- ------------------ ------------- ------- ----
ontap-select-cluster
            cluster_intercluster
                         up/up    172.17.44.109/16   ontap-select-node
                                                                   e0a     true

ontap-select-cluster::> 

メモ

「vserver show -ins」で表示される「Allowed Protocols」「Disallowed Protocols」の扱い

物理ノードに対するNDMPが有効になっていないか?「system service ndmp show」で「Enabled:false」を確認

対象となるSVMと、必要となるロールの違い:SVMを対象としたNDMPモードでのユーザ認証

Storage Virtual Machine(SVM)を対象としたNDMPモードでは、NDMPユーザ認証がロールベース アクセス制御と統合されます。SVMのコンテキストでは、NDMPユーザのロールはvsadminまたはvsadmin-backupのどちらかである必要があります。クラスタのコンテキストでは、NDMPユーザのロールはadminまたはbackupのどちらかである必要があります。

SVMのfirewall policy設定でinterclusterのポリシーでNDMPが許可されているか「system services firewall policy show -policy intercluster」

NetApp NDMP設定の詳細確認「vserver services ndmp show -ins」の「Preferred Interface Role」に書かれているroleのインタフェースがNDMPに使用できる

メモ2

NDMPバックアップ中の進行状況確認を行う場合「vserver services ndmp status -fields data-state,data-operation,data-bytes-processed,mover-bytes-moved,mover-bytes-left-to-read,data-path」あたりを実行?

netapp9101::> vserver services ndmp status -fields data-state,data-operation,data-bytes-processed,mover-bytes-moved,mover-bytes-left-to-read,data-path
vserver    session-id data-state data-operation data-bytes-processed mover-bytes-moved mover-bytes-left-to-read data-path
---------- ---------- ---------- -------------- -------------------- ----------------- ------------------------ ---------
netapp9101 1000:26573 IDLE       NOACTION       0                    0                 0                        NA
netapp9101 1000:26718 ACTIVE     BACKUP         6694621184           0                 0                        /svm0/shares
netapp9101 1000:26726 IDLE       NOACTION       0                    0                 0                        NA
netapp9101 1000:26730 IDLE       NOACTION       0                    0                 0                        NA
netapp9101 1000:26736 IDLE       NOACTION       0                    0                 0                        NA
netapp9101 1000:26745 IDLE       NOACTION       0                    0                 0                        NA
6 entries were displayed.

netapp9101::>

mover-bytes-moved と mover-bytes-left-to-read はテープ直結時じゃないと値がでない?

firewallなどで止められているか確認する際に、お互いのポート番号確認するのであれば「vserver services ndmp status -fields data-state,data-operation,data-bytes-processed,data-path,client-port,client-addr,data-con-addr,data-con-port」

netapp9101::> vserver services ndmp status -fields data-state,data-operation,data-bytes-processed,data-path,client-port,client-addr,data-con-addr,data-con-port
vserver    session-id data-state data-operation data-con-addr data-con-port data-bytes-processed client-addr   client-port data-path
---------- ---------- ---------- -------------- ------------- ------------- -------------------- ------------- ----------- ---------
netapp9101 1000:26573 IDLE       NOACTION                     0             0                    172.17.44.172 55903       NA    
netapp9101 1000:26718 ACTIVE     BACKUP         172.17.44.172 56036         14100891648          172.17.44.172 55988       /svm0/shares
netapp9101 1000:26726 IDLE       NOACTION                     0             0                    172.17.44.172 56044       NA    
netapp9101 1000:26730 IDLE       NOACTION                     0             0                    172.17.44.172 56077       NA    
netapp9101 1000:26736 IDLE       NOACTION                     0             0                    172.17.44.172 56116       NA    
netapp9101 1000:26745 IDLE       NOACTION                     0             0                    172.17.44.172 56156       NA    
6 entries were displayed.

netapp9101::>

2段階のNFSマウントをする方法


直接アクセスできないネットワークにあるNFSサーバをNFSでマウントすることはできないか試行錯誤してみた。

普通にCentOS7やSolaris11からやってみたところ、NFSマウントした領域のNFS exportでの公開はnfsd側から「Cannot export /mnt, possibly unsupported filesystem or fsid= required」とか、「Invalid filesystem」とか言われて設定できない。

これはuser-spaceで動作するnfsdを使えば回避できるんじゃないかと探してみた結果、unfs3というものを発見。ソースコードは https://github.com/unfs3/unfs3

Linux,FreeBSD,Solaris,AIX,Irix,MacOSXで動く以外に、Windows上でも制限ありで動作するとのこと。

Windows上で動かした場合は、unfsdが使用するWindowsユーザを1つ割り当てる形になるので、NFS経由のアクセスは全てそのWindowsユーザがアクセスしている、という扱いになるようだ。

あと、このunfs3はNFS ver3のみ使え、NFS v4やNFS v2でのアクセスには対応していない。また、NFS v3でもREADDIRPLUS(属性付きディレクトリの読み取り)周りは実装していないとのこと。

READDIRPLUSはOracle/Solarisのドキュメントによればlsコマンドなどでディレクトリ内のファイル一覧を表示させる動作を高速化するためのものなので、まぁ、なくてもなんとかなる感じのもの。

属性付きディレクトリの読み取り
NFS バージョン 3 では、READDIRPLUS と呼ばれる操作があります。たとえば、ls や ls -l などの、大部分の READDIR が READDIRPLUS コールとして発行されます。バージョン 3 で ls -l コマンドを実行すると、ディレクトリ内の名前リストと共に、ファイルハンドルと属性が返されます。バージョン 2 では、名前が最初に返され、ファイルハンドルと属性を取得するには、続いてサーバーを呼び出す必要があります。
バージョン 3 の READDIRPLUS 操作の利点は、ファイルごとに GETATTR 要求を送信する必要がないため時間が短縮され、ls と ls -l の速度が同程度になることです。

要件は満たせそうなので、とりあえずテスト用CentOS7環境でunfs3を動作させてみる。

準備

環境をインストール

# yum install git
# yum groupinstall "開発ツール"

コンパイル

まず、ソースコードの入手

$ git clone https://github.com/unfs3/unfs3.git

READMEにあるとおりbootstrap&configureを実行

$ cd unfs3/unfs3
$ ./bootstrap
$ ./configure

そしてmake

$ make
for i in Config ; do (cd $i && make all) || exit; done
make[1]: ディレクトリ `/root/unfs3/Config' に入ります
gcc -g -O2 -Wall -W -I.. -I. -I..   -c -o lex.yy.o lex.yy.c
gcc -g -O2 -Wall -W -I.. -I. -I..   -c -o y.tab.o y.tab.c
ar crs lib.a lex.yy.o y.tab.o
make[1]: ディレクトリ `/root/unfs3/Config' から出ます
gcc -g -O2 -Wall -W  -D_GNU_SOURCE -I.   -c -o afsgettimes.o afsgettimes.c
gcc -g -O2 -Wall -W  -D_GNU_SOURCE -I.   -c -o afssupport.o afssupport.c
gcc -g -O2 -Wall -W  -D_GNU_SOURCE -I.   -c -o attr.o attr.c
attr.c: 関数 ‘get_free_bad_dir_entry’ 内:
attr.c:550:5: エラー: ‘for’ ループ初期化宣言は C99 モード内でのみ許可されてい ます
     for (int i = 0;i < BAD_DIR_CACHE_SIZE;i++) {
     ^
attr.c:550:5: 備考: オプション -std=c99 または -std=gnu99 をコードコンパイル時に使用してください
attr.c: 関数 ‘find_bad_dir_entry’ 内:
attr.c:573:5: エラー: ‘for’ ループ初期化宣言は C99 モード内でのみ許可されてい ます
     for (int i = 0;i < BAD_DIR_CACHE_SIZE;i++) {
     ^
make: *** [attr.o] エラー 1
$

エラーとなってしまいます。

これはコンパイル時のオプションに「-std=c99」を指定するようにして解決

$ export CPPFLAGS="-std=c99";./configure
$ make
<略>
$

インストールと設定

普通にmake installすると/usr/local以下にインストールされます。

# make install
/usr/bin/install -c -d /usr/local/sbin
/usr/bin/install -c -d /usr/local/share/man/man7
/usr/bin/install -c -d /usr/local/share/man/man8
/usr/bin/install -c unfsd /usr/local/sbin/unfsd
/usr/bin/install -c -m 644 ./Extras/tags.7 /usr/local/share/man/man7/tags.7
/usr/bin/install -c -m 644 ./unfsd.8       /usr/local/share/man/man8/unfsd.8
#

NFSで公開するディレクトリの設定は、普通のnfsdと同じく /etc/exports ファイルを使用。「-e」オプションで別のファイルを指定することも可能です。

注意点としては、Linuxだとホスト名指定に「*」とnetgroupが使用できず、ログに「unfsd[20479]: syntax error in ‘/etc/exports’, exporting nothing」といった出力が出てしまうという点です。

「*」については「0.0.0.0/0」で代替できます。

/etc/exports ファイルを編集した場合、変更にはexportfsコマンドは使用できません。

unfsdに対してHUPシグナルを送ることで反映されます。(kill -HUP unfsdのPID)

unfsdの起動は「/usr/local/sbin/unfsd」の実行、停止はunfsdへのTERMシグナル送信(kill -TERM unfsdのPID)です。

東京証券取引所arrowheadを止めた設定 on_panic


10月1日に東京証券取引所arrowheadシステムは共有ディスク装置のメモリ障害が起因になって発生したとのこと。

ようやく情報が出そろって何が原因だったのかがわかってきた。

書かれていた情報をまとめると後述のようになる。
(注:Data ONTAP 7G, Data ONTAP 8, ONTAP 9という正式表記がありますがめんどいので全部ONTAPで統一します)

なお、富士通が直接やった案件ではどうなのかわかりませんが、それ以外からNetAppを購入している場合、この設定項目を変更するなんてことはしないので、影響ありません。心配しなくて大丈夫です。

前提条件について

・NetApp FASシリーズのOEMである富士通 NR1000Fを使用している

・NetAppはONTAP OSというOSで動作している

・arrowheadで使用していたNASのOSバージョンは(制御機構バージョン)、初代(2010/01)は 7、2代目(2015/09)は8、今回障害が発生した3代目(2019/11)は9

・ONTAP OSはversion 8からシステムが作り直されておりシステム体系がだいぶ変わった。ただ、いままでの操作を新システムに変換する為の一覧(7-Modeオプションとclustered Data ONTAPコマンドのマッピング)が用意されている

・ONTAP 8は7-modeとClusteredの2種類がある
 7-modeはONTAP 7と同じコマンド体系だが内部はClusteredベース

・ONTAP 8を7-modeかClusteredのどちらで使っていたのか不明
 2代目(2015/09)だと、8.1.x最終バージョンの8.1.4(July 2014)はサポート切れになるので
 September 2014リリースの8.2.2、April 2015リリースの8.2.3?
 7-modeが廃止されてClusteredに一本化されたONTAP 8.3はApril 2015リリース

・ONTAP 7とONTAP 8 7-modeではサーバの上でNFS/CIFSファイルサービスが動く形式
 管理とファイルサービスは同一サーバ上で動作
 1物理ノード=1ファイルサービス

・ONTAP 8 Clustered/ONTAP 9は仮想基盤の上でNFS/CIFSサービス用仮想マシン(StorageVM/SVM)が動く形式
 管理とファイルサービスは別扱いで動作
 1つの物理ノードの上で複数のStorageVMを動作可能

設定内容について

・今回問題となった設定は「storage failoverのonpanicオプション」に関するもの

・このオプションに相当するONTAP 7時代の設定はマッピングには「cf.takeover.on_panic」<=>「storage failover modify -onpanic」と記載されている。

・cf.takeover.on_panic設定についてONTAP 7.3.2のドキュメントではデフォルトが「on」となっている(それ以前のバージョンの同一箇所にはデフォルト記載が無い)

・ONTAP 7.xのリリース時期を比較すると、初代稼働が2010/01ということは2009/夏前には試験が始まってそうなので、7.3.2だと時期が早すぎるので、 7.3.1.1 あたりと想定される
 7.3.1: 23 January 2009, 7.3.1.1: April 2009, 7.3.2: Aug 14 2009
 7.3.3: 18 June 2010,7.3.4: 14 March 2011

・ONTAP 7.3時代のマニュアルには「iSCSIライセンスを入れるとcf.takeover.on_panicがonに設定される」という記述もあり、on_panic設定がデフォルト「off」だった時代もあるようだ

・ONTAP 7.3のマニュアルの「Reasons for takeover」にcf.takeover.on_panicはデフォルト「off」と明記。ONTAP7.3.2の同じ箇所にもデフォルトoffと書いてある。ONTAP7.3.2は同一マニュアル内でon_panicのデフォルト値が異なっているという事態に。どっちなんだよ

・ONTAP 8の7-modeの場合はcf.takeover.on_panicオプションがあるがoff時の説明が「a node panic will not cause an automatic takeover.」に変わっており、「You should not turn this option off unless you are instructed by technical support to do so.」と記載されている。

さて、問題となった設定の「ONTAP7のcf.takeover.on_panic」と「ONTAP8以降のstorage failoverのonpanicオプション」の違いを見てみる

まず、ONTAP 7での「cf.takeover.on_panic

この値は「on」でも「off」でもサービスが切り替わるのは変わらない。

ONTAP 7では相手ノードからの応答が15秒以内になかったら相手が死んだと判断して切り替える、というのが基本となっている。

しかし、PANICが発生し、それがちゃんと検出できた場合は相手が死んでいるのは確定しているので、15秒待たないで切り替えていいんじゃないか?というのが「cf.takeover.on_panic」の扱いになる。

ONTAP 7時代の cf.takeover.on_panic
 on = PANICを検出したら即座に切り替える
 off = 通常の障害検出である15秒待ってから切り替える

ONTAP 8以降ではこのcf.takeover.on_panicオプションは storage failoverのonpanicオプション に置き換えられた、とマッピングに記載されている。

storage failoverのonpanicオプションについて確認するとonrebootオプションとあわせて、「自動テイクオーバーの制御用コマンド」として掲載されている。

役割は「ノードでのパニック」「ノード再起動」が発生した場合に、ストレージサービス(StorageVM)が使用しているストレージを活きているノード上に所有権を移動して継続稼働させるか、というものになっている。

また、この動作の説明はONTAP8 7-mode時のcf.takeover.on_panicに書かれている説明とも合致する。

ONTAP 8以降のstorage failoverのonpanicオプションとONTAP 8 7-modeのcf.takeover.on_panic
 on = 切り替えを行う
 off = 切り替えない

ただ、ここらへんの違いを下記のドキュメント記述だけで判断できるのか?という感じではある。

ONTAP 7.3.2のcf.takeover.on_panic設定についての記述

ONTAP 8.2.1の7-modeでのcf.takeover.on_panicについての記述

ONTAP 9でのstorage failoverについての記述

ONTAP 7.3の「Reasons for takeover

ONTAP 7.3.2の「Reasons for takeover


プレスリリースからの引用

JPX 2020/10/05付け「arrowhead の障害に関する原因と対策について」より

画像
画像

JPX 2020/10/19付け「10月1日に株式売買システムで発生した障害について

富士通 2020/10/19付け「東京証券取引所様の株式売買システム「arrowhead」で発生した障害の原因と対策について」と「[重要]ストレージシステム「ETERNUS NR1000 series」におけるコントローラ自動切替の仕様に関する重要なお知らせ

画像
画像
画像

NetApp ONTAPシミュレータのディスク構成を変更する


NetApp ONTAPシミュレータの初期構成は1024MB HDDが28本接続されている、という構成になっている。

使いにくいので、9GB HDD構成に変更して使用することにする。

ONTAPシミュレータのデータディスクのありか

vSphere上で vsim-netapp-DOT9.7-cm_nodar.ova をデプロイした場合、下記の様な構成になっている。

このとき、ハードディスク4の230GBの中にファイルとして1024MBディスクのイメージファイルが作成されている。

もし、200GB以上のデータを書き込みたい場合は、初回起動前にハードディスク4の容量を増やす必要がある。初回起動時はUFSファイルシステムを作成してくれるので対応できるのだが、シミュレータ内にはファイルシステム拡張用のコマンドが用意されていないので初回起動時以外に拡張しようとすると、FreeBSD 12のDVDで起動してgrowfsコマンドで拡張する、といった操作が必要になる。

ハードディスク4のサイズを「1TB」に変更した場合はこんな感じです。(ついでにCPUとメモリを増量している)

ディスク削除

ONTAPシミュレータ仮想マシンの電源を入れ、下記の「Press Ctrl-C for Boot Menu」が出たらCtrlキーとCキーを同時押しする。

しばらく待つと下記の様なメニューが表示されるので「4」のClean Configuration and initialize all disks」を選択する。

初期化確認は「yes」で答える。

しばらく待つと再起動して、下記の様な初期セットアップが始まる。

これはyesと入力しないで、Ctrl+Cで強制中断すると下記の様にログインプロンプトが現れるので「admin」ユーザでログインする。(パスワードは聞かれない)

「set diag」を実行すると「systemshellコマンド」が利用できるようになる。これはONTAP OS上でUNIXコマンドを実行できるようになるものです。(“system node systemshell”が正式コマンド名なのですが、ONTAP 9.7ではsystemshellでも実行できます)

「systemshell localhost “df -h /sim/dev”」と実行すると、UNIXで「df -h /sim/dev」を実行する、というような動作になります。

なお、日本語配列キーボードを使う場合、「”」は「Shift+8」で入力します。

::> set diag

Warning: These diagnostic commands are for use by NetApp personnel only.
Do you want to continue? {y|n}: y

::*> system node systemshell local "df -h /sim/dev"
Filesystem    Size    Used   Avail Capacity  Mounted on
/dev/ad3      223G     11G    194G     5%    /sim
::*>

上記のdfコマンドの実行がlockされているとしてエラーになる場合があります。これはONTAP設定が2023年に変わったことによる影響です。その場合はロックを解除します。

ONTAPシミュレータ上で認識するディスクのイメージファイルは「/sim/dev/,disks」というディレクトリにあります(「,」は誤字ではない)

現状あるファイルを確認するには「systemshell localhost “ls -l /sim/dev/,disks”」と実行します。

(画像はないです)

::*> systemshell local "ls -l /sim/dev/,disks"
total 11024296
-rwxr-xr-x  1 root  wheel         912 Sep  2 13:56 ,reservations
-rw-r--r--  1 root  wheel        1372 Sep  2 13:56 Shelf:DiskShelf14
-rw-r--r--  1 root  wheel  1094312960 Sep 24 13:27 v0.16:NETAPP__:VD-1000MB-FZ-520:14001600:2104448
-rw-r--r--  1 root  wheel  1094312960 Sep 24 13:27 v0.17:NETAPP__:VD-1000MB-FZ-520:14001601:2104448
-rw-r--r--  1 root  wheel  1094312960 Sep 24 13:27 v0.18:NETAPP__:VD-1000MB-FZ-520:14001602:2104448
-rw-r--r--  1 root  wheel  1094312960 Sep 24 13:27 v0.19:NETAPP__:VD-1000MB-FZ-520:14001603:2104448
-rw-r--r--  1 root  wheel  1094312960 Sep 24 13:27 v0.20:NETAPP__:VD-1000MB-FZ-520:14001604:2104448
-rw-r--r--  1 root  wheel  1094312960 Sep 24 13:27 v0.21:NETAPP__:VD-1000MB-FZ-520:14001605:2104448
-rw-r--r--  1 root  wheel  1094312960 Sep 24 13:10 v0.22:NETAPP__:VD-1000MB-FZ-520:14001606:2104448
-rw-r--r--  1 root  wheel  1094312960 Sep 24 13:05 v0.24:NETAPP__:VD-1000MB-FZ-520:14001607:2104448
-rw-r--r--  1 root  wheel  1094312960 Sep 24 13:05 v0.25:NETAPP__:VD-1000MB-FZ-520:14001608:2104448
-rw-r--r--  1 root  wheel  1094312960 Sep 24 13:05 v0.26:NETAPP__:VD-1000MB-FZ-520:14001709:2104448
-rw-r--r--  1 root  wheel  1094312960 Sep 24 13:05 v0.27:NETAPP__:VD-1000MB-FZ-520:14001710:2104448
-rw-r--r--  1 root  wheel  1094312960 Sep 24 13:05 v0.28:NETAPP__:VD-1000MB-FZ-520:14001711:2104448
-rw-r--r--  1 root  wheel  1094312960 Sep 24 13:05 v0.29:NETAPP__:VD-1000MB-FZ-520:14001712:2104448
-rw-r--r--  1 root  wheel  1094312960 Sep 24 13:05 v0.32:NETAPP__:VD-1000MB-FZ-520:14001713:2104448
-rw-r--r--  1 root  wheel  1094312960 Sep 24 13:27 v1.16:NETAPP__:VD-1000MB-FZ-520:16391700:2104448
-rw-r--r--  1 root  wheel  1094312960 Sep 24 13:27 v1.17:NETAPP__:VD-1000MB-FZ-520:16391701:2104448
-rw-r--r--  1 root  wheel  1094312960 Sep 24 13:27 v1.18:NETAPP__:VD-1000MB-FZ-520:16391702:2104448
-rw-r--r--  1 root  wheel  1094312960 Sep 24 13:27 v1.19:NETAPP__:VD-1000MB-FZ-520:16391703:2104448
-rw-r--r--  1 root  wheel  1094312960 Sep 24 13:05 v1.20:NETAPP__:VD-1000MB-FZ-520:16391704:2104448
-rw-r--r--  1 root  wheel  1094312960 Sep 24 13:05 v1.21:NETAPP__:VD-1000MB-FZ-520:16391705:2104448
-rw-r--r--  1 root  wheel  1094312960 Sep 24 13:05 v1.22:NETAPP__:VD-1000MB-FZ-520:16391706:2104448
-rw-r--r--  1 root  wheel  1094312960 Sep 24 13:05 v1.24:NETAPP__:VD-1000MB-FZ-520:16391707:2104448
-rw-r--r--  1 root  wheel  1094312960 Sep 24 13:05 v1.25:NETAPP__:VD-1000MB-FZ-520:16391708:2104448
-rw-r--r--  1 root  wheel  1094312960 Sep 24 13:05 v1.26:NETAPP__:VD-1000MB-FZ-520:16391709:2104448
-rw-r--r--  1 root  wheel  1094312960 Sep 24 13:05 v1.27:NETAPP__:VD-1000MB-FZ-520:16391710:2104448
-rw-r--r--  1 root  wheel  1094312960 Sep 24 13:05 v1.28:NETAPP__:VD-1000MB-FZ-520:16391711:2104448
-rw-r--r--  1 root  wheel  1094312960 Sep 24 11:50 v1.29:NETAPP__:VD-1000MB-FZ-520:16391712:2104448
-rw-r--r--  1 root  wheel  1094312960 Sep 24 11:50 v1.32:NETAPP__:VD-1000MB-FZ-520:16391713:2104448
::*>

いまある仮想ディスクを削除する場合は「systemshell localhost “sudo rm /sim/dev/,disks/*”」と実行します。

削除した後の、ディスク再作成はvsim_makedisksというコマンドで実行します。

いろいろオプションがあるのでまずは「systemshell local “vsim_makedisks -h”」と実行して確認します。

::*> systemshell local "vsim_makedisks -h"
Usage: /usr/sbin/vsim_makedisks [ -n <additional number of disks to create> ]
          [ -t <disk type ID> ]
          [ -e <additional sectors> ]
          [ -a <adapter on which to start populating disks ]
          [ -h ]

By default 5 disks will be added. The <disk type ID> can be one
of the following: (NOTE, 0 is the default)
                                                               Fast
Type Vendor ID Product ID       Usable Size[B] Actual Size[B]  Zero  BPS   RPM
  0  NETAPP__  VD-16MB_________     16,777,216     38,273,024   No   512  10000
  1  NETAPP__  VD-35MB_________     35,913,728     57,409,536   No   512  10000
  2  NETAPP__  VD-50MB_________     52,428,800     73,924,608   No   512  10000
  3  NETAPP__  VD-100MB________    104,857,600    126,353,408   No   512  10000
  4  NETAPP__  VD-500MB________    524,288,000    545,783,808   No   512  10000
  5  NETAPP__  VD-1000MB_______  1,048,576,000  1,070,071,808   No   512  10000
  6  NETAPP__  VD-16MB-FZ______     16,777,216     38,273,024   Yes  512  15000
  7  NETAPP__  VD-35MB-FZ______     35,913,728     57,409,536   Yes  512  15000
  8  NETAPP__  VD-50MB-FZ______     52,428,800     73,924,608   Yes  512  15000
  9  NETAPP__  VD-100MB-FZ_____    104,857,600    126,353,408   Yes  512  15000
 10  NETAPP__  VD-500MB-FZ_____    524,288,000    545,783,808   Yes  512  15000
 11  NETAPP__  VD-1000MB-FZ____  1,048,576,000  1,070,071,808   Yes  512  15000
 12  NETAPP__  VD-16MB-520_____     16,777,216     38,273,024   No   520  10000
 13  NETAPP__  VD-35MB-520_____     35,913,728     57,409,536   No   520  10000
 14  NETAPP__  VD-50MB-520_____     52,428,800     73,924,608   No   520  10000
 15  NETAPP__  VD-100MB-520____    104,857,600    126,353,408   No   520  10000
 16  NETAPP__  VD-500MB-520____    524,288,000    545,783,808   No   520  10000
 17  NETAPP__  VD-1000MB-520___  1,048,576,000  1,070,071,808   No   520  10000
 18  NETAPP__  VD-16MB-FZ-520__     16,777,216     38,273,024   Yes  520  15000
 19  NETAPP__  VD-35MB-FZ-520__     35,913,728     57,409,536   Yes  520  15000
 20  NETAPP__  VD-50MB-FZ-520__     52,428,800     73,924,608   Yes  520  15000
 21  NETAPP__  VD-100MB-FZ-520_    104,857,600    126,353,408   Yes  520  15000
 22  NETAPP__  VD-500MB-FZ-520_    524,288,000    545,783,808   Yes  520  15000
 23  NETAPP__  VD-1000MB-FZ-520  1,048,576,000  1,070,071,808   Yes  520  15000
 24  NETAPP__  VD-16MB-FZ-ATA__     16,777,216     51,388,416   Yes  512   7200
 25  NETAPP__  VD-35MB-FZ-ATA__     36,700,160     73,801,728   Yes  512   7200
 26  NETAPP__  VD-50MB-FZ-ATA__     52,428,800     91,496,448   Yes  512   7200
 27  NETAPP__  VD-100MB-FZ-ATA_    104,857,600    150,478,848   Yes  512   7200
 28  NETAPP__  VD-500MB-FZ-ATA_    524,288,000    622,338,048   Yes  512   7200
 29  NETAPP__  VD-1000MB-FZ-ATA  1,048,576,000  1,212,162,048   Yes  512   7200
 30  NETAPP__  VD-2000MB-FZ-520  2,097,512,000  2,119,007,808   Yes  520  15000
 31  NETAPP__  VD-4000MB-FZ-520  4,194,304,000  4,215,799,808   Yes  520  15000
 32  NETAPP__  VD-2000MB-FZ-ATA  2,097,512,000  2,391,810,048   Yes  512   7200
 33  NETAPP__  VD-4000MB-FZ-ATA  4,194,304,000  4,751,106,048   Yes  512   7200
 34  NETAPP__  VD-100MB-SS-512_    104,857,600    126,353,408   Yes  512  15000
 35  NETAPP__  VD-500MB-SS-520_    524,288,000    545,783,808   Yes  520  15000
 36  NETAPP__  VD-9000MB-FZ-520  9,437,184,000  9,458,679,808   Yes  520  15000
 37  NETAPP__  VD-9000MB-FZ-ATA  9,437,184,000 10,649,346,048   Yes  512   7200

::*>

いろんなディスクタイプが選択できますが、BPSが520になっているものを優先して選びます。

その中で一番容量が大きいのは36番なので、「-t 36」というオプションを使います。

今回は60本を増設してみます(なお、あとで分かりますが、56本までしか認識してくれませんでした)

アダプタ0配下に20本追加するコマンド「systemshell localhost “cd /sim/dev;sudo vsim_makedisks -t 36 -n 20 -a 0″」を実行します。

アダプタ1配下に20本追加するコマンド「systemshell localhost “cd /sim/dev;sudo vsim_makedisks -t 36 -n 20 -a 1″」を実行します。

アダプタ2配下に20本追加するコマンド「systemshell localhost “cd /sim/dev;sudo vsim_makedisks -t 36 -n 20 -a 2″」を実行します。

作成したら「halt local」で停止をして、再起動します。

これで起動すればOKです。

Windowsで簡易的にWebサーバをたてるソフト HFS


むかしはネットワーク機器のfirmware versionアップにtftpやftpなどを使うことが多かった。

最近はhttp経由という例が増えている。

Windows標準のIISだと大がかりすぎるのでもっと簡単にできるものを探して「簡単WEBサーバー」というものを試したのだが、これはGETしか実装していないという中途半端なものだった。

GETしか実装されていないと何が問題になるかと言うと、ファイルダウンロード前にHEADでファイルサイズを確認し、保存できる領域があるかを確認する、という動作をする機器の場合、HEADが実装されていないため容量確認ができず、ダウンロードが実施できない、ということになる。

で、探したところ「HFS ~ Http File Server」というものを発見。

これは2MBのバイナリでインストール不要というもの。

hfs.exeを実行すると下記の様にウィンドウが立ち上がり、Webサーバとして動作しだす。

ファイルの登録は簡単で、登録したいファイルの右クリックメニューから「Add to HFS」を選択するだけ、となっている。

追加すると下記の様に/直下に配置される。ファイルを選択するとダウンロードに使用するURLが表示されるという点も便利

ダウンロードが開始されるとLogウインドウにどういうリクエストがあったのかが表示される。

起動したWindowsに複数のIPアドレスがある場合、どのIPアドレスで公開するかは選択できる。

ポート番号は80以外にも設定することはできる(httpsは未対応)

サービスとして動作させることはできないが、Windows起動時にHFSを実行する、という設定もある