2009年07月02日
「"Wakame"で始めるクラウドコントロール」公開中
連載が終わってから告知し忘れたままである事に気づく。
gihyo.jpさんにてwakameの特集が掲載されてます。
自分も執筆に参加。
まさかこんな日が来るとは思ってもみなかった。
2009年06月29日
気付いたら1000万超えしていた
whois.hansode.org(70/n) - whois情報1000万レコードを目指して で1000万超え宣言した。
そして、気付いたら1000万を超えていた…。
▼2009/06/29 14:45現在
只今の蓄積WHOIS情報数:
11,809,033 WHOIS!!
1文字目がa〜gまでのクロールが終わった所。
まだまだクロールし終わらないね。
2009年06月25日
オライリージャパン
売り上げランキング: 15584
▼目次より
- キャパシティプランニングにおける目標、課題、およびプロセス
- キャパシティ目標設定
- 計測:キャパシティの単位
- 動向の予測
- 配置
普段は気にしてなかった事を気にするきっかけを与えてくれる。
システム管理に対する視野を広げてくれる興味深い内容。
サーバエンジニアにオススメの一冊。
日経BP社
売り上げランキング: 29137
今の自分には丁度良いレベル。
Wakameの開発でRubyを使うことが増えつつあるけど、
どうも「Rubyらしさ」のあるコードを書いている実感が全くない。
それは、設定ファイルを書いているような内容だからだ。
文法の理解を深めるために選んだのが、この一冊。
- 程よく薄い
- 基本的な文法の理解
- ついでにRuby技術者認定試験勉強になる
一歩ずつ頑張ろう
2009年06月04日
「2009/06/03(水)」 これは記念日だ
サッポロビールから「ヱビス超長期熟成2009」が2009/06/03(水)に発売された。

昨夜、近所のスーパーへ行ったら見慣れぬ缶ビールに目が止まった。
それが「ヱビス超長期熟成2009」だ。
ボルダリングで汗をかき、シャワーで汗を流し、万全の体調で一人晩酌。
飲んでみると…
う・・・うまい!!!
缶ビールでこのクォリティは素晴らしい。
一口飲んだだけで惚れたよ…。
個人的に、ヱビスの中で一番好きだ。
最近のサッポロビールは良いね
ギネスビールの版権がキリンビールへ移り、どうなるのか心配だった。
そんな心配を、良い意味で裏切ってくれている。
2009年春に限定販売された「シルクエビス」も美味かった。
今後もビール好きの心をくすぐるウマいビールに期待したい。
数量限定販売なので、最高の一杯を飲みたい方はお早めにどうぞ。
2009年06月01日
これまでのアンクルウェイトを振り返る
今日、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 x2 | 75kg | 74kg |
| 1.5kg x2 | 74kg | 73kg |
| 2.0kg x2 | 73kg | 72kg |
| 1.5kg x2 | 72kg | 71kg |
| 2.5kg x2 | 71kg | ? |
2.5kgx2をしばらく装着していれば、
体重70kgの世界が見えて来るかも知れない。
新しい相棒
売り上げランキング: 1660
これが今日から相棒となった2.5kgx2のアンクルウェイト。
マジックテープが2本あるので安定性抜群。
2009年05月28日
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特集が載ってたので読んでみた。
分散管理の「ぶ」をちょっとだけ分かった気がする程度。
兎にも角にも、使い慣れるしかないと感じた。
本格的な戦いはこれからだ。
技術評論社
売り上げランキング: 1014
2009年05月27日
何人かの常連さんと仲良くなった
時間があればボルダリング(フリークライミング)。
今ではすっかり自分の習慣になった。少なくても週2ペース。
ジムへ通っていれば見慣れた顔が出来始め、自然と会話生まれる。
最近、面白い傾向に気付いた。
職業を聞いた常連の男性客の業種は「IT系」
登りたくなる業種なのだろうか?
ゴールした時の小さな達成感の積み重ね。
それがエンジニアを夢中にさせる要因なのかも知れない。
一緒にクライミングやりませんか?
売り上げランキング: 8425
スキージャーナル
売り上げランキング: 125031
2009年05月26日
[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)を使ってノード増殖検証
関連エントリ
- [Wakame] PostgreSQLもスケール対象へ (1/n)
- [Wakame] PostgreSQLもスケール対象へ (2/n)
- [Wakame] PostgreSQLもスケール対象へ (3/n)
[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
オンラインリカバリを検証する為の受け皿は整った。
今後の予定
- オンラインリカバリ検証
関連エントリ
翔泳社
売り上げランキング: 34255




![The Cliff(ザ クリフ) 尾川智子 ボルダリングトライアル [DVD]](http://ecx.images-amazon.com/images/I/51RVF9UKoEL._SL160_.jpg)

