Metaは、無兆候データ破損(Silent Data Corruption:SDC)という、主にハードウェアに起因する静かなデータ破損の検知に向けたさまざまな手法を数年前から評価してきた。同社は米国時間3月17日、SDCの検知に向けた自社のアプローチについて概説した。
提供:Meta
SDCは、システムログに記録や痕跡を残さずに発生するデータエラーであり、原因としてはデータパスの依存関係や、温度の変化、使用年数の他、シリコンに端を発する要素などが挙げられる。こうしたデータエラーは一切兆候を見せることなく発生するため、ワークロード内で検知されないまま、複数のサービスをまたがって拡散していく場合もある。
この種のデータエラーはメモリーやストレージ、ネットワーキングとともに、CPUに影響を与え、データの喪失や破損を引き起こしかねない。
サーバーやCPUといったコンポーネントが、いったん本番環境のデータセンターフリートの1つとして組み込まれてしまうと、SDCの検知は困難となるため、Metaのエンジニアらは3年前、SDCの検知に向けたアプローチの評価に着手した。
MetaのエンジニアであるHarish Dattatraya Dixit氏は、「われわれは、大規模なかたちでSDCを検知、低減することでアプリケーションの健全性とフリートのレジリエンシーを維持する斬新な検知アプローチを必要としていた」とブログで説明している。
同社はその評価により、アウトオブプロダクション(非本番時)テストとリップル(波及)テストの双方を使用することが、SDCを検知する上で最も好ましい方法だという結論に至った。
アウトオブプロダクションテストとは、システムの再起動やカーネルのアップデート、ホストマシンのプロビジョニングといった保守管理上のイベントの際に実行するSDC検知手法だ。この種のテストは、保守管理上のこういったイベントと抱き合わせ、より時間をかけて実行できるため、「より踏み込んだ検知処理」が可能になる。
一方、リップルテストとは、ワークロードがアクティブとなっている際にSDCの検知を実行するというものだ。これはワークロードを用いたシャドーテストの実行とともに、フリートやワークロード内にビットパターンと期待される結果を断続的に注入することで実施される。Metaは、リップリテストの方がアウトオブプロダクションテストよりも迅速にSDCを検知できることを見いだした。
このより高速なタイプのテストはMetaのインフラ内に「波及」していく結果、そのテスト時間はアウトオブプロダクションテストの1000分の1に短縮される。
Metaのエンジニアらの推定によると、リップルテストではデータ破損のうちの70%を15日以内に検知できる一方、アウトオブプロダクションテストではそれらのデータ破損を含む、大半のデータ破損の検知に約6カ月かかるという。ただ、データ破損の中にはアウトオブプロダクションテストでしか検知できないものもあるという。
Dattatraya Dixit氏は、このようなメリットとトレードオフを説明した上で、大規模インフラを有しており、SDCの検知に向けて取り組んでいる組織に対して、双方のアプローチを採用するよう推奨した。
「大規模なフリートで両方を採用、導入することを推奨する」とDattatraya Dixit氏は述べた。
「SDCの検知は大規模なインフラで困難な課題だが、長年のテストで、(アウトオブプロダクションテスト)とリップルテストがSDCを大規模に、可能な限り素早く検知するための新しいソリューションを提供できることが分かっている」(Dattatraya Dixit氏)
Metaのエンジニアらは、双方のテスト用いることで、最終的にすべてのSDCを検知できるという結論に至ったという。同社はSDCの70%をリップルテストで15日以内に、23%をアウトオブプロダクションテストにより6カ月で検知し、残る7%をデータセンターフリート内での反復リップルテストで検知できるとしている。
SDCの検知で更なるイノベーションを推進するため、Metaはそれぞれ5万ドル(約600万円)相当の5つの賞金を提供し、学術機関がこの分野の研究でリサーチプロポーザルを作成できるようにすることも発表している。
この記事は海外Red Ventures発の記事を朝日インタラクティブが日本向けに編集したものです。