More info...

2008-05-30

お父さんのお小遣いでクラスタリング

オトコもサーバーもダウンタイムは許されない。

サーバーにおいて手軽にダウンタイムを低減するための仕組みと言えばクラスタリングである。しかしながらクラスタリングはかつて、それなりに高価なソリューションであった。なぜならば、以下のような理由があるからだ。
  • メインフレームの置き換えとして利用するパターンが多いので客層がいい。(お金をたくさん持っている。)
  • 共有ストレージ(主にSCSIやファイバーチャネルのRAIDアレイ装置)が必要である。
  • 市販のクラスタリングソフトはライセンス料が高い。
しかし月日はながれ、最近はこういった事情は変わりつつある。事情を変えたのはズバリ、フリーオープンソースソフトウェア(FOSS)によるクラスタリングソフトであるHeartbeat、および共有ディスクを必要としない共有ストレージソリューションであるDRBDだ。今日はDRBDについて少し語ってみたいと思う。いつもの調子で。

2008-05-28

勝手に図解するmemcached

先日、Brian Akerとミクシィの前坂氏によるmemcachedのセミナーがあった。

実践で使用する上での話や開発最前線の話が聴けたため、セミナーは非常に盛況であった。筆者にとっても非常に勉強になる内容だった。セミナーの資料はBrian Aker氏のサイトから入手できるのでセミナーに参加出来なかったひとはこの資料を読んで自習して頂きたい。

が、いかんせん氏のスライドはパッと見ただけではなんとなく分かりづらいように俺は思う。なぜだろうか?それはきっと図がないからだ・・・と勝手に想像する。オトコたるもの、時には勝手な憶測で突き進むのもアリだ。ちなみにBrianのスライドはほとんど要点の箇条書きになっている。これでは解説がないと、特に新規にmemcachedやMySQLを学習している人たちには分かりづらいだろう。

というわけで氏に代わり、memcachedがどのように既存の仕組みを置き換えるかについて絵を描いてみたので以下に紹介する。(余談だがMySQL ClusterのStewert Smith氏はパラパラ漫画のようなスライドを描く。Brian氏のプレゼントはまったく毛色が違う。ギークという人種は本当に個性豊かだ。)

2008-05-22

memcachedの驚愕の事実。

MixiFacebook、Wikipediaなど、大規模なサイトでmemcachedを利用する例が増えている。マイコミジャーナルのレポートでFacebookの事例紹介があるのだが、なんとmemcached用のサーバは805台で、メモリ容量は15TBにもなるそうだ。ディスクではなくメモリだけで15TB!である。アクティブユーザーの数は7000万人もいるそうだから、それを捌くとなるとハードウェアも凄い規模にならざるを得ないのである。

このように大規模サイトを支えるmemcachedであるが、そのプログラムの中身は一体いかなるものなのであろうか。memcachedはhttp://www.danga.com/memcachedでソースコードが配布されている。現時点での最新版は1.2.5である。ぜひダウンロードしてみてほしい。そしておもむろにファイルサイズを確認してみてほしい。するとあることに気づくだろう。

2008-05-17

ひとことTips/DTrace

DTraceで何かをトレースするときはProbe名を限定してヒットするProbeを減らすべし!述語(predicates)による条件判定のみで解決しようとしてはいけない。さもなくば、トレースする対象のプログラムがスローダウンしてしまうことだろう。

努々次のようなDプログラムを書いてはならない。

2008-05-15

DTraceでMySQLを斬る!

オトコたるもの、30を過ぎれば健康に気をつけなければならぬ。健康と言えば医療であり、ハイテク医療と言えばCTスキャンに代表される非破壊検査である。そしてコンピュータの世界で非破壊検査といえば、現時点ではDTraceをおいて他にない。

DTraceについては以前の投稿(その1賢いdtraceの使い方、その2Dtrace on Leopard)でも紹介したが、今回はユーザー空間のプログラムを、DTraceを使って追跡する方法について紹介する。

2008-05-14

Apache mod_dbd設定編

以前にmod_dbdについてどういうものかを紹介したが、今回はMySQLを用いたmod_dbdの設定方法について説明する。

MySQL用のmod_dbdドライバを利用するにはApache httpd Serverをソースからビルドしなければならない。以前のバージョンのApache httpd ServerのソースコードにはMySQL用のmod_dbdドライバ(apr_dbd_mysql.c)が同梱されていなかったため、別途追加が必要であった。(ダウンロード元はここ。)その原因はライセンスの関係であり、Apache LicenseとGPL(MySQL)が非互換であったためである。確認した限りでは、Apache httpd Server 2.2.6にはapr_dbd_mysql.cは同梱されていない。2.2.8には同梱されていることを確認したので、この間に何らかの対処がなされたものと考えられる。ソースコードにコメントとしてLICENSEがApache License 2.0であるという記載があるが、以前のものはMySQLのGPL FOSS Exceptionが適用されていたのでこの辺の変更があったようである。

2008-05-12

猫も杓子も王子。

我が家のネットワーク事情には一つ大きな問題がある。それは、ネットワークに接続する機器が複数の部屋に散らばっているということだ。回線はNTTフレッツ光を利用しており、居間にルータを置いている。が、しかし俺が普段PCを利用したりhttp://www.mysqlpracticewiki.com/のサーバ(HFX Micro)を置いてある書斎的な部屋は廊下を隔てたところにある。

だったらワイヤレスで繋げばいいだろう?!と思われるかもしれない。確かにそうだ。居間にはワイヤレスのアクセスポイントを設置しており、Laptopは部屋を隔てていても問題なくワイヤレスでで接続できる。しかしSolaris 10を搭載したHFX Microはそうはいかない。HFX Microのネットワークインターフェイスは有線LAN(Planex UE-200TX)なのだ。廊下を隔てた部屋にイーサネットケーブルを敷設するわけにはいかない。(妻から猛反対を受けるだろう。)

2008-05-10

もし自分がS.Jobsだったら

「iPod」が直面する市場変化--岐路に立つアップル

という記事がCNetに投稿された。自分もiPodユーザーであり、これまでそれなりに満足して使ってきた。iPodは優れた製品であり、iTunesおよびiTunesミュージックストアとの組み合わせは最高の使い勝手をもたらしてくれる。しかし市場は飽和しており、iPodにとって変わるライバルとして下位の市場から携帯電話が押し寄せてきていると言う。アップルにとっては超ピンチ!!である。

OpenSolaris 2008.05 Review

ITMediaのニュースでSun、「OpenSolaris OS 2008.05」を正式リリース——Amazon EC2でも提供というのを見たので、キタァァァーーーッ!!とばかりにさっそくインストールしてみた。こういうときに仮想マシンソフトがあると本当に助かる。(ちなみに俺が使ってるのはVMware Fusionだ。)

2008-05-06

メディアウィキのアクセス制限

先日立ち上げたMySQL関係のWikiの設定について。

俺の場合、とりあえず自分以外の人が更新を行うことを想定していない&されたくないので、以下の設定を施した。
  • 全ページを編集できるのはログインしたユーザだけ
  • 新しいユーザアカウントの作成は不可
こういう設定をしておけば、俺以外の人がページを編集することは出来ない。メディアウィキの基本的な設定はLocalSettings.phpで行うが、上記の設定をするには以下の記述をすればOKだ。

2008-05-03

俺のマシンでメディアウィキが動くまで

俺の静音マシンはSolaris 10で稼働しているわけだが、ウェブサイトを立ち上げるという目的を果たすべくWikiをインストールした。Wikiクローンは星の数ほどあるが、オトコは黙って一番凄いヤツを使うべし!!となれば選択肢はウィキペディアで使われているメディアウィキしかないだろう。

MediaWikiのサイト
http://www.mediawiki.org/

2008-05-01

コンパイルメモ (pcre-7.6/Solaris x86_64/gcc/64ビット)

PCREのビルドに手こずったので防備録。

shell> ./configure --build=x86_64-solaris && make
   :
(snip)
   :
ld: fatal: library -lgcc_s: not found
ld: warning: file /usr/sfw/lib/amd64/libstdc++.so: attempted multiple inclusion of file
ld: fatal: File processing errors. No output written to .libs/pcrecpp_unittest
collect2: ld returned 1 exit status
gmake[1]: *** [pcrecpp_unittest] Error 1
gmake[1]: Leaving directory `/export/home/mikiya/src/pcre/pcre-7.6'
gmake: *** [all] Error 2

というエラーが出たらおもむろに

shell> vi libpcrecpp.la

とファイルを編集するべし。そしてlgcc_sとなっている箇所をlgcc_s_amd64にしてmakeを再開する。これでコンパイルが通る。