Backblaze

BackblazeによるApache Cassandraを用いたIaaS提供

2007年設立のBackblazeは、カリフォルニア州サンマテオに拠点を置くクラウドストレージ企業であり、1エクサバイトを超えるデータを管理し、175カ国以上の顧客を抱えています。

Backblaze Storage Cloudは、企業、開発者、IT専門家、個人などがデータの保存、バックアップ、アーカイブを行うための基盤を提供しており、他の大手テクノロジー企業との連携により、コンテンツのホスティング、メディア管理、アプリケーション構築などを可能にしています。

同社は、ワンルームアパートからスタートしたコンピューターバックアップ企業として、データの保存と利用を驚くほど簡単にするという明確な使命を持って誕生しました。初期の頃は、写真や系譜学などのニッチ市場で人気のバックアップサービスでした。シンプルで使いやすいバックアップに焦点を当てることで、時間の経過とともにその魅力は広がっていきました。

2013年以来、Backblazeは定期的にハードドライブのパフォーマンス統計とインサイトを発表しており、市場で唯一これを行っている企業です。この透明性は、既存のユーザーと将来のユーザーの共感を呼び、Backblazeが現在提供しているもの以上の複雑なタスクを実行したいと考えていた開発者やIT専門家の間で支持を得ました。コンピューターバックアップ製品「Backblaze Computer Backup」が確立されたことで、同社はインフラストラクチャ・アズ・ア・サービス(IaaS)を提供するクラウドストレージプラットフォーム「Backblaze B2 Cloud Storage」の開発を決定しました。

このIaaSは、直接的なAPIアクセスを提供し、開発者やIT担当者がクラウドにデータを保存、取得、共有し、使用量に応じてスケールアップおよびスケールダウンすることができ、使用した分だけ料金を支払うことができます。基本的に、Backblaze B2は、Amazon S3、Microsoft Azure Storage、Google Cloud Storageと同様のクラウドストレージを提供しており、使いやすく、手頃な価格で信頼性が高いです。

しかし、既存のComputer Backupスタックはこの新しいユースケースには適していませんでした。それは、同社がクライアントも制御するカスタムストアでした。「Computer BackupインデックスはComputer Backupシステムの動作に合わせて非常にカスタム化されていたため、Backblaze B2ではゼロから異なるシステムを作成する必要がありました」とBackblazeのシニアシステム管理者であるElliott Sims氏は述べています。

この時点でBackblazeは分散データベースを調査し、Apache Cassandraが導入されました。

お客様の声

「非常に高い書き込みスループットを処理し、書き込みスループットを維持しながらスケーリングできるものが必要でした。そのため、分散ストアを検討する必要があり、Apache Cassandraは私たちのニーズに最適なオプションでした。」
— Elliott Sims
シニアシステム管理者

2015年のBackblaze B2のローンチに向けて、同社はAnsibleをソフトウェアプロビジョニング、構成管理、アプリケーションデプロイメントに採用し、データニーズのためにApache Cassandraと組み合わせ、テンプレートとReaperを適用して修復を処理しました。Apache Cassandraを選択する際には、新しいクラウドソリューションに最適な選択肢となるいくつかの重要な利点がありました。

スケーラブルで弾力性のあるパフォーマンスを提供

Backblazeは、ホストを追加するにつれて書き込みスループットの増加を確認する必要がありました。「読み取りスループットだけが必要な場合、レプリカを複製し続けることができるため、従来のMySQLレプリケーションは非常に効果的ですが、書き込みスループットも必要でした。Cassandraは、MySQLの上にレイヤリングや独自のシャーディングを使用するのではなく、すぐにそれを行うことができました」とSims氏は述べています。Backblazeはまた、Cassandraによる書き込みスループットとスケーリングはほぼ線形であることを発見しました。「30台の機械は、Apache Cassandraを使用することで、10台の機械の3倍の容量、つまり約2.95倍の容量を意味します。」

データセンターの停止にも耐えられる耐久性

書き込みスループットが重要な懸念事項でしたが、Backblazeは標準的なデータベース要件も必要としていました。「データを格納するときは、マシンがクラッシュしてもそこに残る必要がありました。一部のNoSQLデータベースのように、データの一部を失うことはできません。ディスクに書き込む必要があり、定期的にスナップショットを作成するキャッシュであってはなりませんでした」とSims氏は述べています。

ダウンタイムのない耐障害性

データベースオペレーターの睡眠を重視するすべての企業と同様に、Backblazeは夜間にマシンを失う能力を必要としていました。「誰かを呼び出して慌てて修復する必要はありませんでした。単一のマシンのオフラインを耐え忍び、無視できるソリューションが必要でした。」Apache Cassandraは分散型であり、すべてのデータは複数のノードに自動的にレプリケートされるため、単一障害点は存在しません。

BackblazeにとってのApache Cassandra 4.0の利点

4.0への移行はBackblazeにとって差し迫った検討事項ではありません。「Apache Cassandraの使用方法は、分析などではなく、ユーザーファイルの場所に関する信頼できる情報源として使用しているため、少し慎重です」とSims氏は述べています。しかし、Backblazeが活用することに興奮している機能がいくつかあり、4.0.1以降のリリースで移行することを期待しています。

墓石の問題を解消するための増分修復

「最大のものは、レベリング圧縮戦略と組み合わせた増分バックアップです」とSims氏は述べています。Backblazeは、墓石(ディスクからパージされていない削除済みデータ)が問題となっているいくつかの小さなテーブルを使用しています。SizeTieredCompactionStrategy(STCS)を使用すると、修復された墓石のみを圧縮するようにCassandraを設定できます。「つまり、非常に短いgc_grace_secondsを設定できるため、使用する可能性のある小さなテーブルでは、墓石ははるかに頻繁にクリーンアップされます[…​]それらは合計のごく一部なので、1日に複数回増分修復を実行できれば、墓石は非常に短命になります—10日ではなく10時間。これにより、問題は本質的に解消されます。」

トークン分散変更によるデータ移行の容易化

データセンターの移行を実行する場合、Cassandra 4.0を使用すると、スキーマではなくレプリケーションレベルに基づいてトークンを分散できるため、鶏と卵の依存関係が解消されます。「特定のスキーマに基づいてトークンを分散できることは、バランスを取るのに役立ちます」とSims氏は述べています。「しかし、新しい方法は、新しいデータセンターのトークンを手動で割り当てるという面倒なプロセスを排除します[…]これにより、残りのデータセンターの移行が容易になり、vnode数を削減できます。」

CassandraのためのKubernetes

Backblazeは現在Kubernetesを実行するためのテスト環境を運用していますが、Sims氏は、BackblazeがBackblaze B2に雑多なサービスを追加するにつれて、より多くの環境に移行していると言っています。「最終的には、CassandraにKubernetesに移行すると思いますが、現時点ではAnsibleによって制御されるベアメタルを使用しています[…​]Reaperはほとんどの場合管理が容易であり、より多くのクラスタをオンラインにするにつれて、cass-operatorのReaperコンポーネントにもっと関心を持つようになります。」

Sims氏は、Apache Cassandraにはさまざまな複雑さと問題点があると述べていますが、Backblazeに対する約束を果たしていると見ています。「スケーラブルな書き込みスループットと回復力—約束通りにデータを保持すること—は、Apache Cassandraによって守られてきました。これらは重要なことであり、[…​]データを保持することは、残念ながら他の新しいストレージシステムの一部については言えません。」

Backblazeについて

Backblazeは、企業と消費者の両方にとってデータ管理を驚くほど容易にします。Backblaze Storage Cloudは、簡単で、手頃な価格で、信頼できるソリューションを求める幅広い開発者、IT一般職、起業家、個人のための基盤となるプラットフォームを提供します。1エクサバイトを超えるデータを管理する同社は、現在175カ国以上の顧客と協力しています。2007年に設立され、カリフォルニア州サンマテオに拠点を置いています。詳細については、www.backblaze.comをご覧ください。