...

DSASのこれから - KLab株式会社

by user

on
Category: Documents
9

views

Report

Comments

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
Fly UP