スペアディスクを分散する技術についてのメモ

RAIDで組んだ領域が2PBになると再構築に時間がかかりすぎるので、旧来の専用スペアディスクを用意するという仕組みをとらず、各物理ディスク内にスペア領域を用意し、全体にスペアを分散する、という技術を採用している。

ただ、これについて、RAIDの定義と違って一般的な用語がないため、各社の用語をチェックした

「Dynamic Drive Pool」が比較的共通で使われているような印象があるが、DDPという単語を使っていても実装について詳細をみると、各社差があるようにみえる。

NetApp SANtricity : Dynamic Drive Pool (DDP)
 OEM: 富士通 ETNERNUS ABシリーズ
 What Are Dynamic Disk Pools?

DELL Unity: Dynamic Pool (RAID5,RAID6,RAID1/0相当)
 Dell Unity:動的プールについて(マップされたRAID)(Dellによる修正可能)

DELL PowerVault: ADAPT (2本障害まで対応。12~128本構成)
 Dell PowerVault ME5シリーズ 管理者ガイド RAIDレベル

HPE MSA Gen6: MSA-DP+
 HPE MSA Gen6 Storage システム構成図
 ネットワールド HPE MSA Gen6

PureStorage: RAID-3D (2本障害まで対応)
 レポート ESG Lab Validation Pure Storage FlashArray-

RJ45シリアルとUSBケーブル

RJ45<=>RS-232Cの変換コネクタは配線が1つではなく、断線してないのに使えない場合がある。

この仕様違いは2024年現在でもあり、RJ45<=>USBシリアル のケーブルにも配列が異なるものが存在している

それらがどういう違いなのか、というメモ書き

Cisco:ケーブルのピン割り当て
ヤマハ: RJ-45コンソールケーブル YRC-RJ45C

で・・・RJ45側のシリアル配列を調べると、大きく分けて「Cisco/Sun互換」と「それ以外」ということになる。

最近のYAMAHA RTXもCisco互換となる

また、最近はUSBシリアルに直接RJ45コネクタがついている、というタイプも販売されている

千石電商での販売例は以下となる

SSA SU2-ULC100G 1780円 PL2303チップ
WaveShare USB-TO-RJ45-Console-Cable 1680円 FT232RLチップ

aliexpressにもいろいろ出ていて、おもに下記3種類があり、PL2303とCH340採用のやつはだいたい似たような価格となっており500円前後。FL232(FTDI)系だと1400円を超したりする。

PL2303チップ採用タイプ
CH340チップ採用タイプ
FL232RLチップ採用タイプ

とりあえず、ドキュメントや製品ページに書いてある配線について下記にまとめた。

送受信の表記が逆になっているものもあるが、出典に書いてある通りの記述にしてある。

RJ45ピンCisco/Sun互換USBシリアル
PL2303chip
USBシリアル
CH340chip
システムサコム機器コンソールサーバ千石で売ってる変換ケーブル1千石で売ってる変換ケーブル2
1RTSCTSCTSRTSRTSCTSCTS
2DTRDSRDSRGNDDSRDSRDTR
3TxDRxDRxDTxDRxDRxDTxD
4GNDGNDGNDRxDGNDGNDGND
5GNDGNDDCDGNDDCDDCDGND
6RxDTxDTxDGNDTxDTxDRxD
7DSRDTRDTRGNDDTRDTRDSR
8CTSRTSRTSCTSRTSRTSRTS
出典出典出典出典出典出典出典

NetApp ONTAPファイルサーバ置き換え後にいらないsnapshotを削除する

NetApp ONTAPファイルサーバを置き換える際、snapmirrorでボリューム転送して行う、というのがよくある。

で、置き換えた後、新旧NetAppを結ぶsnapmirrorで使用していたvolume snapshotについては自動削除されないので、それを特定して削除する、という必要があるので、その手法のメモ書き。

1 いまあるsnapshotの確認

「volume snapshot show -volume ボリューム名」で該当するボリューム内にあるsnapshotを確認

snapmirrorで作成されたsnapshotは「snapmirror.<UUID>_ID.日時」で作成されている。

2 snapmirrorで使用しているsnapshotの確認

「snapmirror show -destination-volume ボリューム名 -field exported-snapshot」でsnapmirrorが使用しているsnapshot名が表示される

つまり、1で確認したsnapmirrorと名前がついているsnapshotで、exported-snapshotに表示されないものが不要なものとなる。

3 snapshotの依存を確認

通常ONTAPのCLIでは-fields で表示させたい項目を入力する場合、タブ補完機能があるのだが、そこに表示されない裏オプション的なものがある。

それが、snapshotの依存が存在するかを表示する「dependency」である。(タブ補完がきかないので、すべて手動で入力する必要がある)

「volume snapshot show -volume ボリューム名 -fields dependency」を実行して確認する

表示される値は以下の意味がある。

空欄: 依存関係なし
snapmirror: snapmirrorの送り側
busy: snapmirrorの受け側

2で不要なsnapshotは確定しているが、そのsnapshotに対して「snapmirror」も「busy」もついてない、ということを確認する

4 snapshotの削除

不要なsnapshotを削除する

「volume snapshot delete -volume ボリューム名 -snapshot snapshot名」で削除する。

ちゃんとsnapmirror関係の削除処理が行われていれば削除しますかy/nの確認をしたのちに削除が行える。

なんらかの事情でロックがかかっている状態となっていて、それでも削除したい場合は、「set adv」でadvanced権限に移行し

「volume snapshot delete -volume ボリューム名 -snapshot snapshot名 -force true -ignore-owners true」オプションで強制削除する

NetApp ONTAPのevent動作確認手法

syslogやsnmpにイベントを飛ばせる設定(EMS設定の概要)ができるのだが、設定した後の動作確認をどうするかを確認した

一般論的には「How to generate EMS Events manually for testing purposes」(日本語訳版)なのだが、サンプルとして書かれているコマンドを入力した場合の動作がいまいちである。

ontap9131::> set diag

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

ontap9131::*> event generate -node ontap9131-01 -message-name monitor.volume.nearlyFull  -values Volume testshare@vsevrer:2d770626-xxxx-11ef-8a02-d039ea59xxxx is neary full is nearly full

ontap9131::*>

これでsyslogサーバには以下のログが届いた

May 23 15:29:01 rsyslogsevrer.adosakana.local [ontap9131-01: monitor.volume.nearlyFull:error]: Volume testshare@vsevrer:2d770626-xxxx-11ef-8a02-d039ea59xxxxisneary is nearly full (using or reserving full% of space and is% of inodes).

なんか出力内容が微妙

さがすともうちょっとまともなコマンド例が出てきた

Events not sent to syslog server due to network routes」(日本語訳版)

ontap9131::> set diag

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

ontap9131::*> event generate -message-name monitor.volume.nearlyFull -values TEST,TEST,TEST,TEST,TEST,TEST

ontap9131::*>

これで届いたログは以下

May 23 15:18:32 rsyslogsevrer.adosakana.local [ontap9131-01: monitor.volume.nearlyFull:error]: TEST TESTTESTTEST is nearly full (using or reserving TEST% of space and TEST% of inodes).

ノード指定しなくても出力されてますね

何回かテストしてみたところ、未指定時は -01ノードの方から出力されており、-02ノードからノード指定しないとログが出ませんでした

あとはテストログの内容を現物に似せるため、まずは実際のエラーを出してみます

May 23 16:30:55 rsyslog.adosakana.local  [ontap9131-01: wafl.vol.autoSize.done:notice]: Volume autosize: Automatic grow of volume 'testshare@vserver:2d770626-xxxx-11ef-8a02-d039ea59xxxx' by 421MB is complete.
May 23 16:30:55 rsyslog.adosakana.local [ontap9131-01: monitor.volume.full:ALERT]: Volume "testshare@vserver:2d770626-xxxx-11ef-8a02-d039ea59xxxx" is full (using or reserving 99% of space and 0% of inodes).

それっぽい出力内容を調整すると下記な感じなんだけど「”」の入れ方がわからない・・・

ontap9131::*> event generate -message-name monitor.volume.nearlyFull -values Volume ,volume名,@SVM名,UUID,xx,yy

ontap9131::*>
May 23 16:40:24 rsyslog.adosakana.net [ontap9131-01: monitor.volume.nearlyFull:error]: Volume volume名@SVM名UUID is nearly full (using or reserving xx% of space and yy% of inodes).

2024/06/11追記

ONTAP EMS referencemonitor.volume.nearlyFull に詳細が書いてあった。

Parameters
object_type (STRING): Identifier for the type of object to which this event applies (aggregate or volume).
name (STRING): Name of this object.
app (STRING): Application UUID.
vserver_uuid (STRING): Universal Unique ID (UUID) of the object’s Vserver, if the object is a volume. Otherwise, this string is empty.
percent_full_blocks (STRING): Used capacity of the space of the object, as a percent.
percent_full_inodes (STRING): Used capacity of inodes of the object, as a percent.

ほかのメッセージでテストする場合は、このEMS referenceの内容を確認すればよい、ということも分かった


メモ

エラーイベントを送る場合(イベントフィルタ:default-trap-events で見れる)

event generate -message-name monitor.volume.nearlyFull -values Volume ,volume名,@SVM名,UUID,xx,yy

アラートイベントを送る場合(イベントフィルタ:important-events で見れる)

event generate -message-name monitor.volume.full -values Volume ,volume名,@SVM名,UUID,xx,yy

直近15分以内のイベントログを見る

event log show -time >=15m

2024年5月23日17:00~17:20までのイベントログを見る

event log show -time "5/23/2024 17:00:00".."5/23/2024 17:20:00"

メモ ONTAP AV Connector 1.0.6と1.0.7はONTAP 9.1で使おうとするとクラッシュする

Windows Updateおこなってない環境にONTAP 9.1のCIFSファイルサーバがあって、そこからONTAP 9.13.1の新機種に移行したい、とかいうので環境作って検証した。

正攻法としてはONTAP 9.1を9.3→9.5→9.7→9.9.1にアップデートしてから(参考:アップデート手順ガイド)、Snapmirror互換性がOKな9.9.1から9.13.1へのsnapmirrorを設定してボリュームを移行するって感じにはなっている。

しかし、保証はされていないものの、9.3→9.11.1のsnapmirrorとかはできるというのはやったことがあった。

ひょっとして9.1→9.13.1のsnapmirrorも可能なんじゃないか?と思って確認してみたところ、めっちゃできた。

で・・・今回の本題。

このONTAP 9.13.1環境の方でONTAP AV Connector経由でのアンチウイルス対策を行う設定をしたついでに、ONTAP 9.1P22環境の方も設定してみたところ、異常な動作が発生

ONTAP 9.1P22ファイルサーバから検査対象ファイルが送られてくると、受け取ったAV Connectorがクラッシュしてサービスが死ぬ、というもの

障害が発生しているアプリケーション名: ontapavc.exe、バージョン: 1.0.7.0、タイム スタンプ: 0x661cd147
障害が発生しているモジュール名: ntdll.dll、バージョン: 10.0.17763.5458、タイム スタンプ: 0x761f6403
例外コード: 0xc0000374
障害オフセット: 0x000e0773
障害が発生しているプロセス ID: 0x1120
障害が発生しているアプリケーションの開始時刻: 0x01daa0f22241d4b8
障害が発生しているアプリケーション パス: C:\Program Files (x86)\ONTAP AV Connector\ontapavc.exe
障害が発生しているモジュール パス: C:\Windows\SYSTEM32\ntdll.dll
レポート ID: 25143b91-e094-4f5e-938b-c2aa5cc35312
障害が発生しているパッケージの完全な名前: 
障害が発生しているパッケージに関連するアプリケーション ID: 
障害バケット 1543444931139731394、種類 1
イベント名: APPCRASH
応答: 使用不可
Cab ID: 0

問題の署名:
P1: ontapavc.exe
P2: 1.0.7.0
P3: 661cd147
P4: StackHash_9e39
P5: 10.0.17763.5458
P6: 761f6403
P7: c0000374
P8: PCH_3C_FROM_ntdll+0x00071C4C
P9: 
P10: 

添付ファイル:
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WERA03E.tmp.dmp
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WERA0FA.tmp.WERInternalMetadata.xml
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WERA11B.tmp.xml
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WERA119.tmp.csv
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WERA129.tmp.txt

これらのファイルは次の場所にある可能性があります:
\\?\C:\ProgramData\Microsoft\Windows\WER\ReportArchive\AppCrash_ontapavc.exe_57546d7998f01e724387b6a478ec37f3d1a2348_9be34728_1fa5a5fb

分析記号: 
解決策を再確認中: 0
レポート ID: 25143b91-e094-4f5e-938b-c2aa5cc35312
レポートの状態: 268435456
ハッシュされたバケット: 519f2138c2a0e328e56b6afcc2f5ffc2
Cab GUID: 0

いろいろ試してみたところ、ONTAP 9.1だとAPIの使い方が違うために発生している模様で

ONTAP 9.3P22にアップデートしたところ、とりあえずAV Connectorがクラッシュすることもなく期待通りの動作をするようにはなった。