概要
このドキュメントでは、アプリケーションセントリックインフラストラクチャ(ACI)の障害生成の高度なプロセスと、特定の障害が生成されるのを防ぐ方法について説明します。このドキュメントでは、これを2つの例で示します。
障害の生成方法および障害の選択的な生成防止方法
ハイレベル メカニズム
- 各エラーは、クラス faultInst(または faultDelegate)のマネージド オブジェクト(MO)です。 この障害MOは、一部のルールに違反しているため、別のMO(通常は親)によって生成されます。
- ツリー内の各MOは、障害を生成できる属性monPolDnを持ち、モニタリングポリシーオブジェクトである別のMOを指します。このオブジェクトを使用すると、プロパティを変更し、トリガーでエラーを生成できます。監視ポリシーオブジェクトには、次のような複数のクラスがあります。
- monInfraPol – インフラストラクチャポリシー(VMMマネージャ、アクセスポートポリシー、物理ポートなど) - [ファブリック(Fabric)] > [アクセスポリシー(Access Policies)] > [モニタリングポリシー(Monitoring policies)]に配置
- monFabricPol:ファブリックの監視を処理します。[Fabric] > [Fabric Policies] > [Monitoring policies]にあります。
- monEPGPol - [テナント(Tenant)] > [モニタリングポリシー(Monitoring Policy)]メニューにあるテナントのモニタリングを処理
- 通常、これはデフォルトのモニタリング オブジェクトです。ただし、オブジェクトモデルの特定の領域に移動すると、これらのモニタリングポリシークラスの特定のユーザ定義モニタリングポリシーを作成できます。
- これらのモニタリング ポリシーのプロパティの多くは、変更可能です。この例では、モニタリングポリシーが適用されているすべてのオブジェクトに対して、特定のエラーが生成されないようにする方法を示します。ただし、障害ライフサイクルタイマー(保持時間、均熱時間など)を変更することもできます。
- 障害の重大度を変更したり、障害が生成されないようにするには、このオブジェクトを生成したMOのクラス(障害の親など)に対応するモニタリングオブジェクトを選択する必要があります。
- 次に、このクラスで、変更する障害コードを選択し、値「squelched」の初期重大度を選択します。
これにより、この特定のモニタリングポリシーに割り当てられたMOによって、そのコードに関する障害が生成されるのを防ぎます。
例1 – テナントの障害
各障害はオブジェクトに関連付けられます。
admin@apic:~> moquery -d "uni/tn-RD/ipToEpg-Ext_10.200.1.101/rstoEpg-[uni/tn-RD/ap-App_RD1/epg-EPG_RD11]/fault-F0879"
Total Objects shown: 1
# fault.Inst
code : F0879
ack : no
cause : resolution-failed
changeSet :
childAction :
created : 2015-01-22T00:05:00.286+01:00
descr : Failed to form relation to MO uni/tn-RD/ap-App_RD1/epg-EPG_RD11 of class fvAEPg
dn : uni/tn-RD/ipToEpg-Ext_10.200.1.101/rstoEpg-[uni/tn-RD/ap-App_RD1/epg-EPG_RD11]/fault-F0879
domain : infra
highestSeverity : warning
lastTransition : 2015-01-22T00:05:00.286+01:00
lc : raised
modTs : never
occur : 1
origSeverity : warning
prevSeverity : warning
rn : fault-F0879
rule : dbgac-rs-to-epg-resolve-fail
以前の障害はクラスfault.InstとコードF0879のMOです。
次に示すように、この障害はエンドポイントグループ(EPG)オブジェクトに関連付けられます。
このオブジェクトは、エラーの親の固有名(dn)です。この親オブジェクトはdbg.RsToEpgクラスです。
admin@apic:~> moquery -d uni/tn-RD/ipToEpg-Ext_10.200.1.101/rstoEpg-[uni/tn-RD/ap-App_RD1/epg-EPG_RD11]
Total Objects shown: 1
# dbgac.RsToEpg
tDn : uni/tn-RD/ap-App_RD1/epg-EPG_RD11
childAction :
dn : uni/tn-RD/ipToEpg-Ext_10.200.1.101/rstoEpg-[uni/tn-RD/ap-App_RD1/epg-EPG_RD11]
forceResolve : no
lcOwn : local
modTs : 2014-12-05T12:56:29.340+01:00
monPolDn : uni/tn-RD/monepg-RD_Monitoring
rType : mo
rn : rstoEpg-[uni/tn-RD/ap-App_RD1/epg-EPG_RD11]
state : missing-target
stateQual : none
status :
tCl : fvAEPg
tType : mo
uid : 15374
この EPG オブジェクトが monPolDn オブジェクトに関連付けられていることを確認できます。ツリー内のオブジェクトのほとんどは、モニタリング オブジェクトによってモニタされます。
dnを持つクラスmonEPGPolのユーザー定義モニタリングオブジェクトを次に示します。
uni/tn-RD/monepg-RD_Monitoring
モニタリングに使用される完全なオブジェクトを次に示します。
admin@apic:~> moquery -d uni/tn-RD/monepg-RD_Monitoring
Total Objects shown: 1
# mon.EPGPol
name : RD_Monitoring
childAction :
descr :
dn : uni/tn-RD/monepg-RD_Monitoring
lcOwn : local
modTs : 2014-11-13T15:41:45.326+01:00
monPolDn : uni/tn-RD/monepg-RD_Monitoring
ownerKey :
ownerTag :
rn : monepg-RD_Monitoring
status :
uid : 10673
monEPGPolオブジェクトは、テナントのモニタリングポリシーの下で設定されます。このポリシーでは、新しいポリシーを作成するか、デフォルトのポリシーを変更できます。次に、monEPGPol name RD_Monitoringの例を示します。
[Fault Severity]割り当てポリシーを選択し、(モニタリングオブジェクトの横にある)鉛筆をクリックできます。
次に、その監視ポリシーの監視オブジェクト・リストで選択した場合、障害が作成されたクラス(ここでdbgac.RsToEpg)。
特定のクラスに関連付けられたすべての障害を確認できます(ここに示す唯一の障害はF0789です)。
エラー F0789 は、例の先頭にあるエラーのコードです。
この障害を選択できます。最初の重大度をsquelchedに設定した場合は(ターゲットの重大度を継承したままです)、変更した監視ポリシーへのリンクを持つオブジェクトによって生成されることを想定して、将来そのような障害をを防止します。
ただし、既存の障害はクリアされず、新しい障害だけがクリアされます。
例2:物理障害
この例では、リーフのポート1/25がadmin upですが、SFPが含まれていないため、この障害が発生しています。
admin@apic:~> moquery -c faultInst -f 'fault.Inst.code == "F1678"'
Total Objects shown: 2
# fault.Inst
code : F1678
ack : no
cause : port-failure
changeSet : usage (New: epg)
childAction :
created : 2015-01-19T14:26:13.862+01:00
descr : TEST FAULT -- Port is down, reason:sfpAbsent(connected), used by:EPG,
lastLinkStChg:1970-01-01T01:00:00.000+01:00, operSt:down
dn : topology/pod-1/node-101/sys/phys-[eth1/25]/phys/fault-F1678
domain : access
highestSeverity : critical
lastTransition : 2015-01-19T14:28:41.668+01:00
lc : raised
modTs : never
occur : 1
origSeverity : critical
prevSeverity : critical
rn : fault-F1678
rule : ethpm-if-port-down-infra-epg-test
severity : critical
status :
subject : port-down
type : communications
uid :
これは、物理ポートに関連付けられます。この障害を発生させた親MOを次に示します。
admin@apic:~> moquery -d topology/pod-1/node-101/sys/phys-[eth1/25]/phys
Total Objects shown: 1
# ethpm.PhysIf
accessVlan : vlan-1
allowedVlans :
backplaneMac : 50:87:89:A2:2A:C1
bundleBupId : 1
bundleIndex : unspecified
cfgAccessVlan : vlan-1
cfgNativeVlan : vlan-1
childAction :
currErrIndex : 4294967295
diags : none
dn : topology/pod-1/node-101/sys/phys-[eth1/25]/phys
encap : 3
errDisTimerRunning : no
errVlanStatusHt : 0
errVlans :
hwBdId : 0
intfT : phy
iod : 29
lastErrors : 0
lastLinkStChg : 1970-01-01T01:00:00.000+01:00
media : 2
modTs : never
monPolDn : uni/infra/moninfra-default
nativeVlan : vlan-1
これは、次に示すように設定されたmonInfraPolオブジェクトに関連付けられます。
admin@apic:~> moquery -c monInfraPol
Total Objects shown: 4
# mon.InfraPol
name : default
childAction :
descr :
dn : uni/infra/moninfra-default
lcOwn : local
modTs : 2014-08-06T07:58:19.494+01:00
monPolDn : uni/infra/moninfra-default
ownerKey :
ownerTag :
rn : moninfra-default
status :
uid : 0
[Fault Severity Assignment]ポリシーで、[monitoring object]ドロップダウンリストの横にある作業ペインの鉛筆をクリックします。モニタリングプロパティを変更するクラスを追加します。次に、エラーを生成したオブジェクトのクラス、つまりethmPhysIfを選択します。
このクラスを選択し、[+]アイコンをクリックして、そのオブジェクトに対して生成された各エラーを表示します。
この例では、エラー F1678 が表示され、そのプロパティを変更できることを確認できます。[Initial severity Squelched]と[target severity inherit]を選択すると、このモニタリングポリシーが適用されているオブジェクトからそのコードの新しい障害が生成されなくなります。
変更を行った後、ポート1/25にSFPが取り付けられていない状態で有効にすると、障害は発生しません。
注:ソフトウェアバージョン2.2より前のバージョンでは:既存の障害(保持モードのクリアであっても)はクリアされません。
注:ソフトウェアバージョン2.2以降:既存の障害も新しいポリシーの影響を受けます。