ad1

2019年2月3日日曜日

vSAN HCLに掲載されているデバイスを正しく実機と同じか把握する方法

vSAN環境を利用している場合はアップデート作業の前には必ずVMware Compatibility Guide vSAN HCLをチェックして、適切なバージョンのファームウェア、デバイスドライバを用意する事を推奨していますが、

「HCLに同じだったり似たような名前のHBAがリストされていて、どれを見るべき?」

と質問されましたので、
実際利用しているハードウェアとvSAN HCL記載のデバイスを正しくマッチさせるための調べ方を共有します。

※詳細はKB「『VMware ハードウェア互換性ガイド (HCL)』を使用して ESXi/ESX ホスト PCI デバイス (HBA) の正しいドライバを特定する (1031534)」にも記載がありますが、
ちょっと分かり難いので、今回は esxcli コマンドと esxcfg コマンドを利用する方法を紹介します。
※ 以前の KB 1031534 の内容は KB 1027206 に統合されたため以下を参照願います。

vSAN HCLの最新情報のチェック

vSANのHCL<VMware Compatibility Guide vSAN HCL>は、初期画面だとvSAN Ready Nodeのリストになるので、HBAなど個別コンポーネントをチェックする場合は、上記vSAN HCLページを少し下にスクロールして、
「認証コンポーネントを基盤とした構築」をクリックして画面を切り替えておきます。


例えば、IO Controller(HBA・RAIDカード)でDellのHBA330やH730などのカードを利用していた時はキーワードで検索すれば対象のHCLがリストされますが、
似ている名称、同名のカードがいくつも出てくる時があります。



ここで重要になるのは、
実際にサーバーに搭載しているカードがどれか、正しく判別するためには上のキャプチャにある「製品の説明」欄、または各カード名をクリックして詳細を表示した際に表示される、VID、SVID、DID、SDIDを実機のものと照らし合わせます。
それぞれの値が各ハードウェア固有の数値となります。
  • VID = ベンダー ID
  • SVID = サブベンダー ID
  • DID = デバイス ID
  • SDID = サブデバイス ID
    ※ Compatibility List では SSID と記載されていますが、SubDevice ID の略称なので SDID で本投稿では統一しています
実際にサーバーに搭載されているハードウェアの詳細はKBに記載のある vmkchdev -l コマンドや、esxcfg-info コマンドでも調べられますが、個人的には esxcli コマンドか、esxcfg-scsidevs などを利用するのが手っ取り早いかと思います。

デバイス情報全般を確認する際のesxcliのオプションは以下です。

esxcli hardware pci list

出力される情報が多いので、パイプでlessに渡すか、Teratermなどで結果を貼り付けてデバイス名(HBA330など)で検索するかで絞り込みます。
[root@tokyo-esxi01:~] esxcli hardware pci list
~中略~ 
0000:18:00.0
   Address: 0000:18:00.0
   Segment: 0x0000
   Bus: 0x18
   Slot: 0x00
   Function: 0x0
   VMkernel Name: vmhba0
   Vendor Name: Avago (LSI Logic)
   Device Name: Dell HBA330 Mini
   Configured Owner: VMkernel
   Current Owner: VMkernel
   Vendor ID: 0x1000
   Device ID: 0x0097
   SubVendor ID: 0x1028
   SubDevice ID: 0x1f53

   Device Class: 0x0107
   Device Class Name: Serial Attached SCSI controller 
~以下略~
 この様な形で、vSAN HCLのサイトに掲載されているVID、SVID、DID、SDIDを正確に確認する事が出来ます。

もっと簡単に絞り込みができるのが esxcfg-scsidevs コマンドです。
以下の例では PowerEdge に搭載された HBA330 であることもサクッと分かります。
[root@tokyo-esxi01:~] esxcfg-scsidevs -a
vmhba0  lsi_msgpt3        link-n/a  sas.54cd98f047153a00                    (0000:17:00.0) Avago (LSI Logic) Dell HBA330 Mini
vmhba1  vmw_ahci          link-n/a  sata.vmhba1                             (0000:00:11.5) Intel Corporation Lewisburg SATA AHCI Controller
vmhba2  vmw_ahci          link-n/a  sata.vmhba2                             (0000:00:17.0) Intel Corporation Lewisburg SATA AHCI Controller
vmhba3  vmw_ahci          link-n/a  sata.vmhba3                             (0000:65:00.0) Marvell Technology Group Ltd. Dell BOSS-S1 Adapter
vmhba0 が調べたいデバイスであることがわかり、ドライバ名 (lsi_msgpt3) も確認できます。

ドライババージョンを確認する場合は vmkload_mod コマンドでドライバ名を指定します。
[root@tokyo-esxi01:~] vmkload_mod -s lsi_msgpt3 | grep -i version
 Version: 17.00.02.00-1vmw.670.3.73.14320388

PCI List で確認したデバイスの各 ID を確認するためには vmkchdev を利用します。

[root@tokyo-esxi01:~] vmkchdev -l | grep vmhba0
0000:17:00.0 1000:0097 1028:1f53 vmkernel vmhba0
左から順番に VID、SVID、DID、SDID で確認できます。


ここまで、HBA など IO controller での確認方法となりますが、KB には NIC などの確認方法も掲載されていますので、詳細は以下の KB を参照願います。

最近のvSAN 6.6.x や vSAN 6.7.x ではvCenter vSphere Client でvSANの構成アシストやヘルスチェックの機能が充実しているので、
利用中のHBAなどのファームウェアやデバイスドライバがきちんとvSAN HCLに準拠したものを利用しているかどうか、明確にわかるようになりました。

最新のvSAN HCLの情報を正しく認識させておくためには、vSAN 健全性サービス - vSAN HCL の健全性 – vSAN HCL DB の最新の状態 (2109870) を参照し
定期的にvSAN HCL DBのファイル
 http://partnerweb.vmware.com/service/vsan/all.json
をダウンロードし、vCenter vSAN 健全性情報を更新しておきます。


過去30日でアクセスの多い投稿