Comments
Description
Transcript
DSASのこれから - KLab株式会社
DSASのこれから のこれから 〜もっとダイナミックなシステムへ〜 サーバ/ サーバ/インフラ Tech Meeting Copyright © KLab Inc. All rights reserved. 2008年8月8日 KLab 株式会社 Kラボラトリー 安井 真伸 自己紹介 安井 真伸( 真伸(やすい まさのぶ) まさのぶ) KLab株式会社 KLab株式会社に 株式会社に勤務 「Kラボラトリー」 ラボラトリー」という部門 という部門で 部門でDSASをいじってます DSASをいじってます 最近の 最近の出来事 自己紹介 複数サーバ 複数サーバ向 サーバ向けのファイル転送 ファイル転送ツール 転送ツールを ツールを作ってみたり C言語で 言語で書いた関数 いた関数を 関数をアセンブラで アセンブラで書き直してみたり 好きな事 きな事 人前でしゃべること 人前でしゃべること Copyright © KLab Inc. All rights reserved. 1 今日の 今日のアジェンダ はじめに インフラの インフラの担当者って 担当者って 障害発生時には 障害発生時には圧倒的 には圧倒的な 圧倒的な存在感を 存在感を発揮します 発揮します システムが システムが安定していると 安定していると存在 していると存在を 存在を忘れ去られます 仕事の 仕事の内容を 内容を一言で 一言で説明するのはとても 説明するのはとても難 するのはとても難しいです 「普段なにしてるの 普段なにしてるの?」 なにしてるの?」と ?」と聞かれると少 かれると少し凹みます DSASの の日常の 日常の様子をお 様子をお話 をお話したいと思 したいと思います Copyright © KLab Inc. All rights reserved. 2 今日の 今日のアジェンダ DSASってなに? KLabで で運用してる 運用してるサーバ してるサーバ・ サーバ・インフラの インフラの名前です 名前です 全部で 全部で300台 300台から400 から400台 400台くらいのサーバ くらいのサーバがあります サーバがあります 「ダイナミック・サーバ・アサイン・システム」の略です 名前が付いているとなにかと便利です KLabの商品ですが、近所のスーパーでは売ってません 東京に2カ所、福岡に1カ所のデータセンターがあります オープンソースベースの オープンソースベースのシステムです システムです Linux,Apache,PHP,Tomcat,その その他 その他もろもろ Copyright © KLab Inc. All rights reserved. 3 今日の 今日のアジェンダ なにがダイナミックなの? サイト毎 サイト毎のサーバ台数 サーバ台数を 台数を動的に 動的に変更できるという 変更できるという特徴 できるという特徴に 特徴に由来 WEBサーバ HDD サイトA サイト サイトAへの サイト へのアクセス へのアクセス WEBサーバ HDD WEBサーバ HDD WEBサーバ HDD WEBサーバ HDD ロードバランサ サイトBへの サイト へのアクセス へのアクセス Copyright © KLab Inc. All rights reserved. サイトB サイト 4 今日の 今日のアジェンダ なにがダイナミックなの? サイト毎 サイト毎のサーバ台数 サーバ台数を 台数を動的に 動的に変更できるという 変更できるという特徴 できるという特徴に 特徴に由来 サイトAへの サイト へのアクセス へのアクセスが アクセスが増大 WEBサーバ HDD WEBサーバ HDD サイトA サイト ロードバランサ サイトBへの サイト へのアクセス へのアクセスが アクセスが減少 Copyright © KLab Inc. All rights reserved. WEBサーバ HDD WEBサーバ HDD WEBサーバ HDD サイトB サイト 5 でも、 でも、それってさ・・・ Copyright © KLab Inc. All rights reserved. 6 ロードバランサの ロードバランサの設定を 設定を 変えてるだけじゃね? えてるだけじゃね? Copyright © KLab Inc. All rights reserved. 7 そのとおりです(><) そのとおりです(><) Copyright © KLab Inc. All rights reserved. 8 しかも! しかも! Copyright © KLab Inc. All rights reserved. 9 人が手でやってます \(^^)/ Copyright © KLab Inc. All rights reserved. 10 今日の 今日のアジェンダ なにがダイナミックなの? サービス毎 サービス毎のサーバ台数 サーバ台数を 台数を動的に 動的に変更できるという 変更できるという特徴 できるという特徴に 特徴に由来 サイトAへの サイト へのアクセス へのアクセス WEBサーバ HDD WEBサーバ HDD サイトA サイト ロードバランサ サイトBへの サイト へのアクセス へのアクセス リアルサーバの 割当を変更する Copyright © KLab Inc. All rights reserved. WEBサーバ HDD WEBサーバ HDD WEBサーバ HDD サイトB サイト 11 とはいえ Copyright © KLab Inc. All rights reserved. 12 いろいろ工夫 いろいろ工夫しています 工夫しています Copyright © KLab Inc. All rights reserved. 13 今日の 今日のアジェンダ いろいろ工夫しています(1) 全サーバの サーバのディスクの ディスクの内容を 内容を同じに保 じに保つ WEBサーバ HDD WEBサーバ HDD サイトA サイト WEBサーバ HDD WEBサーバ HDD WEBサーバ HDD Copyright © KLab Inc. All rights reserved. 内容は全部一緒 サイトB サイト 14 今日の 今日のアジェンダ いろいろ工夫しています(2) 必要な 必要なクラスローダのみを クラスローダのみを起動 のみを起動する 起動する サーバアサインリスト (MATRIX) サイトA サイト サイトB サイト (自動生成) httpd.conf apache再起動 サイトC サイト server.xml tomcat再起動 サイトA サイト クラスローダ サイトD サイト サイトC サイト サイトE サイト クラスローダ HDD メモリ WEBサーバ Copyright © KLab Inc. All rights reserved. 15 今日の 今日のアジェンダ いろいろ工夫しています(3) ファイルの ファイルの更新は 更新はマルチキャストで マルチキャストで一括転送 マスタサーバ HDD マルチキャスト ※専用のツールを使用(OSSとして公開する予定) Copyright © KLab Inc. All rights reserved. WEBサーバ HDD WEBサーバ HDD WEBサーバ HDD WEBサーバ HDD WEBサーバ HDD 16 今日の 今日のアジェンダ その他にも ネットワーク構成 ネットワーク構成をあんな 構成をあんな感 をあんな感じにしたり ストレージサーバでこんなことしたり ストレージサーバでこんなことしたり DBサーバ サーバをそんな サーバをそんな感 をそんな感じで使 じで使ってみたり セッションサーバをごにょごにょしたり セッションサーバをごにょごにょしたり Copyright © KLab Inc. All rights reserved. 17 今日の 今日のアジェンダ この辺の詳細は・・・・・ ■目次 1章 サーバ/インフラ構築入門 ……冗長化/負荷分散の基本 2章 ワンランク上のサーバ/インフラの構築 ……冗長化、負荷分散、高性能の追求 3章 止まらないインフラを目指すさらなる工夫 ……DNSサーバ、ストレージサーバ、ネットワーク 4章 性能向上、チューニング ……Linux単一ホスト、Apache、 5章 省力運用 ……安定したサービスへ向けて 6章 あのサービスの舞台裏 ……自律的なインフラへ、ダイナミックなシステムへ Copyright © KLab Inc. All rights reserved. 18 少し前置きが 前置きが長 きが長くなりましたが、、 Copyright © KLab Inc. All rights reserved. 19 DSASの概要はこんな 概要はこんな感じです Copyright © KLab Inc. All rights reserved. 20 ところで Copyright © KLab Inc. All rights reserved. 21 「ダイナミック」 ダイナミック」ってどういう意味 ってどういう意味? Copyright © KLab Inc. All rights reserved. 22 今日の アジェンダ 今日の 国語辞典で調べてみました ダイナミック サーバ (1883-1957) イタリアの詩人。伝統的詩法を駆使し、平明な口語体で物 語性あふれる音楽的な抒情詩を綴った。詩集「カンツォニエーレ」など。 アサイン 力強く、生き生きとしているさま。躍動的。力動的。 割り当てること。割り振ること。代入すること。 システム ある作業をコンピューターで行なっている場合に中核となっている部分 をさす語 Copyright © KLab Inc. All rights reserved. 23 というわけで、 」とは・・・ というわけで、「DSAS」 とは・・・ Copyright © KLab Inc. All rights reserved. 24 「生き生きとしたサバ きとしたサバを サバを 割 割り当てるシステム てるシステム(?)」 システム(?)」 Copyright © KLab Inc. All rights reserved. 25 お寿司屋さん 寿司屋さんに さんに売ってそうですね! ってそうですね! \(^^)/ Copyright © KLab Inc. All rights reserved. 26 この手 この手の単語の 単語の意味を 意味を 国語辞典で 国語辞典で調べるのは おすすめしません おすすめしません Copyright © KLab Inc. All rights reserved. 27 冗談はこれくらいにして 冗談はこれくらいにして・・・ はこれくらいにして・・・ Copyright © KLab Inc. All rights reserved. 28 話をもどします Copyright © KLab Inc. All rights reserved. 29 今日の 今日のアジェンダ 普段やってること 基本的に 基本的に何をするかは自由 をするかは自由です 自由です。 です。 人にとってテーマ にとってテーマや テーマや内容は 内容は様々です。 です。 Linuxの のカーネルソース読 カーネルソース読んでみたり IPVSの の拡張モジュール 拡張モジュール書 モジュール書いてみたり カーネル カーネルの 内部情報を 参照する する方法 方法を の内部情報 を参照 する 方法 を調べたり Copyright © KLab Inc. All rights reserved. 30 なぜそ なぜそんなことやってるの? んなことやってるの? Copyright © KLab Inc. All rights reserved. 31 これから順 これから順を追ってお話 ってお話します Copyright © KLab Inc. All rights reserved. 32 今日の 今日のアジェンダ 「ダイナミック」がつく単語 ダイナミックDNS ダイナミック ダイナミックルーティング ダイナミックリンクライブラリ DHCP( (Dynamic Host Contolol Protocol) ) なんとなく、「 なんとなく、「自動的 、「自動的」 自動的」とか、「 とか、「自立的 、「自立的」 自立的」みたいな イメージってありません イメージってありません? ってありません? Copyright © KLab Inc. All rights reserved. 33 今日の のアジェンダ 今日 「ダイナミックなシステム」から連想されるもの トラフィックが 急増 サーバが故障 サーバ サーバ サーバ サーバ サーバ サーバ サーバ サーバ サーバ サーバ サーバ サーバ サーバ サーバ サーバ コワレタ サーバ サーバ サーバ ダイナミックに サーバを アサインする システム? 自動的にサーバが 増えるのかな? 自動的に自己修復 するのかな? DSAS Copyright © KLab Inc. All rights reserved. 34 名前負けしてる 名前負けしてる気 けしてる気がします( します(^^; Copyright © KLab Inc. All rights reserved. 35 このままでは悔 このままでは悔しいので、 しいので、 どうすれば実現 どうすれば実現できるか 実現できるか考 できるか考えます Copyright © KLab Inc. All rights reserved. 36 今日の のアジェンダ 今日自動的にサーバを追加するには サイト毎 サイト毎のトラフィックの トラフィックの推移を 推移を記録しなきゃ 記録しなきゃ ロードバランサの ロードバランサの機能を 機能を拡張するとできるかな 拡張するとできるかな トラフィック測定 のモジュールでやるとよさそう トラフィック測定は 測定はIPVSの モジュールでやるとよさそう サーバを を再起動しなきゃ サーバを増や前にTomcatを 再起動しなきゃ ロードバランサから ロードバランサからTomcatを を再起動するには 再起動するには から sshして してコマンド してコマンド実行 コマンド実行する 実行する? する? httpなどで などで再起動 などで再起動リクエスト 再起動リクエストを リクエストを発行する 発行する? する? どちらにせよカーネル どちらにせよカーネル空間 カーネル空間でやるべき 空間でやるべき処理 でやるべき処理では 処理ではない ではない ユーザ空間 ユーザ空間で 空間で常駐する 常駐するプロセス するプロセス( プロセス(デーモン) デーモン)が必要 Copyright © KLab Inc. All rights reserved. 37 今日の のアジェンダ 今日自動的にサーバを追加するには WEBサーバ アプリケーション コントローラ( コントローラ(仮名) 仮名) サイトA サイト WEBサーバ ユーザ空間 トラフィック コントローラ (仮名) 仮名) WEBサーバ WEBサーバ IPVSスケジューラ スケジューラ IPVS WEBサーバ カーネル空間 ロードバランサ Copyright © KLab Inc. All rights reserved. WEBサーバ サイトB サイト 38 今日の のアジェンダ 今日自動的にサーバを追加するには WEBサーバ アプリケーション コントローラ( コントローラ(仮名) 仮名) WEBサーバ ユーザ空間 トラフィック コントローラ (仮名) 仮名) サイトA サイト サイトA サイト Tomcat 再起動 WEBサーバ WEBサーバ IPVSスケジューラ スケジューラ IPVS WEBサーバ カーネル空間 ロードバランサ Copyright © KLab Inc. All rights reserved. WEBサーバ サイトB サイト 39 やればできそうな気 やればできそうな気がします Copyright © KLab Inc. All rights reserved. 40 今日の のアジェンダ 今日自動的にサーバを追加するには しかし、 しかし、懸念点や 懸念点や疑問も 疑問もいっぱいでてきま す IPVSの の機能を 機能を拡張するにはどうすればいいの 拡張するにはどうすればいいの? するにはどうすればいいの? Linuxの のカーネルモジュールってどうやって カーネルモジュールってどうやって作 ってどうやって作るの? るの? カーネルモジュールと ユーザプロセスの 通信方法は カーネルモジュール とユーザプロセス の通信方法 は? 人がいないところで勝手 がいないところで勝手に 勝手に構成が 構成が変わるのは怖 わるのは怖い? すべてのサイト すべてのサイトの サイトのトラフィックが トラフィックが同時に 同時に上がったら? がったら? Copyright © KLab Inc. All rights reserved. 41 今日の アジェンダ 今日の実現に向けてやるべきこと IPVSの のソースを ソースを読んで構造 んで構造を 構造を理解する 理解する とりあえずカーネルモジュール カーネルモジュールを とりあえず カーネルモジュール を作ってみる カーネルモジュールと カーネルモジュールと通信する 通信するデーモン するデーモンを デーモンを作ってみる Copyright © KLab Inc. All rights reserved. 42 今日の 今日のアジェンダ 普段やってること(再掲) 基本的に 基本的に何をするかは自由 をするかは自由です 自由です。 です。 人にとってテーマ にとってテーマや テーマや内容は 内容は様々です。 です。 Linuxの のカーネルソース読 カーネルソース読んでみたり IPVSの の拡張モジュール 拡張モジュール書 モジュール書いてみたり カーネル カーネルの 内部情報を 参照する する方法 方法を の内部情報 を参照 する 方法 を調べたり Copyright © KLab Inc. All rights reserved. 43 などなど Copyright © KLab Inc. All rights reserved. 44 この話 この話はひとつの例 はひとつの例ですが Copyright © KLab Inc. All rights reserved. 45 普段やってる 普段やってる事 やってる事はこんな感 こんな感じです Copyright © KLab Inc. All rights reserved. 46 最後に 最後にもうひとつ Copyright © KLab Inc. All rights reserved. 47 実際に 実際に役に立った事例 った事例を 事例を紹介 Copyright © KLab Inc. All rights reserved. 48 今日の のアジェンダ 今日 少しだけ過去 過去を しだけ 過去を振り返ってみます ってみます (WindowsNTで でファイルサーバや サーバを ファイルサーバやDBサーバ サーバを運用してました 運用してました) してました) 毎朝テープデバイス 毎朝テープデバイスに テープデバイスにバックアップを バックアップをとっていた 当時はDATやDLTなどにバックアップをとるのが当たり前 テープの交換が超面倒! デバイスエラーで固まることもしばしば! 本当にリカバリできるのか不安で仕方がない! サーバを サーバを買ってオンラインバックアップ ってオンラインバックアップすること オンラインバックアップすることを することを考えた しかし、当時はサーバ1台買うだけでも結構大変 とても「バックアップ用にサーバ買って☆」とは言えなかった バックアップ用途のためだけに保守費用が倍になるのは割に合わない Copyright © KLab Inc. All rights reserved. 49 今日の のアジェンダ 今日 少しだけ過去 過去を しだけ 過去を振り返ってみます 定時バックアップ 定時バックアップには バックアップには問題 には問題がある 問題がある バックアップをとってる最中はDBサーバを止めなければいけない オープン中のファイルはバックアップできない もし夜中に障害が起こると、丸一日分のデータが消失する この問題は誰もが認識していた 2台のサーバで サーバでリアルタイムに リアルタイムにバックアップできれば バックアップできれば、、、 できれば、、、 片方が壊れてもすぐに切り替えることができるかも 毎朝のバックアップが不要になるはず バックアップのためにプロセスを止める必要もなくなるかな これができれば、サーバを増設するメリットは十分にあるかな Copyright © KLab Inc. All rights reserved. 50 今日の のアジェンダ 今日実現する方法を模索(妄想) ハードウエアを ハードウエアを使った構成 った構成を 構成を考えてみました ミラーリング レイドカード HDD HDD HDD レイドカード HDD サーバA Copyright © KLab Inc. All rights reserved. HDD HDD HDD HDD サーバB 51 ニーズを ニーズを満たす製品 たす製品は 製品は見あたらず Copyright © KLab Inc. All rights reserved. 52 今日の のアジェンダ 今日実現する方法を模索(妄想) ソフトウエアでどうにかできないか ソフトウエアでどうにかできないか考 でどうにかできないか考えてみました OS OS ミラーリング ファイルシステム HDD ファイルシステム デバイスドライバ デバイスドライバ レイドカード レイドカード HDD HDD HDD サーバA Copyright © KLab Inc. All rights reserved. HDD HDD HDD HDD サーバB 53 すでに同 すでに同じ事を考えていた えていた人が! Copyright © KLab Inc. All rights reserved. 54 今日の 今日のアジェンダ DRBDに遭遇 遭遇した 遭遇した当初 した当初は 当初は導入不可 導入不可 なにせWindowsサーバだったもので・・・・・ 自分のマシンで軽く動かして喜んでいました Linuxで でファイルサーバを ファイルサーバを構築する 構築する必要 する必要に 必要に迫られる DRBDの の存在を 存在を知っていたので システムの システムの設計段階から 設計段階から導入 から導入を 導入を検討 気合いをいれて検証を開始 現在は のネットワークストレージとして 現在はDSASの ネットワークストレージとして 元気に 元気に稼働してます 稼働してます Copyright © KLab Inc. All rights reserved. 55 今日の 今日のアジェンダ まとめ 運用は 運用は楽しく 夢を見るのは素敵なことです(ただし睡眠時間が必要です) 実現する方法を模索(妄想)するのは楽しいです 日々の運用経験から、新しい仕組みが生まれます 単純作業の繰り返しだけでは飽きてしまいます 気が向いたら自分 いたら自分で 自分で実装してみるのもいいかも 実装してみるのもいいかも たとえだめもとでも、作ろうとすることで得るものがあります 将来実現できる環境が整ったときにその経験は役に立ちます もしかすると全く関係ない場面で役に立つかもしれません 一見地味だけど 一見地味だけどクリエイティブ だけどクリエイティブな クリエイティブなお仕事だと 仕事だと思 だと思いまっす Copyright © KLab Inc. All rights reserved. 56 今日の 今日のアジェンダ 結局言いたかったことは 「インフラって インフラって楽 って楽しいよ!」 しいよ!」 Copyright © KLab Inc. All rights reserved. 57 今回の 今回の話はここまで Copyright © KLab Inc. All rights reserved. 58 ご静聴ありがとうございました 静聴ありがとうございました Copyright © KLab Inc. All rights reserved. 59