3-4 バッチ処理のピーク時間における障害は許容する

遠隔地システムでは、多くの重要な処理が夜間バッチとして実行されます。
日中はオンライン業務が中心となる一方で、夜間はデータ集計、バックアップ、レプリケーションなど、大量の内部処理が集中的に実行される時間帯となります。
一見すると、夜間はユーザトラフィックが少ないため、障害復旧やメンテナンスに適した時間帯のように思われます。
しかし実際には、バッチ処理のピーク時間帯はシステム負荷が最大となる時間帯であり、障害発生時に最も慎重な対応が求められる時間帯でもあります。
遠隔地システムの設計においては、
「バッチ処理のピーク時間帯における障害は、即時復旧を前提としない」
という原則が重要となります。
なぜピーク時間帯の障害は特別なのか
バッチ処理のピーク時間帯は、CPU、ストレージI/O、ネットワーク帯域など、システムリソースが最大限に使用されている状態となります。
このような状態で、
・サービス再起動
・フェイルオーバー
・リトライ処理
などの復旧処理を実行すると、復旧処理そのものが追加の負荷となり、
システム全体の不安定化や、障害の拡大を引き起こす可能性があります。
例えば、データベース障害発生時に即座に再起動を実行した場合、
リカバリ処理による大量のディスクアクセスが発生し、
バッチ処理と競合することで、
結果として復旧時間が延びるだけでなく、
システム全体の停止につながる危険性もあります。
つまり、
ピーク時間帯においては、「復旧を急ぐこと」が必ずしも最善の対応とは限らない
のです。
復旧時間帯を事前に設計しておく
ピーク時間帯の障害を即時復旧しない設計を採用する場合、
復旧を実施するための専用時間帯を、
あらかじめ運用設計として確保しておくことが重要となります。
例えば、夜間の運用時間帯を以下のように分割します。
| 時間帯 | 役割 |
|---|---|
| 00:00~04:00 | バッチ処理時間 |
| 04:00~06:00 | 障害復旧時間 |
| 06:00~08:00 | 予備時間(追加対応・ロールバック) |
| 08:00~ | 業務開始 |
このように時間帯ごとの役割を明確に分離することで、
バッチ処理中に障害が発生した場合でも、
ピーク時間帯に無理な復旧を行うことなく、
システム負荷が低下した復旧時間帯に、
安全かつ確実に復旧を実施することが可能となります。
また、予備時間を設けておくことで、
復旧作業が想定より長引いた場合や、
追加対応が必要となった場合にも、
業務開始への影響を最小限に抑えることができます。
遠隔地システムでは特に重要
遠隔地システムでは、
オンサイトでの即時対応が困難であり、
多くの場合、復旧は自動処理または遠隔操作によって実施されます。
このため、
ピーク時間帯に無理な復旧処理を実行してしまうと、
障害の拡大を招いた場合に、
迅速な対応ができないというリスクがあります。
あらかじめ復旧時間帯を定義し、
ピーク時間帯の障害は許容し、
適切な時間帯に復旧を実施する設計とすることで、
システム全体の安定性を向上させることができます。
まとめ
遠隔地システムの運用においては、
バッチ処理のピーク時間帯は、
最も負荷が高く、最も障害対応が困難な時間帯となります。
そのため、
障害発生時に即時復旧を前提とするのではなく、
復旧に適した時間帯を事前に設計し、
計画的に復旧を実施することが重要です。
バッチ処理時間帯、復旧時間帯、予備時間を明確に分離した運用設計を行うことで、
遠隔地システムにおいても、
安定した継続運用を実現することが可能となります。
本記事の内容は、次項目に対応します。
Link:IT infrastructure system operation for remote areas(遠隔地向け IT インフラ運用)
3-4 Failure during peak batch windows is tolerated
(バッチ処理のピーク時間における障害は許容する)
