ここから、はてなブックマークのシステムが、サービスリリース当時からどのように変化していったかを述べつつ、サーバーの増設という視点で要所の解説をしていきます。 はてなブックマークがオープンした当初は、利用していたサーバーは3台でした。それぞれの用途は、
このぐらいの規模のWebアプリケーションを作る場合、スクラッチからコードを書いていたのでは効率が悪いですし、また複数のプログラマで開発を進めるにあたってコードの品質を一定に保つのが難しくなってきます。ということで、ここはフレームワークの出番です。 PerlにはCatalystやSledge、CGI::Applicationといったオープンソースの優れたフレームワークがいろいろとありますが、はてなでは自社開発の「はてなフレームワーク」を利用しています。 はてなフレームワークを開発した当時の2001年頃はLL向けの良いフレームワークがあまり無かったため、自分たちで作りました。その後も改良を続け現在も同フレームワークを利用し続けています。 最近ではPerlに限らず、優れたフレームワークの実装が世の中に多数あり、その多くがフリーです。あまり自社開発のフレームワークを利用することの利点は多くないかも
筆者が勤務する株式会社はてなが提供するある一つのインターネットサービスを題材に、LAMP(Linux+Apache+MySQL+Perl)でのアプリケーション開発や、負荷分散について述べるという発表でした。はてなで提供しているサービスには、はてなブックマーク以外にもはてなダイアリー(注2)のような月間何億PV(Page View)もある大きなサービスもあります。はてなブックマークはそれらに比較すると小さい、中規模なシステムです。 システム運用について発表するにあたって、億単位のPVをさばく巨大なサービスについて述べるよりも、ある程度現実的な規模のものについて解説する方が、みなさんの参考になるかなと思い、このテーマを選択しました。 本稿ではYAPC::Asiaでの発表の中からいくつかのトピックを選んで、Perlを使ったシステムの運用や負荷分散のコツなどを中心に解説したいと思います。 なお、発
この「ブラックボックス計画」というのは、サン・マイクロシステムズが考えているもので、サーバに必要な記憶装置、ネットワーク装置などをすべて貨物輸送コンテナに詰め込んで運用するというモノ。もちろんコンテナには衝撃を和らげるための仕組みやクーラーなどが完備されています。 どういうメリットがあるのか、という詳細は以下の通り。内部はどうなっているのかという写真もあります。 Project Blackbox コンテナの長さは20フィート、約6メートル。いわゆる「20フィートコンテナ」として一般的にISO規格で定められているコンテナです。 20フィートコンテナ コンテナ - Wikipedia 来年の夏には本格的な生産体制にはいるとしており、価格はまだ未定。 このコンテナ化によってどのようなメリットが生じるのかというと、スペースの節約と冷房効率のアップによる電気代の削減。冷房効率については、コンテナ化す
keepalivedはLinuxで冗長構成を組む道具としてとても便利ですが、運用面に関する配慮に物足りなさを感じることがあります。例えばIncludeがないとかIncludeがないとかIncludeがないとか(笑) naoyaの日記でnaoyaさんも悩んでいるようですが、設定ファイルをうまく保守する仕組みをどう作るかが導入する際の大きな鍵になると思います。今回は、DSASではどのようにして2台のkeepalivedを運用しているかを少しだけご紹介させて頂きたいと思います。 1) マスターで設定ファイルを編集する 2) バックアップに設定ファイルを転送する 3) バックアップで設定を反映する 4) マスターとバックアップの差分を確認する 5) マスターで設定を反映する 具体的にはどのようにしているかというと、、、 lv1:# vi 設定ファイル lv1:# lvs-sync -ine lv1
Perlで書かれており、RRD Toolと連携して、サーバに関するあらゆる情報をグラフ化し、HTMLを作ってくれます。MRTGよりも圧倒的にインストールも設定も簡単。グラフ化する対象はプラグインで簡単に拡張可能。 グラフ化できるのは、初期状態でディスク使用量・MySQL・IOstat・トラフィック・プロセス数・VMstat・CPU温度・CPU使用率・ロードアベレージ・メモリ使用率・スワップ・Netstat・HDD温度など。プラグインを追加することでさらにApacheのロードタイム・メールキュー・Asterisk・NFSクライアント・BIND・ColdFusion・DNSキャッシュ・MySQLの各種数値・PostgreSQL・印刷キュー・ProFTP・Qmail・電圧・S.M.A.R.T.・SpamAssassin・Tomcat・Tor・Windows Server・VMware・Xenなど
前回はkeepalivedを使ってWebサーバを冗長化してみました。 今回はkeepalivedのもう一つの機能であるVRRPを使って、ロードバランサ自身を冗長構成にしてみたいと思います。 ┌─────┐ │ client │ └──┬──┘ │[10.10.31.200] │ ━━━━━━━┯━━━━┷━━━━━┯━━━━━━━━━ 10.10.31.0/24 │ │ │ │ │ ←(10.10.31.10) → │ │ ←{10.10.31.100}→ │ [10.10.31.11]│ │[10.10.31.12] ┌─┴─┐ ┌─┴─┐ │ lv1 │ │ lv2 │ └─┬─┘ └─┬─┘ [192.168.31.11]│ │[192.168.31.12] │ ←(192.168.31.10)→│ │ │ ━━━━━━┯┷━━━━━━━━━━┷┯━━━━━━━━ 192.168.3
前回までで、 複数のWebサーバにロードバランスする というところまではできました。 これでリアルサーバへ負荷分散することができたのですが、冗長性がありませんでした。つまり、リアルサーバがダウンしても、ロードバランサはそれを認識できず、ダウンしているリアルサーバなのにパケットを送ってしまっていました。 このとき、クライアントから見ると、たまにサーバから応答がないように見えてしまいます。 というわけで今回は冗長化のお話、 リアルサーバのヘルスチェック を紹介したいと思います。 今回はkeepalivedを使います。 おおざっぱにいうと、keepalivedは2つの機能を提供します。 1. ヘルスチェック機構と連携したIPVSでのリアルサーバの管理 (--check) 前回ipvsadmコマンドを使って行ったような、バーチャルIPアドレス (VIP) やリアルサーバの管理を設定ファイルに記述す
DSASのロードバランサは高価なアプライアンス製品ではなく、LinuxのLVS (Linux Virtual Server)を利用しています。 安価、というか、ハードウエア以外は金銭的コストがゼロなので、一般のクライアントからのアクセスを受ける外部ロードバランサのほかに、内部サービス用のロードバランサも配置しています。それぞれactive, backupで2台ずつあるので合計で4台もロードバランサがあることになります。(こんな構成を製品を使って組んだら数千万円すっとびますね) また、ネットワークブートでディスクレスな構成にしているので、ハードディスが壊れてロードバランサがダウンした、なんてこともありません。 ですので「ロードバランサは高くてなかなか導入できない」という話を耳にする度にLVSをお勧めしているのですが、どうも、 なんか難しそう ちゃんと動くか不安 性能が出ないんじゃないか 等々
サーバなどの機器が大量に増え、命名に困っています。 サーバやネットワークの管理者にお尋ねします。 サーバやハブ、ルータなどの名前はどのように付けていますか? 機器名や役割などをそのまま名前にしている場合もありますが、今回は惑星の名前や星座の名前など、バリエーションが豊富で今後機器が増えても安心な「シリーズもの」を教えてください。 <回答として欲しいもの> ・どんな名前のシリーズか ・その一覧が出来るだけ多く掲載されているサイトのURL(カナだけではなく英語の綴りも記載されているサイト) ※2つとも必須です <除外> 以下のものはすでに調査済みですので今回は除外します。 ・惑星 ・衛星 ・12星座やその他の星座 (自宅でLANを組んでいる方や、何かいい案を思いついた人でも回答OKです)
DSASはいかにして可用性を高めているか、ちょっと紹介したいと思います。 今回は概略ということでざざざっと説明します。個別の構成についてはまた回を改めて紹介したいと思います。 │ │ ┌┴┐ ┌┴┐ │ │ │ │ISPの上位ルータ └┬┘ └┬┘ │ │ 〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜 責任分解点 │ │ ┌┴┐ ┌┴┐ │ ├─[ lb(active) ]─┤ │ │ ├─[ lb(backup) ]─┤ │ │ │ │ │ │L2├─[ Web ]─┤L2│ │SW├─[ Web ]─┤SW│ │ ├─[ Web ]─┤ │ │ │ │ │ │ ├─[ SMTP ]─┤ │ │ ├─[ SMTP ]─┤ │ │ │ │ │ │ ├─[ D B ]─┤ │ │ ├─[ D B ]─┤ │ │ │ │ │ │ ├─[ NFS ]─┤ │ │ ├─[ NFS ]─┤ │ │ │ │ │
DSAS開発者の部屋:いかにして冗長構成を作るか 〜DSASの場合〜 でDSASの中の人が手の内を公開されている.丁寧な書き口調とは裏腹に,ある種の執念すら感じとれる内容なので,皆さんぜひ読むといいです.細かい内容に関しては今後のエントリに期待するとして,「ここまでやるか?」というくらい徹底してるのでデータセンターが吹き飛ばない限りはこれで大丈夫だと思われます. 少し話がそれるが,こういう自動化に関しては徹底的にやったほうがいいと思う. 私のBlogを読んでいる人たちはおそらくは20代から30代くらいのまさに担当者レベルの方々で, 「いや勇気と根性で何とかしてますから」 という向きも多いだろう.しかしマシンの台数,負荷ともに増える一方なので,いずれ根性ではなんともならなくなる.非常に言うのはつらい話だが,実際力尽きて会社を辞めたり,彼女に振られたりした人*1を何人も見てきた私としては上記エ
id:hirose31くんがロードバランサについてあれこれ書いてる. そんなわきゃない>DNS RRはロードバランサの座を奪い返せるか この間彼から教えてもらったんだけどLVS(LinuxVirtualServer)は結構すごいという話. 「でも安定性がぁ」とか「ASICには勝てないよね」といかいうやつは、まずは試してみてみー きっとびっくりするから。 ロードバランサの1運用形態であるDSR(Direct Server Return)を知らない人だと「ソフトウェアでロードバランサ?ありえねー」とか思っててもしかたないと思う.DSRを知らないといつまでもベンダーに高いお金を払うことになるのでチョロチョロ書いてみる. DSRを知らない人がロードバランサーに持っているイメージは図の1の通りだと思う.つまり HUBを通してリクエストがロードバランサに届く(1,2) ロードバランサは適当にバランシン
チープなDNSラウンドロビンは高価なロードバランサの座を奪い返せるか つっこみどころが満載スギなのは脇においておいて、金をかけないなら、DNSラウンドロビンじゃなくて、せめて、件の記事でも紹介されている Apache 2.2のmod_proxy_balancer か、Apache 2.2じゃなくても使えるreverse proxy系の実装たち、 POUND mod_backhand Perlbal を使うべきでしょう。 んで、「L7ロードバランサ(要はreverse proxy)なんていらねっす。セッション? んなのmemcachedでシェアすりゃいいんじゃん。その方がスケールアウトしやすいしー」という向きには、LinuxでL4のロードバランサするのをオススメでします。まともなL4ロードバランサが手に入るのに、金銭的コストはゼロですってよ、オクサン! Linux Virtual Serve
Linux、Windows、FreeBSD、Mac OS Xで動作可能なサーバモニタリングソフトウェアです。フリーで利用できるバージョンであっても商用利用可能で、30個までのサーバを一元監視することができます。 HTTPなどの各種サービスの監視はもちろん、CPU負荷やメモリ、温度の詳細なグラフ出力やレポート出力も可能。サービスが落ちたかどうかの判断基準や、落ちた場合の通知方法はグラフィカルに条件分岐のダイアグラムから作成可能で、その際に実行するスクリプトなども指定できます。 ソフトウェア自体は監視するBixAgent、監視エージェントから送られてきた情報をまとめるBixServer、そしてその監視結果を表示して確認するためのBixDesktopで構成されています。 詳細は以下の通り。 BixData | Cluster and Systems Management http://www.b
プロセスリストから選んだ任意のプロセス1つを監視し、プロセスの終了時に自動でファイルを開いたりWindowsをシャットダウンできるソフト。巨大ファイルのコピーや動画変換など時間のかかる処理を始めたあと、処理終了まで待たずに離席したいような場合にお勧め。プロセス終了の判定条件は、親ウィンドウの発生・消滅、CPU使用率がゼロになった場合など、4種類から指定できる。このとき前もって条件の成立・不成立を確認するテスト機能もあるので安心。プロセス終了時に自動実行させる動作は、任意の音声・動画ファイルの再生、コマンド実行、またはWindowsの終了のいずれかで、コマンド実行ではIEなどのプログラムを起動したり、関連付けられたファイルを指定して自動的に開くことも可能。さらに、監視プロセスが終了して指定動作を自動実行する前のデスクトップ状態を、画像キャプチャーするオプションもある。キャプチャー画像は、本ソ
8月10日(木)から、2003年度から2005年度までの「苦情・クレーム博覧会」に登録されている苦情やクレームを無料で閲覧できるそうです。 詳細は以下の通り。 苦情クレーム博覧会2005:福井商工会議所があなたの苦情を買います。 http://www.kujou906.com/ 2003年度から2005年度までの苦情・クレームが登録ユーザーに限り、無料で閲覧可能。登録は無料。過去の苦情・クレームは役に立ったかどうかの投票対象にはなっていないものの、コメントの書き込みは可能。なお、無料ユーザーは苦情の検索機能が限定されるらしい。 ただし2006年度の分を閲覧するには1050円の支払いが必要。 現在は無料で登録するとタイトルだけ検索できるのですが、なかなか変わったのが多いです。殿堂入りしたものを並べるとこんな感じ。 苦情クレーム博覧会2005:殿堂入り http://www.kujou906.
Java | TomcatでJSPディレクティブの余計な改行を出力しない方法 アガテナ - TomcatでJSPディレクティブの余計な改行を出力しない方法 JSPで出力されたHTMLの先頭で、JSPディレクティブの場所の部分に余計な改行が出力されて、気持ち悪さを感じておりましたが、conf/web.xmlのJSPサーブレットでtrimSpacesで設定できることがわかりました。知らなかった。僕も改行が出力されるのが嫌いだったので、複数のディレクティブを入れる場合はできるだけ改行を入れないようにしていたけど(後から読みにくくなるが)、これですっきりと書けそう。 ちなみにResinの場合、JSPディレクティブの後に「\」を入れると改行の出力を抑制してくれます。
The Lambda Probe projectは30日(米国時間)、Lambda Probeの最新版であるLambda Probe 1.6を公開した。Lambda ProbeはApache Tomcatをリアルタイムに監視するためのツールアプリケーション。Lambda Probeは監視対象とするApache Tomcatの状況をリアルタイムに視覚化し、Webインターフェースを通じて提供する。 Lambda ProbeはGNU GENERAL PUBLIC LICENSE Version 2のもとで提供されているオープンソースソフトウェア。1.6における主な変更点は次のとおり。 定義されたデータソースを経由してランダムにSQLを実行するための包括的なツールの提供。テストツールへの接続、リザルトセットのブラウズ、SQL実行履歴の表示などの機能も提供 Java 5によって提供されるようになった
MySQLデータベースのダンプファイルをzipアーカイブして、メールサーバに送る、わりとアリガチなスクリプトを必要に迫られて書いたのでついでに公開。 mysqldump2email.ja JP - Ogawa Code mysqldump2email - Ogawa Code (English) 手前味噌だけど結構便利。ダンプデータを平文メールで送るのに抵抗を感じるので、zipのencryption機能も使えるようにしてある。1時間おきに意味なくダンプしたりすると、Gmailのスプールと言えどもみるみる埋まっていってユカイ。 例によって試してはいないけど、Gmailの30日でexpireするTrash機能と組み合わせると、バックアップとしての実用度がさらに高まるかもしれないと思った。例えば、 username+daily@gmail.com宛に毎日ダンプする。Gmailの設定でこのアドレ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く