LVSつこうた話

36
2009/05/29 株式会社Fusic 平田 哲 Copyright © Fusic Co., Ltd. All rights reserved. LVSつこうた話

Transcript of LVSつこうた話

Page 1: LVSつこうた話

2009/05/29株式会社Fusic 平田 哲

Copyright © Fusic Co., Ltd. All rights reserved.

LVSつこうた話

Page 2: LVSつこうた話

LVSつこうた話+ちょっと人生の話

2009/05/29株式会社Fusic 平田 哲

Copyright © Fusic Co., Ltd. All rights reserved.

Page 3: LVSつこうた話

0. 自己紹介

3Copyright © Fusic Co., Ltd. All rights reserved.

Page 4: LVSつこうた話

平田 哲 (id:debility)・プログラマ・サーバとか主担当(多分)・ネットワークとか主担当(多分)・

!?

0. 自己紹介

4Copyright © Fusic Co., Ltd. All rights reserved.

Page 5: LVSつこうた話

平田 哲 (id:debility)・mixiアプリ進出

どーせえと。

0. 自己紹介

5Copyright © Fusic Co., Ltd. All rights reserved.

Page 6: LVSつこうた話

まあ普段通りです。今日もだらだらと喋ります。

0. 自己紹介

6Copyright © Fusic Co., Ltd. All rights reserved.

Page 7: LVSつこうた話

1. なぜ分散するか

7Copyright © Fusic Co., Ltd. All rights reserved.

Page 8: LVSつこうた話

個人的に大きなメリット

1. 冗長化2. より高負荷に耐えられる

→ サービスが止まらない(超重要)

1. なぜ分散するか

8Copyright © Fusic Co., Ltd. All rights reserved.

Page 9: LVSつこうた話

2. LVS

9Copyright © Fusic Co., Ltd. All rights reserved.

Page 10: LVSつこうた話

ロードバランサ

外部ネットワークからの要求を一元的に管理し、同等の機能を持つ複数のサーバに要求を転送する装置。なるべく多くのサーバに要求を分散して送信し、各サーバが快適な応答速度を保つことを目的としている。

- IT用語辞典より引用

2. LVS

10Copyright © Fusic Co., Ltd. All rights reserved.

Page 11: LVSつこうた話

ロードバランサ

ざっくり言うと・リクエストを複数サーバに分散・ダウンしたら分散対象から外す

2. LVS

11Copyright © Fusic Co., Ltd. All rights reserved.

Page 12: LVSつこうた話

2. LVS

12Copyright © Fusic Co., Ltd. All rights reserved.

Page 13: LVSつこうた話

2. LVS

13Copyright © Fusic Co., Ltd. All rights reserved.

Page 14: LVSつこうた話

製品価格:¥1,485,000~

orz

とまあ、恐ろしく高価な代物なんですが。

2. LVS

14Copyright © Fusic Co., Ltd. All rights reserved.

Page 15: LVSつこうた話

LVS (Linux Virtual Server)http://www.linux-vs.org/

・Linux負荷分散ソリューション

ざっくり言うと:Linuxでロードバランシングできる

2. LVS

15Copyright © Fusic Co., Ltd. All rights reserved.

Page 16: LVSつこうた話

LVS を使うメリット・安価で導入できる→ 貧弱なマシンでも問題ない・Linuxなので応用が利く→ 他の用途にも使える

→ ログを溜めておくとか

2. LVS

16Copyright © Fusic Co., Ltd. All rights reserved.

Page 17: LVSつこうた話

3. つこうたデモ

17Copyright © Fusic Co., Ltd. All rights reserved.

Page 18: LVSつこうた話

構成図:

3. つこうたデモ

18Copyright © Fusic Co., Ltd. All rights reserved.

WebSrv1 WebSrv2LVS

VIP: 10.0.10.50RIP: 10.0.10.51

10.0.10.101 10.0.10.102

想定する外からの入口:10.0.10.50

Page 19: LVSつこうた話

構成図2:

3. つこうたデモ

19Copyright © Fusic Co., Ltd. All rights reserved.

WebSrv1 WebSrv2LVS1/LVS2

VIP: 10.0.10.50LVS1: 10.0.10.51LVS2: 10.0.10.52

10.0.10.101 10.0.10.102

想定する外からの入口:10.0.10.50

Page 20: LVSつこうた話

4. ざっくり使用例

20Copyright © Fusic Co., Ltd. All rights reserved.

Page 21: LVSつこうた話

つこうたOS:CentOS 5.2

1. IPVS# yum -y install ipvsadm

2. keepalivedhttp://www.keepalived.org/からダウンロードしてRPM作ってインストール

4. ざっくり使用例

21Copyright © Fusic Co., Ltd. All rights reserved.

Page 22: LVSつこうた話

つこうたOS:CentOS 5.2

3. /etc/keepalived/keepalived.conf

http://viz.is-a-geek.com/~viz/cw/index.php?LVS

とか参考にして編集する

→ codecheck.inに後で置いときます。

4. ざっくり使用例

22Copyright © Fusic Co., Ltd. All rights reserved.

Page 23: LVSつこうた話

つこうたOS:CentOS 5.2

4. iptables設定DSRで組む場合はiptablesで設定が必要

DSRについてはhttp://d.hatena.ne.jp/yamaz/20060817

を参照すると分かりやすいです。

4. ざっくり使用例

23Copyright © Fusic Co., Ltd. All rights reserved.

Page 24: LVSつこうた話

つこうたOS:CentOS 5.2

4. iptables設定今回の場合はこんな感じ。

-----lv1, lv2のiptables設定# iptables -t mangle -A PREROUTING -d 10.0.10.50 -j MARK --set-mark 1

web1, web2のiptables設定# iptables -t nat -A PREROUTING -d 10.0.10.50 -j REDIRECT

4. ざっくり使用例

24Copyright © Fusic Co., Ltd. All rights reserved.

Page 25: LVSつこうた話

つこうたOS:CentOS 5.2

5. 動かす/etc/init.d/keepalived start

てな感じです。

4. ざっくり使用例

25Copyright © Fusic Co., Ltd. All rights reserved.

Page 26: LVSつこうた話

5. 注意するところ

26Copyright © Fusic Co., Ltd. All rights reserved.

Page 27: LVSつこうた話

・セッション

セッションは各サーバに保持される= セッションがぶちぶち切れてしまう

解法1: persistence_timeout解法2: NAS解法3: repcachedなどなど。

5. 注意するところ

27Copyright © Fusic Co., Ltd. All rights reserved.

Page 28: LVSつこうた話

・コンテンツの同期解法1: 手動で頑張る解法2: rsync解法3: makuosanとか解法4: DRBD

この辺は各自で調べてください。

5. 注意するところ

28Copyright © Fusic Co., Ltd. All rights reserved.

Page 29: LVSつこうた話

6. リスクを減らす

29Copyright © Fusic Co., Ltd. All rights reserved.

Page 30: LVSつこうた話

SPOFという考え方

Single Point Of Failure (単一障害点)= そこ止まっちゃだめぇぇぇな所

→ 意識しないと冗長化の意味がないです。

6. リスクを減らす

30Copyright © Fusic Co., Ltd. All rights reserved.

Page 31: LVSつこうた話

SPOFの例(1)

31Copyright © Fusic Co., Ltd. All rights reserved.

6. リスクを減らす

WebSv1 WebSv2

DBSv1 DBSv2

LVS ここがSPOF

Page 32: LVSつこうた話

SPOFの例(2)

32Copyright © Fusic Co., Ltd. All rights reserved.

6. リスクを減らす

弁当を注文する人 弁当を食べる人

こいつがSPOF

平田

モデル:弊社

Page 33: LVSつこうた話

基本的な考え方として・100%故障しないはありえない・n台あればリスクは1/n

ではなく1/n になる

6. リスクを減らす

33Copyright © Fusic Co., Ltd. All rights reserved.

2

Page 34: LVSつこうた話

7. 参考資料

34Copyright © Fusic Co., Ltd. All rights reserved.

Page 35: LVSつこうた話

・書籍「サーバ/インフラを支える技術」・DSAS開発者の部屋・keepalived公式・Web+DB Press・他いろいろ

7. 参考資料

35Copyright © Fusic Co., Ltd. All rights reserved.

Page 36: LVSつこうた話

ご清聴ありがとうございました。

36Copyright © Fusic Co., Ltd. All rights reserved.