dsasのあれこれ - klab株式会社(klab...

116
Copyright © KLab Inc. All rights reserved. 2007323KLab 株式会社 DSASのあれこれ

Upload: others

Post on 27-Jun-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

Copyright © KLab Inc. All rights reserved.

2007年3月23日

KLab 株式会社

DSASのあれこれ

Page 2: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

1Copyright © KLab Inc. All rights reserved.

自己紹介

Page 3: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

2Copyright © KLab Inc. All rights reserved.

時間がもったいないので

Page 4: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

3Copyright © KLab Inc. All rights reserved.

省略しようかな・・・・・

Page 5: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

4Copyright © KLab Inc. All rights reserved.

というのもあれなので簡単に・・・

氏名: 安井 真伸(やすい まさのぶ)

年齢:年齢: 34歳34歳

出身:出身: 北海北海道道好きな仕事:好きな仕事: 障害対応(?)障害対応(?)

嫌いな仕事:嫌いな仕事: ルーチンワーク(?)ルーチンワーク(?)

KLab株式会社の「Kラボラトリー」という部門に所属し、いろいろやったりあれこれしたりしています。主にL2,L3まわ

りのネットワーク構成をごにょごにょするのが好きです。

Page 6: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

5Copyright © KLab Inc. All rights reserved.

早速ですがDSASってなに?

Page 7: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

6Copyright © KLab Inc. All rights reserved.

DSAS とは …

でっかいサービスにあってるサーバ

どんなサイトでもあんしんなしくみ

だまってさわってあわててすみません

だんご三兄弟sドナドナで騒ぐアーティスト集団

Page 8: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

7Copyright © KLab Inc. All rights reserved.

DSAS とは …

Dynamic Server Assign Systemの略

KLab独自のサーバインフラの呼び名

いろいろやったりあれこれした成果の集大成

特徴

オープンソースベースのシステム

単一故障点のないシステム

アクセスの増加に柔軟に対応可能

管理者が楽に運用できるような工夫が満載

Page 9: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

8Copyright © KLab Inc. All rights reserved.

DSASの設計思想

Page 10: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

9Copyright © KLab Inc. All rights reserved.

DSASのコンセプト

システム管理者にも十分な睡眠を!

Page 11: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

10Copyright © KLab Inc. All rights reserved.

そのためにはどうすればいいか・・・

KLabには24時間体制で人間がシステムを監視できる体制も余裕もありません

ならば、壊れても緊急対応を要しないシステムを組む必要があるでしょう

そのためには何をすればよいのでしょうか

かたっぱしから冗長構成にしてみよう!

Page 12: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

11Copyright © KLab Inc. All rights reserved.

冗長構成に対する懸念

冗長構成にすると本当に無停止になるの?

中途半端に停止して結局全停したりしない?

下手に二重化するとループしたりとかしない?

構成が複雑になってトラブルの原因にならん?

冗長化を考えずに運用し続けるのと

これらの問題に立ち向かうのと

どちらの方が面白そうですか?

Page 13: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

12Copyright © KLab Inc. All rights reserved.

何事もチャレンジあるのみ!

問題が発生したら解決すればよいです

障害は復旧させればよいです

頭をひねって設計するのも楽しいです

運用を楽にする仕組みを作るのも楽しいです

考え方ひとつで考え方ひとつで「懸念」「懸念」はは「楽しみ」「楽しみ」に変わりますに変わります

DSASはこのような考えのもとに創られています

Page 14: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

13Copyright © KLab Inc. All rights reserved.

KLab技術者の発想

かたっぱしから冗長構成にしてみよう!

NICを冗長化してみよう!

L2SWを冗長化してみよう!

WEBサーバを冗長化してみよう!

インターネットインターネットインターネット

WEBWEBサーバサーバ

L2SWL2SW

WEBWEBサーバサーバ WEBWEBサーバサーバ

Page 15: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

14Copyright © KLab Inc. All rights reserved.

NICを冗長化してみよう

近のサーバは標準で二つ以上のLANポートを搭載し

ているものが大半を占めています

これを有効活用しない手はありません

LANケーブルが抜けても誰も困らないようにしたいです

片方のケーブルが刺さってさえいれば通信できる

どちらのケーブルが抜けても同じアドレスで通信できる

こんな動作が理想

Page 16: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

15Copyright © KLab Inc. All rights reserved.

NICを冗長化してみよう

各ポートに個別のアドレスを振ったらどうなるでしょう各ポートに個別のアドレスを振ったらどうなるでしょう

サーバ1サーバ1

eth0: 192.168.1.1eth0: 192.168.1.1eth1: 192.168.1.2eth1: 192.168.1.2

サーバサーバ22

eth0: 192.168.1.3eth0: 192.168.1.3eth1: 192.168.1.4eth1: 192.168.1.4

L2SWL2SW

サーバ1サーバ1

eth0: 192.168.1.1eth0: 192.168.1.1eth1: 192.168.1.2eth1: 192.168.1.2

サーバサーバ22

eth0: 192.168.1.3eth0: 192.168.1.3eth1: 192.168.1.4eth1: 192.168.1.4

L2SWL2SW

•• とりあえずとりあえずIPIPアドレスの管理が大変です(単純に数が倍)アドレスの管理が大変です(単純に数が倍)•• LANLANケーブルを抜くとそのケーブルを抜くとそのIPIPアドレスと通信できなくなりますアドレスと通信できなくなります•• これでは冗長構成とはいえませんこれでは冗長構成とはいえません

Page 17: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

16Copyright © KLab Inc. All rights reserved.

NICを冗長化してみよう

各ポートに同じアドレスを振ったらどうなるでしょう各ポートに同じアドレスを振ったらどうなるでしょう

サーバ1サーバ1

eth0: 192.168.1.1eth0: 192.168.1.1eth1: 192.168.1.1eth1: 192.168.1.1

サーバサーバ22

eth0: 192.168.1.2eth0: 192.168.1.2eth1: 192.168.1.2eth1: 192.168.1.2

L2SWL2SW

サーバ1サーバ1

eth0: 192.168.1.1eth0: 192.168.1.1eth1: 192.168.1.1eth1: 192.168.1.1

サーバサーバ22

eth0: 192.168.1.2eth0: 192.168.1.2eth1: 192.168.1.2eth1: 192.168.1.2

L2SWL2SW

•• どちらのポートで通信するかは経路テーブルに依存しますどちらのポートで通信するかは経路テーブルに依存します•• リンクダウンしても経路テーブルを書き換えてくれませんリンクダウンしても経路テーブルを書き換えてくれません

Page 18: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

17Copyright © KLab Inc. All rights reserved.

NICを冗長化してみよう

各ポートに同じアドレスを振ったらどうなるでしょう各ポートに同じアドレスを振ったらどうなるでしょう

サーバ1サーバ1

eth0: 192.168.1.1eth0: 192.168.1.1eth1: 192.168.1.1eth1: 192.168.1.1

サーバサーバ22eth0: 192.168.1.2eth0: 192.168.1.2eth1: 192.168.1.2eth1: 192.168.1.2

L2SWL2SW

サーバ1サーバ1

eth0: 192.168.1.1eth0: 192.168.1.1eth1: 192.168.1.1eth1: 192.168.1.1

サーバサーバ22eth0: 192.168.1.2eth0: 192.168.1.2eth1: 192.168.1.2eth1: 192.168.1.2

L2SWL2SW

サーバ1:# route -nKernel IP routing tableDestination Gateway Genmask Flags Metric Ref Use Iface192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth10.0.0.0 192.168.1.254 0.0.0.0 UG 0 0 0 eth0

※※ eth0eth0ののLANLANケーブルが抜けたら通信できなくなりますケーブルが抜けたら通信できなくなります

Page 19: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

18Copyright © KLab Inc. All rights reserved.

NICを冗長化してみよう

各ポートに同じアドレスを振ったらどうなるでしょう各ポートに同じアドレスを振ったらどうなるでしょう

サーバ1サーバ1

eth0: 192.168.1.1eth0: 192.168.1.1eth1: 192.168.1.1eth1: 192.168.1.1

サーバサーバ22

eth0: 192.168.1.2eth0: 192.168.1.2eth1: 192.168.1.2eth1: 192.168.1.2

L2SWL2SW

サーバ1サーバ1

eth0: 192.168.1.1eth0: 192.168.1.1eth1: 192.168.1.1eth1: 192.168.1.1

サーバサーバ22

eth0: 192.168.1.2eth0: 192.168.1.2eth1: 192.168.1.2eth1: 192.168.1.2

L2SWL2SW

•• どちらのポートで通信するかは経路テーブルに依存しますどちらのポートで通信するかは経路テーブルに依存します•• リンクダウンしても経路テーブルを書き換えてくれませんリンクダウンしても経路テーブルを書き換えてくれません

•• そもそもそもそも arparpテーブルの不整合で通信できなくなる事もありますテーブルの不整合で通信できなくなる事もあります•• これは冗長構成じゃないどころか、全くお話になりませんこれは冗長構成じゃないどころか、全くお話になりません

Page 20: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

19Copyright © KLab Inc. All rights reserved.

Bondingモジュールの紹介

Linuxには複数のNICを結合するBondingというモジュールがあります。

このモジュールは仮想的なネットワークデバイスを生成し、複数の物理デバイス(eth0とかeth1とか)を様々な方式で結合します。

balance-rractive-backup ← DSASではこれを使っています

balance-xorbroadcast802.3adbalance-tlbbalance-alb

※これらの詳細はカーネル付属文書の networking/bonding.txt を参照してください

Bondingの利点は、「実際に利用可能な物理デバイスを使って通信できる」という点です。Bondingモジュールは定期的に物理デバイスのリンクステータスを監視し、リンクダウンを検出すると、そのデバイスの利用を停止します。

Page 21: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

20Copyright © KLab Inc. All rights reserved.

NICを冗長化してみよう

BondingBondingモジュールを使ってみますモジュールを使ってみます

サーバ1サーバ1

eth0: Activeeth0: Activeeth1: eth1: bond0: 192.168.1.1bond0: 192.168.1.1

サーバサーバ22

eth0: Activeeth0: Activeeth1: eth1: bond0: 192.168.1.2bond0: 192.168.1.2

L2SWL2SW

サーバ1サーバ1 サーバサーバ22

L2SWL2SW

eth0: eth0: eth1: Activeeth1: Activebond0: 192.168.1.1bond0: 192.168.1.1

eth0: Activeeth0: Activeeth1: eth1: bond0: 192.168.1.2bond0: 192.168.1.2

•• eth0eth0ややeth1eth1にはにはIPIPアドレスを割り当てませんアドレスを割り当てません•• bond0bond0という仮想デバイスにという仮想デバイスにIPIPアドレスを割り当てますアドレスを割り当てます•• 実際の送受信は実際の送受信はeth0eth0もしくはもしくはeth1eth1を利用しますを利用します•• eth0eth0もしくはもしくはeth1eth1のどちらかが繋がってさえいればよいですのどちらかが繋がってさえいればよいです•• これはよさげですこれはよさげです

Page 22: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

21Copyright © KLab Inc. All rights reserved.

Bondingの使い方

BondingドライバはLinuxカーネルに含まれています

物理デバイスの割当には ifenslave コマンドを使います

使い方はこんなに簡単です!

/etc/modprobe.conf にモジュールオプションを記述

# modprobe bond0# ifenslave -f bond0 eth0 eth1ifconfig などで bond0 に IPアドレスを設定する

これで bond0 が使えるようになります

alias bond0 bondingoptions bond0 mode=active-backup primary=eth0 miimon=100

Page 23: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

22Copyright © KLab Inc. All rights reserved.

KLab技術者の発想

かたっぱしから冗長構成にしてみよう!

NICを冗長化してみよう!

L2SWを冗長化してみよう!

WEBサーバを冗長化してみよう!

インターネットインターネットインターネット

WEBWEBサーバサーバ

L2SWL2SW

WEBWEBサーバサーバ WEBWEBサーバサーバ

Page 24: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

23Copyright © KLab Inc. All rights reserved.

L2SWを冗長化してみよう

かたちあるものは必ず壊れます

ファームの更新などで再起動したい時だってあります

そんな時でもできるだけサービスを停止したくはありません

NICの冗長化ができたことだしL2SWも冗長構成にしてみましょう

Page 25: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

24Copyright © KLab Inc. All rights reserved.

L2SWを冗長化してみよう

この構成の問題点

サーバ2の青色の線を切ると他のサーバと通信できなくなります

L2SW-1とL2SW-2を接続すればこの問題は回避できます

サーバの台数が増えてポートが足りなくなったらどうしましょう

L2SWを増設することになりますが、その接続はどのようにしましょう

L2SWL2SW--22

サーバ1サーバ1 サーバ3サーバ3

L2SWL2SW--11

サーバ2サーバ2

青色は青色はbondingbondingののActiveActive緑色は緑色はbondingbondingののBackupBackup

Page 26: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

25Copyright © KLab Inc. All rights reserved.

L2SWを冗長化してみよう

この構成の問題点L2SW-1 がダウンするとサーバ1、2とサーバ3、4が通信できなくなります

そこで、L2SW-2とL2SW-3を接続し、 L2SW-1とL2SW-4も接続してみます

サーバ1サーバ1 サーバ2サーバ2

L2SWL2SW--44

L2SWL2SW--33

サーバサーバ33 サーバサーバ44

L2SWL2SW--11

L2SWL2SW--22

Page 27: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

26Copyright © KLab Inc. All rights reserved.

L2SWを冗長化してみよう

この構成の問題点線を繋いだ瞬間にブロードキャストストームが発生します

全く通信できなくなります

サーバ1サーバ1 サーバ2サーバ2

L2SWL2SW--44

L2SWL2SW--33

サーバサーバ33 サーバサーバ44

L2SWL2SW--11

L2SWL2SW--22

Page 28: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

27Copyright © KLab Inc. All rights reserved.

ブロードキャストストームとは

L2SW(ブリッジ)で冗長リンク(ループ)を形成し、ブロードキャス

トを送出すると、同じ経路を無限に転送され続けることになります

こうなると、一瞬でブロードキャストが帯域を使い果たしてしまい、通常の通信が全くできなくなってしまいます

この状態を「ブロードキャストストーム」と呼びます

L2SWL2SW

L2SWL2SW

サーバサーバ サーバサーバ

Page 29: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

28Copyright © KLab Inc. All rights reserved.

RSTP(IEEE802.1w)の紹介

RSTPはネットワークのループを検知して、ブロードキャストストームが発生しないように特定のポートをブロック(通信できないように)する仕組みです

機器がダウンしたりケーブルが外れたりしてネットワークトポロジに変更があると、ブロックを解除したり別なポートをブロックしたりすることで、常に正常な通信ができるように調整してくれます

RSTPの必須設定項目は「プライオリティ」だけです(超簡単!)

プライオリティの一番小さい機器が「ルートブリッジ」となります

L2SWL2SW(ルートブリッジ)(ルートブリッジ)

L2SWL2SW

サーバサーバ サーバサーバ冗長リンクを冗長リンクを

ブロックするブロックする

Page 30: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

29Copyright © KLab Inc. All rights reserved.

RSTP(IEEE802.1w)の紹介

RSTPの動作

ルートブリッジのポートはブロックしません

ルートブリッジと直接接続されているポートをフォワーディングにします

同じ機器に対して複数の線が接続されている場合は、片方をブロッキングにします

ルートブリッジと直接接続されていないセグメントでは

ルートブリッジに近いポートをフォワーディングにします

残ったポートをブロッキングにします

L2SWL2SW(ルートブリッジ)(ルートブリッジ)

L2SWL2SW L2SWL2SW

L2SWL2SW

サーバサーバサーバサーバ

Page 31: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

30Copyright © KLab Inc. All rights reserved.

L2SWを冗長化してみよう

全L2SWのRSTPを有効にします

ルートブリッジはL2SW-1とします

下図のポートがブロッキングされ、ブロードキャストストームは発生しません

どこかの線が切れるとどうなるか

瞬時にブロッキングポートがフォワーディング状態になります

どこかのL2SWがダウンするとどうなるか

瞬時にブロッキングポートがフォワーディング状態になります

サーバ1サーバ1 サーバ2サーバ2

L2SWL2SW--44

L2SWL2SW--33

サーバサーバ33 サーバサーバ44

L2SWL2SW--11(ルートブリッジ)(ルートブリッジ)

L2SWL2SW--22

Page 32: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

31Copyright © KLab Inc. All rights reserved.

L2SWを冗長化してみよう

全L2SWのRSTPを有効にします

ルートブリッジはL2SW-1とします

下図のポートがブロッキングされ、ブロードキャストストームは発生しません

どこかの線が切れるとどうなるか

瞬時にブロッキングポートがフォワーディング状態になります

どこかのL2SWがダウンするとどうなるか

瞬時にブロッキングポートがフォワーディング状態になります

サーバ1サーバ1 サーバ2サーバ2

L2SWL2SW--44

L2SWL2SW--33

サーバサーバ33 サーバサーバ44

L2SWL2SW--11(ルートブリッジ)(ルートブリッジ)

L2SWL2SW--22L2SWL2SW--22(ルートブリッジ)(ルートブリッジ)

Page 33: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

32Copyright © KLab Inc. All rights reserved.

KLab技術者の発想

かたっぱしから冗長構成にしてみよう!

NICを冗長化してみよう!

L2SWを冗長化してみよう!

WEBサーバを冗長化してみよう!

インターネットインターネットインターネット

WEBWEBサーバサーバ

L2SWL2SW

WEBWEBサーバサーバ WEBWEBサーバサーバ

Page 34: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

33Copyright © KLab Inc. All rights reserved.

WEBサーバを冗長化してみよう

WEBサーバの冗長化はロードバランサを導入するのが楽です

ロードバランサを導入すると

何台ものWEBサーバに負荷分散することができます

停止したWEBサーバは自動的に負荷分散から外せます

でも買うと結構高いっす・・・

検証用と称して買うのは厳しいです

開発環境への導入なんて夢ですかねえ

LVSでLinuxをロードバランサにできます!

Page 35: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

34Copyright © KLab Inc. All rights reserved.

LVSとは

LVS – Linux Virtual Server ProjectLinuxで、高性能かつ高可用性をもったサーバシ

ステムを作ろうというプロジェクト。

IPVS – IP Virtual ServerLVSプロジェクトの成果物のひとつ

LinuxをL4ロードバランサにできる

Page 36: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

35Copyright © KLab Inc. All rights reserved.

IPVSとは

Netfilterと連携して動く

kernel moduleカーネル空間で動くので速い

Page 37: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

36Copyright © KLab Inc. All rights reserved.

IPVSの設定

IPVSはipvsadmコマンドで制御できます

例えばwww.example.org:80宛てを192.168.31.101192.168.31.102192.168.31.103

に分散するには

これだけでできちゃいます

VIP

WEBサーバ

# ipvsadm -A -t www.example.org:80 -s lc

# ipvsadm -a -t www.example.org:80 -r 192.168.31.101 –m

# ipvsadm -a -t www.example.org:80 -r 192.168.31.102 -m

# ipvsadm -a -t www.example.org:80 -r 192.168.31.103 -m

Page 38: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

37Copyright © KLab Inc. All rights reserved.

IPVSによる負荷分散

WEBサーバ(1) WEBサーバ(2) WEBサーバ(3)

ロードバランサ

Page 39: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

38Copyright © KLab Inc. All rights reserved.

IPVSにはヘルスチェック機能がない

WEBサーバ(1) WEBサーバ(2) WEBサーバ(3)

ロードバランサ

コワレタ

落ちてるサーバにも分散しちゃう

Page 40: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

39Copyright © KLab Inc. All rights reserved.

keepalivedの機能 (CHECK)

IPVSと連携できるヘルスチェック機能

定期的にリアルサーバにヘルスチェックしますHTTP_GET (HTTPでアクセスしてみる)SSL_GET (HTTPSでアクセスしてみる)TCP_CHECK (TCPセッションを張ってみる)SMTP_CHECK (HELO って呼んでみる)MISC_CHECK (任意のコマンドを実行する)

期待した応答が得られなければ

IPVS的に分散から外すことができる

Page 41: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

40Copyright © KLab Inc. All rights reserved.

IPVSとkeepalivedの連携

リアルサーバ(1) リアルサーバ(2) リアルサーバ(3)

ロードバランサ

keepalived

コワレタ

Page 42: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

41Copyright © KLab Inc. All rights reserved.

KLab技術者の発想

かたっぱしから冗長構成にしてみよう!

NICを冗長化してみよう!

L2SWを冗長化してみよう!

WEBサーバを冗長化してみよう!

インターネットインターネットインターネット

WEBWEBサーバサーバ

L2SWL2SW

WEBWEBサーバサーバ WEBWEBサーバサーバ

Page 43: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

42Copyright © KLab Inc. All rights reserved.

そういえば、ロードバランサも冗長化しないといけませんね

Page 44: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

43Copyright © KLab Inc. All rights reserved.

keepalivedの機能 (VRRP)

VRRP - Virtual Router Redundancy Protocolルータ(ロードバランサ)の

二重化

フェイルオーバ

を実現するためのものです

マルチキャストで死活確認します

もう1台ロードバランサをいれるだけで冗長化できそうです

Page 45: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

44Copyright © KLab Inc. All rights reserved.

ロードバランサの二重化

リアルサーバ(1) リアルサーバ(2) リアルサーバ(3)

ロードバランサ

keepalived

ロードバランサ

keepalivedVRRP

Active

Page 46: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

45Copyright © KLab Inc. All rights reserved.

ロードバランサの二重化

リアルサーバ(1) リアルサーバ(2) リアルサーバ(3)

ロードバランサ

keepalived

ロードバランサ

keepalivedVRRP

Active

コワレタ

Page 47: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

46Copyright © KLab Inc. All rights reserved.

これで単一故障点のないシステムになりました(^^)/

Page 48: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

47Copyright © KLab Inc. All rights reserved.

ここまでの話をまとめると

Page 49: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

48Copyright © KLab Inc. All rights reserved.

こんな構成になりました!

インターネット回線は2本契約(Active/Backup)ロードバランサは冗長構成(VRRP)WEBサーバも冗長構成(IPVS)L2SWも冗長構成 (RSTP)NICも冗長構成(bonding)

インターネットインターネットインターネット LVSLVS

L2SWL2SW

L2SWL2SW

LVSLVS サーバサーバ サーバサーバ サーバサーバ サーバサーバ

L2SWL2SW

L2SWL2SW

Page 50: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

49Copyright © KLab Inc. All rights reserved.

めでたしめでたし

Page 51: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

50Copyright © KLab Inc. All rights reserved.

ところで・・・

Page 52: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

51Copyright © KLab Inc. All rights reserved.

ロードバランサを導入する場合

Page 53: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

52Copyright © KLab Inc. All rights reserved.

どんな構成にしますか?

Page 54: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

53Copyright © KLab Inc. All rights reserved.

ネットワーク境界にロードバランサを設置

上位ルータ(ISP)

GWルータ

ロードバランサ

Page 55: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

54Copyright © KLab Inc. All rights reserved.

故障時の対応が若干面倒

上位ルータ(ISP)

GWルータ

ロードバランサ

代替機を立ち上げるためには線を繋ぎ変えないといけません

Page 56: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

55Copyright © KLab Inc. All rights reserved.

なにが問題か

超重要なロードバランサが壊れたときに

現地に行って代替機の設置作業などが必要

LANケーブルの抜き間違いによる事故も誘発

しかねません → 全停止の危険性

なにはともあれ面倒かもです

精神衛生上あまりよろしくありません

Page 57: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

56Copyright © KLab Inc. All rights reserved.

DSASではこうしています

上位ルータ(ISP)

ロードバランサ

L2SWWEBサーバ

WEBサーバ

WEBサーバ

Page 58: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

57Copyright © KLab Inc. All rights reserved.

DSASではこうしています

上位ルータ(ISP)

L2SWロードバランサ

WEBサーバ

WEBサーバ

Page 59: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

58Copyright © KLab Inc. All rights reserved.

なにが嬉しいか

ロードバランサは Linux + IPVS + keepalived です

つまり、どのマシンでもロードバランサにできます

ケーブルを繋ぎかえる必要がないので

現地に行く必要がありません

短時間で復旧することができます

壊れたマシンは後でゆっくりどうにかすればいいです

Page 60: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

59Copyright © KLab Inc. All rights reserved.

この構成ステキすぎです!

Page 61: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

60Copyright © KLab Inc. All rights reserved.

と、思った方、手を挙げてください!

Page 62: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

61Copyright © KLab Inc. All rights reserved.

じつは・・・・・

Page 63: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

62Copyright © KLab Inc. All rights reserved.

これには大きな落とし穴があります!

Page 64: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

63Copyright © KLab Inc. All rights reserved.

ロードバランサの外側と内側でブロードキャストドメインが一緒なんです

Page 65: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

64Copyright © KLab Inc. All rights reserved.

なにが問題か

L2SWと上位ルータを繋ぐ線はインターネット接続用です

ランニングコストがかかっていて、帯域も限られています

それなのにこの構成では

全サーバからのARPリクエストが流れ出てしまいます

全サーバからのマルチキャストも流れ出てしまいます

帯域を無駄に消費してしまいます

逆に、上位ルータからのブロードキャストも内部に流れ込んでしまいます

もしかすると上位ルータから内部のサーバに直接アクセスできちゃうかもしれません

Page 66: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

65Copyright © KLab Inc. All rights reserved.

これどうしましょう

Page 67: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

66Copyright © KLab Inc. All rights reserved.

やっぱVLAN切るのがベターすかね

Page 68: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

67Copyright © KLab Inc. All rights reserved.

VLANとは

L2SWでブロードキャストドメインを分割する仕組みです

以下のようにVLANを切ると、VLAN1に接続された機器とVLAN2に接続された機器同士は直接通信できなくなります。

L2SWL2SW

VLAN1VLAN1 VLAN2VLAN2

WEBWEBサーバサーバ WEBWEBサーバサーバ WEBWEBサーバサーバ 上位ルータ上位ルータ

Page 69: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

68Copyright © KLab Inc. All rights reserved.

ロードバランサはどこに繋ごう

VLANを切る事でブロードキャストドメインを分ける事ができました

では、ロードバランサはどちらのVLANに繋げばよいのでしょうか

VLAN1に繋ぐと上位ルータと通信ができなくなります

VLAN2に繋ぐとWEBサーバと通信ができなくなります

L2SWL2SW

VLAN1VLAN1 VLAN2VLAN2

WEBWEBサーバサーバ WEBWEBサーバサーバ WEBWEBサーバサーバ 上位ルータ上位ルータロードバランサロードバランサ

上位ルータと上位ルータと通信できない!!通信できない!!

WEBWEBサーバとサーバと

通信できない!!通信できない!!

Page 70: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

69Copyright © KLab Inc. All rights reserved.

ロードバランサはどこに繋ごう

ロードバランサは両方のVLANと通信できる必要があります

ロードバランサ用のポートはVLAN1とVLAN2に割り当てなければいけません

そのためには、ロードバランサが送出するパケットがどちらのVLANに向けたものなのかを識別できる仕組みが必要です

L2SWL2SW

VLAN1VLAN1 VLAN2VLAN2

WEBWEBサーバサーバ WEBWEBサーバサーバ WEBWEBサーバサーバ 上位ルータ上位ルータロードバランサロードバランサ

??

Page 71: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

70Copyright © KLab Inc. All rights reserved.

こんな時にはタグVLAN(IEEE802.1Q)

タグVLANとは、パケットのイーサフレームに2オクテットのデータフィールドを追加して、そこにVIDを格納する仕組みです

これを使うと1つのポートを複数のVLANに割り当てることができるようになります

しかし、パケットのヘッダ長が変わってしまうので、タグVLANに対応した機器同士でなければ通信することができません

L2SWL2SW

VLAN1VLAN1 VLAN2VLAN2

WEBWEBサーバサーバ WEBWEBサーバサーバ WEBWEBサーバサーバ 上位ルータ上位ルータロードバランサロードバランサ

1,21,2タグを付けなければタグを付けなければ

WEBWEBサーバ方面に流れるサーバ方面に流れる

VLAN1VLAN1ととVLAN2VLAN2の両方を割り当てるの両方を割り当てるVLAN1VLAN1はタグなしと設定するはタグなしと設定するVLAN2VLAN2はタグ付きと設定するはタグ付きと設定する

VID=2VID=2のタグを付けるとのタグを付けると

上位ルータ方面に流れる上位ルータ方面に流れる

Page 72: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

71Copyright © KLab Inc. All rights reserved.

こんな時にはタグVLAN(IEEE802.1Q)

タグVLANとは、パケットのイーサフレームに2オクテットのデータフィールドを追加して、そこにVIDを格納する仕組みです

これを使うと1つのポートを複数のVLANに割り当てることができるようになります

しかし、パケットのヘッダ長が変わってしまうので、タグVLANに対応した機器同士でなければ通信することができません

L2SWL2SW

VLAN1VLAN1 VLAN2VLAN2

WEBWEBサーバサーバ WEBWEBサーバサーバ WEBWEBサーバサーバ 上位ルータ上位ルータロードバランサロードバランサ

1,21,2

WEBWEBサーバ方面からのパケットサーバ方面からのパケット

にはタグはついてこないにはタグはついてこない

VLAN1VLAN1ととVLAN2VLAN2の両方を割り当てるの両方を割り当てるVLAN1VLAN1はタグなしと設定するはタグなしと設定するVLAN2VLAN2はタグ付きと設定するはタグ付きと設定する

上位ルータ方面からのパケット上位ルータ方面からのパケットにはにはVID=2VID=2のタグがついてくるのタグがついてくる

Page 73: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

72Copyright © KLab Inc. All rights reserved.

LinuxでもタグVLANが使えます

LinuxのタグVLAN機能

vconfigコマンドで bond0.2 というデバイスを作成します

bond0.2には上位ルータと通信するためのアドレスを割り当てます

bond0にはWEBサーバと通信するためのアドレスを割り当てます

上位ルータに向かうパケットにはVLANタグがつきます

上位ルータから到達するパケットにもVLANタグがついてきます

WEBサーバに向かうパケットにはVLANタグはつきません

WEBサーバから到達するパケットにもVLANタグはついてきません

# vconfig add bond0 2

# ifconfig bond0.2 上位ルータと通信するためのグローバルアドレ

# ifconfig bond0 WEBサーバと通信するためのプライベートアド

レス

Page 74: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

73Copyright © KLab Inc. All rights reserved.

タグVLANでセグメント分割

上位ルータ(ISP)

ロードバランサ

L2SW

VLANvid=2

WEBサーバ

WEBサーバ

WEBサーバ

vid=2にタグを付ける

Page 75: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

74Copyright © KLab Inc. All rights reserved.

故障時の対応

上位ルータ(ISP)

ロードバランサ

L2SW

VLANvid=2

WEBサーバ

WEBサーバ

vid=2にタグを付ける

Page 76: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

75Copyright © KLab Inc. All rights reserved.

LVSのマシンを交換するときは

L2SWのタグVLANの設定を変更

暇そうなWEBサーバをロードバランサにする

作業は全てリモートから

作業時間を短縮できる

事故防止にもつながる

Page 77: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

76Copyright © KLab Inc. All rights reserved.

これでロードバランサが故障しても簡単に復旧できるようになりました

Page 78: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

77Copyright © KLab Inc. All rights reserved.

めでたしめでたし

Page 79: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

78Copyright © KLab Inc. All rights reserved.

そういえば・・・・

Page 80: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

79Copyright © KLab Inc. All rights reserved.

DSASのコンセプトってなんでしたっけ?

Page 81: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

80Copyright © KLab Inc. All rights reserved.

DSASのコンセプト

システム管理者にも十分な睡眠を!

Page 82: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

81Copyright © KLab Inc. All rights reserved.

でしたね・・・

Page 83: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

82Copyright © KLab Inc. All rights reserved.

余談ですが

Page 84: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

83Copyright © KLab Inc. All rights reserved.

以前、ある勉強会にて

Page 85: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

84Copyright © KLab Inc. All rights reserved.

「MySQLのマスタはSPOFじゃないんですか?」

Page 86: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

85Copyright © KLab Inc. All rights reserved.

と、某???社のかっこいいおにいさんにスルドイ突っ込みを頂いた事があります

Page 87: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

86Copyright © KLab Inc. All rights reserved.

そのときは、

「自動だろうと手動でやろうと、フェイルオーバには違いないので、

SPOFではありません」

なんて・・・・・

Page 88: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

87Copyright © KLab Inc. All rights reserved.

強気な態度に出てしまいました(__)m

Page 89: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

88Copyright © KLab Inc. All rights reserved.

しかし今回は・・・

Page 90: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

89Copyright © KLab Inc. All rights reserved.

「MySQLのマスタがこけると夜中でも起こされるんじゃないですか?」

Page 91: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

90Copyright © KLab Inc. All rights reserved.

と言われると・・・

Page 92: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

91Copyright © KLab Inc. All rights reserved.

返す言葉もございません m(__)m

Page 93: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

92Copyright © KLab Inc. All rights reserved.

ということで、この質問は自粛していただきますよう、

よろしくお願いいたします。

Page 94: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

93Copyright © KLab Inc. All rights reserved.

DSASの構成

Page 95: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

94Copyright © KLab Inc. All rights reserved.

DSASの構成要素フロントエンドサービス向けサーバ群フロントエンドサービス向けサーバ群

バックエンドサービス向けサーバ群バックエンドサービス向けサーバ群LVSLVS(Active)(Active)

LVSLVS(Backup)(Backup)

マスタサーバマスタサーバ(Primary)(Primary) WEBWEBサーバサーバ WEBWEBサーバサーバマスタサーバマスタサーバ

(Secondary)(Secondary) WEBWEBサーバサーバ

WEBWEBサーバサーバWEBWEBサーバサーバWEBWEBサーバサーバ WEBWEBサーバサーバ WEBWEBサーバサーバ

DBサーバDBサーバ(Master)(Master)

DBサーバDBサーバ(Slave)(Slave)

TSTS(Active)(Active)

DBサーバDBサーバ(Slave)(Slave)

TSTS(Backup)(Backup)

LLSLLS(Active)(Active)

LLSLLS(Backup)(Backup)

PS/WSPS/WS(Active)(Active)

PS/WSPS/WS(Backup)(Backup)

ログサーバログサーバ(Active)(Active)

ログサーバログサーバ(Backup)(Backup)

BKBK

Page 96: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

95Copyright © KLab Inc. All rights reserved.

どのサーバもディスクの中身が同じ

サービス コンテンツApache,Tomcat,qmail... A,B,C,D

●●●●●●●

サービス コンテンツApache,Tomcat,qmail... A,B,C,D

すべてのハードディスクの内容が同じ

サービス コンテンツApache,Tomcat,qmail... A,B,C,D

どのサーバも全てのコンテンツ、全てのサービスを提供可能

●●●●●●●●●●● 割当を変えるだけで

各サーバの役割が早変わり

Page 97: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

96Copyright © KLab Inc. All rights reserved.

アクセス増減に柔軟な対応が可能

ディスクの中身が同じなので、サーバ割り当てを操作するだけで増強完了

CMやメルマガなどの急なアクセス増加にも即時に対応可能

アクセスが少ないコンテンツはサーバの相乗りも可能

コンテンツ A,Bコンテンツ A,B

コンテンツ A,B,Cコンテンツ A,B,C

コンテンツ A,B,Dコンテンツ A,B,D

コンテンツAの負荷増大 コンテンツ A,C,Dコンテンツ C,D

コンテンツ A

コンテンツ A

Page 98: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

97Copyright © KLab Inc. All rights reserved.

故障機の復旧やサーバの増設が容易

ディスクをコピーするだけでサーバ増設が完了

サーバが故障した場合も迅速な復旧が可能

PCサーバを利用しているのでパーツの手配も容易

サーバ増設 ディスクコピー

Page 99: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

98Copyright © KLab Inc. All rights reserved.

DSASの構成要素フロントエンドサービス向けサーバ群フロントエンドサービス向けサーバ群

バックエンドサービス向けサーバ群バックエンドサービス向けサーバ群LVSLVS(Active)(Active)

LVSLVS(Backup)(Backup)

マスタサーバマスタサーバ(Primary)(Primary) WEBWEBサーバサーバ WEBWEBサーバサーバマスタサーバマスタサーバ

(Secondary)(Secondary) WEBWEBサーバサーバ

WEBWEBサーバサーバWEBWEBサーバサーバWEBWEBサーバサーバ WEBWEBサーバサーバ WEBWEBサーバサーバ

DBサーバDBサーバ(Master)(Master)

DBサーバDBサーバ(Slave)(Slave)

TSTS(Active)(Active)

DBサーバDBサーバ(Slave)(Slave)

TSTS(Backup)(Backup)

LLSLLS(Active)(Active)

LLSLLS(Backup)(Backup)

PS/WSPS/WS(Active)(Active)

PS/WSPS/WS(Backup)(Backup)

ログサーバログサーバ(Active)(Active)

ログサーバログサーバ(Backup)(Backup)

BKBK

Page 100: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

99Copyright © KLab Inc. All rights reserved.

フロントエンドサービス向けサーバ群

マスタサーバ

その名の通り、全サーバのマスタとなるサーバです

サイトを更新する場合は、まずマスタサーバにファイルを転送した後、専用のスクリプトを使って全サーバに展開します

Apacheなどをバージョンアップするときも、マスタサーバで実

施してから全サーバに展開します

万一、マスタサーバが壊れても、WEBサーバをマスタサーバ

にすることができます

また、なぜかdhcpやtftpサーバだったりもします

ネットブートするマシンはここからファイルを取得します

Page 101: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

100Copyright © KLab Inc. All rights reserved.

フロントエンドサービス向けサーバ群

WEBサーバエンドユーザ向けのサービスを提供するサーバです

ロードバランサはWEBサーバに対して負荷分散します

全サーバがどのサービスでも提供する事ができますが、

割り当てられたサービスだけを提供しています

「サービスの割り当て」なんて面倒な事をせずに、

「全サーバで全サービスを提供して、全サーバに負荷分散」

でいいんじゃないの?って話もありますが・・・・・ほとんどのサービスでTomcatをつかっています

サービス毎にクラスローダが動きます

全サービスを読み込ませるとメモリがいくらあっても足りません

必要なサービスだけをロードできる仕組みにしています

Page 102: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

101Copyright © KLab Inc. All rights reserved.

サーバ個別の設定はどうするの?

ディスクの中身がみんな同じって言ったって

ホスト名がみんな同じだと訳わからなくなりますね

IPアドレスもみんな同じだと困った事になりますね

すべてのサーバが同じ機種とも限らないですよね

マシン毎の設定ファイルはどうしても必要

いろんなファイルに設定が分散されてるのはいや!

/etc/hostname とか /etc/network/* とかいろいろ

Page 103: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

102Copyright © KLab Inc. All rights reserved.

/etc/dsas.confの登場

マシンの固有情報はすべてここに集約

ホスト名

IPアドレス

ロードするカーネルモジュール

マウントするブロックデバイス

とかとか・・・・

Page 104: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

103Copyright © KLab Inc. All rights reserved.

/etc/dsas.confの内容

��

#----- BaseConfigration -----

SYSTEMNAME=w101

#----- NetworkSetting -----

IPADDRESS0=192.168.1.1/22

GATEWAY[0]=192.168.1.254

#----- HardWare Setting -----

HWTYPE=S6014HT

MODULES=("bond0 arp_ip_target=$LVSADDRESS,$LLSADDRESS")

BTDEVICE=/dev/sda1

SWDEVICE=/dev/sda2

DBDEVICE=

FSDEVICE=

Page 105: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

104Copyright © KLab Inc. All rights reserved.

/etc/dsas.confの利用

KLabオリジナルの起動スクリプトがいろいろ入ってます

/etc/dsas.confを参照して

ホスト名を設定したり

IPアドレスを設定したり

モジュルをロードしたり

ブロックデバイスをマウントしたり

その他もろもろやってます

Page 106: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

105Copyright © KLab Inc. All rights reserved.

DSASの構成要素フロントエンドサービス向けサーバ群フロントエンドサービス向けサーバ群

バックエンドサービス向けサーバ群バックエンドサービス向けサーバ群LVSLVS(Active)(Active)

LVSLVS(Backup)(Backup)

マスタサーバマスタサーバ(Primary)(Primary) WEBWEBサーバサーバ WEBWEBサーバサーバマスタサーバマスタサーバ

(Secondary)(Secondary) WEBWEBサーバサーバ

WEBWEBサーバサーバWEBWEBサーバサーバWEBWEBサーバサーバ WEBWEBサーバサーバ WEBWEBサーバサーバ

DBサーバDBサーバ(Master)(Master)

DBサーバDBサーバ(Slave)(Slave)

TSTS(Active)(Active)

DBサーバDBサーバ(Slave)(Slave)

TSTS(Backup)(Backup)

LLSLLS(Active)(Active)

LLSLLS(Backup)(Backup)

PS/WSPS/WS(Active)(Active)

PS/WSPS/WS(Backup)(Backup)

ログサーバログサーバ(Active)(Active)

ログサーバログサーバ(Backup)(Backup)

BKBK

Page 107: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

106Copyright © KLab Inc. All rights reserved.

残念ながら時間がきてしまいました

Page 108: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

107Copyright © KLab Inc. All rights reserved.

まあ、なんだかんだいっても

Page 109: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

108Copyright © KLab Inc. All rights reserved.

DSASで利用している機能の大半は

ずっとずっと昔から世にある仕組みだったり

誰かが知恵を絞って作り上げた仕様だったり

世界中の方々が手間と時間をかけて作ってくださったものだったりするわけで・・・・・

Page 110: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

109Copyright © KLab Inc. All rights reserved.

OSSベースでシステムを組むためには

いっぱいある実装の中から必要なものを選択できること

足りない部分は自分で工夫してどうにかできること

問題が起きても人のせいにしないこと

これらが肝になりますよね、、、

「知恵」と「勇気」と「優しさ」が必要ですよね(><)

Page 111: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

110Copyright © KLab Inc. All rights reserved.

ということで

Page 112: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

111Copyright © KLab Inc. All rights reserved.

世界中のオープンソーステクノロジー世界中のオープンソーステクノロジーに貢献されている方々に感謝!に貢献されている方々に感謝!

Page 113: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

112Copyright © KLab Inc. All rights reserved.

本日、参加してくださった皆様に感謝!本日、参加してくださった皆様に感謝!

Page 114: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

113Copyright © KLab Inc. All rights reserved.

今日はここまでにしたいとおもいます

Page 115: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

114Copyright © KLab Inc. All rights reserved.

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

Page 116: DSASのあれこれ - KLab株式会社(KLab Inc.)log.blog.klab.org/support/20070323/dsas-arekore.pdf2007/03/23  · zいろいろやったりあれこれ した成果の集大成 z特徴

115Copyright © KLab Inc. All rights reserved.

では質疑応答タイムにしたいと思います