2009年07月02日

[Wakame] gihyo.jp「"Wakame"で始めるクラウドコントロール」

livedoorClipに登録 clip | このエントリーをはてなブックマークに追加 はてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

"Wakame"で始めるクラウドコントロール」公開中


連載が終わってから告知し忘れたままである事に気づく。
gihyo.jpさんにてwakameの特集が掲載されてます。

自分も執筆に参加。
まさかこんな日が来るとは思ってもみなかった。



半袖 at 09:20|PermalinkComments(0)TrackBack(0)Wakame 

2009年06月29日

whois.hansode.org(71/n) - whois情報1000万レコード超え

livedoorClipに登録 clip | このエントリーをはてなブックマークに追加 はてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

気付いたら1000万超えしていた

whois.hansode.org(70/n) - whois情報1000万レコードを目指して で1000万超え宣言した。
そして、気付いたら1000万を超えていた…。

▼2009/06/29 14:45現在

只今の蓄積WHOIS情報数:
11,809,033 WHOIS!!

1文字目がa〜gまでのクロールが終わった所。
まだまだクロールし終わらないね。



半袖 at 14:55|PermalinkComments(0)TrackBack(0)Domain Name Hacks 

2009年06月25日

キャパシティプランニング ― リソースを最大限に活かすサイト分析・予測・配置

livedoorClipに登録 clip | このエントリーをはてなブックマークに追加 はてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

キャパシティプランニング ― リソースを最大限に活かすサイト分析・予測・配置
John Allspaw
オライリージャパン
売り上げランキング: 15584

▼目次より

  • キャパシティプランニングにおける目標、課題、およびプロセス
  • キャパシティ目標設定
  • 計測:キャパシティの単位
  • 動向の予測
  • 配置

普段は気にしてなかった事を気にするきっかけを与えてくれる。
システム管理に対する視野を広げてくれる興味深い内容。

サーバエンジニアにオススメの一冊。



半袖 at 11:25|PermalinkComments(0)TrackBack(0) 

Ruby技術者認定試験 公式ガイド

livedoorClipに登録 clip | このエントリーをはてなブックマークに追加 はてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

Ruby技術者認定試験 公式ガイド (ITpro BOOKs)
伊藤忠テクノソリューションズ
日経BP社
売り上げランキング: 29137

今の自分には丁度良いレベル。

Wakameの開発でRubyを使うことが増えつつあるけど、
どうも「Rubyらしさ」のあるコードを書いている実感が全くない。

それは、設定ファイルを書いているような内容だからだ。
文法の理解を深めるために選んだのが、この一冊。

  • 程よく薄い
  • 基本的な文法の理解
  • ついでにRuby技術者認定試験勉強になる

一歩ずつ頑張ろう



半袖 at 09:55|PermalinkComments(0)TrackBack(0) 

2009年06月04日

「ヱビス超長期熟成2009」は…「ちょっと贅沢」ではなく「最高に贅沢」なビールだ

livedoorClipに登録 clip | このエントリーをはてなブックマークに追加 はてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

「2009/06/03(水)」 これは記念日だ

サッポロビールから「ヱビス超長期熟成2009」が2009/06/03(水)に発売された。

choukijukusei-yebisu

昨夜、近所のスーパーへ行ったら見慣れぬ缶ビールに目が止まった。
それが「ヱビス超長期熟成2009」だ。

ボルダリングで汗をかき、シャワーで汗を流し、万全の体調で一人晩酌。
飲んでみると…

う・・・うまい!!!

缶ビールでこのクォリティは素晴らしい。
一口飲んだだけで惚れたよ…。

個人的に、ヱビスの中で一番好きだ。


最近のサッポロビールは良いね

ギネスビールの版権がキリンビールへ移り、どうなるのか心配だった。
そんな心配を、良い意味で裏切ってくれている。

2009年春に限定販売された「シルクエビス」も美味かった。
今後もビール好きの心をくすぐるウマいビールに期待したい。

数量限定販売なので、最高の一杯を飲みたい方はお早めにどうぞ。



半袖 at 11:05|PermalinkComments(0)TrackBack(0)ビール 

2009年06月01日

実はアンクルウェイトダイエット?

livedoorClipに登録 clip | このエントリーをはてなブックマークに追加 はてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

これまでのアンクルウェイトを振り返る

今日、2.5kgx2のアンクルウェイトが届いた。
今までの歴史を振り返ってみる。

  • 0.5kg x2
    • はじめてのアンクルウェイト
    • 弱気に0.5kgから始めてみた
    • 0.5kgでも効果が出る事を実感
    • ⇒体重: 75kg→74kg
  • 1.0kg x2
    • 0.5kgでは物足りなくなり、1.0kgへ
    • 0.5kgからすると2倍の重さ
    • 着け始めはしばらく足への疲労を感じた
    • 足の付け根、お尻の筋肉への効果を実感
    • ⇒体重: 74kg→73kg
  • 2.0kg x2
    • 1.0kgでは物足りなくなり、2.0kgへ
    • これまた2倍になったので、しばらく重い
    • アンクルウェイトを外した時の体の軽さを物凄く感じる
    • 0.5kgの頃は2.0kgなんて重いと思っていたけど、慣れてしまえば何て事ない
    • ⇒体重: 73kg→72kg
  • 1.5kg x2
    • 2.0kgが破れてしまい、買いなおそうとしたら既に販売終了だったため、1.5kgに…
    • 無いよりはマシ
    • ⇒体重: 72kg→71kg
  • 2.5kg x2
    • いよいよ総計5.0kgへ突入
    • ⇒体重: 71kg→?

効果を振り返る

  • アンクルウェイトの重量と反比例するように、体重と体脂肪が減った
アンクルウェイト体重before体重after
0.5kg x275kg74kg
1.5kg x274kg73kg
2.0kg x273kg72kg
1.5kg x272kg71kg
2.5kg x271kg

2.5kgx2をしばらく装着していれば、
体重70kgの世界が見えて来るかも知れない。

新しい相棒

これが今日から相棒となった2.5kgx2のアンクルウェイト。
マジックテープが2本あるので安定性抜群。



半袖 at 16:40|PermalinkComments(0)TrackBack(0)体調管理 

2009年05月28日

Gitでギットギト

livedoorClipに登録 clip | このエントリーをはてなブックマークに追加 はてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

Gitを使い始めた

Wakame」でGitを使い始めたのがきっかけ。

今までに実行したgitコマンド。

  • git clone
  • git add
  • git diff
  • git commit
  • git status
  • git log
  • git checkout
  • git branch
  • git pull
  • git push

タイミング良くWEB+DB PressにGit特集が載ってたので読んでみた。
分散管理の「ぶ」をちょっとだけ分かった気がする程度。

兎にも角にも、使い慣れるしかないと感じた。
本格的な戦いはこれからだ。


WEB+DB PRESS Vol.50
WEB+DB PRESS Vol.50
posted with amazlet at 09.05.28
WEB+DB PRESS編集部
技術評論社
売り上げランキング: 1014


半袖 at 10:55|PermalinkComments(0)TrackBack(0)ほげり道 

2009年05月27日

クライマーはエンジニア

livedoorClipに登録 clip | このエントリーをはてなブックマークに追加 はてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

何人かの常連さんと仲良くなった

時間があればボルダリング(フリークライミング)。
今ではすっかり自分の習慣になった。少なくても週2ペース。

ジムへ通っていれば見慣れた顔が出来始め、自然と会話生まれる。
最近、面白い傾向に気付いた。

職業を聞いた常連の男性客の業種は「IT系」

登りたくなる業種なのだろうか?

ゴールした時の小さな達成感の積み重ね。
それがエンジニアを夢中にさせる要因なのかも知れない。

一緒にクライミングやりませんか?


The Cliff(ザ クリフ) 尾川智子 ボルダリングトライアル [DVD]
ジェネオン エンタテインメント (2009-04-24)
売り上げランキング: 8425



半袖 at 12:20|PermalinkComments(1)TrackBack(0)体調管理 

2009年05月26日

[Wakame] PostgreSQLもスケール対象へ (4/n)

livedoorClipに登録 clip | このエントリーをはてなブックマークに追加 はてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

[Wakame] PostgreSQLもスケール対象へ (3/n)の続編

予告通り、今回はオンラインリカバリを実行してみる。

  • node1(PostgreSQL)
    • オンラインリカバリ用にnode1の鍵作成
    • オンラインリカバリ用にnode2に鍵登録
    • リカバリスクリプト配置
  • pgpool-II
    • 対象ノードを登録
    • pgpool-IIを再起動
    • node2をノードから外す
    • node2に対してリカバリを実行
    • pgbenchしてみる?

作業内容: node1(PostgreSQL)

▼作業が面倒なので、あらかじめUNIXアカウントpostgresになっておく

node1$ sudo su postgres

▼node1の鍵作成

node1$ ssh-keygen -t dsa -N ""
鍵のファイル名を問われるので、デフォルトファイル名で問題なければEnter

▼node2に鍵を登録

node1$ cat /var/lib/postgresql/.ssh/id_dsa.pub | ssh (node2)  "cat >> /var/lib/postgresql/.ssh/authorized_keys"

▼リカバリスクリプト配置

pgpool-IIによるレプリケーションとオンラインリカバリからスクリプトを拝借。

node1$ cd /usr/local/pgsql/data

node1$ chmod +x recovery_1st_stage.sh
node1$ chmod +x recovery_2nd_stage.sh 
node1$ chmod +x pgpool_remote_start 

作業内容: pgpool-II

pgpool-II$ cd /usr/local/pgpool2/etc

pgpool-II$ sudo vi pgpool.conf
listen_addresses = '*'
port = 9999
pcp_port = 9898

# for debian
socket_dir = '/var/run/postgresql'
pcp_socket_dir = '/var/run/postgresql'
backend_socket_dir = '/var/run/postgresql'

# Logging directory
logdir = '/tmp'

# pid file name
pid_file_name = '/var/run/postgresql/pgpool.pid'

# Replication mode
replication_mode = true

# Health check user
health_check_user = 'nobody'

# node1
backend_hostname0 = '192.168.1.123'
backend_port0 = 5432
backend_weight0 = 1
backend_data_directory0 = '/usr/local/pgsql/data'

# node2
backend_hostname1 = '192.168.1.124'
backend_port1 = 5432
backend_weight1 = 1
backend_data_directory1 = '/usr/local/pgsql/data'

recovery_user = 'postgres'

recovery_1st_stage_command = 'recovery_1st_stage.sh'
recovery_2nd_stage_command = 'recovery_2nd_stage.sh'

▼pgpoolを起動

pgpool-II$ sudo -u postgres /usr/local/pgpool2/bin/pgpool -n &

▼pcp_node_infoでノード情報を確認

pgpool-II$ /usr/local/pgpool2/bin/pcp_node_info 100 192.168.1.122 9898 postgres postgres 0
192.168.1.123 5432 1 1073741823.500000
pgpool-II$ /usr/local/pgpool2/bin/pcp_node_info 100 192.168.1.122 9898 postgres postgres 1
192.168.1.124 5432 1 1073741823.500000

pgpoolのノード対象となっている事を確認。

この時、node2のPostgreSQLは停止状態にあるにも関わらず、pcp_node_infoではステータスが「1」となっている。 一度pgpoolへ接続すると状態に変化が現れた。

pgpool-II$ psql -h localhost -p 9999

pgpool-II$ /usr/local/pgpool2/bin/pcp_node_info 100 192.168.1.122 9898 postgres postgres 0
192.168.1.123 5432 2 1073741823.500000
pgpool-II$ /usr/local/pgpool2/bin/pcp_node_info 100 192.168.1.122 9898 postgres postgres 1
192.168.1.124 5432 3 1073741823.500000

ノードの状態がそれぞれ、node1は「2」、node2は「3」となった。

▼node2をクラスタから切り離す

pgpool-II$ /usr/local/pgpool2/bin/pcp_detach_node 100 192.168.1.122 9898 postgres postgres 1

出力が無いので、無事に切り離されたのかが良く分からない。

pgpool-II$ /usr/local/pgpool2/bin/pcp_node_info 100 192.168.1.122 9898 postgres postgres 1
192.168.1.124 5432 3 1073741823.500000

pcp_node_infoで確認してみると、状態は「3」のまま。

▼オンラインリカバリを実行

pgpool-II$ pcp_recovery_node 100 192.168.1.122 9898 postgres postgres 1

メッセージが出力されないので、成功したのか失敗したのかが分かりづらい。

pgpool-II$ ./pcp_node_info 100 192.168.1.122 9898 postgres postgres 1
192.168.1.124 5432 1 1073741823.500000

どうやら成功したようだ。
pgpool-recoveryを使うと簡単にノードを追加出来るね。

今後の予定

  • 図を使ってpgpool-recoveryを使ったオンラインリカバリのまとめ
  • AWS(Amazon EC2, Amazon EBS)を使ってノード増殖検証

関連エントリ





半袖 at 18:00|PermalinkComments(0)TrackBack(0)Wakame 

[Wakame] PostgreSQLもスケール対象へ (3/n)

livedoorClipに登録 clip | このエントリーをはてなブックマークに追加 はてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

[Wakame] PostgreSQLもスケール対象へ (2/n)の続編

前回の予定を変更し、今回はpgpool-IIの追加設定。
オンラインリカバリ検証は次回予定。

今回の前提条件として、pgpool-IIがインストールされている事。
作業内容は前回のエントリを参照。

作業の流れ

作業対象サーバは2台で、pgpool-IIとノード(PostgreSQL)。
重要なのはアーカイブログの有効化とpgpool-recoveryの組み込み。

  • pgpool-II
    • pcpアカウント作成
    • pgpool-recoveryビルド
  • ノード(PostgreSQL)
    • pgpool-recoveryを配置
    • initdbコマンドでdataディレクトリ作成
    • アーカイブログ用ディレクトリ作成
    • configを変更しアーカイブログを有効化
    • pgpool-recoveryをPostgreSQLに組み込む

作業内容: pgpool-II

PCP コマンドの設定より

pgpool-II では PCP コマンドと呼ばれるインタフェースを通して pgpool-II の停止やデータベースノードに関する情報の表示を行います。
PCP コマンドを使用するにはユーザ認証が必要になるので、ユーザ名とパスワードを pcp.conf ファイルに設定します。
pcp.conf ファイルの書式は以下のように 1 行ごとにユーザ名と MD5 ハッシュに変換されたパスワードを : で区切ったものです。

pcp用アカウントを設定して行く

▼pcpアカウント用パスフレーズ生成

$ /usr/local/pgpool2/bin/pg_md5 postgres
e8a48653851e28c69d0506508fb27fc5

md5sumコマンドと何が違うのか…

$ echo -n postgres | md5sum
e8a48653851e28c69d0506508fb27fc5  -

当たり前だけど、ハッシュ値は同じだ。
echoだと「-n」をつけ忘れる可能性があるので、pg_md5を使うのがベター。

▼pcp用アカウント追加

$ cd /usr/local/pgpool2/etc/; pwd
/usr/local/pgpool2/etc
$ sudo cp -pi pcp.conf.sample pcp.conf
$ sudo vi pcp.conf
$ diff pcp.conf.sample pcp.conf
28a29
> postgres:e8a48653851e28c69d0506508fb27fc5

▼pgpool-recoveryをビルドするための準備

$ sudo apt-get install postgresql-server-dev-8.3

▼pgpool-recoveryをビルド

$ cd sql/pgpool-recovery/
$ make

▼pgpool-recoveryのインストール先ディレクトリ作成

$ sudo mkdir /usr/local/pgsql
$ sudo mkdir /usr/local/pgsql/lib
$ sudo mkdir /usr/local/pgsql/share

▼pgpool-recoveryのインストール先ディレクトリを変更したので、パス変更

$ perl -pi -e 's,\$libdir,/usr/local/pgsql/lib,' pgpool-recovery.sql

▼pgpool-recoveryをインストール

$ sudo cp -pi pgpool-recovery.so  /usr/local/pgsql/lib/.
$ sudo cp -pi pgpool-recovery.sql /usr/local/pgsql/share/.

作業内容: ノード(PostgreSQL)

▼PostgreSQL用ディレクトリ準備

$ sudo mkdir /usr/local/pgsql
$ sudo chown postgres:postgres /usr/local/pgsql

psqlコマンドなどはDebianパッケージでインストールされている物とする

▼pgpool-IIからノードへpgpool-recoveryを配置

$ cd /usr/local/pgsql
$ sudo mkdir lib
$ sudo mkdir share

$ scp (pgpool-II):/usr/local/pgsql/lib/pgpool-recovery.so    ./lib/pgpool-recovery.so
$ scp (pgpool-II):/usr/local/pgsql/share/pgpool-recovery.sql ./share/pgpool-recovery.sql

▼initdbコマンドでdataディレクトリ作成

$ sudo -u postgres /usr/lib/postgresql/8.3/bin/initdb -D /usr/local/pgsql/data

▼archive_logの準備

$ sudo -u postgres mkdir     /usr/local/pgsql/data/archive_log/
$ sudo -u postgres chmod 700 /usr/local/pgsql/data/archive_log/

▼postgresql.conf変更 アーカイブログを有効化

$ sudo vi /usr/local/pgsql/data/postgresql.conf
listen_addresses = '*'
archive_mode = on
archive_command = 'cp %p /usr/local/pgsql/data/archive_log/%f'

▼pg_hba.conf変更

$ sudo vi /usr/local/pgsql/data/pg_hba.conf
local   all         all                               trust
host    all         all         127.0.0.1/32          trust
host    all         all         192.168.1.0/24          trust
host    all         all         ::1/128               trust

pgpool-IIからの接続を許可する

▼PostgreSQLを起動

$ sudo -u postgres /usr/lib/postgresql/8.3/bin/pg_ctl -D /usr/local/pgsql/data start

▼pgpool-recoveryをpostgresに組み込む

$ sudo -u postgres psql -c "\i /usr/local/pgsql/share/pgpool-recovery.sql" template1
CREATE FUNCTION
CREATE FUNCTION

オンラインリカバリを検証する為の受け皿は整った。

今後の予定

  • オンラインリカバリ検証

関連エントリ



PostgreSQL徹底入門 第2版
浅羽 義之 石田 朗雄 稲葉 香理 永安 悟史
翔泳社
売り上げランキング: 34255


半袖 at 16:15|PermalinkComments(0)TrackBack(1)Wakame