orangeitems’s diary

40代ITエンジニアが毎日何か書くブログ

GitHubのストレージ障害

f:id:orangeitems:20181023003051p:plain

出典:Evolution of GitHub’s data centers | GitHub Engineering

 

 

GitHubにストレージ障害

2018年10月22日、GitHubにストレージが障害が発生したと言うニュースを知りました。

 

www.itmedia.co.jp

ソフトウェア開発者向けのソースコード共有サービス「GitHub」で10月22日午前8時過ぎ(日本時間)から障害が起き、日本のエンジニアにも大きな影響が出ている。運営元の米GitHubは復旧に取り組んでいるが、障害発生から6時間経った午後2時現在も完全復旧には至っていないようだ。

 

今の最新のステータスが、

https://status.github.com/messages

We are validating the consistency of information across all data stores. Webhooks and Pages builds remain paused.

すべてのデータストアで情報の一貫性を検証しています。 WebhooksとPages buildは一時停止したままです。

 とありますので、まだ全面復旧とはいかないようですね。

 

GitHubの大規模インフラ刷新、1年経った直後だった

報道されるような大規模障害に関して、その現象だけではなくインフラ面に興味を持つようにしているのですが、GitHubにもデータセンターの記事があります。

 

githubengineering.com

GitHubのデータセンターの進化
スキトラー スキトラー 2017年10月12日

過去18ヶ月間、私たちはGitHubの物理インフラストラクチャに多額の投資をしました。この作業の目的は、システムの冗長性とグローバルな可用性を向上させることです。そうすることで、私たちは成長するユーザーベースをサポートするために計算とストレージのフットプリントを拡大する基盤を固めました。

 

設備

要約すると、こんな設備のようです。

・データセンターは2か所、POP(ネットワークの接続ポイント)を2か所持っている。
・シアトルと北部バージニア州に拠点がある(おそらくPOP + データセンターの組み合わせ)。
・それぞれのPOPを接続しているプライベート側のネットワーク速度が100Gbpsであること。
・POPでは、インターネット接続および、AWSへの直接接続を行っている。
・POPを収容する建物では機材を置くのに限界があるので、別にデータセンターを借り接続した。

 

スケールアウトのために大規模な設備投資を行った

ネットワークと、ストレージやサーバーの機器類を物理的に分割し、どんどん増えていく機器の置き場所や拡張方法をシンプルにした。今後の増強にも余裕を持って対応できるようになった、とあります。

 

感想

基本的にオンプレでしっかり組んだ構成で、接続拠点も少ない(2か所)のでパブリッククラウドと比べるとわかりやすい環境です。かつ、上記記事にはありませんが、AkamaiなどのCDNも上段にいるはずです。下記の事件の記憶も新しいです。

 

www.itmedia.co.jp

 

2か所にデータセンターを構えていることから、大規模なバックアップ処理を行うとともに、別拠点にレプリケーションしているのではないかと思います。今回のストレージ障害においてはリストア処理を行っていますが、量が量だけに時間がかかるのは致し方ないと思います。

むしろこれでリストアできれば、きちんとリストアできることが証明されたことになり、堅牢であることが証明されると思います。

一つ気になるのは・・、大規模インフラ刷新から本当にちょうど1年ということです。新規サービスインにしても、大規模刷新にしても、リリース直後はすこぶる安定するんですよね。1年経ったあたりで急に不調になるケースを何度か見ています。ストレージやCPU/メモリーなど、リソースの消費が進んでいよいよ使われ始めるタイミングなのだと思います。もしくは、人事異動やベンダーの担当者変更など、サービスインの品質が落ちるリスクがあるのも1年ぐらい経つ頃ではないかと思います。安全運転が続くと運用が緩んで監視アラートの見逃しなども起きやすいですね。経験上「サービスイン一年後」というのは気を引き締めるポイント/「運用あるある」かと思います。

 

そうこうしているうちにまたステータスが変わりました。

 

GitHub System Status

Background jobs remain paused as we near completion of validation of data consistency.

バックグラウンドジョブは、データの一貫性の検証が完了に近づいているため、まだ一時停止しています。

 

無事、終わりますように。

 

 

追記

終息宣言が出ています。良かったです。

f:id:orangeitems:20181024085449p:plain

 

 

わかばちゃんと学ぶ Git使い方入門