cybozu.com のデータバックアップとリストア、
それを活用したリハーサル
SRE Tech Talks #2
サイボウズ株式会社
深谷敏邦
自己紹介
▌深谷敏邦 (@toshi_pp)
▌運用本部・サービス運用部・SRE
▌弊社クラウドサービスネイティブ世代
 新卒5年目
アジェンダ
▌SRE とオペレーション
▌cybozu.com のバックアップについて
▌アップデートリハーサルの取り組み
SRE とオペレーション
SRE とオペレーション
▌SRE 本曰く、SRE とはソフトウェアエンジニア
 オペレータとは違う
▌しかし、Google でさえ最大 50% はオペレーションを行っている
▌現実は厳しい
なぜオペレーションを避けるのか
▌オペレーションはスケールしない
▌オペレーションは繰り返しで退屈
▌オペレーションはミスを生む
▌しかしそれでもオペレーションしないといけない
SRE とバックアップ
▌やらなければならないならできるだけ安全にやりたい
 事前レビュー
 ペアオペレーション
 バックアップ
▌バックアップがあれば最悪の事態でも復旧できる
 安心感
cybozu.com のバックアップについて
cybozu.com について
▌企業向けクラウドアプリケーションサービス
 契約社数17,000社以上
 契約ユーザー数65万人以上
▌データ量は270TB程度
アーキテクチャ
▌マルチテナント
▌マルチアプリケーション
▌マルチバックエンド
 MySQL
 Solr
 Blob server
 独自データベース
heysha.cybozu.com
onsha.cybozu.com
cybozu.com の運用環境
▌ハウジングによる自社DC
 東日本にメイン環境
 西日本にバックアップサイト
▌ベアメタルサーバーの利用
▌自社開発のクラウド基盤
 KVM
 LVM+iSCSI
cybozu.com のバックアップについて
▌ディスクイメージレベルのオンラインバックアップ(物理バックアップ)
▌インクリメンタルフォーエバー
 14日分の増分を保持してその間の任意の時点がリストア可能
▌メリット
 ミドルウェア非依存
▌デメリット
 バックアップ時間がかかる
 リストアが遅い
full
image …
restore restore
バックアップシステムについて
▌ベアメタルに最適化
▌高速なスキャン
 HDDはシーケンシャルにアクセスすれば速い
 ディスク10本のRAID6ならシーケンシャルリードが1GB/sでる
▌ハッシュを使った高速な増分検出
▌高速な圧縮
 snappy
010101010
010101001
…
Backup
server
Backup
client
disk image hash
incremental diff
storage server backup server
遠隔レプリケーション
▌バックアップが1個しかないのは怖い
 オペミス
 地震雷火事おやじ
▌DC間データレプリケーション
 データ回線が細い(10Gbps v.s. 1Gbps)
▌CPU を活用して帯域を節約
 並列gzip圧縮
 LZMAは重すぎた…
東
西
の
壁
東日本DC 西日本DC
replication
server
replication
client
backup server replication server
snappy
diff
gzip
diff
リストアの工夫
▌増分バックアップはリストアが遅い
 1ボリュームのリストアに数十分~数時間かかる
▌データ量の観点で pre-restore はコストが大きい
▌増分だけ保持するブロックデバイスがあれば、リストアがそもそも不要
 ⇒ dm-thinp
DM Thin Provisioning (dm-thinp)
▌Linux kernel 3.2 から導入されたデバイスマッパー
 docker のストレージにも利用されている
▌書き込んだ部分だけ実容量を使用するブロックデバイス
 B木によって論理ブロック↔実ブロックをマッピングする
▌Incremental Diff を Thin デバイスとして保持する
 保存容量を抑えることができる
 利用時にリストアする必要がない
▌スナップショットのスナップショットが作れる
 利用前にスナップショットを作ることで任意のバックアップを自由に書き換え可能
cybozu.com のデータバックアップとリストア、それを活用したリハーサル
DM-thinp の失敗談
▌マッピング用のメタデータデバイスが最大16GBまでしか利用できない
 大量のマッピングを保持できない
▌kernel 3.13 (Ubuntu trusty) ではいくつかバグを持っている
 B木の操作が間違っていてデータ破損が起こる
 upstream からバックポート済み
 メタデータスナップショットを使ったときメタデータが破損する場合がある
 原因不明
▌東日本のバックアップでは使わず、西日本のレプリケーション先でのみ使用
バックアップデータの活用
▌バックアップの運用環境への書き戻しは99%起こらない
 データを完全に破損してしまうほどのバグやオペミスはまれ
▌バックアップはコストではない
 安全にお客様データに触れる手段
▌活用法
 障害調査
 アップデートリハーサル
アップデートリハーサルの取り組み
アップデートリハーサル
▌データを更新するアップデート前に、本番手順を使ったリハーサルを行う
 想定外のデータがあることでアップデートが失敗しないか
 まれによくある
 アップデートに時間がかかりすぎないか
▌すべては安心のため
リハーサルの流れ
▌本番環境のコピーを作成
 バックアップデータから本番環境のスナップショットをリストア
▌アップデートスクリプトを流す
▌成功ならリリースへ
▌失敗なら開発チームにフィードバック
 データ依存ならリハーサル環境を使って調査
リハーサルに求められるリストアの要件
1. 環境全体のリストア
2. リソースアロケーションの自動化
3. グローバルに存在するサービスの扱い
①環境全体のリストア
▌データのリストアがあってもアプリケーションは動かない
▌データのバックアップ時点のアプリケーションの構成情報が必要
▌構成情報のリストアは単純ではない
 オリジナルのデータを向かないように、リストア先を見るようにする
 VM などの ID をオリジナルとかぶらないようにする
▌リストアというよりも当時の構成情報を基にした再構築
マルチテナント環境のリストア
▌1つのアプリケーションをリストアすると、オリジナル、リストアの2つができる
 ⇒マルチテナント
▌cybozu.com は最初からマルチテナント
▌マルチテナント環境をリストアすると?
① マルチテナント
② マルチテナントのマルチテナント
▌ オリジナルとリストア環境を区別したいので②
①
②
ワールドライン(WL)
▌マルチテナントのマルチテナントの名前
 元ネタは某ゲーム
▌あるタイミングの環境全体を一意に特定するID
 本番環境は現在を示す特別なWLを割り当てている
▌アプリケーションはWLとテナントの複合キーで識別される
 (WL, tenant) -> application
②リソースアロケーションの自動化
▌本番は職人(SRE)による温かみのあるリソース割り当て
▌リストア環境構築ツールで使用メモリを元に貪欲法で割り当て
 まれにリソースが足りずにリハーサルが失敗する
 その場合は手動で割り当てなおす
VM VM
VM VM
VM VM
③グローバルに存在するサービスの扱い
▌全テナントが共通に使うサービスがいくつか存在する
 画像変換サービス
 添付ファイルからの文章抽出サービス
▌WLが後づけでサービスはリクエスト元のテナントが識別できない
▌特定のWLだけを扱うように設定
 少なくともリハーサルはできる
(w1, a)
(w2, a)
image
converter
tenant:a
tenant:a
喜びの声
今後に向けて
▌バックアップやリストアの仕組みを各サービスでネイティブに持つ
 後づけは大変
▌バックアップの高速化
 ラボで開発した WalB の導入
 https://github.com/walb-linux/walb-driver
▌リソーススケジューラの導入
 オペレーションやコードの複雑さを低減させる
まとめ
▌サイボウズのバックアップの仕組みを紹介しました
 ベアメタル環境でのバックアップ、リストア
▌安心してオペレーションできる仕組みを作ろう
 バックアップツールの整備
 アップデートリハーサル
We are hiring!
サイボウズでは一緒にサービスを育てていく仲間を
募集しています

More Related Content

PDF
Arukasの運用事例と、末永くインフラ運用していくためのTips(SRE Tech Talks #2)
PPTX
5分で分かるサイボウズのSRE
PDF
自動構築と自動テスト〜インフラのコード化とクラウドの優位性
PPTX
さくらインターネットベアメタル自動化への挑戦
PDF
○ヶ月でできた!?さくらのクラウド開発秘話(【ヒカ☆ラボ】さくらインターネットとMilkcocoa!年末イベント:ここだけのウラ話)
PDF
さくらのクラウド開発と運用(九州インフラ交流勉強会(Kixs) Vol.005)
PDF
20210925_jazug_azure_what_to_do_first
PDF
「やってみました SoftLayer クラウドゲートウェイ / NetApp AltaVault」
Arukasの運用事例と、末永くインフラ運用していくためのTips(SRE Tech Talks #2)
5分で分かるサイボウズのSRE
自動構築と自動テスト〜インフラのコード化とクラウドの優位性
さくらインターネットベアメタル自動化への挑戦
○ヶ月でできた!?さくらのクラウド開発秘話(【ヒカ☆ラボ】さくらインターネットとMilkcocoa!年末イベント:ここだけのウラ話)
さくらのクラウド開発と運用(九州インフラ交流勉強会(Kixs) Vol.005)
20210925_jazug_azure_what_to_do_first
「やってみました SoftLayer クラウドゲートウェイ / NetApp AltaVault」

What's hot (20)

PDF
止めないためのWEBインフラ入門
PDF
さくらのクラウドの研究活用
PDF
Janog37 Pattern BoF
PDF
JAZUG 4周年総会 「トラブルから学ぶAzure世渡り術」
PDF
Ansible はじめてみました
PDF
グローバルファイル転送のベストプラクティス
PDF
さくらのクラウド活用事例 - 構成と運用のご紹介(Innovation EGG 第5回 『クラウド運用の本音』)
PPTX
Mackerel x Twilio ~レコチョクの場合~
PDF
クラウド運用3足の草鞋151102
PDF
これからはじめるインフラエンジニア
PDF
ACE 第6回定例会 ショートプレゼン
PPTX
ストレージサービスからの情報漏えいにサヨナラ
PDF
Rancher による社内向けテナントサービス基盤
PDF
Global azure boot camp 2015 in japan 妖怪はみた!実録 Azure事件簿
PPTX
Microsoft Azureで描く未来 !CLR/H &Windows女子部 ー lesson1
PPTX
10/2勉強会資料 ~IaaSを知る前にサーバを知ろう~
PPTX
もしSIerのエンジニアがSRE本を読んだら
PDF
NetOpsCoding#5 introduction
PPTX
JAZUG 8周年イベント登壇資料
PPTX
AI分野におけるコンテナオーケストレーションとは
止めないためのWEBインフラ入門
さくらのクラウドの研究活用
Janog37 Pattern BoF
JAZUG 4周年総会 「トラブルから学ぶAzure世渡り術」
Ansible はじめてみました
グローバルファイル転送のベストプラクティス
さくらのクラウド活用事例 - 構成と運用のご紹介(Innovation EGG 第5回 『クラウド運用の本音』)
Mackerel x Twilio ~レコチョクの場合~
クラウド運用3足の草鞋151102
これからはじめるインフラエンジニア
ACE 第6回定例会 ショートプレゼン
ストレージサービスからの情報漏えいにサヨナラ
Rancher による社内向けテナントサービス基盤
Global azure boot camp 2015 in japan 妖怪はみた!実録 Azure事件簿
Microsoft Azureで描く未来 !CLR/H &Windows女子部 ー lesson1
10/2勉強会資料 ~IaaSを知る前にサーバを知ろう~
もしSIerのエンジニアがSRE本を読んだら
NetOpsCoding#5 introduction
JAZUG 8周年イベント登壇資料
AI分野におけるコンテナオーケストレーションとは
Ad

Viewers also liked (20)

PDF
Database sql
PDF
Dockerホスティング「Arukas」について(「さくらインターネット」のDockerホスティング「Arukas」と「Docker Machine」ドラ...
PDF
Aws×phpでの 高信頼かつハイパフォーマンスなシステム
PDF
DMMのゲームプラットフォームで利用している技術やシステム構成、レガシーシステムが抱える課題、解決のためのシステムリプレイスの進め方
PDF
Elasticsearchを使うときの注意点 公開用スライド
PPTX
go-apt-cacher/mirror
PDF
Dockerの基本と応用~快適コンテナライフを実現するArukas~
PDF
Arukasのご紹介 for 『kintone Café 鹿児島 Vol. 4 × さくらクラブ鹿児島』
PDF
Arukas(Dockerホスティング)サービス概要資料2016年10月版
PDF
意外と知られていない AWSのメール配信 テクニック
PPTX
Elasticsearchインデクシングのパフォーマンスを測ってみた
PPTX
CloudWatch Eventを使ったamiの削除
PDF
initramfsについて
PDF
トランザクションの並行処理制御
PPTX
20161208 Classmethod Codenize Tools
PDF
2017 0217 io tlt勉強会_発表用
PDF
「さくらのIoT Platform α」ハンズオン(さくらクラブIoT福岡 第1回勉強会~さくらのIoT Platformを体験しよう!)
PPTX
Sql server のバックアップとリストアの基礎
PDF
Introducing in-house PaaS in SmartNews
PPTX
Github pagesでRPubsにサヨナラ!
Database sql
Dockerホスティング「Arukas」について(「さくらインターネット」のDockerホスティング「Arukas」と「Docker Machine」ドラ...
Aws×phpでの 高信頼かつハイパフォーマンスなシステム
DMMのゲームプラットフォームで利用している技術やシステム構成、レガシーシステムが抱える課題、解決のためのシステムリプレイスの進め方
Elasticsearchを使うときの注意点 公開用スライド
go-apt-cacher/mirror
Dockerの基本と応用~快適コンテナライフを実現するArukas~
Arukasのご紹介 for 『kintone Café 鹿児島 Vol. 4 × さくらクラブ鹿児島』
Arukas(Dockerホスティング)サービス概要資料2016年10月版
意外と知られていない AWSのメール配信 テクニック
Elasticsearchインデクシングのパフォーマンスを測ってみた
CloudWatch Eventを使ったamiの削除
initramfsについて
トランザクションの並行処理制御
20161208 Classmethod Codenize Tools
2017 0217 io tlt勉強会_発表用
「さくらのIoT Platform α」ハンズオン(さくらクラブIoT福岡 第1回勉強会~さくらのIoT Platformを体験しよう!)
Sql server のバックアップとリストアの基礎
Introducing in-house PaaS in SmartNews
Github pagesでRPubsにサヨナラ!
Ad

cybozu.com のデータバックアップとリストア、それを活用したリハーサル

Editor's Notes

  • #11: マルチテナント slack と同じようにサブドメインで分かれる