USB Network Native Driver for ESXiを適用したESXiがアップデートできなかった

USB Network Native Driver for ESXiをインストールしたESXi 7.0.0に対してESXi 7.0 Update 1aを適用しようとしたところ、エラーになった。

[root@esxiserver:/vmfs/volumes/0364c042-e0f8e72a/vmware/vSphere7/esxi-patch] esx
cli software vib install -d /vmfs/volumes/software/vmware/vSphere7/esxi-patch/VM
ware-ESXi-7.0U1a-17119627-depot.zip
 [DependencyError]
 VIB VMW_bootbank_vmkusb-nic-fling_2.1-6vmw.700.1.0.39035884 requires vmkapi_incompat_2_6_0_0, but the requirement cannot be satisfied within the ImageProfile.
 Please refer to the log file for more details.
[root@esxiserver:/vmfs/volumes/0364c042-e0f8e72a/vmware/vSphere7/esxi-patch]

じゃぁ、Driverをアップデートすればいいのかな?と ESXi701-VMKUSB-NIC-FLING-40599856-component-17078334.zip をインストールしてみようかと思えば、失敗(注: 「Note: This is ONLY for ESXi 7.0 Update 1, for ESXi 7.0/6.7/6.5, please ensure you are using the correct version of driver.」と書いてある通りだった)

[root@esxiserver:/vmfs/volumes/0364c042-e0f8e72a/vmware/vSphere7/esxi-patch] esx
cli software vib update -d /vmfs/volumes/0364c042-e0f8e72a/vmware/tmp/ESXi701-VM
KUSB-NIC-FLING-40599856-component-17078334.zip
 [DependencyError]
 VIB VMW_bootbank_vmkusb-nic-fling_2.1-6vmw.701.0.0.40599856 requires vmkapi_2_7_0_0, but the requirement cannot be satisfied within the ImageProfile.
 VIB VMW_bootbank_vmkusb-nic-fling_2.1-6vmw.701.0.0.40599856 requires vmkapi_incompat_2_7_0_0, but the requirement cannot be satisfied within the ImageProfile.
 Please refer to the log file for more details.
[root@esxiserver:/vmfs/volumes/0364c042-e0f8e72a/vmware/vSphere7/esxi-patch]

じゃぁ、zipファイルを2つ指定すればいけるのでは?と試してみると、こちらは成功した。

[root@esxiserver:/vmfs/volumes/0364c042-e0f8e72a/vmware/vSphere7/esxi-patch] esx
cli software vib install -d /vmfs/volumes/software/vmware/vSphere7/esxi-patch/VM
ware-ESXi-7.0U1a-17119627-depot.zip -d /vmfs/volumes/0364c042-e0f8e72a/vmware/tm
p/ESXi701-VMKUSB-NIC-FLING-40599856-component-17078334.zip
Installation Result
   Message: The update completed successfully, but the system needs to be rebooted for the changes to be effective.
   Reboot Required: true
   VIBs Installed: VMW_bootbank_bnxtnet_216.0.50.0-16vmw.701.0.0.16850804, VMW_bootbank_bnxtroce_216.0.58.0-7vmw.701.0.0.16850804, VMW_bootbank_brcmfcoe_12.0.1500.0-1vmw.701.0.0.16850804, VMW_bootbank_brcmnvmefc_12.6.278.10-3vmw.701.0.0.16850804, VMW_bootbank_elxiscsi_12.0.1200.0-2vmw.701.0.0.16850804, VMW_bootbank_elxnet_12.0.1250.0-5vmw.701.0.0.16850804, VMW_bootbank_i40en_1.8.1.123-1vmw.701.0.0.16850804, VMW_bootbank_i40iwn_1.1.2.6-1vmw.701.0.0.16850804, VMW_bootbank_iavmd_2.0.0.1055-5vmw.701.0.0.16850804, VMW_bootbank_icen_1.0.0.9-1vmw.701.0.0.16850804, VMW_bootbank_igbn_0.1.1.0-7vmw.701.0.0.16850804, VMW_bootbank_iser_1.1.0.1-1vmw.701.0.0.16850804, VMW_bootbank_ixgben_1.7.1.28-1vmw.701.0.0.16850804, VMW_bootbank_lpfc_12.6.278.10-8vmw.701.0.0.16850804, VMW_bootbank_lpnic_11.4.62.0-1vmw.701.0.0.16850804, VMW_bootbank_lsi-mr3_7.712.51.00-1vmw.701.0.0.16850804, VMW_bootbank_lsi-msgpt2_20.00.06.00-3vmw.701.0.0.16850804, VMW_bootbank_lsi-msgpt35_13.00.13.00-2vmw.701.0.0.16850804, VMW_bootbank_lsi-msgpt3_17.00.10.00-2vmw.701.0.0.16850804, VMW_bootbank_mtip32xx-native_3.9.8-1vmw.701.0.0.16850804, VMW_bootbank_ne1000_0.8.4-11vmw.701.0.0.16850804, VMW_bootbank_nenic_1.0.29.0-2vmw.701.0.0.16850804, VMW_bootbank_nfnic_4.0.0.44-2vmw.701.0.0.16850804, VMW_bootbank_nhpsa_70.0050.0.100-1vmw.701.0.0.16850804, VMW_bootbank_nmlx4-core_3.19.16.8-2vmw.701.0.0.16850804, VMW_bootbank_nmlx4-en_3.19.16.8-2vmw.701.0.0.16850804, VMW_bootbank_nmlx4-rdma_3.19.16.8-2vmw.701.0.0.16850804, VMW_bootbank_nmlx5-core_4.19.16.8-2vmw.701.0.0.16850804, VMW_bootbank_nmlx5-rdma_4.19.16.8-2vmw.701.0.0.16850804, VMW_bootbank_ntg3_4.1.5.0-0vmw.701.0.0.16850804, VMW_bootbank_nvme-pcie_1.2.3.9-2vmw.701.0.0.16850804, VMW_bootbank_nvmerdma_1.0.1.2-1vmw.701.0.0.16850804, VMW_bootbank_nvmxnet3-ens_2.0.0.22-1vmw.701.0.0.16850804, VMW_bootbank_nvmxnet3_2.0.0.30-1vmw.701.0.0.16850804, VMW_bootbank_pvscsi_0.1-2vmw.701.0.0.16850804, VMW_bootbank_qcnic_1.0.15.0-10vmw.701.0.0.16850804, VMW_bootbank_qedentv_3.40.3.0-12vmw.701.0.0.16850804, VMW_bootbank_qedrntv_3.40.4.0-12vmw.701.0.0.16850804, VMW_bootbank_qfle3_1.0.67.0-9vmw.701.0.0.16850804, VMW_bootbank_qfle3f_1.0.51.0-14vmw.701.0.0.16850804, VMW_bootbank_qfle3i_1.0.15.0-9vmw.701.0.0.16850804, VMW_bootbank_qflge_1.1.0.11-1vmw.701.0.0.16850804, VMW_bootbank_rste_2.0.2.0088-7vmw.701.0.0.16850804, VMW_bootbank_sfvmk_2.4.0.0010-15vmw.701.0.0.16850804, VMW_bootbank_smartpqi_70.4000.0.100-3vmw.701.0.0.16850804, VMW_bootbank_vmkata_0.1-1vmw.701.0.0.16850804, VMW_bootbank_vmkfcoe_1.0.0.2-1vmw.701.0.0.16850804, VMW_bootbank_vmkusb-nic-fling_2.1-6vmw.701.0.0.40599856, VMW_bootbank_vmkusb_0.1-1vmw.701.0.0.16850804, VMW_bootbank_vmw-ahci_2.0.5-2vmw.701.0.0.16850804, VMware_bootbank_cpu-microcode_7.0.1-0.10.17119627, VMware_bootbank_crx_7.0.1-0.10.17119627, VMware_bootbank_elx-esx-libelxima.so_12.0.1200.0-3vmw.701.0.0.16850804, VMware_bootbank_esx-base_7.0.1-0.10.17119627, VMware_bootbank_esx-dvfilter-generic-fastpath_7.0.1-0.10.17119627, VMware_bootbank_esx-ui_1.34.4-16668064, VMware_bootbank_esx-update_7.0.1-0.10.17119627, VMware_bootbank_esx-xserver_7.0.1-0.10.17119627, VMware_bootbank_gc_7.0.1-0.10.17119627, VMware_bootbank_loadesx_7.0.1-0.10.17119627, VMware_bootbank_lsuv2-hpv2-hpsa-plugin_1.0.0-3vmw.701.0.0.16850804, VMware_bootbank_lsuv2-intelv2-nvme-vmd-plugin_1.0.0-2vmw.701.0.0.16850804, VMware_bootbank_lsuv2-lsiv2-drivers-plugin_1.0.0-4vmw.701.0.0.16850804, VMware_bootbank_lsuv2-nvme-pcie-plugin_1.0.0-1vmw.701.0.0.16850804, VMware_bootbank_lsuv2-oem-dell-plugin_1.0.0-1vmw.701.0.0.16850804, VMware_bootbank_lsuv2-oem-hp-plugin_1.0.0-1vmw.701.0.0.16850804, VMware_bootbank_lsuv2-oem-lenovo-plugin_1.0.0-1vmw.701.0.0.16850804, VMware_bootbank_lsuv2-smartpqiv2-plugin_1.0.0-4vmw.701.0.0.16850804, VMware_bootbank_native-misc-drivers_7.0.1-0.10.17119627, VMware_bootbank_qlnativefc_4.0.3.0-17vmw.701.0.0.16850804, VMware_bootbank_vdfs_7.0.1-0.10.17119627, VMware_bootbank_vmware-esx-esxcli-nvme-plugin_1.2.0.38-1vmw.701.0.0.16850804, VMware_bootbank_vsan_7.0.1-0.10.17119627, VMware_bootbank_vsanhealth_7.0.1-0.10.17119627, VMware_locker_tools-light_11.1.1.16303738-16850804
   VIBs Removed: VMW_bootbank_bnxtnet_216.0.50.0-4vmw.700.1.0.15843807, VMW_bootbank_bnxtroce_216.0.58.0-1vmw.700.1.0.15843807, VMW_bootbank_brcmfcoe_12.0.1500.0-1vmw.700.1.0.15843807, VMW_bootbank_brcmnvmefc_12.4.293.2-3vmw.700.1.0.15843807, VMW_bootbank_elxiscsi_12.0.1200.0-1vmw.700.1.0.15843807, VMW_bootbank_elxnet_12.0.1250.0-5vmw.700.1.0.15843807, VMW_bootbank_i40en_1.8.1.16-1vmw.700.1.0.15843807, VMW_bootbank_i40iwn_1.1.2.5-1vmw.700.1.0.15843807, VMW_bootbank_iavmd_2.0.0.1055-3vmw.700.1.0.15843807, VMW_bootbank_igbn_0.1.1.0-6vmw.700.1.0.15843807, VMW_bootbank_iser_1.1.0.0-1vmw.700.1.0.15843807, VMW_bootbank_ixgben_1.7.1.26-1vmw.700.1.0.15843807, VMW_bootbank_lpfc_12.4.293.3-5vmw.700.1.0.15843807, VMW_bootbank_lpnic_11.4.62.0-1vmw.700.1.0.15843807, VMW_bootbank_lsi-mr3_7.712.50.00-1vmw.700.1.0.15843807, VMW_bootbank_lsi-msgpt2_20.00.06.00-2vmw.700.1.0.15843807, VMW_bootbank_lsi-msgpt35_13.00.12.00-1vmw.700.1.0.15843807, VMW_bootbank_lsi-msgpt3_17.00.10.00-1vmw.700.1.0.15843807, VMW_bootbank_mtip32xx-native_3.9.8-1vmw.700.1.0.15843807, VMW_bootbank_ne1000_0.8.4-10vmw.700.1.0.15843807, VMW_bootbank_nenic_1.0.29.0-1vmw.700.1.0.15843807, VMW_bootbank_nfnic_4.0.0.44-1vmw.700.1.0.15843807, VMW_bootbank_nhpsa_2.0.50-1vmw.700.1.0.15843807, VMW_bootbank_nmlx4-core_3.19.16.7-1vmw.700.1.0.15843807, VMW_bootbank_nmlx4-en_3.19.16.7-1vmw.700.1.0.15843807, VMW_bootbank_nmlx4-rdma_3.19.16.7-1vmw.700.1.0.15843807, VMW_bootbank_nmlx5-core_4.19.16.7-1vmw.700.1.0.15843807, VMW_bootbank_nmlx5-rdma_4.19.16.7-1vmw.700.1.0.15843807, VMW_bootbank_ntg3_4.1.4.1-1vmw.700.1.0.15843807, VMW_bootbank_nvme-pcie_1.2.2.13-1vmw.700.1.0.15843807, VMW_bootbank_nvmerdma_1.0.0.0-1vmw.700.1.0.15843807, VMW_bootbank_nvmxnet3-ens_2.0.0.22-1vmw.700.1.0.15843807, VMW_bootbank_nvmxnet3_2.0.0.30-1vmw.700.1.0.15843807, VMW_bootbank_pvscsi_0.1-2vmw.700.1.0.15843807, VMW_bootbank_qcnic_1.0.15.0-8vmw.700.1.0.15843807, VMW_bootbank_qedentv_3.12.1.0-23vmw.700.1.0.15843807, VMW_bootbank_qedrntv_3.12.1.2-12vmw.700.1.0.15843807, VMW_bootbank_qfle3_1.0.66.0-5vmw.700.1.0.15843807, VMW_bootbank_qfle3f_1.0.51.0-12vmw.700.1.0.15843807, VMW_bootbank_qfle3i_1.0.15.0-6vmw.700.1.0.15843807, VMW_bootbank_qflge_1.1.0.11-1vmw.700.1.0.15843807, VMW_bootbank_rste_2.0.2.0088-7vmw.700.1.0.15843807, VMW_bootbank_sfvmk_2.0.0.1004-3vmw.700.1.0.15843807, VMW_bootbank_smartpqi_1.0.4.3011-1vmw.700.1.0.15843807, VMW_bootbank_vmkata_0.1-1vmw.700.1.0.15843807, VMW_bootbank_vmkfcoe_1.0.0.2-1vmw.700.1.0.15843807, VMW_bootbank_vmkusb-nic-fling_2.1-6vmw.700.1.0.39035884, VMW_bootbank_vmkusb_0.1-1vmw.700.1.0.15843807, VMW_bootbank_vmw-ahci_1.3.9-1vmw.700.1.0.15843807, VMware_bootbank_cpu-microcode_7.0.0-1.0.15843807, VMware_bootbank_crx_7.0.0-1.0.15843807, VMware_bootbank_elx-esx-libelxima.so_12.0.1200.0-2vmw.700.1.0.15843807, VMware_bootbank_esx-base_7.0.0-1.0.15843807, VMware_bootbank_esx-dvfilter-generic-fastpath_7.0.0-1.0.15843807, VMware_bootbank_esx-ui_1.34.0-15603211, VMware_bootbank_esx-update_7.0.0-1.0.15843807, VMware_bootbank_esx-xserver_7.0.0-1.0.15843807, VMware_bootbank_loadesx_7.0.0-1.0.15843807, VMware_bootbank_lsuv2-hpv2-hpsa-plugin_1.0.0-2vmw.700.1.0.15843807, VMware_bootbank_lsuv2-intelv2-nvme-vmd-plugin_1.0.0-2vmw.700.1.0.15843807, VMware_bootbank_lsuv2-lsiv2-drivers-plugin_1.0.0-2vmw.700.1.0.15843807, VMware_bootbank_lsuv2-nvme-pcie-plugin_1.0.0-1vmw.700.1.0.15843807, VMware_bootbank_lsuv2-oem-dell-plugin_1.0.0-1vmw.700.1.0.15843807, VMware_bootbank_lsuv2-oem-hp-plugin_1.0.0-1vmw.700.1.0.15843807, VMware_bootbank_lsuv2-oem-lenovo-plugin_1.0.0-1vmw.700.1.0.15843807, VMware_bootbank_lsuv2-smartpqiv2-plugin_1.0.0-3vmw.700.1.0.15843807, VMware_bootbank_native-misc-drivers_7.0.0-1.0.15843807, VMware_bootbank_qlnativefc_4.0.1.0-3vmw.700.1.0.15843807, VMware_bootbank_vdfs_7.0.0-1.0.15843807, VMware_bootbank_vmware-esx-esxcli-nvme-plugin_1.2.0.37-1vmw.700.1.0.15843807, VMware_bootbank_vsan_7.0.0-1.0.15843807, VMware_bootbank_vsanhealth_7.0.0-1.0.15843807, VMware_locker_tools-light_11.0.5.15389592-15843807
   VIBs Skipped:
[root@esxiserver:/vmfs/volumes/0364c042-e0f8e72a/vmware/vSphere7/esxi-patch]

よって、依存するパッケージがある場合は、その全てを-dオプションで指定すればアップデートできる、ということのようだった。

Windows Liveメール2012で使えるメールサーバ設定

Windows Live メール2012で使える暗号化形式についてのまとめ

 Windows Liveメール2012Outlook 2019
POP3ポート110、暗号化なし
POP3ポート110、暗号化あり(STARTTLS)××
POP3ポート995、暗号化あり(SSL/TLS)
IMAPポート143、暗号化無し
IMAPポート143、暗号化あり(STARTTLS)×
IMAPポート993、暗号化あり(SSL/TLS)
   
SMTPポート25、暗号化なし△(非推奨)△(非推奨)
SMTPポート587、暗号化なし
SMTPポート587、暗号化STARTTLS×
SMTPポート465、暗号化SSL/TLS

SMTPのポート25は、アクセス回線(プロバイダ)側で接続規制が行われている可能性が高いので通常は使わない(使えないことが多い)
SMTPは、SMTP認証(SMTP AUTH)を有効にすること

「SMTPポート465、暗号化SSL/TLS」はSMTPS(SMTP over SSL)と表現される。最近は「SMTPポート587、暗号化STARTTLS」が主流で、ポート465を使うのは古いOutlookやWindows Liveメールぐらい。ポート465を提供しているメールサーバも徐々に減っているので、新規環境では使用しないことを推奨(ポート587に対応していないWindows Liveメールは捨てろ)

Outlook2019の注意点:暗号化を有効にした場合、サーバ側のSSL証明書の有効期限が切れると接続できなくなる。また、サーバ側のSSL証明書にサーバ名指定で使ったホスト名が登録されていないと接続できない。無視してアクセスするようなオプションがない

WindowsLiveメール/Outlookの注意点: メール送信時、送信者名の欄が空欄だと送信エラーになる。

エラー番号:0x800CCC78 で拒否される場合、サーバ名/ポート番号の指定とかに問題がある。

ありがちなのが、SMTP/IMAPの暗号化あり、設定が「SMTP/IMAPのSSL接続も可能なやつ(STARTTLS)」なのか「SMTPS/IMAPSによるSSL接続」のどちらなのか、という問題。前述のとおりWindows LiveメールやOutlook 2013などはSMTPS/IMAPSなので「SMTPS ポート465」で「IMAPS ポート993」を指定する必要がある。

MousePro MPro NB390H2-SSDの修理とWindowsインストール、そしてLTE内蔵改造

秋葉原のPCショップ EYESにてMousePro MPro NB390H2-SSDが5480円で売っていた。

画像

電源コネクタ破損ということでたぶん動くだろうと購入。

中を開けてみると、まぁ見事な壊れよう(なお、開ける時は左側の電源コネクタがある方から開けるといい。右側だとオーディオ端子とVGA端子の出っ張りがあって邪魔をするから)

画像

19V電源だけど、東芝/富士通系19Vとは大きさが微妙に違い刺さらないサイズなので、おそらく気がつかないアホが無理矢理押し込んで壊したんだと思われる。

画像

元のコネクタはこんな感じだったらしいけど、どれだけの力をかければ壊せるのか・・・

電源コネクタ部分は別基板になっていたので取り外して観察してみる

画像
画像
画像

基板に書かれていた「W330C」という文字列が機種名っぽかったので検索したところ、Clevo社のW330SU2というのがOEM元モデルのようである。

最初はコネクタを取り外して、東芝/富士通系と同じものに置き換えるつもりで部品も用意したんだけど、手持ちの半田ごてだとうまく取り外せなかったので、ケーブル伸ばして無理矢理配線でごまかした。

画像

Windows 10はすんなり入ったものの「SMバスコントローラ」が未認識。

画像

Clevo社のDownloadページから「Model:W330SU2」の「Driver:ALL」で表示させた中から「Chipset driver 10.0.17 for Win8.1 64bit」をダウンロードしてセットアップを実行してインストールする。

また、キーボード上の青いキー操作の内、音量操作などは動作しますが、液晶の輝度操作が動きません。こちらは「Hotkey driver 3.03.12 for Win8.1 64bit」をインストールすることで使えるようになるのでこちらもダウンロード/インストールします。

ちゃんと動くようになったので改造検討

WiFiの横にある「H=3 M」は、たぶんMキーという意味で、近くに「SSD」という記載も見えるのでNVMe SSDも行けるM.2 2280っぽい。(2021/03/10追記 NVMe SSDは認識しませんでした)

画像

もう一つの「H=4 B」はBキーという表記で、「3G」という表記。そして、そこに置かれている未接続のケーブル2本

ケーブルの先を確認すると「LTE」と書かれたアンテナっぽい基板に接続されている。

というわけで、たまたまジャンク500円で購入していたLTEカード(EM7330)をさしてアンテナケーブルを接続

どこかにSIMスロットがあるはず、と探すとすぐ近くに発見。

こちらバッテリーを取り外した時に、バッテリーコネクタの隣になります。

電源を入れると普通にWindows10上で認識し、使える様になりました。

画像

2022/08/15追記

メモリスロットが2つあるのでASUS U24Eに載せてる 「シー・エフ・デー販売 Elixir ノートパソコン用メモリ DDR3-SODIMM PC3-12800 CL11 8GB 2枚組 LowVoltage(1.35v) W3N1600Q-L8G」を載せてみたのですが、認識しませんでした。

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」におけるコントローラ自動切替の仕様に関する重要なお知らせ

画像
画像
画像