いやー 楽しかった。
何がって?
fukuoka perl mongerが開催されたんだよ。
福岡でperlでやっている人が今まで会った事なかったから、非常にうれしかった。
言い過ぎかもしれないけど夢のようでした。
perl関係の勉強会参加するにはshibuya.pmなど東京の方にいかないとなかった(金かかる)。
それをperl歴5年間、思い続けたんだよね。
ではfukuokaとshibuyaとの違いをはっきりしておきたい。
fukuoka.pmでは飲み中心。
shibuya.pmでは技術中心。
fukuokaだめじゃん。
fukuoka.pmとしてはまだほやほやであるが、技術力+さまざまな事例からのベストプラクティス構築+アウトプットしていければと思う。
がんばるばい。
プログラマーのメモ用紙 perl,javascript,linux,cisco,postgresql,cluster,etc.. 広く浅くをもっとうに活動をしており、何かの専門家ではありません。 あえて言えば、何でも屋なとこあります。
2007年11月25日日曜日
2007年11月19日月曜日
クラスタリングについて
drbd,gnbdなどの記事を上げましたが、なんでそんなことしてるんだという人がいます。ここでクラスタリングについての必要性について記事を書こうと思います。
私はサービスの突然の停止を何回も経験してきました。
まず一つにraid 1の方系運転に気がついていなくて落ちてしまうケース。
これは気がつけばいい話、と思われるかもしれませんが、これには引き継ぎなどによる情報伝達不足などのケアレスミスなどでも起こりえますし、エラー通知などの構成がハードウェアーによって違っていたりして通知されないケースも考えられます。
2つ目にディスク論理エラー(kernel panic)。
論理なのでraidなんて”関係ねー”です。fsckで修復をかけるとまったくディスク領域にアクセスできなくなってしまったりします。怖い怖い
3つ目にハードウェアーの故障
壊れやすい機器として、1位、HDD、2位、電源、3位、メモリ?!っとさまざまです。某D○○○なんかはたちがわるくて運用一週間後とかに初期不良なんかありましたね。
4つ目にメンテナンス中のケアレスミスによるデータ消去またはSQLインジェクションなどのデータ改ざんなども考えられます。
これらの障害要因があるなかで保守コストは一緒というのは割に合わなすぎです。しかもこれらが起った時点で自動的に責任がプログラマーに遷移します。前からいってたじゃんっていうのはいいわけらしいです。
そこで冗長構成をサービスの必須条件にすることで上記の問題を緩和することができます。つまりよく眠れるということです。
しかしそんな予算もって来れないよっとおっしゃる方もいるでしょう。確かにそうです。想定できないものにお金を払うことは現実的には厳しいですからね。
それではどうすればいいか。それはなぞです。というかいい方法を教えてください。
私のやり方は自腹を切るもしくはなんとか説得するということしか思いつきませんでした。
しかし、技術がなければ、説得も運用実績もつくれません。そこで私はこのブログでレポートを書きながら何かサービスを立ち上げ、運用実績を作って行こうと思います。
なんか不平不満みたいになってしまいました(^^;;
私はサービスの突然の停止を何回も経験してきました。
まず一つにraid 1の方系運転に気がついていなくて落ちてしまうケース。
これは気がつけばいい話、と思われるかもしれませんが、これには引き継ぎなどによる情報伝達不足などのケアレスミスなどでも起こりえますし、エラー通知などの構成がハードウェアーによって違っていたりして通知されないケースも考えられます。
2つ目にディスク論理エラー(kernel panic)。
論理なのでraidなんて”関係ねー”です。fsckで修復をかけるとまったくディスク領域にアクセスできなくなってしまったりします。怖い怖い
3つ目にハードウェアーの故障
壊れやすい機器として、1位、HDD、2位、電源、3位、メモリ?!っとさまざまです。某D○○○なんかはたちがわるくて運用一週間後とかに初期不良なんかありましたね。
4つ目にメンテナンス中のケアレスミスによるデータ消去またはSQLインジェクションなどのデータ改ざんなども考えられます。
これらの障害要因があるなかで保守コストは一緒というのは割に合わなすぎです。しかもこれらが起った時点で自動的に責任がプログラマーに遷移します。前からいってたじゃんっていうのはいいわけらしいです。
そこで冗長構成をサービスの必須条件にすることで上記の問題を緩和することができます。つまりよく眠れるということです。
しかしそんな予算もって来れないよっとおっしゃる方もいるでしょう。確かにそうです。想定できないものにお金を払うことは現実的には厳しいですからね。
それではどうすればいいか。それはなぞです。というかいい方法を教えてください。
私のやり方は自腹を切るもしくはなんとか説得するということしか思いつきませんでした。
しかし、技術がなければ、説得も運用実績もつくれません。そこで私はこのブログでレポートを書きながら何かサービスを立ち上げ、運用実績を作って行こうと思います。
なんか不平不満みたいになってしまいました(^^;;
ipod touch 一週間後の感想
一週間前にipod touch+leopardをGETしました。
さすがに面白い。UIがいい。洗練されています。
なにより、bsdが使えちゃうところ、簡単なアプリならperlで組めちゃいますね。
apiは用意されていませんが、safari上でlocalhostにアクセスすればlocalweb上でいろんなことができそう。夢が広がりますね。
さて、導入したアプリなんですが、
iphoneから
これらのインストールで困ったなって方がいたらコメントください。
わかる範囲でお答えします。
さすがに面白い。UIがいい。洗練されています。
なにより、bsdが使えちゃうところ、簡単なアプリならperlで組めちゃいますね。
apiは用意されていませんが、safari上でlocalhostにアクセスすればlocalweb上でいろんなことができそう。夢が広がりますね。
さて、導入したアプリなんですが、
iphoneから
- maps
- memo
- 天気
- 株価
- installer(JailBreak
Me )から - NES(遊び道具)
- VNsea(VNCViewer・・・用は遠隔GUIを操作できる)
- Term-vt100(bsdシステムへのターミナル)
- PDFViewer(PDFを見るやつ)
- mobileJuhu(モバイルjaiku 使い方がまだわかってない)
これらのインストールで困ったなって方がいたらコメントください。
わかる範囲でお答えします。
2007年11月16日金曜日
clusterまでの道のり:drbd編
drbdによるactive/active+gfsを試してみます。わかる人はわかると思いますが、この方法は失敗していますので参考にしようとしている人は見ない方がいいかもしれません。
yum install -y cman lvm2 lvm2-cluster gfs2-utils cluster-cim ricci luci
luci_admin init
yum install -y drbd kmod-drbd
#マシンを再起動
/bin/reboot
#drbd構成を定義
$vi /etc/drbd
この辺はどこでも紹介されているのでこちらでは紹介しません。
#ディスク内に情報を書き込む(何の情報かは不明)
$drbdadm create-md r0
v08 Magic number not found
v07 Magic number not found
About to create a new drbd meta data block
on /dev/data/data1.
==> This might destroy existing data! <==
Do you want to proceed?
[need to type 'yes' to confirm] yes
Creating meta data... initialising activity log
NOT initialized bitmap (32 KB)
New drbd meta data block sucessfully created.
$/etc/init.d/drbd start
経験エラー: >Device has a net-config (use disconnect first)
hostnameが同じだとだめみたい。
/etc/sysconfig/network
-hostname localhost.localdomain
+cm*
$/etc/init.d/network restart
$drbdadm primary all
経験エラー:
State change failed: (-2) Refusing to be Primary without at least one UpToDate disk
Command 'drbdsetup /dev/drbd0 primary' terminated with exit code 11
drbdsetup exited with code 11
解決:
すでにファイルシステムを作成したなどディスクに書き込まれている場合だと、上書きをしないといけないようです。
$drbdsetup /dev/drbd0 primary -o
or
$drbdadm -- --overwrite-data-of-peer primary all
同期が始まります。
両サーバーをactive/active構成にします。
mkfs.gfs2 -p lock_dlm -t cluster1:drbd0 -j 2 /dev/drbd0
mount -t gfs2 /dev/drbd0 /mnt
chkconfig ricci on
chkconfig luci on
chkconfig cman on
chkconfig clvmd on
まとめ。
基本的にdrbdによるActive/Active構成であってもGFS上では不都合が多いようです。
・同じファイルには片方からしか扱うことができません。
下手に触ってしまうと書き込みプロセスが書き込みロジックで停止してしまいました。Lockが効いており、プロセスも正常に動作していると思い込み、書き込みを待っているようです。
・方系のダウンを実践してみたのですが、lockがinternal(サーバー自身が管理)なため、一度落としてしまうと正常なサーバーのファイルシステムを落とし、drbdadm create-md r0を実行しなくてはいけません。
よってdrbdによるactive/active構成は難しいということがわかったのですが、本題はここではありません。
gnbd+clvm+gfs+cman・・・を実践したいと思います。
yum install -y cman lvm2 lvm2-cluster gfs2-utils cluster-cim ricci luci
luci_admin init
yum install -y drbd kmod-drbd
#マシンを再起動
/bin/reboot
#drbd構成を定義
$vi /etc/drbd
この辺はどこでも紹介されているのでこちらでは紹介しません。
#ディスク内に情報を書き込む(何の情報かは不明)
$drbdadm create-md r0
v08 Magic number not found
v07 Magic number not found
About to create a new drbd meta data block
on /dev/data/data1.
==> This might destroy existing data! <==
Do you want to proceed?
[need to type 'yes' to confirm] yes
Creating meta data... initialising activity log
NOT initialized bitmap (32 KB)
New drbd meta data block sucessfully created.
$/etc/init.d/drbd start
経験エラー: >Device has a net-config (use disconnect first)
hostnameが同じだとだめみたい。
/etc/sysconfig/network
-hostname localhost.localdomain
+cm*
$/etc/init.d/network restart
$drbdadm primary all
経験エラー:
State change failed: (-2) Refusing to be Primary without at least one UpToDate disk
Command 'drbdsetup /dev/drbd0 primary' terminated with exit code 11
drbdsetup exited with code 11
解決:
すでにファイルシステムを作成したなどディスクに書き込まれている場合だと、上書きをしないといけないようです。
$drbdsetup /dev/drbd0 primary -o
or
$drbdadm -- --overwrite-data-of-peer primary all
同期が始まります。
両サーバーをactive/active構成にします。
mkfs.gfs2 -p lock_dlm -t cluster1:drbd0 -j 2 /dev/drbd0
mount -t gfs2 /dev/drbd0 /mnt
chkconfig ricci on
chkconfig luci on
chkconfig cman on
chkconfig clvmd on
まとめ。
基本的にdrbdによるActive/Active構成であってもGFS上では不都合が多いようです。
・同じファイルには片方からしか扱うことができません。
下手に触ってしまうと書き込みプロセスが書き込みロジックで停止してしまいました。Lockが効いており、プロセスも正常に動作していると思い込み、書き込みを待っているようです。
・方系のダウンを実践してみたのですが、lockがinternal(サーバー自身が管理)なため、一度落としてしまうと正常なサーバーのファイルシステムを落とし、drbdadm create-md r0を実行しなくてはいけません。
よってdrbdによるactive/active構成は難しいということがわかったのですが、本題はここではありません。
gnbd+clvm+gfs+cman・・・を実践したいと思います。
ためにならない情報開始
遅ればせながらブログをはじめようと思う。
今更なぜブログを始めようと思ったのか。それは技術の溜め込みすぎで公開用にまとまっていない情報が私のマシン(相棒)に入っており、このままだったらせっかく時間をかけて溜め込んだ情報が台無しじゃんと思い、メモ用紙代わりに残していこうと思っているからです。
っと言っても最新の情報などありません。基礎的な情報だったり、ほかの情報に比べると屁です。(笑)
技術情報についてはいっさい責任を老いかねますのでこの情報による不具合などのご報告はご遠慮いただきたい。
よろしくおねがいします。
今更なぜブログを始めようと思ったのか。それは技術の溜め込みすぎで公開用にまとまっていない情報が私のマシン(相棒)に入っており、このままだったらせっかく時間をかけて溜め込んだ情報が台無しじゃんと思い、メモ用紙代わりに残していこうと思っているからです。
っと言っても最新の情報などありません。基礎的な情報だったり、ほかの情報に比べると屁です。(笑)
技術情報についてはいっさい責任を老いかねますのでこの情報による不具合などのご報告はご遠慮いただきたい。
よろしくおねがいします。
登録:
投稿 (Atom)