ニュース

サイボウズ、「cybozu.com」のパフォーマンス向上に関する技術的施策について説明

サイボウズ 運用本部サービス運用部副部長の萩原利士成氏

 サイボウズ株式会社は17日、第3回目となる記者向け技術説明会を開催した。今回の説明会では、利用企業数が1万社を超えたクラウドサービス「cybozu.com」の最新インフラ状況や課題、パフォーマンス向上のための技術的施策などについて紹介した。

 「cybozu.com」は、2011年11月21日に稼働を開始し、今年6月時点で契約社数は約1万1000社、契約ユーザー数は約37万人、アクセス数は18億/月、データ量は98TiBまで増大しているという。

 サイボウズ 運用本部サービス運用部副部長の萩原利士成氏は、「第1回目の技術説明会を開催した2013年9月時点では、契約社数は約4500社、契約ユーザー数は約14万人、アクセス数は7億/月、データ量は26TiBだった。ここから約2年間で、『cybozu.com』のサービス規模は2倍以上に拡大したことになる」と、「cybozu.com」は急成長を続けていると話す。

 また、「データセンターは国内に2カ所を設置。サーバー台数は、本番機が仮想マシンと実機を合わせて約1000台、開発用として約100台の実機が稼働している」と、現在のインフラ状況について説明した。

 「こうしたサービスの急成長は、同時に痛みも産むことになった。システム規模が拡大していく一方で、システムの高度化が追いつかなくなり、パフォーマンス面でさまざまな問題が現れるようになった」と、急成長にともなう痛みが顕在化しつつあるという。

 「具体的には、ドメイン数の増加による読み込み時間の増大、データ量の増加によるバックアップ時間の増大、サーバー台数の増加によるOSインストールの負荷増大、ログ量の増加による解析時間の増大など、インフラの弱い部分から痛みが出てきている」と、「cybozu.com」のインフラが抱える課題について指摘した。

 同社では、これらの課題を解決し、パフォーマンス向上を図るための技術的施策に力を注いでいるという。この施策の1つとして、萩原氏が「OS自動インストール」について説明。「Ubuntu 14.04へのOSバージョンアップを行う際に、サーバーの種類・ロールによって適切にOSを移行したり、数百台もの膨大な再インストール作業が必要になるなど、運用チームの時間を大量に消費してしまうことがわかった。そこで、OSインストールの作業負荷を軽減するため、サーバーを自動でセットアップするプロセスを作り、OSの自動インストールを可能にした」としている。

サイボウズ Hazamaチームの野島裕輔氏
新ロードバランサーの設計

 次に、サイボウズ Hazamaチームの野島裕輔氏が、「新規申込時間の短縮」に関する技術的施策について説明した。「『cybozu.com』では、新規に申し込みを行うと自動的に環境を構築する。その際に、データベースの作成・初期化とロードバランサーの振り分け登録が行われるが、総ドメインの増加にともない、新規申し込みに10分もかかるようになってしまった」という。

 この課題に対して同社では、データベース初期化の高速化とロードバランサーへの登録の高速化を実施。「ユーザーからの申し込みが来る前にデータベースを作成しておく在庫方式に変更した。初期化についてもできる処理はすべて済ませておくことで、初期化にかかる時間を短縮した。また、ロードバランサーについては、アーキテクチャを根本的に見直した。従来は、起動時にすべての設定を読み込んでいたが、新たなロードバランサーでは、リクエストが来るたびに、その処理に必要な設定のみを読み込むようにした。実装に当たっては、高性能HTTPサーバーのnginxとLuaモジュールを採用し、パッチをあてることで対応した。この2つの施策によって、現在では10秒以内に新規申し込みが完了するようになった」と、新規申込時間の大幅な短縮を実現したと述べていた。

サイボウズ・ラボの星野喬氏
WalBバックアップの仕組み

 「バックアップ時間の短縮」に関する技術的施策としては、次世代バックアップ/レプリケーションシステム「WalB」の開発を進めているという。サイボウズ・ラボの星野喬氏は、現在稼働しているバックアップ/レプリケーションシステム「TBS」の課題について、「Diff取得にスナップショットのフルスキャンが必要なため、時間がかかるうえにオンライン性能にも影響を及ぼしている。また、dm-snapのCOW(Copy-On-Write)オーバーヘッドが大きく、これもオンライン性能への影響が懸念される。さらに、1日に1回のバックアップ取得が限界で、今後データが増えた場合、それすら不可能になる恐れがある」と指摘する。

 「これらの課題を解決するため、次世代システムの『WalB』では、COWではなく、書き込み履歴を先に書くWAL(Write-Ahead Logging)を使用。これにより、Diff取得のためにフルスキャンする必要がなくなり、性能オーバーヘッドも小さくすることができる。『WalB』のソフトウェアは、仮想ブロックデバイスを提供する『WalB device driver』と、世代バックアップ機能やレプリケーション機能を提供する『WalB tools』で構成され、現在運用テストに入っている。『WalB』が稼働すれば、バックアップ取得間隔が劇的に短くなることが期待される」と、「WalB」のシステム概要と開発状況を説明した。

 最後に、萩原氏が今後の取り組みについて言及。「年内をめどに、ログ収集・解析基盤の整備とChat Opsの実施、そして『WalB』による無段階バックアップへの対応を予定している。さらに、今年から来年にかけては、分散ストレージや分散検索サービスの実装、Linuxコンテナ技術の導入を検討していく」との考えを示した。

唐沢 正和