Home

リベレーション・スペース

LVSとセッション2

前回の続き。
LVSにおけるセッション維持を調べているうちにGFSのパーミッションについて気になった。

結論としては、アクセスの可否はNFSと同様にuidやgidなどの値が同じかどうかを見ているだけぽい。
例えば、あるサーバのapacheの実行ユーザapache(uid=48)が共有ファイルシステム上にファイルを作る。
このファイルのパーミッションがapacheユーザ(uid=48)がアクセスできるものである場合、
別のサーバのuid=48のユーザもそれにアクセスできる。たぶん。

ファイルシステム上にセッションファイルを置く場合、
apacheの実行ユーザがセッションファイルを参照できるようにする必要があると思うのだけど、
これって上手くやれば他人のセッションファイルを覗いたりできないのかなぁ。
ちょっとこの辺も調べたい。

まあでもセッション情報の保存にファイルシステムを利用するってのは向いてないっぽい。
ファイルシステムにもよるけど、ファイル数が増えると著しく検索性能が低下してしまうらしいし。
普通はデータベース使うわなぁ。

ベトナムコーヒー

  • 2008-08-08 (Fri)
  • SE
コーヒーと紅茶大好きです。
コーヒーは基本的にブラックで飲みます。
でもカフェオレとかも好きです。

先日ファミレスに行った時メニューにベトナムコーヒーなるものがあって、
どんなもんだろと飲んでみたのだけど、美味しくて気に入ってしまった。
自宅でも飲んでみたいなと思ったので、淹れるのに必要なものを購入してみた。


vietnam coffee1
必要なのは豆とフィルタと練乳。
ベトナムコーヒーの豆は深煎りしたものなので、結構苦いです。
全部で2200円ぐらい。送料+手数料込みで3000円ぐらい。


vietnam coffee2
抽出中・・・。
ちなみに底の白いのは練乳です。


vietnam coffee3
できた!


初はホットとアイスどちらで飲もうか悩んだけど、
今回購入した豆はアイスだとよりおいしくいただけるとのこと&暑かったので、アイスで。

コーヒー自体は結構苦め。
最初苦味が口に広がって、その後練乳の甘さが広がる感じ。
まろやか。おいしかった。
次回からは豆と練乳の量を少し調整して自分に最適な量を探ってみたい。
他の豆のも飲んでみたいな。

このページによると深煎りのコーヒーはリラックス効果が他のものに比べて強いみたい。
まったりする際のお供に最適かも。

LVSでのセッション維持

ちょい前に調査したことを復習がてらまとめ。
内容に間違いがあるかもしれないので、あまり信頼しすぎないように。
もし間違いがあればツッコミいただけると助かります。


LVSを利用する際、セッション維持をどうするか。

その前にちょっとセッションについて。
セッションについては、こちらがとてもわかりやすく解説してくれていました。
コレ見ればこのエントリの大部分は見ないでも良いです(ぉ

基本的にHTTPは"状態"というものを持たない。
だから、認証ページとかで認証して次のページに遷移した後、
認証したという事実は保持されない。
それゆえ、再び認証が必要なページに訪れると再度認証する必要がある。
これを防ぐために、クライアントが既に認証したという事実を何らかの方法でわかるようにし、
一度認証した後に認証が必要なページにアクセスした際、
その情報を参照し認証を省けるようにする。
上記のように、HTTPにおいて状態を保持するためのしくみがセッション。

基本的にはセッション維持には次のような方式がある。ほとんどこちらに書いてある。
  1. ソースIPアドレスを利用したもの
  2. SSL sessionIDを利用したもの
  3. クッキーを利用したもの
  4. URLによるセッションID渡し
基本的にセッション維持のためには、何らかの情報をサーバサイドが保持する。
ソースIPアドレス方式ならクライアントのIPアドレス、
SSL sessionID方式ならSSL sessionID、クッキー方式とURL方式ならセッションIDなど。

ちょっと1は毛色が違うかな。
ロードバランサの場合は情報を保持するのがロードバランサになるし。
ちなみに、ソースIPアドレス方式は、プロキシに対応できないという問題があります。
SSL sessionID方式もブラウザによってはセッション中にセッションの再手続きをして、
SSL sessionIDが変わってしまうためセッションが維持できないことがあるという問題があったり。
メジャーなのは3かな?ただ3はクライアントがクッキーを有効にしているという前提なので、
クッキーが無効だとダメ。4はクッキー無効でも一応セッション維持できるが、
気をつけないと脆弱性がある。が、それを言うとクッキーも脆弱性がある。
というかセッション自体が気をつけないと脆弱性がある。
まあ今回は実験的なものなので、その辺は路線から外れるから無視。

ロードバランサを導入したシステムにおいて、
サーバサイドにセッションに関する情報を残す場合、
ロードバランサが情報を保持するようなセッションならば問題ないのだが、
Webサーバが情報を保持するようなセッションはマズい。
あるリクエストをあるクラスタノードが処理し、認証などを行いセッションを生成する。
次にクライアントがリクエストを送信した時、
最初にリクエストを処理したクラスタノードと別のクラスタノードにリクエストが割り振られてしまうと、
今回リクエストが割り振られたクラスタノードは認証したという事実がわからない。

上記のような理由から、
ロードバランサを導入したシステム上では、
Webサーバにセッション情報を保持するようなセッションを利用する際に、
何らかの対策をとる必要がある。
ちなみに、ロードバランサによるセッション維持は、LVSではソースIPアドレスによるものだけぽい。
UltraMonkey-L7プロジェクトみたいに、
LVSを拡張してレイヤ7セッション維持に対応したものもあるみたいですが、
こちらは詳細を見てないのでわかりません。
機器としてのロードバランサは高いだけあって、
セッション維持に関してはLVSよりも選択肢が用意されているハズ。

LVSでセッションを維持するためには、
何らかの手法を用いてセッション情報をクラスタノード間で共有する必要がある。
それはデータベースであったり、共有ファイルシステムであったり。
そこで、僕の卒論はLVS+GFSな環境、GFSは共有ファイルシステムなので、
セッション維持が簡単にできるのではないか?ということで調査してた。
本筋とはちょっとずれてるんだけど。

とりあえず現状見た感じではできる。
phpのセッションは、
セッションを生成した際にセッションIDをサーバに保存するのだが、
この保存先のパスは指定できる。
だから、GFSの共有領域にそのセッションIDを保存するようにする。
ちなみに、GFS上のセッションIDの保存先のパーミッションは、
apacheがアクセスできるようにしないといけない。
セッションIDを参照する時には、全てのクラスタノードが同じ領域を参照するため、
どのクラスタノードがセッションIDを生成しても、全てのクラスタノードがそれを参照できる。
このメソッドなら、どのクラスタノードにリクエストが割り振られても、問題なくセッションを維持できた。
突き詰めていくと穴があるかもしれないけど。

(書いてて思ったけど、GFSのパーミッション管理ってどうなっているのだろう?
LDAPなどで統合したユーザ情報を参照しているならわかるけど、そうじゃない場合。
実験ではセッションIDへ問題なくアクセスできたけど、
他のサーバが問題なくアクセスできるってことは、
パーミッション的にセキュリティがやばい気がする。
そういったユーザ情報を統合したものがない場合、
セキュリティ的にもこのメソッドはちょっとマズい気がしてきた。
ちょっとパーミッション周りもいい機会だし調べてみようかな?)

ちなみになんとなく調査をしているうちに、
データベースとファイルシステムの向き・不向きが気になってきた。
気が向いたらまた調べたい。

スカイ・クロラ

  • 2008-08-05 (Tue)
  • SE
映画スカイ・クロラ観てきました。
就活時の希望にしていただけに公開が待ち遠しかったです。

原作は読んだことがあるのでストーリーはある程度把握。
映画はストーリーの大筋は原作と同じ感じだけど、ちょっと変更部分あり。
観た感想としては、映像と音楽がとても綺麗だと感じた。
原作に漂うはかなくて綺麗な雰囲気をとても上手く再現していたと思う。
空のシーンも臨場感溢れていて、すごいゾクゾクした。
台詞も感慨深いものがあって、観た後思わずメモってしまったり。

押井監督曰く
「ニートやフリーター、渋谷のセンター街で座り込む少女たち。親を殺した少年。彼らを大人の目線で見下し、まるで病名のような名前を与えても、何の本質にも至りません。今こそ、彼らの心の奥底から聞こえる声に耳を澄まし、何かを言ってあげるべきだと思うのです」
とのことで、その"言ってあげるメッセージ"がこの作品には込められている。
ちゃんとそのメッセージは自分なりの解釈で得られたと思う。
上で書いたメモった言葉はそれを表現してる大きな一部。

個人的にはすごく満足したのだけど、
その一方でいきなり映画からはいると訳わからんまま終わりそうと思った。
原作スカイ・クロラは世界観が少し特殊で、大きな謎を持ちつつ話が進んでいく。
映画ももちろんそんな感じで、謎が多いまま進んでいく。
映画だけでも理解や推測に問題ない程度に情報は散りばめられているけど、
前知識があんまりない状態で一回観ただけじゃついていけなそ。
原作も最初読んだ時結構「?」って感じがしたし。
これは後の作品を読んでいったおかげで徐々に解らない部分が解るようになっていったけど。

まあでも、本当に映像と音楽は綺麗。
キャラデザは最初変だなーとか思ったけど、いざ観てみると大して気にならなかった。
むしろ結構好きになった。
原作が好きだったり、この映画に強い興味を持ってる人にはオススメかな。
内容を全く知らない人を誘っていきなり観にいくような映画ではないと思いますw

php

  • 2008-07-31 (Thu)
  • SE
ちょっと卒論関係でphpを触ってみる。
基本的な記述ルールをざっと見たところわかりやすい言語と感じた。
JavaとPerlを知っていればかなり早くに理解できそうかな。
Javaだけでもすぐ理解できると思うが。

今調べてるものがセッション関係のため、
お手軽にセッションを利用できるphpを使ってみたのだが、
セッション関係を調べていくうちに結構Web開発に関する知識が拾えて面白い。
セッションとクッキーの関係とか。
Web開発は全然経験がないため、この辺の知識に触れるととても新鮮な感じ。
phpはWeb開発に特化しているだけあって、htmlを知っていれば色々なものを書けそう。
MySQLも知ってれば簡単なショッピングサイト構築もできるし。
まあ、商用の場合はセキュリティ方面の知識がまた必要になってくるけど。

うーん、しかし一回しっかりとhtml書きたいな。
コピペとリファレンスを駆使して書こうと思えば書けるのだけど、
やはりスラスラと書けるようになりたい。
今回phpに触って尚更htmlをやりたくなってしまった。

Home

Page Top