NetAppのstart-time/end-time指定は役立たずなのでは?


NetAppのsnapmirror履歴を見るため「snapmirror show-history」を実行すると、長々と出力される。

調べるとsnapmirror show-historyには下記の指定ができるようだった。

[-start-time <MM/DD/YYYY HH:MM:SS>] – Start Time
Select SnapMirror operations that have a matching start time.

[-end-time <MM/DD/YYYY HH:MM:SS>] – End Time
Select SnapMirror operations that have a matching end time.

なるほどー、と思って、2022/12/21 15:00:00以降の履歴と思って実行してみると・・・

netapp9101dr::> snapmirror show-history -start-time "12/21/2022 15:00:00"
There are no entries matching your query.

netapp9101dr::>

何も無い・・・

引数無しで実行するとある

netapp9101dr::> snapmirror show-history

Destination Source                Start       End
Path        Path        Operation Time        Time        Result
----------- ----------- --------- ----------- ----------- -------
svmdr:vol_shares_dest svm0:shares scheduled-update 12/21/2022 15:25:00 12/21/2022 15:25:04 success
svmdr:vol_shares_dest svm0:shares scheduled-update 12/21/2022 15:15:00 12/21/2022 15:15:04 success
svmdr:vol_shares_dest svm0:shares scheduled-update 12/21/2022 15:05:00 12/21/2022 15:05:04 success
<略>
netapp9101dr::>

まさかと思って、結果に表示された時刻を指定してみる・・・

netapp9101dr::> snapmirror show-history -start-time "12/21/2022 15:05:00"

Destination Source                Start       End
Path        Path        Operation Time        Time        Result
----------- ----------- --------- ----------- ----------- -------
svmdr:vol_shares_dest svm0:shares scheduled-update 12/21/2022 15:05:00 12/21/2022 15:05:04 success

netapp9101dr::>

1秒でもずらすと表示されない

netapp9101dr::> snapmirror show-history -start-time "12/21/2022 15:05:01"
There are no entries matching your query.

netapp9101dr::> snapmirror show-history -start-time "12/21/2022 15:04:59"
There are no entries matching your query.

netapp9101dr::>

マニュアル記述をよく見てみると「Select SnapMirror operations that have a matching start time」とあり、一致したものという限定だった

日時を指定しないで実行出来るか試してみる・・・

netapp9101dr::> snapmirror show-history -start-time 12/21/2022 

Error: "12/21/2022" is an invalid value for field "-start-time <"MM/DD/YYYY
       HH:MM:SS">"

netapp9101dr::>

?や*で指定はできるか、も試したが駄目だった

netapp9101dr::> snapmirror show-history -start-time 12/21/2022  ?

Error: "12/21/2022" is an invalid value for field "-start-time <"MM/DD/YYYY
       HH:MM:SS">"

netapp9101dr::> snapmirror show-history -start-time 12/21/2022 *:*:*
There are no entries matching your query.

netapp9101dr::>

じゃあ、出力数を制限する他の方法はないのかなーとsnapmirror show-historyのexamplesを見たら「snapmirror show-history -max-rows-per-relationship 1」を実行すると、snapmirror関係ごとに1個だけ表示するよ、とのこと

じゃあ、最近の4件表示と実行してみたところ、目的を達成したという感じとなった。

netapp9101dr::> snapmirror show-history -max-rows-per-relationship 4

Destination Source                Start       End
Path        Path        Operation Time        Time        Result
----------- ----------- --------- ----------- ----------- -------
svmdr:vol_shares_dest svm0:shares scheduled-update 12/21/2022 15:25:00 12/21/2022 15:25:04 success
svmdr:vol_shares_dest svm0:shares scheduled-update 12/21/2022 15:15:00 12/21/2022 15:15:04 success
svmdr:vol_shares_dest svm0:shares scheduled-update 12/21/2022 15:05:00 12/21/2022 15:05:04 success
svmdr:vol_shares_dest svm0:shares scheduled-update 12/21/2022 14:55:00 12/21/2022 14:55:04 success
4 entries were displayed.

netapp9101dr::>

Orange Pi 5をAndroid 12で動かす


2022/12/20時点で使えるOrange Pi 5のOSは、Ubuntu, Debian, Android 12。

Orange Pi (Droid)はリンクはあるもののファイル自体は存在していないという残念な状態

microSDで起動させる場合のAndroid 12はSDDiskTool_v1.72.zipに含まれているSD_Firmware_Tool.exe から書き込む。

中国語インタフェース…

config.iniを開いて「Selected=1」を「Selected=2」に替えたら英語インタフェースになった

まず「SD Boot」を選択してから、「Firmware」ボタンをクリックして、OrangePi5_RK3588S_Android12_v1.0.0.imgを指定して「Create」ボタンをクリックする。

書き込み確認で、はい、を選んで書き込み開始

書き込み完了

書き込んだmicroSDはこんな感じのパーテーションになりました。

NVMe SSDを取り外して、microSDのみ入れて電源オン…

しばらく待つと下記の画面となります。

アプリ一覧にブラウザはいませんが、検索欄をクリックすればブラウザとして使えます。

F-Droidでもアクセスしてフリーソフト中心のソフトウエアレポジトリにアクセスしてみましょう…

が・・・たいしていいアプリがあるわけじゃないので微妙なんですけど・・・

ただ、いい感じのブラウザがなくて・・・

Ubuntu Touchでも使ったBromite ブラウザ をF-Droidレポジトリに追加してインストールすると、Chromiumもダウンロードできるんですが、Google開発者サービスがない、といわれるのでBromiteの方を使った方がいいでしょう

で・・・ブラウザをインストールしてyoutubeにアクセスしてみたところ、HDMI経由の音声出力も動いていました。

うちの場合標準設定では音量が小さくて、大きくする必要がありました

ただ、結局アプリが微妙なので、使い道があまりないかなぁ・・と

Orange Pi 5 が届いた


2022年11月12日に発注し2022年12月5日に発送連絡があった Orange PI 5が12月19日に届いた。

Orange Pi のいつもの箱に入って届いた

中身もいつものごとく

ラズパイ2BとOrange Pi 5を並べて見る

裏面にM.2 コネクタがありますが、止めるためのネジが付属してないのでどうにか調達する必要があります。

私の場合はたまたま別件で買ったM.2 SSDにネジが添付されていたのでそれを流用しました。

さて、ここからは実際に使う為の資料について・・・

資料について

公式のマニュアルはOrange Pi 5 Downloadページ にあるUser Manualリンク にあるOrangePi_5_RK3588S_User Manual_v0.2.pdf となる。(2022/12/08版)

電源について

Orange Pi 5の注意点として電源はType-Cコネクタ形状だけれども、USB PD非対応で、5V4Aのみを受け付けるだけの単機能コネクタである、ということ。

このため、ノートパソコンなど用のType-C PD電源ををつなげても動作しません。

私の場合、秋月でラズパイ4用として売ってる「スイッチングACアダプター(USB ACアダプター) Type-Cオス 5.1V3.8A 」を買って使っています。

まお、マニュアルの上記記述にあるように、USB Type-Cとして使えるコネクタの方は電源供給には使えません。

裏面にあるM.2 コネクタには2242サイズのNVMeストレージを取り付けることができますが、固定する為のネジが添付されていません。

Orange Pi 5の基盤自体を固定する為の四隅の穴は3.0mmですが、M.2用の2230/2242用の固定穴は3.5mmとのこと。

また、GPIO端子から電源を供給することは可能ですが、推奨されていません。

GPIO端子に逆接続防止措置はないので、誤って逆に接続してしまうと基板が死ぬので注意してください。

OS書き込みについて

Linuxの場合

microSDの起動ディスクをつくる場合、Linuxを書き込む場合はddやrufus,etcher,win32diskimagerで書き込みます。

NVMe SSD起動にしたい場合は、一度microSDで起動させた後、NVMe SSDへのインストール処理を行う形となります。

使用できるNVMe SSDは、2230サイズもしくは2242サイズのものです。

NVMe SSD用に確保されている帯域は PCIe2.0x1 となっており、理論上は500MB/sまでとなります。PCIe3.0やPCIe4.0のSSDを使用しても、PCIe2.0x1で止まります。

NVMe SSDへのインストールは、Orange Pi公式配布のDebian/Ubuntuの場合「sudo nand-sata-install」を実行することでSPI Flashへブートローダを書き込み、NVMe SSDから起動できるような設定を行った上で、Linux用ディスクイメージファイルをddコマンドで/dev/nvme0n1に書き込みを行います。

書き込み後は、Linuxをshutdownし、microSDを抜いて、NVMe SSDのみとして起動します。

起動後、Orange Pi公式配布のDebian/Ubuntuの場合「sudo fix_mmc_ssd.sh」を実行し、ディスクのパーテーション調整を行います。(後述しますが、この手順は不要でした)

なお、初期ユーザは「root」パスワード「orangepi」と、ユーザ「orangepi」パスワード「orangepi」の2つがあります。

また、自動ログインの有効/無効が別途用意されているコマンドで設定できます。

詳細はUser Manualにて。

Androidの場合

Rockchip用のAndroidを起動するためのmicroSDは専用の書き込みソフトSDDiskTool(Windows)を使用する必要があります。

また、NVMe SSDからAndroidを起動したい場合は、Windows+専用ドライバ/書き込みソフト(RKDevTool)を使うことで、microSDを経由せずにType-Cケーブル経由で直接書き込むことが可能です。

ネットワーク設定について

Orange Pi公式が配布しているUbuntu/Debianイメージではネットワーク接続を /etc/network/interfaces ファイルの編集ではなくNetwork Manager経由で行う、ということになっています。

nmcliやnmtuiコマンドで設定します。


実際にセットアップしてみた

M.2 2242サイズのNVMe SSDを取り付けて…

Orangepi5_1.0.6_ubuntu_jammy_desktop_xfce_linux5.10.110.img をmicroSDに書き込んで初回起動すると、X-Windowでログインした状態となる

この際のユーザは「orangepi」

コマンドで「ip a s」などを実行してIPアドレスを確認して、sshでログイン

その際は「orangepi」でパスワードも「orangepi」

  ___  ____  _   ____
 / _ \|  _ \(_) | ___|
| | | | |_) | | |___ \
| |_| |  __/| |  ___) |
 \___/|_|   |_| |____/

Welcome to Orange Pi 1.0.6 Jammy with Linux 5.10.110-rockchip-rk3588

System load:   2%               Up time:       7 min    Local users:   3
Memory usage:  8% of 7.51G      IP:            192.168.1.141
CPU temp:      39°C            Usage of /:    16% of 29G

[ 2 security updates available, 2 updates total: apt upgrade ]
Last check: 2022-12-16 16:17

[ General system configuration (beta): orangepi-config ]

Last login: Fri Dec 16 16:17:44 2022
orangepi@orangepi5:~$

カスタマイズするためのスクリプト群が /usr/local/bin に用意されている

orangepi@orangepi5:~$ ls -l /usr/local/bin
total 1360
-rwxrwxr-x 1 root root    992 Dec  7 09:26 auto_login_cli.sh
-rwxrwxr-x 1 root root   9632 Dec  7 09:26 blink_all_gpio
-rwxrwxr-x 1 root root     47 Dec  7 09:26 cat_serial.sh
-rwxrwxr-x 1 root root    560 Dec  7 09:26 compile_python.sh
-rwxrwxr-x 1 root root    316 Dec  7 09:26 desktop_login.sh
-rwxrwxr-x 1 root root    140 Dec  7 09:26 disable_desktop_autologin.sh
-rwxrwxr-x 1 root root   2036 Dec  7 09:26 drm-hotplug.sh
-rwxrwxr-x 1 root root     86 Dec  7 09:26 enable_docker.sh
-rwxrwxr-x 1 root root    265 Dec  7 09:26 fix_mmc_ssd.sh
-rwxr-xr-x 1 root root    195 Dec 15 18:27 gpu_load.sh
-rwxrwxr-x 1 root root    111 Dec  7 09:26 install_bt_panel.sh
-rwxrwxr-x 1 root root    684 Dec  7 09:26 install_docker.sh
-rwxr-xr-x 1 root root    565 Dec 16 11:41 install_qt.sh
-rwxrwxr-x 1 root root   2364 Dec 16 15:36 install_ros.sh
-rwxrwxr-x 1 root root  76188 Dec  7 09:26 io
-rwxrwxr-x 1 root root  22896 Dec  7 09:26 memtester
-rwxrwxr-x 1 root root 772832 Dec  7 09:26 modetest
-rwxrwxr-x 1 root root  38856 Dec  7 09:26 multivideoplayer
-rwxrwxr-x 1 root root     78 Dec  7 09:26 reset_ssh.sh
-rwxrwxr-x 1 root root    115 Dec 12 09:41 set_device.sh
-rwxrwxr-x 1 root root    242 Dec 12 09:41 set_vnc.sh
-rwxrwxr-x 1 root root  19672 Dec  7 09:26 spidev_test
-rwxrwxr-x 1 root root 254056 Dec  7 09:26 stressapptest
-rwxrw-r-- 1 root root   1197 Dec 14 15:56 test_camera.sh
-rwxrwxr-x 1 root root    175 Dec 12 09:41 test_dec_mpv.sh
-rwxrwxr-x 1 root root    168 Dec  7 09:26 test_rknn_demo.sh
-rwxr-xr-x 1 root root    501 Dec 16 15:36 test_ros.sh
-rwxrwxr-x 1 root root    446 Dec  7 09:26 test_rtsp.sh
-rwxrwxr-x 1 root root  14736 Dec  7 09:26 tinycap
-rwxrwxr-x 1 root root  19448 Dec  7 09:26 tinymix
-rwxrwxr-x 1 root root  14440 Dec  7 09:26 tinypcminfo
-rwxrwxr-x 1 root root  19048 Dec  7 09:26 tinyplay
-rwxrwxr-x 1 root root     65 Dec  7 09:26 typec_usb2.sh
-rwxrwxr-x 1 root root    123 Dec 15 18:41 vpu_debug.sh
-rwxrwxr-x 1 root root  13816 Dec 16 16:23 watchdog_test
orangepi@orangepi5:~$ ls -l /usr/local/sbin
total 0
orangepi@orangepi5:~$

NVMe SSDにインストールするには/dev/nvme0n1に対してインストールイメージを書き込む

まずデバイス名確認。テストに使用したものなのでパーテーションが2つ作られている

orangepi@orangepi5:~$ ls -l /dev/nvme0*
crw------- 1 root root 239, 0 Dec 16 16:17 /dev/nvme0
brw-rw---- 1 root disk 259, 0 Dec 16 16:17 /dev/nvme0n1
brw-rw---- 1 root disk 259, 1 Dec 16 16:17 /dev/nvme0n1p1
brw-rw---- 1 root disk 259, 2 Dec 19 19:30 /dev/nvme0n1p2
orangepi@orangepi5:~$

確認のためM.2 SATA SSDが認識できないかを確認してみる

orangepi@orangepi5:~$ sudo fdisk -l
[sudo] password for orangepi:
Disk /dev/ram0: 4 MiB, 4194304 bytes, 8192 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes


Disk /dev/zram0: 3.75 GiB, 4031569920 bytes, 984270 sectors
Units: sectors of 1 * 4096 = 4096 bytes
Sector size (logical/physical): 4096 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes


Disk /dev/mtdblock0: 16 MiB, 16777216 bytes, 32768 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/mmcblk1: 29.9 GiB, 32105299968 bytes, 62705664 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 53AE4D8D-573C-E044-AB71-027F31F37494

Device          Start      End  Sectors  Size Type
/dev/mmcblk1p1  61440   585727   524288  256M Linux extended boot
/dev/mmcblk1p2 585728 62062591 61476864 29.3G Linux filesystem


Disk /dev/zram1: 200 MiB, 209715200 bytes, 51200 sectors
Units: sectors of 1 * 4096 = 4096 bytes
Sector size (logical/physical): 4096 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
orangepi@orangepi5:~$ ls /dev/nv*
ls: cannot access '/dev/nv*': No such file or directory
orangepi@orangepi5:~$

M.2 SATA SSDでは認識しないことを確認

(2022/12/21追記: データディスクとしてならM.2 SATAも動くことを確認しました → 詳細)

まあ、そういう仕様ですしね

さて、NVMe SSDに戻して、マニュアル記載のSPI Flash書き換えコマンドを実行

「sudo nand-sata-install」を実行して以下の画面とします。

「7 Install/Update the bootloader on SPI Flash」を選択してOKします

書き換え警告を[Yes]とします

YES選択後、数分間以下の状態で止まっていますが、正常です。

5分ぐらいすると下記の様になって終了します。

続いて、Orangepi5_1.0.6_ubuntu_jammy_desktop_xfce_linux5.10.110.img を /dev/nvme0n1 に対して書き込むため「sudo dd if=Orangepi5_1.0.6_ubuntu_jammy_desktop_xfce_linux5.10.110.img of=/dev/nvme0n1 status=progress」と実行します。

orangepi@orangepi5:~$ sudo dd if=Orangepi5_1.0.6_ubuntu_jammy_desktop_xfce_linux5.10.110.img of=/dev/nvme0n1 status=progress
6924734976 bytes (6.9 GB, 6.4 GiB) copied, 278 s, 24.9 MB/s
13533184+0 records in
13533184+0 records out
6928990208 bytes (6.9 GB, 6.5 GiB) copied, 279.176 s, 24.8 MB/s
orangepi@orangepi5:~$

現状のパーテーションを確認

orangepi@orangepi5:~$ sudo fdisk -l /dev/nvme0n1
GPT PMBR size mismatch (13533183 != 1000215215) will be corrected by write.
The backup GPT table is not on the end of the device.
Disk /dev/nvme0n1: 476.94 GiB, 512110190592 bytes, 1000215216 sectors
Disk model: NXM-512
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 53AE4D8D-573C-E044-AB71-027F31F37494

Device          Start      End  Sectors  Size Type
/dev/nvme0n1p1  61440   585727   524288  256M Linux extended boot
/dev/nvme0n1p2 585728 13533150 12947423  6.2G Linux filesystem
orangepi@orangepi5:~$

この段階では実際のSSD容量にあわせたパーテーション構成になっていないのでmismatchと表示されている。

この段階では、microSD起動を一度停止して、microSDを抜いてから再度電源を入れます

NVMe SSDから起動していることを確認します。

orangepi@orangepi5:~$ df -h
Filesystem      Size  Used Avail Use% Mounted on
tmpfs           769M  9.4M  760M   2% /run
/dev/nvme0n1p2  465G  4.6G  456G   1% /
tmpfs           3.8G     0  3.8G   0% /dev/shm
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
tmpfs           3.8G   12K  3.8G   1% /tmp
/dev/nvme0n1p1  256M   95M  162M  37% /boot
/dev/zram1      188M  2.6M  171M   2% /var/log
tmpfs           769M   80K  769M   1% /run/user/1000
orangepi@orangepi5:~$

問題が起きてたパーテーション構成は起動時に自動修正されています。

orangepi@orangepi5:~$ sudo fdisk -l /dev/nvme0n1
Disk /dev/nvme0n1: 476.94 GiB, 512110190592 bytes, 1000215216 sectors
Disk model: NXM-512
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 53AE4D8D-573C-E044-AB71-027F31F37494

Device          Start       End   Sectors   Size Type
/dev/nvme0n1p1  61440    585727    524288   256M Linux extended boot
/dev/nvme0n1p2 585728 990183423 989597696 471.9G Linux filesystem
orangepi@orangepi5:~$

マニュアル記載にある「sudo fix_mmc_ssd.sh」はmicroSDも使う場合に実行するもので、NVMe SSDのみの場合は実行してみると以下のようなメッセージが出力されていました。

orangepi@orangepi5:~$ sudo fix_mmc_ssd.sh
ls: cannot access '/dev/mmcblk*': No such file or directory
Done
orangepi@orangepi5:~$

その上、NVMeから起動できなくなってしまうので必要無い限りはfix_mmc_ssd.shは実行しないように・・・

もしこの状態にしてしまった場合は、最初のNVMeへのインストール時に使ったmicroSDを入れるとシングルユーザモードで起動できます。

その状態で/etc/fstabにある/boot行を「/dev/nvme0n1p1 /boot vfat defaults 0 2」に書きかえて「mount -a」でマウント

その次に /boot/orangepiEnv.txt にあるroot=行を「rootdev=/dev/nvme0n1p2」に書き換えることで元の状態に戻ります。

あとは普通のUbuntu 22.04として利用できます。

ちょっと興味深かったのは、https://repo.huaweicloud.com/ からファイルを持ってくる初期設定になってるんだなぁ、というところ

カスタマイズ

「sudo orangepi-config」を実行すると設定ユーティリティが起動します。

まずは[System]から[Firmware]を選択してFirmwareアップデートを実行します。

再起動します。

この他、[Personal]にある[Timezone]など、いろいろ設定がありますので、必要に応じ変更します。

youtube(360p)再生中のCPU負荷

youtube(1080p)再生中のCPU負荷

aliexpressでM.2 2242サイズのSATAとNVMeを買ってみた


KingSpec M.2 NVMe 2242サイズ編

Orange Pi 5にM.2 NVMeの2242サイズが搭載できる、というのでaliexpressで探してみた。

KingSpecというところでM-keyのNVMe 512GBが$34.54というお値段だったので買ってみた。

KingSpec M.2 SSD M2 NVME 128GB 256GB 512GB 1TB Ssd M.2 PCIe 3.0 Drive Solid SSD Disk NMVE Hard Drive 2242 for Notebook Desktop

2022/11/19に発注して、2022/12/04到着。

両面にシールが貼ってあるタイプだった

まだOrange Pi 5は届いてないので、外付けケースを使って全領域書き込み/読み込みテストを行い、容量偽装はないことは確認済

M.2 SATA 2242サイズ編

FUTRO MU937がM.2 SATA 2242サイズだったので、aliexpressで探してみた

KingSpec M.2 SATA 512GB $30.04
GUDGA M.2 SATA 512GB $28.20

2022年12月10日に別のセラーにそれぞれ発注入れたら、どちらもAliexpress Standard Shipping→クロネコ配送で12月17日に到着しました。

箱はNVMe/SATAと2280/2242共通でシールによってわけている感じですね。

中身は、てっきりどちらも同じ基板かと思ったのですが、異なる基板でびっくりしました。

どちらも容量偽装はなくきちんと書き込みが出来ています。

耐久度や速度については気にしていません・・・

書き込みテストの仕様について

さすがに容量偽装はないだろう、と思ったものの F3 – Fight Flash Fraud というのを使って全領域に対する書き込み/読み込みテストを実施しています。

ファイルシステムはLinuxからアクセスできればなんでも良いようで、NTFSとext4で動かしてみたことがあります。

今回は該当M.2をUSB接続の外付けケースに入れた上でWindows 11でパーテーションを切ってNTFSでフォーマットしてから、Ubuntu 20.04マシンにさして「./log-f3wr ログファイル名.txt /mnt/test/」 という感じで実行しています。

Ubuntu 20.04マシンの性能があまりよくないので、たぶん、そこで速度上限がかかってると思われます。

その結果・・・ついでに最近計測した他のSSDも掲載

メーカ製品書き込み速度読み込み速度
KingSpecM.2 NVMe 2242 512GB23.16 MB/s37.54 MB/s
KingSpecM.2 SATA 2242 512GB21.50 MB/s39.51 MB/s
GUDGAM.2 SATA 2242 512GB23.09 MB/s39.54 MB/s
WINTEN2.5インチ SATA WT200 1TB29.67 MB/s40.08 MB/s
WINTENM.2 SATA 2280 512GB21.98 MB/s39.53 MB/s
IntelM.2 NVMe 2280 760p 256GB25.16 MB/s38.67 MB/s

まあ、たぶん使用した機器の上限速度っぽいが出てる感じですね。

Windows ServerからNetAppに対してsshでコマンドを実行させる


Windows Server 2019からNetAppに対してsshを実行するにはTeraTermやputtyをインストールしないとダメなのかなぁ、と思いつつ、PowerShellで「ssh」と実行してみると、OpenSSH 7.7p1がインストールされていた。

PS C:\Users\Administrator> ssh
usage: ssh [-46AaCfGgKkMNnqsTtVvXxYy] [-B bind_interface]
           [-b bind_address] [-c cipher_spec] [-D [bind_address:]port]
           [-E log_file] [-e escape_char] [-F configfile] [-I pkcs11]
           [-i identity_file] [-J [user@]host[:port]] [-L address]
           [-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port]
           [-Q query_option] [-R address] [-S ctl_path] [-W host:port]
           [-w local_tun[:remote_tun]] destination [command]
PS C:\Users\Administrator> ssh -V
OpenSSH_for_Windows_7.7p1, LibreSSL 2.6.5
PS C:\Users\Administrator>

じゃあ、Windows ServerからNetAppに対してタスクスケジューラから何らかの処理を実行させることが可能なのか、ということで手法検討

Windowsサーバ上で鍵作成

まずは、ONTAPに公開鍵認証でログインするための設定を実施

「ssh-keygen」コマンドを実行して、鍵を作成

PS C:\Users\Administrator> ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (C:\Users\Administrator/.ssh/id_rsa):
Created directory 'C:\Users\Administrator/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in C:\Users\Administrator/.ssh/id_rsa.
Your public key has been saved in C:\Users\Administrator/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:Eomw4OJ5tGv2Nx0HkGCeaRT5PxBU3krAixd96aCIkJU administrator@WindowsServer
The key's randomart image is:
+---[RSA 2048]----+
|. +..=*o+.  .    |
|.+ E+ooBoo.o     |
|..o.o=* *o+.     |
|o o.oo B....     |
| o o  o S..      |
|  . .  . + .     |
|   +    . +      |
|  o .  o .       |
|     .. .        |
+----[SHA256]-----+
PS C:\Users\Administrator>

実行したユーザのホームディレクトリに.sshディレクトリが作成され、id_rsaとid_rsa.pubが作成された。

このうち使うのはid_rsa.pub の中身

「notepad .ssh\id_rsa.pub」などを実行して内容を確認する。

NetApp上に公開鍵でログインできるユーザを設定

次にNetAppにログインして、現在のユーザ一覧を確認する。

「security login show -vserver クラスタ名」を実行する。

netapp::> security login show -vserver netapp

Vserver: netapp
                                                                 Second
User/Group                 Authentication                 Acct   Authentication
Name           Application Method        Role Name        Locked Method
-------------- ----------- ------------- ---------------- ------ --------------
admin          console     password      admin            no     none
admin          http        password      admin            no     none
admin          ontapi      password      admin            no     none
admin          service-processor
                           password      admin            no     none
admin          ssh         password      admin            no     none
autosupport    console     password      autosupport      no     none
6 entries were displayed.

netapp::>

現状は公開鍵認証(publickey)でログインできるユーザが設定されていません。

現状あるadminユーザに対して、公開鍵認証でもログインできるように設定するには「security login create -user admin -application ssh -authentication-method publickey -role admin」と実行します

netapp::> security login create -user admin -application ssh -authentication-method publickey -role admin
Warning: To use public-key authentication, you must create a public key for user "admin".

netapp::>

上記で警告が出ていますが、これは現状該当するユーザ用の公開鍵が登録されていないためのものです。

再度「security login show -vserver クラスタ名」を実行すると、publickeyの登録が増えていることが確認出来ます。

netapp::> security login show -vserver netapp

Vserver: netapp
                                                                 Second
User/Group                 Authentication                 Acct   Authentication
Name           Application Method        Role Name        Locked Method
-------------- ----------- ------------- ---------------- ------ --------------
admin          console     password      admin            no     none
admin          http        password      admin            no     none
admin          ontapi      password      admin            no     none
admin          service-processor
                           password      admin            no     none
admin          ssh         password      admin            no     none
admin          ssh         publickey     admin            -      none
autosupport    console     password      autosupport      no     none
7 entries were displayed.

netapp::>

次に公開鍵を登録するので、まずは現在の公開鍵登録状況を「security login publickey show」を実行して確認します。

netapp::> security login publickey show
This table is currently empty.

netapp::>

上記の場合はまだ何も登録されていません。

ここで先ほど作成したid_rsa.pubの中身を登録します。

「security login publickey create -username admin -index 0 -publickey “<id_rsa.pubの中身>”」

netapp::> security login publickey create -username admin -index 0 -publickey "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCYShjYkl1hs/JlSSayuyAeL/5zlmGCQ15Z0c1BiJ8Hi3/fjEM0IjuJme19J1xM5M9UpdvdI2SA/Vtanidfwx231d2pXsveniT4H3OJApgKRTE7xtsjAtg1El2rNbm0C7qgMw4p0tsjp2ZSAY2QkQBoUzgBfTfOYWWR6V+D3PyU9N9AF9VIqB6d+yEDxg9GOe76ILzKB9Wo3F8t0p+OtGU9C1gAAPndvoV+7yepoS2DSu8ft8mRGL6aTFQDMbhqEYPKZx2Gx2XqfnZA1bFggntsWWtg3TGLmCOww8RLd0CIhMfl8aJJuTmjjDJh3tN9BZx9kNjj6yF8Irxjntih9ejH administrator@WindowsServer"

netapp::> security login publickey show

Vserver: netapp
UserName: admin            Index: 0
Public Key:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCYShjYkl1hs/JlSSayuyAeL/5zlmGCQ15Z0c1BiJ8Hi3/fjEM0IjuJme19J1xM5M9UpdvdI2SA/Vtanidfwx231d2pXsveniT4H3OJApgKRTE7xtsjAtg1El2rNbm0C7qgMw4p0tsjp2ZSAY2QkQBoUzgBfTfOYWWR6V+D3PyU9N9AF9VIqB6d+yEDxg9GOe76ILzKB9Wo3F8t0p+OtGU9C1gAAPndvoV+7yepoS2DSu8ft8mRGL6aTFQDMbhqEYPKZx2Gx2XqfnZA1bFggntsWWtg3TGLmCOww8RLd0CIhMfl8aJJuTmjjDJh3tN9BZx9kNjj6yF8Irxjntih9ejH administrator@WindowsServer
Fingerprint:
SHA256:Eomw4OJ5tGv2Nx0HkGCeaRT5PxBU3krAixd96aCIkJU
Bubblebabble fingerprint:
xobov-gyvaf-hokad-pukun-leper-henuc-tihyn-haban-pybom-defel-cyxyx
Comment:
-

netapp::>

登録されました

Windowsサーバからのsshアクセス試験

ではWindows Sevrer上から「ssh admin@IPアドレス “NetAppのコマンド”」を実行してみます。

PS C:\Users\Administrator> ssh admin@172.17.44.55 "system node show"
The authenticity of host '172.17.44.55 (172.17.44.55)' can't be established.
ECDSA key fingerprint is SHA256:Hx4oFf3c4GUnc/HxpK4X1U6Um7M2a+hG4JdUAtFi4Hc.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '172.17.44.55' (ECDSA) to the list of known hosts.

Last login time: 12/13/2022 18:31:20
Node      Health Eligibility Uptime        Model       Owner    Location
--------- ------ ----------- ------------- ----------- -------- ---------------
netapp-01 true true       1 days 07:30 SIMBOX

PS C:\Users\Administrator> ssh admin@172.17.44.55 "system node show"

Last login time: 12/13/2022 18:55:35
Node      Health Eligibility Uptime        Model       Owner    Location
--------- ------ ----------- ------------- ----------- -------- ---------------
netapp-01 true true       1 days 07:30 SIMBOX

PS C:\Users\Administrator>

初回ログイン時は、sshキーの登録について確認されますが、それ以降はコマンドがすぐに実行できました。

バッチファイル&タスクスケジューラ実行試験

タスクスケジューラからコマンドが実行できるかを確認してみます。

まずはNetApp内の時刻を確認し、それを保存するバッチファイルを作成します。

@echo off 
ssh admin@172.17.44.55 "date" >> c:\tmp\command.txt

これをタスクスケジューラに登録してログアウト。

指定時間経過後にファイルを確認してみます。

PS C:\Users\Administrator> type C:\tmp\command.txt

Last login time: 12/13/2022 19:00:13

Node      Date                     Time zone
--------- ------------------------ -------------------------
netapp-01
          Tue Dec 13 19:05:11 2022 Japan

PS C:\Users\Administrator> 

きちんと実行されて、ファイルが作成されていました。