2020年5月31日日曜日

【製品比較】TP-LINK TL-SG108EとNETGEAR GS308Eを比較してみた!

最近では、3,000円台でVLAN設定ができるスイッチが販売されており、自宅では以前から「TP-LINK TL-SG108E」を使用している。

このスイッチとすごい見た目と機能が似ているスイッチとして「NETGEAR GS308E」があり気になっていた。

ちょうどスイッチがもう1つ必要だったので、買い足して比較してみた。

比較結果

以下に比較結果を記載する。NETGEAR GS308Eでは対応していない項目がいくつかあることから、「TP-LINK TL-SG108E」がおすすめとなる。

設定項目 TP-LINK TL-SG108E NETGEAR GS308E
価格 3,490円 (2016年購入時) 3,660円 (2020年購入時)
大きさ 158 x 101 x 25 mm 158 x 101 x 29 mm
重量 0.5kg 0.5kg
MACアドレステーブル 4K 4K
Buffer Size 192KB 192KB
Jumbo Frame 15K 9K
ユーザID変更 ×
バックアップ・リストア
工場出荷状態にリセット ● 管理画面・本体両方で可能
インタフェース管理 ● ポート単位でDisableが可能 × Disable不可
Port Statistics ● 受信/送信でエラーパケット確認が可能 ▲ 受信/送信の区別不可
LAG × 設定項目なし
IGMP Snooping
Loop検知
ポートミラーリング ● Ingress(受信)/Egress(送信)の選択が可能 ▲ 選択不可
ケーブルテスター
MTU VLAN × 設定項目なし
Port Based VLAN
802.1Q VLAN
帯域制御 ● 数値で指定 ▲ 512Kbps~512Mbpsの範囲のみ選択して設定可能
Storm Control ● UL-Frame/Multicast/Broadcastの指定が可能 ▲ Broadcastのみ

管理画面の比較

VLAN設定の管理画面で比較をしてみる。

VLAN設定は1画面で設定・確認できるようになっており、どのVLAN IDがどのポートにTagged/Untaggedで設定されているかわかるように表示される。

NETGEAR GS308E

VLAN設定は、まず「Basic」と「Advanced」に分かれている。

両方設定するのか、片方設定するのかさっそく分かりづらいが、これは「片方」しか設定できず、DisableをEnableにしようとすると、現在の設定が消去される旨の警告が表示される。

また、Tagged/Untaggedの設定は、VLAN IDを選択したうえで図示されたポートをクリックすることで設定することができる。

ただし、この設定を確認しようとすると、再度VLAN IDを選択して画面を表示させる必要がある。一覧表示する画面もあるのだが、残念ながらVLANに所属することしか確認できず、Tagged/Untaggedは表現されていない。

まとめ

すでに記載しているが、設定の豊富さ、管理画面の使いやすさ両方を考慮すると、「TP-LINK TL-SG108E」の選択が間違いないだろう。

2020年5月27日水曜日

【PowerCLI】ESXiのデータストアのアンマウントとパスの分離をコマンドで一気に実施する

vSphere環境でESXiからデータストアを取り外す際は、単純にアンマウントするだけではなく、「パスの分離」と呼ばれるSCSIデバイスの切断作業が必要となる。アンマウントはvSphere Clientを使えば全ESXiサーバで一気に実行することができるのでまだ負担が少ないが、パスの分離は、各ESXiサーバで実施する必要があり、作業負荷がかなり大きい作業となる。

そこで、以前からPowerCLIを使用することで一気にこの作業を実施できればよいと考えていたのだが、なかなか簡単にはできなさそうなので検証ができていなかったのだが、ようやくコマンドの調査と検証が終わったので、本記事にてPowerCLIを用いたアンマウントとパスの分離手順を記載する。

なお、手順検証はvSphere 6.7の環境で実施したが、データストア取り外し時にアンマウントとパスの分離を実施する手順自体は、vSphere 5.0の時代から続く作法となり、vSphere 6.7以前の環境でも利用できる可能性は高い。

環境

  • vCenter Server 6.7 Update 3b
  • ESXi 6.7 Update 3
  • PowerCLI 11.5

データストアのアンマウントとパスの分離手順

以下コマンドを上から順に実行すればよい。最初の変数は以下を指定する。
  • $dsLabel : アンマウント対象のデータストア名
  • $cluster : アンマウント対象のESXiが所属するクラスター名
# アンマウント対象のデータストアとクラスターを取得
$dsLabel = "MyDatastore"
$cluster = "MyCluster"

$ds = Get-Datastore $dsLabel
$vmfsUuid = (Get-View $ds).Info.Vmfs.Uuid
$lunUuid = (Get-View $ds).Info.Vmfs.Extent[0].DiskName

# 実行対象のESXi情報を取得
$vmhost = Get-Cluster $cluster | Get-VMHost

# アンマウント及びパスの分離を実行
$storSys = Get-View $vmhost.ExtensionData.ConfigManager.StorageSystem
$storSys.UnmountVmfsVolume($vmfsUuid)
$storSys.DetachScsiLun($lunUuid)
ストレージ側でLUNの削除または切断したのち、以下コマンドで「HBAデバイスのスキャン」と「VMFSボリュームのスキャン」を実施すれば、アンマウントしたデータストアは問題なくvSphere上から消えるはずだ。
Get-VMHost | Get-VMHostStorage -RescanAllHba -RescanVmfs

参考

2020年5月24日日曜日

Zabbix 5.0でGmailによるメール通知を行う手順

以前、以下記事でZabbix 3.0にてGmailによるメール通知の設定手順を記載した。

設定の流れは大きく変わっていなかったが、細かいところで手順に差異があったので、Zabbix 5.0におけるGmailによるメール障害通知を設定する手順を記載する。

設定概要

設定箇所が多いので、前回と同様、概要図を記載する。

  1. メディアタイプ:通知手段(メール、スクリプト、SMSなど)を設定。メールのメッセージ内容もメディアタイプで設定する
  2. ユーザのメディア:通知先メールアドレスと使用するメディアタイプを設定する。
  3. アクション:障害検知時の通知条件と通知するユーザを設定する。

Gmailによる障害通知設定方法

1. メディアタイプを作成

メディアタイプとは通知手段の設定となるが、Gmail送信用のメディアタイプは設定されていないので、新規に作成する。「管理」→「メディアタイプ」を選択し、「メディアタイプの作成」ボタンを押下し、以下の通り作成する。

  • 名前:Gmail
  • タイプ:メール
  • vSMTPサーバー:smtp.gmail.com
  • SMTPサーバーポート番号:465
  • SMTP helo:smtp.gmail.com
  • 送信元メールアドレス:<送信に用いるGmailアカウント>@gmail.com
  • 接続セキュリティ:SSL/TLS
  • 認証:ユーザー名とパスワード
  • ユーザー名:<送信に用いるGmailアカウント> ※「@gmail.com」は不要
  • パスワード:<送信に用いるGmailアカウントのパスワード>
  • メッセージフォーマット:HTML (プレーンテキストでも可。お好みで選択)
  • 有効:チェック

Zabbix 3.0と異なり、Zabbix 5.0ではメディアタイプで送信されるメールのメッセージ内容を設定する。「メッセージテンプレート」タブを選択し、「追加」を選択し、以下設定をする。今回はとりあえず、メッセージはデフォルトのままとした。

  • メッセージタイプ:障害
  • 件名:Problem: {EVENT.NAME}
  • メッセージ:<b>Problem started</b> at {EVENT.TIME} on {EVENT.DATE}<br><b>Problem name:</b> {EVENT.NAME}<br><b>Host:</b> {HOST.NAME}<br><b>Severity:</b> {EVENT.SEVERITY}<br><b>Operational data:</b> {EVENT.OPDATA}<br><b>Original problem ID:</b> {EVENT.ID}<br>{TRIGGER.URL}

2. ユーザのメディアを作成

作成したメディアタイプを使って、メディアを作成する。今回はAdminユーザーに対してメディアを作成することとした。

「管理→「ユーザー」→「Admin」→「メディア」タブに移動し、「追加」を選択して以下の通り設定する。

  • タイプ:Gmail
  • 送信先:<送信先のメールアドレス>
  • 有効な時間帯:1-7,00:00-24:00
  • 指定した深刻度のときに使用:すべてチェック
  • 有効:チェック

3. アクションを作成

最後にアクションを設定する。「設定」→「アクション」を選択し、「アクションの作成」ボタンを押下し作成する。

「アクション」タブでは以下の通り設定した。トリガーの深刻度の条件は、監視設計に応じて適切に設定すること。

  • 名前:Send Gmail
  • 計算のタイプ:And
  • 実行条件:
    • メンテナンス期間外 (「メンテナンス期間中」を「いいえ」で設定)
    • トリガーの深刻度 以上 _軽度の障害
  • 有効:チェック

「実行内容」タブでは、以下の通り設定する。実行条件が満たされた際に、AdminユーザーのGmail送信のメディアを使ってメール送信を行う設定となる。

  • 実行内容のタイプ:メッセージの送信
  • ユーザーに送信:Admin
  • 次のメディアのみ使用:Gmail

以上で設定は完了となる。

障害通知テスト

SNMP Trapにて障害を発生させると、ダッシュボードにて「アクション」が実行されたことが確認できる。オレンジで実行中、灰色で実行済み、赤で失敗を示す。

Gmail経由でメールが送信されることが確認できた。以下は、スマホのGmailアプリで確認したメール内容であり、HTMLメールなので各項目名が太字になっていることがわかる。


2020年5月20日水曜日

Zabbix 5.0.0rc1 (リリース候補版) を正式版にバージョンアップしてみた

先日Zabbix 5,0.0rc1 (リリース候補版) がリリースされたが、その後の2020年5月12日に正式にZabbix 5.0がリリースされたので、正式版にバージョンアップした。

バージョンアップは、10分で完了する。バージョンアップ手順を本記事では記載する。

バージョンアップ手順

まずは、zabbix-releaseをバージョンアップする。

# rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/8/x86_64/zabbix-release-5.0-1.el8.noarch.rpm
https://repo.zabbix.com/zabbix/5.0/rhel/8/x86_64/zabbix-release-5.0-1.el8.noarch.rpm を取得中
Verifying...                          ################################# [100%]
準備しています...              ################################# [100%]
更新中 / インストール中...
   1:zabbix-release-5.0-1.el8         ################################# [100%]

zabbix-releaseを更新した後でdnf check-updateでアップデートを確認すると、「5.0.0」のバージョンが利用可能になっていることがわかる。

# dnf check-update
Zabbix Official Repository - x86_64              29 kB/s |  14 kB     00:00

zabbix-agent.x86_64                         5.0.0-1.el8                   zabbix
zabbix-apache-conf.noarch                   5.0.0-1.el8                   zabbix
zabbix-server-mysql.x86_64                  5.0.0-1.el8                   zabbix
zabbix-web.noarch                           5.0.0-1.el8                   zabbix
zabbix-web-japanese.noarch                  5.0.0-1.el8                   zabbix
zabbix-web-mysql.noarch                     5.0.0-1.el8                   zabbix

あとは、dnf updateで正式版にバージョンアップする。

# dnf update -y
メタデータの期限切れの最終確認: 0:00:47 時間前の 2020年05月12日 19時49分55秒 に 実施しました。
依存関係が解決しました。
================================================================================
 パッケージ                Arch         バージョン           リポジトリー サイズ
================================================================================
アップグレード:
 zabbix-agent              x86_64       5.0.0-1.el8          zabbix       453 k
 zabbix-apache-conf        noarch       5.0.0-1.el8          zabbix        16 k
 zabbix-server-mysql       x86_64       5.0.0-1.el8          zabbix       2.6 M
 zabbix-web                noarch       5.0.0-1.el8          zabbix       3.0 M
 zabbix-web-japanese       noarch       5.0.0-1.el8          zabbix        16 k
 zabbix-web-mysql          noarch       5.0.0-1.el8          zabbix        15 k

トランザクションの概要
================================================================================
アップグレード  6 パッケージ

ダウンロードサイズの合計: 6.1 M
パッケージのダウンロード:
(1/6): zabbix-apache-conf-5.0.0-1.el8.noarch.rp  46 kB/s |  16 kB     00:00
(2/6): zabbix-agent-5.0.0-1.el8.x86_64.rpm      575 kB/s | 453 kB     00:00
(3/6): zabbix-web-japanese-5.0.0-1.el8.noarch.r 141 kB/s |  16 kB     00:00
(4/6): zabbix-web-mysql-5.0.0-1.el8.noarch.rpm  135 kB/s |  15 kB     00:00
(5/6): zabbix-server-mysql-5.0.0-1.el8.x86_64.r 2.3 MB/s | 2.6 MB     00:01
(6/6): zabbix-web-5.0.0-1.el8.noarch.rpm        3.1 MB/s | 3.0 MB     00:00
--------------------------------------------------------------------------------
合計                                            4.6 MB/s | 6.1 MB     00:01
トランザクションの確認を実行中
トランザクションの確認に成功しました。
トランザクションのテストを実行中
トランザクションのテストに成功しました。
トランザクションを実行中
  準備             :                                                        1/1
  scriptletの実行中: zabbix-web-mysql-5.0.0-1.el8.noarch                    1/1
  アップグレード中 : zabbix-web-mysql-5.0.0-1.el8.noarch                   1/12
  アップグレード中 : zabbix-web-5.0.0-1.el8.noarch                         2/12
  scriptletの実行中: zabbix-web-5.0.0-1.el8.noarch                         2/12
  アップグレード中 : zabbix-apache-conf-5.0.0-1.el8.noarch                 3/12
  scriptletの実行中: zabbix-apache-conf-5.0.0-1.el8.noarch                 3/12
  アップグレード中 : zabbix-web-japanese-5.0.0-1.el8.noarch                4/12
  scriptletの実行中: zabbix-web-japanese-5.0.0-1.el8.noarch                4/12
  scriptletの実行中: zabbix-server-mysql-5.0.0-1.el8.x86_64                5/12
  アップグレード中 : zabbix-server-mysql-5.0.0-1.el8.x86_64                5/12
  scriptletの実行中: zabbix-server-mysql-5.0.0-1.el8.x86_64                5/12
  scriptletの実行中: zabbix-agent-5.0.0-1.el8.x86_64                       6/12
  アップグレード中 : zabbix-agent-5.0.0-1.el8.x86_64                       6/12
  scriptletの実行中: zabbix-agent-5.0.0-1.el8.x86_64                       6/12
  scriptletの実行中: zabbix-web-japanese-5.0.0-0.7rc1.el8.noarch           7/12
  整理             : zabbix-web-japanese-5.0.0-0.7rc1.el8.noarch           7/12
  整理             : zabbix-apache-conf-5.0.0-0.7rc1.el8.noarch            8/12
  scriptletの実行中: zabbix-web-5.0.0-0.7rc1.el8.noarch                    9/12
  整理             : zabbix-web-5.0.0-0.7rc1.el8.noarch                    9/12
  整理             : zabbix-web-mysql-5.0.0-0.7rc1.el8.noarch             10/12
  scriptletの実行中: zabbix-server-mysql-5.0.0-0.7rc1.el8.x86_64          11/12
  整理             : zabbix-server-mysql-5.0.0-0.7rc1.el8.x86_64          11/12
  scriptletの実行中: zabbix-server-mysql-5.0.0-0.7rc1.el8.x86_64          11/12
  scriptletの実行中: zabbix-agent-5.0.0-0.7rc1.el8.x86_64                 12/12
  整理             : zabbix-agent-5.0.0-0.7rc1.el8.x86_64                 12/12
  scriptletの実行中: zabbix-agent-5.0.0-0.7rc1.el8.x86_64                 12/12
  scriptletの実行中: zabbix-agent-5.0.0-1.el8.x86_64                      12/12
  scriptletの実行中: zabbix-agent-5.0.0-0.7rc1.el8.x86_64                 12/12
  検証             : zabbix-agent-5.0.0-1.el8.x86_64                       1/12
  検証             : zabbix-agent-5.0.0-0.7rc1.el8.x86_64                  2/12
  検証             : zabbix-apache-conf-5.0.0-1.el8.noarch                 3/12
  検証             : zabbix-apache-conf-5.0.0-0.7rc1.el8.noarch            4/12
  検証             : zabbix-server-mysql-5.0.0-1.el8.x86_64                5/12
  検証             : zabbix-server-mysql-5.0.0-0.7rc1.el8.x86_64           6/12
  検証             : zabbix-web-5.0.0-1.el8.noarch                         7/12
  検証             : zabbix-web-5.0.0-0.7rc1.el8.noarch                    8/12
  検証             : zabbix-web-japanese-5.0.0-1.el8.noarch                9/12
  検証             : zabbix-web-japanese-5.0.0-0.7rc1.el8.noarch          10/12
  検証             : zabbix-web-mysql-5.0.0-1.el8.noarch                  11/12
  検証             : zabbix-web-mysql-5.0.0-0.7rc1.el8.noarch             12/12

アップグレード済み:
  zabbix-agent-5.0.0-1.el8.x86_64         zabbix-apache-conf-5.0.0-1.el8.noarch
  zabbix-server-mysql-5.0.0-1.el8.x86_64  zabbix-web-5.0.0-1.el8.noarch
  zabbix-web-japanese-5.0.0-1.el8.noarch  zabbix-web-mysql-5.0.0-1.el8.noarch

完了しました!

以上!

2020年5月18日月曜日

iSCSI + DM-multipathで冗長構成を組んだ際の、障害時のパス切り替わり動作を確認してみた

先日、DM-multipathを使ってマルチパス構成のiSCSIストレージを認識させる手順を記載した。
マルチパス構成となっているため、片方のパスがダウンしたとしても、問題なくI/Oができる。実際にパスが切り替わる際の動作確認をしてみた。

環境

  • OS:Red Hat Enterprise Linux 7.6
  • iSCSIターゲット:QNAP NAS
  • iSCSIディスク:5GB、2GB、1GBの3つ


監視設定を確認する

iSCSI設定

RHELのiSCSIイニシエータは、pingによるターゲットの状態監視を行う。以下2つのパラメータで時間が設定されている。デフォルトでは5秒間隔でpingを行い、5秒間応答がないとエラーとして検知する。
パラメータ 内容 デフォルト値
timeo.noop_out_interval ping監視間隔 5秒
timeo.noop_out_timeout ping監視タイムアウト 5秒
実際の設定は、/etc/iscsi/iscsid.confに記載されている。
# cat /etc/iscsi/iscsid.conf | grep "noop_out"
node.conn[0].timeo.noop_out_interval = 5
node.conn[0].timeo.noop_out_timeout = 5

DM-multipath設定

DM-multipathでは、以下2つのパラメータでストレージデバイスの監視を行う。最初は5秒間隔でポーリングを行い、徐々に間隔を増加させ、最終的には4倍の20秒間隔でポーリングするよう動作するらしい。パスのチェック方式はストレージごとに設定が異なるので注意。
パラメータ 内容 デフォルト値
polling_interval 初期ポーリング間隔 5秒
max_polling_interval 最大ポーリング間隔 5秒 x 4倍 = 20秒
path_checker パスチェック方式 directio (直接I/Oを行い最初のセクタ読み取りを行う)
実際の設定は、multipath -tコマンドで確認できる。下記はポーリング間隔設定を確認したコマンド例となる。
# multipath -t | grep interval
        polling_interval 5
        max_polling_interval 20

サーバ側のNIC切断時

まずは、サーバ側のNIC切断時に、どのようにパスが切り替わるかを確認してみることにする。
通常状態は以下のように「ready」ステータスとなる。
# multipath -ll mpathc
mpathc (36e843b6ffaab030d3806d4741db0c1d5) dm-3 QNAP    ,iSCSI Storage
size=1.0G features='0' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=50 status=active
  |- 35:0:0:2 sdd 8:48 active ready running
  `- 36:0:0:2 sde 8:64 active ready running
サーバ側のNICを切断する。undef→faultyとステータスが遷移する。
# multipath -ll mpathc
mpathc (36e843b6ffaab030d3806d4741db0c1d5) dm-3 QNAP    ,iSCSI Storage
size=1.0G features='0' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=50 status=active
  |- 35:0:0:2 sdd 8:48 active undef running
  `- 36:0:0:2 sde 8:64 active ready running

# multipath -ll mpathc
mpathc (36e843b6ffaab030d3806d4741db0c1d5) dm-3 QNAP    ,iSCSI Storage
size=1.0G features='0' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=50 status=active
  |- 35:0:0:2 sdd 8:48 failed faulty running
  `- 36:0:0:2 sde 8:64 active ready running
tail -f /var/log/messagesを実行し、NW切断時の挙動を確認してみる。以下ような動作をしていることがわかる。iSCSIは約5秒でping監視エラーを検知し、DM-multipathはストレージデバイスによって検知時間が異なるようだが、いずれも最大11秒でパスダウンを検知しているようだ。
  • 15:01:50 OSがLink Down検知
  • 15:01:56 DM-multipathがmpathaのストレージデバイスのパスダウンを検知
  • 15:01:56 iSCSIのping監視エラーを検知
  • 15:02:01 DM-multipathがmpathbとmpathcのストレージデバイスのパスダウンを検知
Mar 21 15:01:50 localhost kernel: vmxnet3 0000:13:00.0 ens224: NIC Link is Down
Mar 21 15:01:56 localhost multipathd: mpatha: sdc - readsector0 checker reports path is down
Mar 21 15:01:56 localhost multipathd: checker failed path 8:32 in map mpatha
Mar 21 15:01:56 localhost multipathd: mpatha: remaining active paths: 1
Mar 21 15:01:56 localhost kernel: connection3:0: ping timeout of 5 secs expired, recv timeout 5, last rx 4379116259, last ping 4379121264, now 4379126272
Mar 21 15:01:56 localhost kernel: connection3:0: detected conn error (1022)
Mar 21 15:01:56 localhost kernel: connection1:0: ping timeout of 5 secs expired, recv timeout 5, last rx 4379116259, last ping 4379121264, now 4379126272
Mar 21 15:01:56 localhost kernel: connection1:0: detected conn error (1022)
Mar 21 15:01:56 localhost kernel: device-mapper: multipath: Failing path 8:32.
Mar 21 15:01:56 localhost iscsid: Kernel reported iSCSI connection 3:0 error (1022 - Invalid or unknown error code) state (3)
Mar 21 15:01:56 localhost iscsid: Kernel reported iSCSI connection 1:0 error (1022 - Invalid or unknown error code) state (3)
Mar 21 15:02:01 localhost multipathd: mpathb: sdf - readsector0 checker reports path is down
Mar 21 15:02:01 localhost multipathd: checker failed path 8:80 in map mpathb
Mar 21 15:02:01 localhost multipathd: mpathb: remaining active paths: 1
Mar 21 15:02:01 localhost kernel: session3: session recovery timed out after 5 secs
Mar 21 15:02:01 localhost kernel: sd 35:0:0:1: rejecting I/O to offline device
Mar 21 15:02:01 localhost kernel: sd 35:0:0:1: [sdf] killing request
Mar 21 15:02:01 localhost kernel: device-mapper: multipath: Failing path 8:80.
Mar 21 15:02:01 localhost kernel: device-mapper: multipath: Failing path 8:48.
Mar 21 15:02:01 localhost multipathd: checker failed path 8:48 in map mpathc
Mar 21 15:02:01 localhost multipathd: mpathc: remaining active paths: 1
NICを接続すると、即座にパスが復旧する。
# multipath -ll mpathc
mpathc (36e843b6ffaab030d3806d4741db0c1d5) dm-3 QNAP    ,iSCSI Storage
size=1.0G features='0' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=50 status=active
  |- 35:0:0:2 sdd 8:48 active ready running
  `- 36:0:0:2 sde 8:64 active ready running
パス復旧時の挙動も再度ログから確認してみる。
  • 15:03:02 OSがLink Up検知
  • 15:03:06 DM-multipathがmpatha、mpathb、mpathcのストレージデバイスのパス復旧を検知
  • 15:03:06 iSCSIの接続復旧を検知
Mar 21 15:03:02 localhost kernel: vmxnet3 0000:13:00.0 ens224: NIC Link is Up 10000 Mbps
Mar 21 15:03:02 localhost NetworkManager[5551]: <info>  [1584770582.1065] device (ens224): carrier: link connected
Mar 21 15:03:03 localhost iscsid: connect to 192.168.33.13:3260 failed (No route to host)
Mar 21 15:03:03 localhost iscsid: connect to 192.168.33.13:3260 failed (No route to host)
Mar 21 15:03:06 localhost multipathd: mpatha: sdc - readsector0 checker reports path is up
Mar 21 15:03:06 localhost multipathd: 8:32: reinstated
Mar 21 15:03:06 localhost multipathd: mpatha: remaining active paths: 2
Mar 21 15:03:06 localhost kernel: device-mapper: multipath: Reinstating path 8:32.
Mar 21 15:03:06 localhost kernel: device-mapper: multipath: Reinstating path 8:80.
Mar 21 15:03:06 localhost multipathd: mpathb: sdf - readsector0 checker reports path is up
Mar 21 15:03:06 localhost multipathd: 8:80: reinstated
Mar 21 15:03:06 localhost multipathd: mpathb: remaining active paths: 2
Mar 21 15:03:06 localhost kernel: device-mapper: multipath: Reinstating path 8:48.
Mar 21 15:03:06 localhost multipathd: mpathc: sdd - readsector0 checker reports path is up
Mar 21 15:03:06 localhost multipathd: 8:48: reinstated
Mar 21 15:03:06 localhost multipathd: mpathc: remaining active paths: 2
Mar 21 15:03:06 localhost iscsid: connection3:0 is operational after recovery (8 attempts)
Mar 21 15:03:06 localhost iscsid: connection1:0 is operational after recovery (9 attempts)

ストレージ側のNIC切断

NW切断時の挙動を確認してみる。以下ような動作をしていることがわかる。
  • 14:57:36 iSCSIのping監視エラーを検知
  • 14:57:36 DM-multipathがmpathaのストレージデバイスのパスダウンを検知
  • 14:57:41 DM-multipathがmpathbとmpathcのストレージデバイスのパスダウンを検知
Mar 21 14:57:36 localhost kernel: connection3:0: ping timeout of 5 secs expired, recv timeout 5, last rx 4378856640, last ping 4378861648, now 4378866656
Mar 21 14:57:36 localhost kernel: connection3:0: detected conn error (1022)
Mar 21 14:57:36 localhost kernel: device-mapper: multipath: Failing path 8:32.
Mar 21 14:57:36 localhost multipathd: mpatha: sdc - readsector0 checker reports path is down
Mar 21 14:57:36 localhost multipathd: checker failed path 8:32 in map mpatha
Mar 21 14:57:36 localhost multipathd: mpatha: remaining active paths: 1
Mar 21 14:57:36 localhost iscsid: Kernel reported iSCSI connection 3:0 error (1022 - Invalid or unknown error code) state (3)
Mar 21 14:57:36 localhost kernel: connection1:0: ping timeout of 5 secs expired, recv timeout 5, last rx 4378856760, last ping 4378861776, now 4378866784
Mar 21 14:57:36 localhost kernel: connection1:0: detected conn error (1022)
Mar 21 14:57:37 localhost iscsid: Kernel reported iSCSI connection 1:0 error (1022 - Invalid or unknown error code) state (3)
Mar 21 14:57:41 localhost multipathd: mpathb: sdf - readsector0 checker reports path is down
Mar 21 14:57:41 localhost kernel: session3: session recovery timed out after 5 secs
Mar 21 14:57:41 localhost kernel: sd 35:0:0:1: rejecting I/O to offline device
Mar 21 14:57:41 localhost kernel: sd 35:0:0:1: [sdf] killing request
Mar 21 14:57:41 localhost kernel: device-mapper: multipath: Failing path 8:80.
Mar 21 14:57:41 localhost kernel: device-mapper: multipath: Failing path 8:48.
Mar 21 14:57:41 localhost multipathd: checker failed path 8:80 in map mpathb
Mar 21 14:57:41 localhost multipathd: mpathb: remaining active paths: 1
Mar 21 14:57:41 localhost multipathd: checker failed path 8:48 in map mpathc
Mar 21 14:57:41 localhost multipathd: mpathc: remaining active paths: 1
パス復旧時の挙動も再度ログから確認してみる。
  • 14:58:09 iSCSIの接続復旧を検知
  • 14:58:11 DM-multipathがmpatha、mpathb、mpathcのストレージデバイスのパス復旧を検知
Mar 21 14:58:09 localhost iscsid: connection3:0 is operational after recovery (3 attempts)
Mar 21 14:58:09 localhost iscsid: connection1:0 is operational after recovery (3 attempts)
Mar 21 14:58:11 localhost multipathd: mpatha: sdc - readsector0 checker reports path is up
Mar 21 14:58:11 localhost kernel: device-mapper: multipath: Reinstating path 8:32.
Mar 21 14:58:11 localhost multipathd: 8:32: reinstated
Mar 21 14:58:11 localhost multipathd: mpatha: remaining active paths: 2
Mar 21 14:58:11 localhost multipathd: mpathb: sdf - readsector0 checker reports path is up
Mar 21 14:58:11 localhost multipathd: 8:80: reinstated
Mar 21 14:58:11 localhost multipathd: mpathb: remaining active paths: 2
Mar 21 14:58:11 localhost kernel: device-mapper: multipath: Reinstating path 8:80.
Mar 21 14:58:11 localhost kernel: device-mapper: multipath: Reinstating path 8:48.
Mar 21 14:58:11 localhost multipathd: mpathc: sdd - readsector0 checker reports path is up
Mar 21 14:58:11 localhost multipathd: 8:48: reinstated
Mar 21 14:58:11 localhost multipathd: mpathc: remaining active paths: 2

参考

人気の投稿