orangeitems’s diary

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

Zenlogic障害報告書から考察する分散ストレージCeph

f:id:orangeitems:20180717142536j:plain

 

Zenlogic障害報告書がリリースされる

本日、2018年7月17日(月)に、かなりの世間の関心ごととなった、Zenlogic高付加障害についての報告が出稿されています。

 

報告書(全文)

Web

https://zenlogic.jp/news/status/syogai/cause/

PDF

https://zenlogic.jp/pdf/report/20180717.pdf

 

障害の原因(転記)

ストレージシステムを含む、クラウド基盤を提供・管理するヤフー株式会社から、高負荷状態に陥った原因として、以下の報告を受けております。

[概要]

事象A:ストレージシステムのキャパシティプランでの想定を上回る負荷上昇による一時的な高負荷状態

事象B:事象Aへの対応に伴い、二次的に生じた長期間にわたる高負荷状態

[原因]

事象Aに対する原因

(1)2018年6月からストレージシステムに対する負荷が想定より高くなったことにより一時的な高負荷が発生し、サービス利用が困難となる状態が不定期に発生しました。
事象Bに対する原因

(2)ストレージシステム最適化処理などで発生するシステム内部通信がネットワーク全体を飽和させる状況を回避するために、システム内部通信に対してネットワークトラフィック制限を実施しましたが、この際のネットワーク設定が一部、不適切な設定となっていたことにより、ストレージシステム全体がスローダウンしました。
(3)複数回のストレージシステム増強や、設定値変更に伴い、ストレージシステム内部でこれまでになく大量のデータ移動が発生したこと、および2項のネットワーク設定の一部が不適切な設定となっていたことにより、データ移動完了まで時間を要しました。このため、ストレージシステムの高負荷状態が当初見込みより長期化しました。

 

考察

一貫して報告書においては、Cephの存在を明かしておりませんが、前回の記事の通りCephを使っていることは間違いないと考えています。

ASCII.jp:サーバーを捨てたファーストサーバ、「Zenlogic」で再始動

Cephとは何か、簡単に概要をつかんだ上で、上記原因を当て込んでみたいと思います。

 

Cephを学ぶためにまずは入門記事へアクセス

Cephについて学ぶために、@ITの4本の入門記事にアクセスします。

Ceph/RADOS入門 - @IT

 

上記に、

・分散ストレージCeph/RADOSとは?
・Ceph/RADOSの実装から動作の仕組みを理解する
・Ceph/RADOSのインストール、環境構築と接続テストまで
・Cephがスケールできる理由、単一障害点を排除する仕組み、負荷を減らす実装

4本の記事がアップされています。これらをゆっくり読むことにより、機能的な概要を把握することができます。まず把握しました。

 

上記記事を読んだうえで、仮説を立てる

ここからは推測です。どうやったらCephで今回のような問題が起こるのか考えてみました。

 

・あるオブジェクトのレプリカを置くOSDセットのパターンPG(Placement Group)は、初期構築時に現在のOSDの数によって自動生成される。

・その後にOSDを増やしたとしても、PGの数は増えない。これにより初期に追加したOSDに偏ってデータが保管されていく。

・6/19の段階で、偏りのあった特定のOSDを動かしていたサーバーが高負荷で再起動を起こすようになり、特定のPGがstale状態になるようになった。

・6/23、6/27、6/29にファーストサーバーは、OSDの追加(ストレージサーバーの増強)を行った。

・6/29に、PGの追加およびリバランスを行った。「パラメーター変更」と言っているものはPGの数ではないかと推測する。リバランス自体はPGの数と関係なく可能だが、PGの数を最適化してから実施したほうが好ましいと思う。

・6/29にリバランスを実施したところ、報告書にあるように、OSD間で大量のデータ移動が発生し、ストレージ用のネットワーク帯域が枯渇してしまった。かつ、仮想サーバーとのストレージ通信のための帯域を確保すべく行っていた帯域制限が不適切であり、結果としてceph全体がスローダウンしてしまった。また、リバランス処理自体も遅延していってしまった。

・7/6に、根本対策として、全サービスの停止を実施。リバランス処理の完結を目指した。7/9にこれが完了した。

 

これらは一旦フィクションと捉えてください。Cephの概要と報告書を合わせ読んだ場合に、つなぎ合わせると上記のようなシナリオが出来上がっただけです。

 

感想

結構、Cephのセットアップ方法は簡単で、これならCentOS7を何台か並べれば実装できそうです。しかも、ホストからファイルシステムとしてマウントできるところまで整備されていて、魅力的であることもわかります。

ストレージサーバー不要で、x86の物理サーバーを横に並べていけば簡単に分散ストレージが作れる、これはいい、とも思いました。

ただ、Zenlogicの障害事例を見ると、初期構築の難易度と、その後の運用の難易度が全然違うのが分かります。ディスク追加すればスケールアウトできると思いきや、リバランスを手動で行わねばならず、かつその帯域でストレージシステムがスローアウトするという悪夢。

できれば、Cephも絡めた技術的な報告を、ファーストサーバーがやってくれると、日本の運用畑にもナレッジとなるのではないかな‥と思いました。

おそらく、今後はOSDを動かすサーバーの監視を厳しくして、リバランスやOSDスケールアウトのタイミングを前倒ししていくんだろうなと思いましたが、なんともこのあたり、横にOSDを追加するだけでインテリジェントに最適化してくれるといいのになと思いました。仮説立てながら、これじゃあハマるよなあ・・と思いました。

ちなみに、私の仮説はフィクションです。念のため・・。

 

追記(2018/7/18 9:00)

仮説のまま放っておくのも忍びないので、時間があるときにCephの環境を作って試してみようかと思います。

・OSDを追加したら、勝手にリバランスされるのか?
・PGの数を増やしたら、直後にどうなるのか?
・初期OSDが小さいクラスタで、あとからがっつりOSD増やすと、やっぱり初期OSDに偏るのか?

このあたりの試験をまずやってみるべきかなあと思いますが、どうなることやら。

 

追記(2018/7/18 17:45)

Azureに環境を用意しました。明日はcephをいよいよ入れて検証するつもり。

 

追記(2018/7/19 12:27)

Azure上で構築作業やってみたのですが、結論としては中止します。

各種、構築事例を見てコマンドを叩いてみるのですが、どうにもcephやcepy_deployのの内部バージョンが上がってしまっていて、事例通りにコマンド通り動きません。また、pythonの環境構築も結構ハマりどころが生まれていました。

※pythonについては、pyenvは使ったらダメで、yumから入れてpython3コマンドをシンボリックリングで作ったりと、なかなか一筋縄ではいかなかったです・・(この件だけは自力解決できましたが)

最新バージョンでは事例通り動かないとなると、古いバージョンを持ってきたり原典にあたるなどが必要となりますが、個人の検証の範疇を超えるので一旦終わりにします。仕事でやっているわけではないので、ここらが潮時かなと。

こうなると、HCIであったり有償のSDSであったりは、至れり尽くせりだな・・と痛感しました。

するっと動いてくれれば、事例にして出す予定だったのですが・・。残念。 

 

 

Learning Ceph - Second Edition (英語)

 

奥華子さんの大阪イベントにおけるメールトラブルに関して推察(憶測)

f:id:orangeitems:20180716213140j:plain

 

メール送信のトラブルが大変な事態を引き起こす

奥華子さんの大阪イベントで大トラブルが起きているとのこと。

 

nlab.itmedia.co.jp

イベントの当選メールが何らかの理由により送信されておらず、開場時間になっても誰も来ていないとのこと。

 

メールシステムの問題というところで、ITが絡んでいますのでコメントします。 

 

推測する(まだ憶測レベル)

現時点で分かっている情報は少なすぎるのですが、個人の推測(憶測レベル)で記入しておきます。

この大阪イベントは、限定版のブルーレイに入った応募券がないと応募できないシステムでした。ブルーレイはポニーキャニオンから発売されています。ポニーキャニオンがメールを送信したつもりになっていたけれども、送信されていなかったというのが今回の事実です。

ポニーキャニオンがなぜメールを送信していなかったのか、2つの考え方があります。

1)送信する役割を担っていた担当者が、うっかり送るのを忘れていた。

2)送信システム上では送信したと思い込んでいたが、システム側で何らかのエラーが起き送付できていなかった。

今回は間違いなく(2)です。公式サイトのお詫びには、「当選メールがシステムエラーにより送信されなかった」と明記されていますので、(1)ではないのでしょう。

 

さて、ではポニーキャニオンは何のシステムを使っていたの?ということに興味が移ります。

当方で調べたところ、配配メールというSaaSのクラウドサービスの事例にて、ポニーキャニオンミュージックがこのサービスを使っていることがわかりました。

 

f:id:orangeitems:20180716211303p:plain

https://www.hai2mail.jp

 

この配配メールの仕様を見ると、メールマガジンなどの一括送信に特化したメールシステムであり、おそらく当選者向けメール配信はこのシステムを使っているのではないかな、と思えるところがあります。あくまでも当方の憶測ですので、話半分と捉えてください。

 

今回の奥華子さんのメールトラブルが、この配配メールというSaaSシステムと直接つながるという情報はないのですが、状況としては「ありうるのかな」というところです。目的は合致しますしね。

 

今回の障害について

配配メールを使っているかどうかはわかりませんが、何らかの配信システムを使っていたのは間違い無いでしょう。

そして、今回は、「一通も送られなかった」そうです。

そんなことは起こりうるのでしょうか。

あるとすれば、サーバー側のシステムエラーです。アプリケーション的には送信したように見えるけれども、メール送信のサブシステムがハングアップなどで一切停止していた場合は、「一通も送られなかった」はありうるでしょう。

しかし、メール送信のサブシステムがハングアップしていたら、さすがに監視システムがアラートを挙げるはずです。他のお客様も一緒に問題が起こるでしょう。サービスレベルの問題になります。運営側も監視サーバー経由でテストメールを5分に1通送付し、遅れなかったらアラートを挙げるなどの対応策を行なっているはずです。一通も送られないということで、サーバートラブルなのはわかるのですが、なぜユーザー側もSaaS運営側も奥華子さんが誰もお客さんが来ない!というところまで気が付けなかったのか、不思議なところです。

ひょっとすると、配信システムにおいて、送付フォームに不備があると送信エラーになるものの、ユーザー側が気をつけないと気がつかないようなワークフローが隠れていたという可能性もあります。そうすると、ユーザーの使い方が悪い、ということに落としこまれるかもしれません。とすれば、「ユーザーが送信失敗しているのに気が付けないのはおかしい!」ということにもなるでしょう。

なお、メールサーバーのレイヤーで考えると、もしメールサーバーが全通を送信トライしたとすれば、一通も送れないというのは、インターネット通信にエラーがあったか、ファイアウォールで閉じられていたかぐらいの低いネットワークの問題しか浮かびません。全部送られないというのはそれぐらい致命的なことが起きないと起こらないはずです。ネットワークが繋がっていれば、何通かは送られるはず・・。

もしくは、全部のメールが一度どこかのメールサーバーにリレーされ、そこから送られるはずがそのOSが停止していたとか・・。これはありうるかもしれませんが、これも運用側で気が付ける監視をしているはずだと思います。

いろいろと原因を考えるのですが、「一通も送られない」というのが厳しい現象過ぎて、現状ではよくわかりません。

 

まとめ

とりあえず、憶測レベルですので結論は出ないのですが、インフラエンジニアとすればそのシステム側の原因が気になるところです。メール配信は2018年の今においてもビジネスを支えるアプリケーションでありインフラですからね。

続報あれば追記します。

 

 

 奥華子の弾き語りダークナイト☆ [Blu-ray]

 

技術者が転職するリスク|高い評価を受けたのに

f:id:orangeitems:20180714183519j:plain

 

技術者が転職するリスクについて具体例を1つ挙げたい

技術者が転職するリスクについてはいろんなサイトで語られているのもあり、実体験に基づいて、1つだけ珍しい話をしておきたいと思います。

高い技術を持つ会社に入って成長したい!という転職パターンは20代くらいの若手なら通用します。しかし30代を超えてくると、今自分が持っている技術を必要としている会社に行って高い評価を受けたい!、という方が王道だと思います。

この、王道パターンで転職した場合で、思惑通り高評価を受けたときに、リスクがあるのです。

 

中途採用を応募する現場には必ず課題がある

中途採用をしたい会社で、技術を欲しがっている会社の現場は大体において、問題を抱えています。それはマネジメントの問題かもしれません。開発の現場ならばこれまで構築してきたソフトウェアの作りが悪いのかもしれません。インフラ運用の現場ならば運用設計やインフラ基盤設計が悪くて、それが何十本か立ったときにメンバーが疲弊しているのかもしれません。このように、いくら転職活動のときにその会社の外観や経営者のキラキラトークがあったとしても、中途採用を入れたい現場には何らかの課題があることが多いと考えています。

もちろん、優れたビジネスモデルのもとに、成長期を迎え単に優れた人を増強したいというパターンもありますので全てではないと思います。ただ傾向としては、全く問題がないのに中途採用を入れようということはないのではないかと思います。

 

気を付けなければいけない1つのパターン

課題を持つ現場に対して、当初の数か月である程度の是正処置をして、「おお、あいつはできるやつだな」と思われたとします。

ここまでは成功談ですが、ここからがリスクです。上手くいきだすと、マネージャーレベルに引き上げられます。あいつに任せとけば万事うまくいくみたいな雰囲気ができます。これが危険です。少し説明が長くなりました。この

中途入社 → 是正措置 → 高評価 → マネージャーへ格上げ

というこのパターンは大変リスクがあることを共有しておきたいのです。

この是正措置において、課題が100%解決することは絶対にありえないのです。悪い流れを食い止めることと、根絶することとは全く関係がないです。

ビジネスがうまくいくことと、現場の運用設計がうまくいくことは、あまり相関していないのではないかと思うことがあります。だいたいビジネスがうまくいきだすときは3年くらいで急成長します。この3年の間は売上・利益ともに右肩上がりなので、現場の人々もどんなに忙しくなろうがドーパミンみたいなものが出て、なんとか組み上げてしまいます。もしゆっくり設計し構築したなら、絶対そうはしないよね、みたいなことが次々と起こってしまうのが成長期です。日本で言えば高度成長期の会社なんてそんな感じだったんだろうと思います。課長島耕作なんか読むと、当時のサラリーマンは無茶苦茶やってます。

さて、私が転職したときも、そういう無茶苦茶な設計・運用をしているシステムが多数ありました。なんでそうなった?、でももう動いているのです。

成長期が止まり、いわゆる無茶が連なったこれらの問題の数々を、一人の中途採用者が応急措置をしたところで、解決するはずがないのです。しかし、マネージャーになってしまうと、責任を負わなければいけなくなってしまうのです。

その後、どうなるか。問題は次々と頻発します。ああ、転職なんてするんじゃなかった、となります。

 

具体的にどうするか

上記のストーリーは、実は日本全国でよく発生しているのではないかと思うんです。取引先で中途採用で着任し結構よくできる人だったのに退職されるパターンを見ているからです。できる人ほど陥りやすいのではないかということです。できるばっかりに、多大な負債の責を負う。技術的負債という言葉を作った人は偉いと思うのですが、本当に技術者は負債を作ってマネージャーにぶん投げてきます。

具体的にどうすればいいか。どうすればよかったか。

悪いアーキテクトはすぐにでも廃し、自分が信じる新しいアーキテクトに切り替えることを徹底すべきと思います。

自分が知らないこれまで作ってあったものは、すべてゴミに捨てる気持ちで、新しいアーキテクトに載せ替える。

それぐらいやらないと、責任なんて負えません。

一方で、上記をやると新しい問題が出てきます。現存メンバーの反発です。ひどいアーキテクトでも、作った人は愛着があるのです。彼らをないがしろにすることにもなります。

組織が割れたり、もしくは退職する人まで出てきます。

私はそれでもやりきるべきだと思いますが、ここからは経営者判断ということになります。新しいアーキテクトと、古いアーキテクトで部署を分ける、という判断もありうると思います。

ドロドロした話だと思いますが、すごくよくある話です。

 

過去事例

自分の経験から話を作ったのにどこかで聞いたような話だなと思ったら、思い出しました。

 

toyokeizai.net

退職の連鎖が広がった。新しい人事や評価制度への反発もあり、結局3年間で社員100人中47人が退職したのだ。

 

トランプ大統領だって当初の周辺の幹部はどんどん辞めさせてますし、急激に何か変えようとすると人は反発するよなあ・・。で、そこに耐えうる自分かどうか?というところはリスク要素として必ず取り上げてほしいなあと思います。

 

 

こちらの本、上記記事、南福岡自動車学校の話です。

スーツを脱げ、タイツを着ろ! ―――非常識な社長が成功させた経営改革

 

AWSのEBSスナップショットのライフサイクル管理がGUIでできるようになった(ただし日本はまだ)

f:id:orangeitems:20180713173657p:plain

 

まるでバックアップソフトみたい

どんどん機能が追加されるAWS。今日AWSが発表した機能が画期的。

ついに、EBSスナップショットの取得スケジュールおよび、そのライフサイクル、つまりいつ削除するかのスケジューリングが、GUIからできるようになりました。

ただし、「米国東部(米国バージニア州)、米国西部(オレゴン州)、およびEU(アイルランド)地域」のみのリリースです。しばらくしたら日本にも来るでしょうね。

 

aws.amazon.com

 

仕様

詳しくは上記の記事の通りなのですが、できることを羅列します。

・EC2 Dashboardに、Lifecycle Managerという機能が追加された。
・タグが付いているボリュームに全てスケジュールを反映できる。全部のEBSボリュームに一つずつスケジュールを作る必要無し。画期的。また、タグは複数選べる
・スナップショットの作成間隔が決められる。
・世代数が決められる。
・作成したEBSスナップショットには、ポリシーIDとスケジュール名が自動的に設定でき、かつ任意の文字列も付加できる。

・・ってことで、これってAPIで長年手作りしてたバックアップツールから解放されるということですね。

 

これ、やったことありますよ。

blog.supersonico.info

 

もっと簡単にやれないものかねと思いながら、ついにカバーされてしまったわけですね。これで、AWS CLIを動かすEC2を用意しなくても良くなるというわけで。

 

まとめ

記事を書き終わって気が付いたのですが、もうこの情報については先行してDevelopers.IOでもう記事になってました。

 

dev.classmethod.jp

 

USリージョンで試してみたいという人は、上記記事の通りどうぞ。

この実装はバックアップ設計が非常にシンプルになってうれしいヤツです。

 

 

 Amazon Web Services 業務システム設計・移行ガイド 一番大切な知識と技術が身につく

 

ティントリ社、破産申請を提出。焦点はDataDirect Networksの救済可否へ

f:id:orangeitems:20180711133629j:plain

 

破産申請実施、ポイントはDataDirect Networksの存在

ナスダック上場廃止一日前であったティントリ社が、デラウェア州連邦破産裁判所へ破産申請を行いました。これで、上場廃止は決定であると思います。

 

www.businesswire.com

 

ティントリ、破産申請、拘束力のない意向・融資コミットメントの文書を発表

Tintri、Inc.(NASDAQ:TNTR)は本日、2018年7月10日、デラウェア州合衆国破産裁判所の米国破産法第11章に基づく救済措置申請を行ったと発表しました。ティントリは、破産裁判所の管轄下にある債務者としての事業を引き続き運用する。


ティントリは、破産申請後に、会社またはその資産の売却を含む戦略的取引を開始する努力を継続するつもりである。この点に関して、同社は、DDNによる米国資産法第11編第363条に基づく実質的にすべての資産を購入することを意図したDataDirect Networks(以下「DDN」)の意向表明書を締結しました。 DDNの意向表明は拘束力がなく、取引が完了するという保証はありません。DDNまたはその他の戦略的取引相手との潜在的な取引の条件は、最終的な取引契約の交渉と執行、破産裁判所が定める入札手続きの完了、最終承認破産裁判所のその結果、DDNとの取引案を含む戦略的取引を成就させるティントリの努力が成功するという保証はありません。さらに、Tintriが戦略的取引を完了したとしても、そのような取引の収益は、会社が債権者全員に支払うことを可能にするには不十分である可能性がある。いずれにしても、Tintriは、株主が株式を受け取ることはないと予想しています。


さらに、Tintriは、戦略的取引に会社をつなぐことを目的とした資金調達を手配しています。この資金調達は、トリプルポイント・キャピタル・エルエルシーを有する超過優先担保債務者保有クレジット・ファシリティの下で利用可能な金額と、シリコンバレー・バンクとの同社の担保付与信枠に基づく売掛金回収の継続的な利用から構成されると予想される。この資金調達は、とりわけ、破産裁判所の承認を条件としています。

 

「ティントリのコファウンダー、チームメンバー、アドバイザー、債権者と緊密に協力して、ティントリの顧客にインストールベースのサポートを継続的に提供するとともに、長期的な要件のための勝利ロードマップを提供することを目的とした、 DDNのCEOで共同設立者のAlex Bouzariは語っています。


ティントリはDDNとの提携を継続していきたいと考えている。これが完了すれば、破産プロセスと将来に向けて同社が業界に先駆けた技術を市場に提供し続けることが期待される」とティントリの創業者で最高技術責任者(CTO)のキリアン・ハーティー氏。

 

依然、不透明な状況

過去記事でお伝えしたように、世界の拠点にあるティントリ事業所は営業停止に陥り、本社も数十人のマネジメントを除いて解雇されてしまった状況で、残った資産にどの程度の価値があり、サポートを第三者が継続できるのか、非常に危ういところであると思います。そもそも現時点で十分な保守体制を持っていないと思います。

ただ、DDNという具体的な会社名が出てきたのは、首の皮一つつながった感はあります。

破産裁判所の元でいろいろな思惑のもと、どんな結論が出るのか目が離せないとともに、日本国内の保守体制が非常に気になるところです。機能がストレージであるだけに、保守が受けられないとなると大問題です。

 

代理店一覧を参考までに掲載しておきます。

サポートサービス | Tintri