Upgrade to Pro — share decks privately, control downloads, hide ads and more …

さくらのVPSを支える技術とこれから / Technology behind SAKURA V...

chamaharun
April 24, 2020

さくらのVPSを支える技術とこれから / Technology behind SAKURA VPS and the future

OSC2020 Online/Spring にて登壇した際の資料です。
https://event.ospn.jp/osc2020-online-spring/session/61393

chamaharun

April 24, 2020
Tweet

More Decks by chamaharun

Other Decks in Technology

Transcript

  1. ⼩林 巧 (こばやし たくみ) • [email protected] @chamaharun • 2017年4⽉⼊社 新卒4年⽬

    所属 • 技術本部 ミドルウェアグループ • 仮想化基盤チーム VPSインフラ担当 著書 • 技術評論社 イラスト図解でよくわかる ITインフラの基礎知識(共著) • 技術評論社 Software Design 2018年7⽉号/2018年10⽉号(寄稿) 備考 • OSC参加 7年⽬ (登壇2回⽬) • アウトドアしたい!
  2. • さくらのVPSのサービスについて • さくらのVPSの仕組みと運⽤上の⼯夫 • さくらのVPS最新動向 今⽇お話すること 注意事項等 • サービス提供上公開できないこともあります(DC所在地や原価等)

    • 「for Windows」「ベアメタルプラン」は仕様が違います • 資料作成当時(2020年4⽉)の情報です 発表当時資料になく⼝頭で説明・補⾜した部分は発表後に各ページのこの部分に追記しています。
  3. • 2010年 サービス開始 • Virtual Private Server = 仮想専⽤サーバ •

    root権限、グローバルIPつきの⾃分専⽤のサーバ(実態はVM) • コントロールパネルから操作・リソースグラフの確認などができる さくらのVPS VM = Virtual Machine 仮想マシン 操作 リソースの利⽤状況 コントロールパネル お客様VPS
  4. さくらのクラウドとのアーキテクチャの⽐較 さくらのVPS さくらのクラウド VM ホストサーバ VM ホストサーバ VM VM VM

    ホストサーバ VM ストレージ VMのストレージがホストサーバ上にある VMのストレージがネットワーク上にある • ⾼価なストレージアプライアンスを必要 とせず安価に提供可能 • 障害の影響範囲が⼩さい • ホストが障害でも別のホストからVMを起動 できる • 別のVMで使⽤していたディスクを接続して VMを起動できる DAS = Direct Attached Strage
  5. さくらのVPSのホストサーバ VM VPSホストサーバ VM VM • VMが稼働しているサーバ • 複数VMでリソースを共有 •

    ハードウェアRAID • SSD/NIC/PSUなどのパーツを複数 搭載し冗⻑化 • bonding / NW機器の冗⻑化 • IPMIによるリモートからの操作 NIC = Network Interface Card PSU = Power Supply Unit RAID = 冗⻑化や⾼速化のため複数のディスクを束ねて使⽤すること SSD SSD SSD NIC NIC PSU PSU SSD SSDやNICやPSUといったパーツを複数搭載しているベンダー製サーバを採⽤しています。 データセンターに⾏かずにコンソール作業ができるよう、IPMIインターフェイスを搭載しています。
  6. 〇〇Stackなどのクラウド管理基盤ソフトウェアを使⽤せず⾃前で実装 • KVM+QEMU (仮想マシンの実⾏環境) • libvirt (仮想マシンの制御) • Linux Bridge

    + (Nested)VLAN(仮想マシンのNW) • LVM(仮想マシンのストレージ) さくらのVPSの実装 ⾃社で開発・保守することで低コストで運⽤&不具合に迅速に対応 KVM = Kernel-based Virtual Machine LVM = Logical Volume Manager
  7. さくらのVPSのVMができるまで VM VPSホストサーバ VM VM スクリプト VPS API 実⾏ LV

    LV LV 実⾏結果 • 社内システムとの調整(課⾦等) • 収容ホストサーバの選定 • 実⾏結果をコンパネへ反映 • LV(VMのストレージ領域)の作成 • OSイメージの展開 • VMの初期設定 • VMの起動 VM作成時以外(操作時・設定変更時)も同様に動作 お客様からVMの申し込みがあると、VPS APIがリソースの空き具合から収容するホストサーバを 選定し、ホストサーバにあるスクリプトを叩き、スクリプトがVM作成などを⾏います。
  8. サービスチーム お客様対応部隊 さくらのVPSを⽀える⼈たち 24/365オペレーション部隊 DCOP 現地・物理作業 SVOP ホストアラート対応・メンテ VPSインフラ担当 VPS-API担当

    NWOP NWアラート対応・メンテ 対応依頼・共同対処 エスカレーション CR カスタマーサポート VPS NW担当 24時間有⼈でサービスを横断して対応を⾏う体制があり、⼿順書と権限を渡して対応を依頼し、 対応しきれないものに関してはエスカレーションを⾏ってもらい、共同で対処します。
  9. • サービスを安定的に提供し続けること = 監視を⾏い障害が発⽣したら対応する・発⽣しにくいようにする • サービス品質の継続的向上 = パフォーマンス改善・機能追加など 現状維持だけが運⽤ではない 「さくらのVPS」では開発と運⽤を同じスタッフで⾏っている

    → 運⽤負荷を下げる事でよりよいサービスづくりに注⼒が可能 サービスを安定して提供し続けるのは当然⼤事ですが、お客様に選ばれ使い続けていただくためには、 サービスを維持するだけでなく改善も必要で、開発も運⽤に含まれると考えています。
  10. VPSインフラメンバーの⽇常 障害対応 問い合わせ 対応 ベンダー との 保守の調整 メンテ ナンス 運⽤改善

    機能開発 新規構築 Abuse 対応 技術調査 在庫関連 作業 VPSインフラメンバーの⽇常業務は多岐にわたりますが、
  11. • RAIDカード • NIC • メモリ • マザーボード サーバの主な故障箇所とその対応 シャットダウンが必要

    シャットダウンなしで交換 • HDD/SSD • PSU ホットスワップ⾮対応でも故障予知機能のあるパーツは 障害を防ぐため事前に計画メンテナンスを⾏う ⼀部ホットスワップにより交換できないものもありますが、NICなど冗⻑化しているパーツであれば ⽚側が動作している間にメンテナンスを計画しホストサーバを停⽌して交換します。
  12. HW交換メンテナンスの流れ 計画メンテナンス対応例 メンテ情報掲載 シャットダウン 筐体交換 復旧確認 • アラート等を検知 • メンテナンス情報の掲載

    と対象ユーザへメール (1〜2週間前) • Disk以外を予備機と 筐体ごと交換 • ホスト正常性を確認し VMの状態を復元 • VMの疎通確認 所要時間3時間程度:通常は深夜帯に実施 • VMの状態を保存 • ホストサーバの シャットダウン SVOP対応 DCOP対応 予備機は障害機と同スペックのものを複数⽤意しており、対応するスロットのディスクを差し替え、 障害機が設置してあったラックの位置にマウントし結線する運⽤を⾏っております。
  13. • RAIDの設計以上の本数が故障するとRAIDが崩壊する • 崩れたRAIDは再作成するしかない • バックアップから復旧するのに時間がかかる • CCを定期的に実⾏し不整合を検出・修正する • RAID/SMARTエラー値をホスト・スロット毎に追跡して予防交換

    ストレージ障害と予防交換 CC(Consistency Check) = 仮想ドライブのデータ整合性をチェック修正するRAIDカードの機能 信頼性を⾼める⼯夫 CCを定期的に実⾏していても、不良スロットの影響により動作が不安定になることがあるので、 SMARTやRAIDカードのエラー値をチェックして、状況次第で予防交換を⾏います。
  14. 0 4 1 2 3 5 RAID多重障害事例 • RAID10のホスト •

    Slot0にてエラー値の上昇を確認 • 通常通りSlot0の交換を⼿配 • CCを⼿動実⾏
  15. 0 4 1 2 3 5 RAID多重障害事例 ❌ ⚠ •

    RAID10のホスト • Slot0にてエラー値の上昇を確認 • 通常通りSlot0の交換を⼿配 • CCを⼿動実⾏ • Slot1が脱落 • Slot0をリビルドソースとすると失敗 する可能性アリ
  16. 0 4 1 2 3 5 • RAID10のホスト • Slot0にてエラー値の上昇を確認

    • 通常通りSlot0の交換を⼿配 • CCを⼿動実⾏ • Slot1が脱落 • Slot0をリビルドソースとすると失敗 する可能性アリ RAID多重障害事例 ⚠ 緊急メンテナンスを実施し VMを別ホストに退避 Slot1をこのまま交換してしまうとVMのデータ消失に繋がる恐れがあったので、 やむを得ず緊急で深夜帯にVMの移設を⾏いました。
  17. 0 4 1 2 3 5 RAID多重障害事例 VM移設後 • slot1を交換(3⽇後)

    →リビルド →完⾛ • slot0が脱落(22⽇後) →交換 →リビルド →完⾛ Slot1をこのまま交換してしまうとVMのデータ消失に繋がる恐れがあったので、 やむを得ず緊急で深夜帯にVMの移設を⾏いました。
  18. • 故障率の上昇 • 保守費の⾼騰 • 収容率の低下 機材⽼朽化メンテナンス より新しく⾼性能な サーバにリプレース 古い機材を使い続けると・・・

    通常のマイグレーション: 1VMあたり 数⼗分〜数時間のサービス断 x 数⼗〜数百VM VMのストレージがホストサーバに紐付いているため VMのデータを旧→新ホストに効率よく転送する必要がある 信頼性を⾼める⼯夫 ここ最近は機材⽼朽化メンテナンスに注⼒しているのでそれについて話します。
  19. DRBD 挟み込み VMデータ 同期 論理 切り替え 論理移設メンテナンスの流れ VMの停⽌が必要 VMの停⽌が不要 DRBDを各VMの

    LVの下に挟み込み DRBD = ホスト間でブロックデバイスの 同期・複製ができるソフトウェア ホストサーバ単位で⼀⻫にデータ同期と切り替えを⾏い サービス断を最⼩限に抑えつつ効率的にマイグレーション 新旧ホストのDRBDを 接続・同期 新ホストでVMを起動
  20. DRBD挟み込み VM ストレージ VM • VMをシャットダウン • DRBDをセットアップ • LVMのデバイスを切り替え

    • VMを起動 • VM起動後の確認 DRBD 挟み込み VM VM 論理移設メンテナンス ストレージ DRBDという、HAなどでブロックデバイスの同期に使われるソフトウェアを、VMのIOを⼀度⽌めて VMのストレージ領域であるLVと、ホストサーバのストレージの間に挟み込みます。
  21. VMデータ同期 DRBD データ 同期 VM VM 論理移設メンテナンス ストレージ DRBD •

    DRBD⼊り新ホスト を構築 • 新旧ホストを接続 • データの同期 VM ストレージ VM DRBD • 新ホストは同期開始時に構築されていればOK! • VM無停⽌で同期を開始できる! ⼀度挟み込んでしまえば、VMを停⽌することなくVMデータの同期を開始できます。 右側のDRBDデバイスはもう⼀つの旧ホストから⼊ってくるVMの領域になります。
  22. • VM定義データの移⾏ • 旧ホストでVMをシャッ トダウン • LVMを切り替え • 新ホストでVMを起動 •

    VM起動後の確認 ストレージ VM VM VM VM 論理切り替え 論理移設メンテナンス 同期された状態で旧ホストのVMをシャットダウンしてIOを停⽌すると、新ホストにも旧ホストと同じ VMデータが存在することになります。この状態で新ホストでDRBDを外しVMを起動します。
  23. 運⽤負荷を下げる⼯夫 • 構築・検収⼿順のスクリプト化 • アラート対応の⾃動化 • NetBoxの活⽤ • Infrastructure as

    a Code化 • ⼀部⾃動テストの導⼊ • 監視設定周りのGitOps化 ⾃動化・省⼒化を進めやすい環境・フローづくりを推進 監視の仕組みを⾒直し、スクリプトにオペレーションの⼀部を⾏わせることで省⼒化ができます。 運⽤者の負荷が減って、サービスの改善に繋がるようなことを今後はもっとやりたいと思っています。
  24. スタートアップスクリプトが新しくなりました! 新機能追加のお知らせ • スタートアップスクリプトをユーザー同⼠で「シェア」 • ⾃分のスクリプトを「公開」可能! • 他のユーザーが公開したスクリプトを「利⽤」可能! https://vps-news.sakura.ad.jp/ 2020/03/10/vps-ss-share/

    さくらのVPS スタートアップスクリプトで スクリプトのシェア機能を追加しました CMSやゲームの開発者・コミュニティの⽅などには是⾮使って頂きたい機能で、構築スクリプトをシェ アすればお気に⼊りのソフトウェアをユーザーに簡単に広めることができます。
  25. SSH公開 登録機能が追加されました! 新機能追加のお知らせ SSH公開 を設置すれば、 初回ログインから公開 認証が可能に!! 設置 公開 認証

    でログイン https://vps-news.sakura.ad.jp/ 2020/04/02/vps-ssh-keygen/ さくらのVPS コントロールパネルで 「SSH公開 の登録」ができる機能 を追加しました