検証用にCentOS5を新規インストールしたら面倒だった 2022/08/24版


検証のため古いOSを2022年にインストールしてみるシリーズ、今回はCentOS5をインストールする必要がありインストールした。(これまで「Windows Server 2008R2編」「Windows 7編」)

久しぶりすぎて忘れていたこととか、2022年の現状だと発生することとか、いろいろあったのでメモ書きとして残す。

vSphere環境上にインストールしたのだが、まず設定でいくつか問題が・・・

NICが認識できない

vSphere仮想マシンを新規作成する際のゲストOSを「CentOS 4/5以降 (64ビット)」で作成すると

ネットワークアダプタが「VMXNET3」として作成される。

しかし、VMXNET3のドライバはCentOS5.11のインストールISOには含まれていないため、ネットワーク接続が行えない

インストール直後からネットワーク接続を行いたい場合はアダプタタイプを「E1000」あたりで設定して作成する。

VMware Toolsが用意されていない

最近のESXiに含まれているVMware Toolsのlinux.iso にはRHEL5/CentOS5で使えるVMware Toolsが入っていない。

RHEL5/CentOS5に対応するのはVMware Tools 10.3.22までで、10.3.23以降は対応していない。

以前と同じように https://packages.vmware.com/tools/releases/10.3.22/ にあるレポジトリRPM をインストールしてyumコマンドでvmware-toolsをインストールしようとしたのですが、packages.vmware.com がTLS1.2のみ許可するWebサーバ設定となっているため、CentOS5からではファイルがダウンロードできない状態となっています。

このため https://www.vmware.com/go/tools から VMware Tools 10.3.22のダウンロードリンク から VMware Tools packages for Linuxをダウンロードして使うこととなる。

CentOS5の更新がダウンロードできない

CentOS5.11をインストールした直後の状態で yum check-update を実行すると下記のエラーとなる。

# yum check-update
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
YumRepo Error: All mirror URLs are not using ftp, http[s] or file.
 Eg. Invalid release/repo/arch combination/
removing mirrorlist with no valid mirrors: /var/cache/yum/base/mirrorlist.txt
Error: Cannot find a valid baseurl for repo: base
#

これはmirrorlistでCentOS5用のファイルが提供されなくなったためのエラーとなる。

これに対してはmirrorlistではなくbaseurlに変更し、URLを「http://mirror.centos.org/centos/$releasever/~」から「http://vault.centos.org/centos/5.11/~」に書き換える、という手法が知られている。

しかし、2022年8月時点ではこの手法で書き換えた場合、「M2Crypto.SSL.SSLError: unknown protocol」というエラーで失敗する

# yum check-update
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
Traceback (most recent call last):
  File "/usr/bin/yum", line 29, in ?
    yummain.user_main(sys.argv[1:], exit_code=True)
  File "/usr/share/yum-cli/yummain.py", line 309, in user_main
    errcode = main(args)
  File "/usr/share/yum-cli/yummain.py", line 178, in main
    result, resultmsgs = base.doCommands()
  File "/usr/share/yum-cli/cli.py", line 345, in doCommands
    self._getTs(needTsRemove)
  File "/usr/lib/python2.4/site-packages/yum/depsolve.py", line 101, in _getTs
    self._getTsInfo(remove_only)
  File "/usr/lib/python2.4/site-packages/yum/depsolve.py", line 112, in _getTsInfo
    pkgSack = self.pkgSack
  File "/usr/lib/python2.4/site-packages/yum/__init__.py", line 662, in <lambda>
    pkgSack = property(fget=lambda self: self._getSacks(),
  File "/usr/lib/python2.4/site-packages/yum/__init__.py", line 502, in _getSacks
    self.repos.populateSack(which=repos)
  File "/usr/lib/python2.4/site-packages/yum/repos.py", line 260, in populateSack
    sack.populate(repo, mdtype, callback, cacheonly)
  File "/usr/lib/python2.4/site-packages/yum/yumRepo.py", line 168, in populate
    if self._check_db_version(repo, mydbtype):
  File "/usr/lib/python2.4/site-packages/yum/yumRepo.py", line 226, in _check_db_version
    return repo._check_db_version(mdtype)
  File "/usr/lib/python2.4/site-packages/yum/yumRepo.py", line 1226, in _check_db_version
    repoXML = self.repoXML
  File "/usr/lib/python2.4/site-packages/yum/yumRepo.py", line 1399, in <lambda>
    repoXML = property(fget=lambda self: self._getRepoXML(),
  File "/usr/lib/python2.4/site-packages/yum/yumRepo.py", line 1391, in _getRepoXML
    self._loadRepoXML(text=self)
  File "/usr/lib/python2.4/site-packages/yum/yumRepo.py", line 1381, in _loadRepoXML
    return self._groupLoadRepoXML(text, ["primary"])
  File "/usr/lib/python2.4/site-packages/yum/yumRepo.py", line 1365, in _groupLoadRepoXML
    if self._commonLoadRepoXML(text):
  File "/usr/lib/python2.4/site-packages/yum/yumRepo.py", line 1201, in _commonLoadRepoXML
    result = self._getFileRepoXML(local, text)
  File "/usr/lib/python2.4/site-packages/yum/yumRepo.py", line 974, in _getFileRepoXML
    cache=self.http_caching == 'all')
  File "/usr/lib/python2.4/site-packages/yum/yumRepo.py", line 811, in _getFile
    http_headers=headers,
  File "/usr/lib/python2.4/site-packages/urlgrabber/mirror.py", line 412, in urlgrab
    return self._mirror_try(func, url, kw)
  File "/usr/lib/python2.4/site-packages/urlgrabber/mirror.py", line 398, in _mirror_try
    return func_ref( *(fullurl,), **kwargs )
  File "/usr/lib/python2.4/site-packages/urlgrabber/grabber.py", line 936, in urlgrab
    return self._retry(opts, retryfunc, url, filename)
  File "/usr/lib/python2.4/site-packages/urlgrabber/grabber.py", line 854, in _retry
    r = apply(func, (opts,) + args, {})
  File "/usr/lib/python2.4/site-packages/urlgrabber/grabber.py", line 922, in retryfunc
    fo = URLGrabberFileObject(url, filename, opts)
  File "/usr/lib/python2.4/site-packages/urlgrabber/grabber.py", line 1010, in __init__
    self._do_open()
  File "/usr/lib/python2.4/site-packages/urlgrabber/grabber.py", line 1093, in _do_open
    fo, hdr = self._make_request(req, opener)
  File "/usr/lib/python2.4/site-packages/urlgrabber/grabber.py", line 1202, in _make_request
    fo = opener.open(req)
  File "/usr/lib64/python2.4/urllib2.py", line 364, in open
    response = meth(req, response)
  File "/usr/lib64/python2.4/urllib2.py", line 471, in http_response
    response = self.parent.error(
  File "/usr/lib64/python2.4/urllib2.py", line 396, in error
    result = self._call_chain(*args)
  File "/usr/lib64/python2.4/urllib2.py", line 337, in _call_chain
    result = func(*args)
  File "/usr/lib64/python2.4/urllib2.py", line 565, in http_error_302
    return self.parent.open(new)
  File "/usr/lib64/python2.4/urllib2.py", line 358, in open
    response = self._open(req, data)
  File "/usr/lib64/python2.4/urllib2.py", line 376, in _open
    '_open', req)
  File "/usr/lib64/python2.4/urllib2.py", line 337, in _call_chain
    result = func(*args)
  File "/usr/lib64/python2.4/site-packages/M2Crypto/m2urllib2.py", line 82, in https_open
    h.request(req.get_method(), req.get_selector(), req.data, headers)
  File "/usr/lib64/python2.4/httplib.py", line 810, in request
    self._send_request(method, url, body, headers)
  File "/usr/lib64/python2.4/httplib.py", line 833, in _send_request
    self.endheaders()
  File "/usr/lib64/python2.4/httplib.py", line 804, in endheaders
    self._send_output()
  File "/usr/lib64/python2.4/httplib.py", line 685, in _send_output
    self.send(msg)
  File "/usr/lib64/python2.4/httplib.py", line 652, in send
    self.connect()
  File "/usr/lib64/python2.4/site-packages/M2Crypto/httpslib.py", line 55, in connect
    sock.connect((self.host, self.port))
  File "/usr/lib64/python2.4/site-packages/M2Crypto/SSL/Connection.py", line 174, in connect
    ret = self.connect_ssl()
  File "/usr/lib64/python2.4/site-packages/M2Crypto/SSL/Connection.py", line 167, in connect_ssl
    return m2.ssl_connect(self.ssl, self._timeout)
M2Crypto.SSL.SSLError: unknown protocol
#

これは、 vault.centos.org が TLS 1.2を使用したhttpsアクセスしか受け付けなくなったが、CentOS5側ではTLS 1.2に非対応であるため、TLS 1.2が理解できず「unknown protocol」となっている、という状態である。

2022年8月時点では archive.kernel.org は http アクセスを許可してくれているため、URLを「archive.kernel.org/centos-vault/5.11/」に書き換えることで、CentOS5のアップデートが行えるようになる。

# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client.  You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the
# remarked out baseurl= line instead.
#
#

[base]
name=CentOS-$releasever - Base
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
#baseurl=http://vault.centos.org/centos/$releasever/os/$basearch/
baseurl=http://archive.kernel.org/centos-vault/5.11/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5

#released updates
[updates]
name=CentOS-$releasever - Updates
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
#baseurl=http://vault.centos.org/centos/$releasever/updates/$basearch/
baseurl=http://archive.kernel.org/centos-vault/5.11/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5

#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
#baseurl=http://vault.centos.org/centos/$releasever/extras/$basearch/
baseurl=http://archive.kernel.org/centos-vault/5.11/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus
#baseurl=http://vault.centos.org/centos/$releasever/centosplus/$basearch/
baseurl=http://archive.kernel.org/centos-vault/5.11/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5

#contrib - packages by Centos Users
[contrib]
name=CentOS-$releasever - Contrib
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=contrib
#baseurl=http://vault.centos.org/centos/$releasever/contrib/$basearch/
baseurl=http://archive.kernel.org/centos-vault/5.11/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5

コピーしてきた仮想マシンがThe specified feature is not supported by this versionで起動できない


なんか生き残っていたvSphere 5.5上で動いていたvSphere仮想マシンを新vSphere環境に移行したいけど、費用かけないいい方法は無い?という相談があった。

ある程度作業ができる人なので「仮想マシン止めてからsshでESXiにログインして、仮想マシンが入ったディレクトリをまるごとscpでコピーすればいいんじゃないですか?」と提案した。

で・・・やってみたけど、仮想マシンのパワーオンに失敗したけど、なんだろ?という質問が・・・

すべてのディスクを列挙できません。指定された機能はこのバージョンではサポートされていません

というエラーとのこと。

こういうのは英語で探さないと情報がでてこないけど、正しいのがわからないので、とりあえず「not support this version」あたりの単語から https://kb.vmware.com/ で検索して情報捜索。

Failed to power on virtual machine (82542)
 仮想マシンのパワーオンに失敗する場合のまとめ

“The specified feature is not supported by this version” error creating a snapshot in a vSAN environment (83381)
 vSANとVMFS6とでサポートしている機能に差があることで、特定のデータストアで起動できない、という事例

Migrating a VM to a VSAN datastore fails (82801)
 VSANに移行しようとして失敗する際にvmfssparseのエラーなどがでている

どうやらデータストアのファイルシステムと、仮想マシンのスナップショット周りでなにかがある、というのが見えてきた。

その観点で調査継続

VMFS でのスナップショットのフォーマット

VMFS5で2TB未満の仮想ディスクのスナップショットはVMFSsparseフォーマット
VMFS5で2TB以上の仮想ディスクのスナップショットは SEsparseフォーマット
VMFS6の仮想ディスクスナップショットは全てSEsparseフォーマット

Virtual Machines running on an SEsparse snapshot may report guest data inconsistencies (59216)

VMFS5データストアとNFSデータストアでは、2TB以上の仮想ディスクはSEsparse形式

ということが判明した。

このことから、起動しなかった仮想マシンではスナップショットが使われいたのではないか?という仮説となった。

確認してもらうと確かにスナップショットが使われていたとのこと。

対処方法としては、「新環境にNFSデータストアがあるのであればそこに移動させた後であれば起動できる」一度起動したあとであればstorage vmotionを使ってVMFS6データストアに移動できる。

もしくは、スナップショットを消してから移行を行う、ということとなった。

Windows Server 2008をいまさらセットアップした(作業メモ版)


2022/07/08追記

何回か実行してみたところ、いろんな問題があったため、新しい記事「Windows Server 2008 SP2のWindows Updateがうまくいかない件への対処策 2022/07/07版」としてまとめ直しました。


とあるバックアップソフトの対象機種からWindows Server 2008が外れた。

これは「ホントにインストールできない」という意味なのか、それとも「インストールできるけどサポート対象と認定しない」という意味なのか、どちらなんだろ?と確認するため、Windows Server 2008環境を新規でセットアップした。

Windows Server 2008 SP2 のISOイメージを使ってvSphere環境でインストールを実施。

まず、VMware Toolsをインストールしようとしたら対応していないOSと言われてしまう。

調べると最後のWindows Server 2008 SP2対応はVMware Tools 11.0.6だったらしい。

このバージョンのVMware toolsダウンロードを https://packages.vmware.com/tools/releases/11.0.6/ から行ってインストールを実施。

続いて、Windows OSのアップデートは WSUS Offline Updateを使ってオフライン状態でアップデートできないかな、と確認してみると、ESR versionの 11.9.1 であればWindows Server 2008に対応していたので、ISOイメージを作成した。

が・・・ ListMissingUpdateIds.vbs で、「信頼プロバイダが信頼していないルート証明書で強制終了しました」というエラーで失敗して、パッチ適用の本編に進まない。

certmgr.mscを起動して確認してみると「証明書失効リスト」にいろいろある・・・

ListMissingUpdateIds.vbs の処理を修正しないとダメっぽいんだけど、うまくデバグできなかったので対処を諦めて普通にWindows Updateを実施。

しかし、最後10個ぐらいのところで、それ以上進まなくなる、という現象が発生。

2回実施中2回とも発生なので、特定の何かで問題が発生している模様。

この状態になると強制電源OFF/ONして、Windows Updateのロールバック処理を行うぐらいしか対処方法が無かった。

ロールバック完了後に再度Windows Updateを実行してみると半分以上がまだ未適用でした・・・面倒くさい

この後のWindows Updateはハングアップすることはなく普通に進み、とはいえ、何回か再起動とWindows Updateの再実行が必要でした。


で・・・

今回、Windows Server 2008環境を構築するきっかけとなった非対応問題ですが、「インストールできない」という状況でした。

なぜインストールできないのか、というのは前提条件である.NET Framework 4.6.2がWindows Server 2008に非対応だったから、ということでした。

なお、Windows Server 2008については古いバージョンをインストールしておけばサーバ側が新しいバージョンであってもバックアップ/リストアが問題無く動作していました。


WSUS Offline Updateを使わないでいきなりWindows Updateしてみると、Microsoftサイトにアクセスできずに終わります。

なぜかこのような状態になっているかと言えば、といえばhttpsアクセス時に使用する証明書が全て有効期限切れとなっているためですね。

これはcertmgr.mscを起動して確認出来る信頼されたルート証明書機関の有効期限を見ればわかります。

WSUS Offline Updateはルート証明書の更新はやってくれて下記の様な感じになっています。これによりhttpsによるアクセスが成功するようになっている感じですね。

ESXi をprofileベースでアップデートする


hpeやDELLなどのメーカ製サーバにESXiをインストールする際はそれぞれのメーカが提供するOEMイメージを使用する。

で、あとでパッチを適用する場合、メーカから出ているBundle zipファイルを適用するが、「esxcli software update -d ~」で適用すると「構成:イメージ プロファイル」の記述がアップデートされない。

プロファイルとしてきちんとアップデートを適用するには、それなりの操作を行う必要がある。

(1) Bundle zipファイル内のプロファイル名確認

まず、提供されているBundle zipファイルに含まれるプロファイル名を確認するために「esxcli software sources profile list」を実行

[root@ホスト名] esxcli software sources profile list -d /vmfs/volumes/~/VMware-VMvisor-Installer-6.7.0.update03-18828794.x86_64-DellEMC_Customized-A16.zip
Name                             Vendor  Acceptance Level  Creation Time        Modification Time
-------------------------------  ------  ----------------  -------------------  -------------------
DellEMC-ESXi-6.7U3-18828794-A16  Dell    PartnerSupported  2021-10-26T03:23:17  2022-01-11T12:21:23
[root@ホスト名]

(2) 現状適用されているプロファイル名確認

次に現状のプロファイル名を確認するために「esxcli software profile get」を実行

[root@ホスト名] esxcli software profile get
(Updated) DellEMC-ESXi-6.7U3-15160138-A03
   Name: (Updated) DellEMC-ESXi-6.7U3-15160138-A03
   Vendor: Dell
   Creation Time: 2021-12-28T08:45:43
   Modification Time: 2022-04-22T07:27:05
   Stateless Ready: False
   Description:

      2021-12-28T08:45:43.600204+00:00: The following VIBs are
      installed:
        net-ixgbe     3.7.13.7.14iov-20vmw.670.0.0.8169922
        ata-pata-amd  0.3.10-3vmw.670.0.0.8169922
<略>
[root@ホスト名] 

(3) プロファイルによるアップデートの適用

プロファイルとしてアップデートを適用するため「esxcli software profile update」でコマンドを実行。

[root@ホスト名]  esxcli software profile update -d /vmfs/volumes/~VMware-VMvisor-Installer-6.7.0.update03-18828794.x86_64-DellEMC_Customized-A16.zip -p DellEMC-ESXi-6.7U3-18828794-A16
<略>

(4) 再起動

適用を反映させるため、再起動を実施

PowerScale でアラートの警告をCLIで消す


PowerScale/Isilon/One FSシミュレータをvSphere環境上にたてて放置しておいたら、アラートが上がっている。

One or more drives (location(s) Bay 7, Bay 8, Bay 9, Bay 10, Bay 11, Bay 12, Bay 13, Bay 14, Bay 15 / type(s) HDD, HDD, HDD, HDD, HDD, HDD, HDD, HDD, HDD) are not healthy.

各ノードのBayについて出ている。

[Cluster Management]-[Hardware Configuration]の[Drives]で該当ノードをスロットを確認するとたしかに「Empty」となっている。

sshアクセスして「isi status」の結果をとってみる。

isilon-1# isi status
Cluster Name: isilon
Cluster Health:     [ ATTN]
Data Reduction:     1.08 : 1
Storage Efficiency: 0.27 : 1
Cluster Storage:  HDD                 SSD Storage
Size:             403.2G (548.1G Raw) 0 (0 Raw)
VHS Size:         144.9G
Used:             7.3G (2%)           0 (n/a)
Avail:            395.9G (98%)        0 (n/a)

                   Health  Throughput (bps)  HDD Storage      SSD Storage
ID |IP Address     |DASR |  In   Out  Total| Used / Size     |Used / Size
---+---------------+-----+-----+-----+-----+-----------------+-----------------
  1|172.17.44.85   | OK  |    0| 1.4M| 1.4M| 1.0G/57.6G(  2%)|(No Storage SSDs)
  2|n/a            |-A-- |    0| 224k| 224k| 791M/57.6G(  1%)|(No Storage SSDs)
  3|172.17.44.87   | OK  |    0|    0|    0| 1.2G/57.6G(  2%)|(No Storage SSDs)
  4|172.17.44.88   | OK  |    0| 526k| 526k|1022M/57.6G(  2%)|(No Storage SSDs)
  5|172.17.44.89   | OK  |    0|49.7k|49.7k| 922M/57.6G(  2%)|(No Storage SSDs)
  6|172.17.44.86   | OK  |    0|33.3k|33.3k| 1.3G/57.6G(  2%)|(No Storage SSDs)
  7|n/a            |-A-- |    0|60.1k|60.1k| 1.2G/57.6G(  2%)|(No Storage SSDs)
---+---------------+-----+-----+-----+-----+-----------------+-----------------
Cluster Totals:          |    0| 2.2M| 2.2M| 7.3G/ 403G(  2%)|(No Storage SSDs)

     Health Fields: D = Down, A = Attention, S = Smartfailed, R = Read-Only

Critical Events:
Time            LNN  Event
--------------- ---- -------------------------------------------------------
03/15 19:12:38  2    One or more drives (location(s) Bay  7, Bay  8, Bay ...
03/15 19:23:19  7    One or more drives (location(s) Bay  7, Bay  8, Bay ...


Cluster Job Status:

No running jobs.

No paused or waiting jobs.

No failed jobs.

Recent job results:
Time            Job                        Event
--------------- -------------------------- ------------------------------
03/16 04:00:25  ShadowStoreProtect[63]     Succeeded
03/16 02:00:13  WormQueue[62]              Succeeded
03/16 00:01:00  ShadowStoreDelete[61]      Succeeded
03/15 22:12:38  SnapshotDelete[60]         Succeeded
03/15 22:02:43  FSAnalyze[59]              Succeeded
03/15 22:01:12  SmartPools[58]             Succeeded
03/15 20:00:26  ShadowStoreProtect[57]     Succeeded
03/15 19:16:11  MultiScan[56]              Succeeded
03/15 19:04:57  MultiScan[55]              Succeeded
03/15 19:00:06  MultiScan[53]              Succeeded

isilon-1#

イベントのアラートをとりあえず消すか、と、まずはイベントのeventgroup IDを確認するため「isi event events list –format=csv」を実行。
(「isi event events list」だと無駄なスペースが多くて探しにくいので、コンパクトなcsv出力にしています。)

isilon-1# isi event events list --format=csv
ID,Occurred,Sev,Lnn,"Eventgroup ID",Message
1.2,1646613393,W,1,1,"The SmartPools upgrade has not completed. Please contact PowerScale support and reference emc321047"
1.176,1646613393,U,1,1,
1.331,1646613875,I,-1,1024,"Resolving event group"
1.273,1646613695,W,-1,1024,"Node 2 is unprovisioned"
1.1120,1647338834,C,0,1051,"Resolved from PAPI"
1.356,1646614051,C,1,1051,"One or more drives (location(s) Bay  7, Bay  8, Bay  9, Bay 10, Bay 11, Bay 12, Bay 13, Bay 14, Bay 15 / type(s) HDD, HDD, HDD, HDD, HDD, HDD, HDD, HDD, HDD) are not healthy."
1.1119,1647338833,C,0,1052,"Resolved from PAPI"
2.314,1646614344,C,-1,1052,"One or more drives (location(s) Bay  7, Bay  8, Bay  9, Bay 10, Bay 11, Bay 12, Bay 13, Bay 14, Bay 15 / type(s) HDD, HDD, HDD, HDD, HDD, HDD, HDD, HDD, HDD) are not healthy."
1.1122,1647338838,C,0,1053,"Resolved from PAPI"
3.263,1646614413,C,-1,1053,"One or more drives (location(s) Bay  7, Bay  8, Bay  9, Bay 10, Bay 11, Bay 12, Bay 13, Bay 14, Bay 15 / type(s) HDD, HDD, HDD, HDD, HDD, HDD, HDD, HDD, HDD) are not healthy."
1.802,1647310249,C,0,1054,"Resolved from PAPI"
4.254,1646614484,C,4,1054,"One or more drives (location(s) Bay  7, Bay  8, Bay  9, Bay 10, Bay 11, Bay 12, Bay 13, Bay 14, Bay 15 / type(s) HDD, HDD, HDD, HDD, HDD, HDD, HDD, HDD, HDD) are not healthy."
4.269,1646665200,I,4,1060,"Heartbeat Event"
1.376,1646665200,I,1,1061,"Heartbeat Event"
3.304,1646751600,I,-1,1085,"Heartbeat Event"
4.296,1646751600,I,4,1086,"Heartbeat Event"
2.355,1646751600,I,-1,1087,"Heartbeat Event"
1.426,1646751600,I,1,1088,"Heartbeat Event"
2.384,1646838000,I,-1,1111,"Heartbeat Event"
4.325,1646838000,I,4,1112,"Heartbeat Event"
3.333,1646838000,I,-1,1113,"Heartbeat Event"
1.477,1646838000,I,1,1114,"Heartbeat Event"
2.412,1646924400,I,-1,1137,"Heartbeat Event"
1.527,1646924400,I,1,1138,"Heartbeat Event"
4.353,1646924400,I,4,1144,"Heartbeat Event"
3.361,1646924400,I,-1,1145,"Heartbeat Event"
2.441,1647010800,I,-1,1163,"Heartbeat Event"
4.382,1647010800,I,4,1164,"Heartbeat Event"
3.390,1647010800,I,-1,1165,"Heartbeat Event"
1.578,1647010800,I,1,1166,"Heartbeat Event"
1.635,1647097200,I,1,1194,"Heartbeat Event"
3.420,1647097200,I,-1,1200,"Heartbeat Event"
4.412,1647097200,I,4,1201,"Heartbeat Event"
2.471,1647097200,I,-1,1202,"Heartbeat Event"
2.500,1647183600,I,-1,1220,"Heartbeat Event"
1.686,1647183600,I,1,1221,"Heartbeat Event"
3.449,1647183600,I,-1,1227,"Heartbeat Event"
4.441,1647183600,I,4,1228,"Heartbeat Event"
2.529,1647270000,I,-1,1246,"Heartbeat Event"
3.478,1647270000,I,-1,1247,"Heartbeat Event"
4.470,1647270000,I,4,1248,"Heartbeat Event"
1.737,1647270000,I,1,1249,"Heartbeat Event"
1.1121,1647338837,C,0,1457,"Resolved from PAPI"
5.271,1647337391,C,5,1457,"One or more drives (location(s) Bay  7, Bay  8, Bay  9, Bay 10, Bay 11, Bay 12, Bay 13, Bay 14, Bay 15 / type(s) HDD, HDD, HDD, HDD, HDD, HDD, HDD, HDD, HDD) are not healthy."
1.1028,1647337630,I,3,1458,"Resolving event group"
1.1016,1647337569,W,3,1458,"Node 3 is unprovisioned"
1.1054,1647338168,I,6,1471,"Resolving event group"
1.1042,1647338049,W,6,1471,"Node 6 is unprovisioned"
1.1109,1647338661,C,0,1476,"Resolved from PAPI"
6.270,1647338209,C,3,1476,"One or more drives (location(s) Bay  7, Bay  8, Bay  9, Bay 10, Bay 11, Bay 12, Bay 13, Bay 14, Bay 15 / type(s) HDD, HDD, HDD, HDD, HDD, HDD, HDD, HDD, HDD) are not healthy."
1.1137,1647339264,I,7,1520,"Resolving event group"
1.1124,1647339143,C,7,1520,"Node 7 is offline"
8.270,1647339158,C,2,1523,"One or more drives (location(s) Bay  7, Bay  8, Bay  9, Bay 10, Bay 11, Bay 12, Bay 13, Bay 14, Bay 15 / type(s) HDD, HDD, HDD, HDD, HDD, HDD, HDD, HDD, HDD) are not healthy."
1.1138,1647339265,I,7,1525,"Node 7 is online (offline event 1.1124, Tue Mar 15 19:12:23 2022 to Tue Mar 15 19:14:24 2022)"
9.268,1647339799,C,7,1535,"One or more drives (location(s) Bay  7, Bay  8, Bay  9, Bay 10, Bay 11, Bay 12, Bay 13, Bay 14, Bay 15 / type(s) HDD, HDD, HDD, HDD, HDD, HDD, HDD, HDD, HDD) are not healthy."
8.445,1647356400,I,2,1578,"Heartbeat Event"
7.297,1647356401,I,6,1579,"Heartbeat Event"
5.325,1647356400,I,5,1580,"Heartbeat Event"
6.306,1647356400,I,3,1581,"Heartbeat Event"
1.1201,1647356401,I,1,1582,"Heartbeat Event"
9.432,1647356400,I,7,1588,"Heartbeat Event"
4.589,1647356401,I,4,1589,"Heartbeat Event"
1.322,1646613815,I,1,4,"Resolving event group"
1.171,1646613514,W,1,4,"Node 1 is unprovisioned"
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total: 64                                                                                                                                            
isilon-1#

出力の「Lnn」に注目してもらうと見えてくるのですが、isi statusで出ている2,7以外でもこのメッセージは出ていて、それはすでにResolveとしていたりします。

Lnn単位でフィルターするオプションはないようなので、grepします。

「isi status」で確認した時刻「03/15 19:23:19」を使います。

Critical Events:
Time            LNN  Event
--------------- ---- -------------------------------------------------------
03/15 19:12:38  2    One or more drives (location(s) Bay  7, Bay  8, Bay ...
03/15 19:23:19  7    One or more drives (location(s) Bay  7, Bay  8, Bay ...

format=csvの時の時刻はunixtimeとなっているのでdateコマンドを使って変換します。ただし、OneFSのdateコマンドはBSD dateなのでオプションの違いに注意する必要があります。

isilon-1# date -j -f "%Y-%m-%d %H:%M:%S" "2022-03-15 19:12:38" +%s
1647339158
isilon-1#

unixtimeが判明したので、grepします。

isilon-1# isi event events list --format=csv|grep 1647339158
8.270,1647339158,C,2,1523,"One or more drives (location(s) Bay  7, Bay  8, Bay  9, Bay 10, Bay 11, Bay 12, Bay 13, Bay 14, Bay 15 / type(s) HDD, HDD, HDD, HDD, HDD, HDD, HDD, HDD, HDD) are not healthy."
isilon-1#

出力は「ID,Occurred,Sev,Lnn,”Eventgroup ID”,Message」という順番なので
 ID:8.270
 Lnn:2
 Eventgroup ID:1523
となります。

イベントの単品を確認する場合は「isi event events view <ID>」を実行します。

isilon-1# isi event events view 8.270
           ID: 8.270
Eventgroup ID: 1523
   Event Type: 100010011
      Message: One or more drives (location(s) Bay  7, Bay  8, Bay  9, Bay 10, Bay 11, Bay 12, Bay 13, Bay 14, Bay 15 / type(s) HDD, HDD, HDD, HDD, HDD, HDD, HDD, HDD, HDD) are not healthy.
        Devid: 8
          Lnn: 2
         Time: 2022-03-15T19:12:38
     Severity: critical
        Value: 9.0
isilon-1#

Eventgroup IDベースで確認するのであれば「isi event view –id=<EventGroupID>」

isilon-1# isi event view --id=1523
          ID: 1523
     Started: 03/15 19:12
 Causes Long: One or more drives (location(s) Bay  7, Bay  8, Bay  9, Bay 10, Bay 11, Bay 12, Bay 13, Bay 14, Bay 15 / type(s) HDD, HDD, HDD, HDD, HDD, HDD, HDD, HDD, HDD) are not healthy.
         Lnn: 2
       Devid: 8
  Last Event: 2022-03-15T19:12:38
      Ignore: No
 Ignore Time: Never
    Resolved: No
Resolve Time: Never
       Ended: --
      Events: 1
    Severity: critical
isilon-1#

解決するには「isi event modify –id=<EventGroupID> –resolved=true」を実行

isilon-1# isi event modify --id=1523 --resolved=true
isilon-1# isi status
Cluster Name: isilon
<略>
Critical Events:
Time            LNN  Event
--------------- ---- -------------------------------------------------------
03/15 19:23:19  7    One or more drives (location(s) Bay  7, Bay  8, Bay ...

<略>
isilon-1# 

該当するアラートが消えました。

同様に残っているもう1つも消します。

isilon-1# date -j -f "%Y-%m-%d %H:%M:%S" "2022-03-15 19:23:19" +%s
1647339799
isilon-1# isi event events list --format=csv|grep 1647339799
9.268,1647339799,C,7,1535,"One or more drives (location(s) Bay  7, Bay  8, Bay  9, Bay 10, Bay 11, Bay 12, Bay 13, Bay 14, Bay 15 / type(s) HDD, HDD, HDD, HDD, HDD, HDD, HDD, HDD, HDD) are not healthy."
isilon-1# isi event view --id 1535
          ID: 1535
     Started: 03/15 19:23
 Causes Long: One or more drives (location(s) Bay  7, Bay  8, Bay  9, Bay 10, Bay 11, Bay 12, Bay 13, Bay 14, Bay 15 / type(s) HDD, HDD, HDD, HDD, HDD, HDD, HDD, HDD, HDD) are not healthy.
         Lnn: 7
       Devid: 9
  Last Event: 2022-03-15T19:23:19
      Ignore: No
 Ignore Time: Never
    Resolved: No
Resolve Time: Never
       Ended: --
      Events: 1
    Severity: critical
isilon-1# isi event modify --id=1535 --resolved=true
isilon-1# isi status
Cluster Name: isilon
Cluster Health:     [ ATTN]
Data Reduction:     1.08 : 1
Storage Efficiency: 0.27 : 1
Cluster Storage:  HDD                 SSD Storage
Size:             403.2G (548.1G Raw) 0 (0 Raw)
VHS Size:         144.9G
Used:             7.4G (2%)           0 (n/a)
Avail:            395.8G (98%)        0 (n/a)

                   Health  Throughput (bps)  HDD Storage      SSD Storage
ID |IP Address     |DASR |  In   Out  Total| Used / Size     |Used / Size
---+---------------+-----+-----+-----+-----+-----------------+-----------------
  1|172.17.44.85   | OK  | 551k| 4.7M| 5.3M| 1.0G/57.6G(  2%)|(No Storage SSDs)
  2|n/a            | OK  |    0|14.5k|14.5k| 795M/57.6G(  1%)|(No Storage SSDs)
  3|172.17.44.87   | OK  |    0|33.2k|33.2k| 1.2G/57.6G(  2%)|(No Storage SSDs)
  4|172.17.44.88   | OK  |    0|49.7k|49.7k| 1.0G/57.6G(  2%)|(No Storage SSDs)
  5|172.17.44.89   | OK  |    0|22.4k|22.4k| 924M/57.6G(  2%)|(No Storage SSDs)
  6|172.17.44.86   | OK  |    0| 230k| 230k| 1.3G/57.6G(  2%)|(No Storage SSDs)
  7|n/a            |-A-- | 9.7k| 96.0| 9.8k| 1.2G/57.6G(  2%)|(No Storage SSDs)
---+---------------+-----+-----+-----+-----+-----------------+-----------------
Cluster Totals:          | 561k| 5.1M| 5.6M| 7.4G/ 403G(  2%)|(No Storage SSDs)

     Health Fields: D = Down, A = Attention, S = Smartfailed, R = Read-Only

Critical Events:
Time            LNN  Event
--------------- ---- -------------------------------------------------------


Cluster Job Status:

No running jobs.

No paused or waiting jobs.

No failed jobs.

Recent job results:
Time            Job                        Event
--------------- -------------------------- ------------------------------
03/16 04:00:25  ShadowStoreProtect[63]     Succeeded
03/16 02:00:13  WormQueue[62]              Succeeded
03/16 00:01:00  ShadowStoreDelete[61]      Succeeded
03/15 22:12:38  SnapshotDelete[60]         Succeeded
03/15 22:02:43  FSAnalyze[59]              Succeeded
03/15 22:01:12  SmartPools[58]             Succeeded
03/15 20:00:26  ShadowStoreProtect[57]     Succeeded
03/15 19:16:11  MultiScan[56]              Succeeded
03/15 19:04:57  MultiScan[55]              Succeeded
03/15 19:00:06  MultiScan[53]              Succeeded

isilon-1#

あれ?「Critical Events」に何もないのに、「Cluster Health:ATTN」のまま?

大丈夫です。クラスタステータスの更新は少し時間が掛かっているだけでした。

isilon-1# isi status
Cluster Name: isilon
Cluster Health:     [  OK ]
Data Reduction:     1.08 : 1
Storage Efficiency: 0.27 : 1
Cluster Storage:  HDD                 SSD Storage
Size:             403.2G (548.1G Raw) 0 (0 Raw)
VHS Size:         144.9G
Used:             7.4G (2%)           0 (n/a)
Avail:            395.8G (98%)        0 (n/a)

                   Health  Throughput (bps)  HDD Storage      SSD Storage
ID |IP Address     |DASR |  In   Out  Total| Used / Size     |Used / Size
---+---------------+-----+-----+-----+-----+-----------------+-----------------
  1|172.17.44.85   | OK  |    0| 200k| 200k| 1.0G/57.6G(  2%)|(No Storage SSDs)
  2|n/a            | OK  |    0|    0|    0| 792M/57.6G(  1%)|(No Storage SSDs)
  3|172.17.44.87   | OK  |    0| 244k| 244k| 1.2G/57.6G(  2%)|(No Storage SSDs)
  4|172.17.44.88   | OK  |    0|24.9k|24.9k| 1.0G/57.6G(  2%)|(No Storage SSDs)
  5|172.17.44.89   | OK  |    0| 128k| 128k| 924M/57.6G(  2%)|(No Storage SSDs)
  6|172.17.44.86   | OK  |    0|33.3k|33.3k| 1.3G/57.6G(  2%)|(No Storage SSDs)
  7|n/a            | OK  |    0| 175k| 175k| 1.2G/57.6G(  2%)|(No Storage SSDs)
---+---------------+-----+-----+-----+-----+-----------------+-----------------
Cluster Totals:          |    0| 805k| 805k| 7.4G/ 403G(  2%)|(No Storage SSDs)

     Health Fields: D = Down, A = Attention, S = Smartfailed, R = Read-Only

Critical Events:
Time            LNN  Event
--------------- ---- -------------------------------------------------------


Cluster Job Status:

No running jobs.

No paused or waiting jobs.

No failed jobs.

Recent job results:
Time            Job                        Event
--------------- -------------------------- ------------------------------
03/16 04:00:25  ShadowStoreProtect[63]     Succeeded
03/16 02:00:13  WormQueue[62]              Succeeded
03/16 00:01:00  ShadowStoreDelete[61]      Succeeded
03/15 22:12:38  SnapshotDelete[60]         Succeeded
03/15 22:02:43  FSAnalyze[59]              Succeeded
03/15 22:01:12  SmartPools[58]             Succeeded
03/15 20:00:26  ShadowStoreProtect[57]     Succeeded
03/15 19:16:11  MultiScan[56]              Succeeded
03/15 19:04:57  MultiScan[55]              Succeeded
03/15 19:00:06  MultiScan[53]              Succeeded

isilon-1#