サバフェスでやったこと

サバフェスでやったことをまとめておきたいと思います。
時系列順でやったこと書いて、最後に使ったツールとか記述しておきます。
#=> と思ったんですけど、なんかびみょーに長かったので分けます。次の日記に。

初日

IDCFさんのIaaSから仮想マシンの立ち上げと、配布されたpdf通りにサーバを構築。
なので、Apache + MySQLのみ。
この日はこれで終わり。

2日目

ベンチマークが来るまで放置。
ベンチマーク来たのは確か19時くらい?
access_logとか見て「GETきてPOSTくるのね」ってところでこの日は終わり。

3日目

とりあえずapache辞めました。
nginx+php-fpm+MySQL
この時はphpアクセラレータとかやってません。
っていうか知りませんでした。

ロードバランサ(以下LB)っていう単語くらいはさすがに知ってたので、その辺やってみよう、ってことで設定開始。
ipvsadmをインストール。
[bash]
$ yum install ipvsadm
[/bash]
NIC2つ使うっていう記事が最初はよく目についたような…。
ということで、「サーバにNIC追加できないかな〜」とか思いsvfes運営に確認。
しかし追加はできないということでした。

なので、NIC1つでどうにかできないかな〜、ってとこでこの日は終わり。

4日目

LBのDSRやろう!
ってことで意気揚々とやっていたわけですが、宛先IPが違うパケットをどうしたらいいのか分からない!
ってことでぐぐってみると「ループバックアドレスに仮想IPとして宛先IPを追加する」みたいな記事が。
[bash]
# LB側
$ ipvsadm -A -t 10.2.1.185:80 -s rr
$ ipvsadm -a -t 10.2.1.185:80 -r 10.2.2.94:80 -g
$ service ipvsadm save

# リアルサーバ側
$ vim /etc/sysconfig/network-scripts/ifcfg-lo:0
DEVICE=lo:0
IPADDR=10.2.1.185
NETMASK=255.255.255.255
ONBOOT=yes
$ vim /etc/sysctl.conf
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
[/bash]
とかやってました。
ちょっとのうちはこれで上手くいってたわけなんですけど、途中から負荷分散されてない。
tcpdumpとか見てみると、LBにポートフォワーディングされるべきhttpのパケットがLBのことをシカトしてリアルサーバに飛んでる…。
sysctlに書いた内容ではダメなのかな〜、ってところでNAT構成にして終わりました。

NAT構成では上記の内容は消して、以下を追記。
[bash]
# リアルサーバ
$ vim /etc/sysconfig/network-scripts/ifcfg-eth0
GATEWAY=10.2.1.185
[/bash]
そしてnetwork restart。
routeで追加したらrestartは要らないかな。

nginxの方はphpアクセラレータとproxy cacheを設定したと思います。
アクセラレータはAPC使いました。ググって一番最初に出てきたため。

これは上手くいくのでこの日はここで終わり。
これで結構早くなりました。

一旦ここで締めます。