東雲です
Muninを使うようになったので、ちょっとかゆいところに手が届くプラグインを書いてみました。
[GitHub] munin-tcpstat
@zembutsu さんやその他先人に感謝。
== munin-tcpstatのつかいかた ==
GitHubにある tcpportstat_ を /usr/share/munin/plugins に設置
設置したスクリプトに実行権限を付与
/etc/munin/plugins/ にシンボリックリンクを貼る。
その時のリンクファイル名を
tcpportstat_%PORT% もしくは tcpportstat_all にしてください。
%PORT% を指定するとそのポート番号に対して、
allにするとポートを指定しない形でmunin実行時点での情報を取ってきます。
何かあればpull-req等もぜひにお待ちしております!
というか、muninのプラグイン書くの簡単やわ…簡単すぎるわー…
Muninを使うようになったので、ちょっとかゆいところに手が届くプラグインを書いてみました。
[GitHub] munin-tcpstat
@zembutsu さんやその他先人に感謝。
== munin-tcpstatのつかいかた ==
GitHubにある tcpportstat_ を /usr/share/munin/plugins に設置
設置したスクリプトに実行権限を付与
/etc/munin/plugins/ にシンボリックリンクを貼る。
その時のリンクファイル名を
tcpportstat_%PORT% もしくは tcpportstat_all にしてください。
%PORT% を指定するとそのポート番号に対して、
allにするとポートを指定しない形でmunin実行時点での情報を取ってきます。
何かあればpull-req等もぜひにお待ちしております!
というか、muninのプラグイン書くの簡単やわ…簡単すぎるわー…
Dell R310 + PERC H700 + SATA2.0TB *4にて、RAID10を組んで見たところ。
CentOS 5.8インストール中に"GPTじゃないとディスクパーティション切れないけど、このシステムはGPTから起動できないよ?"と怒られてしまったです><
まぁ、ここまでは自分のミスというか、適当にやっちゃやっぱりダメだなーということで済むので、早速VirtualDiskを2TBで分割して再度インストールを試みたところ。。。
"Assertion ((PedSector) PED_LE64_TO_CPU (gpt->AlternateLBA) <= disk->dev->length - 1) at gpt.c:815 in function gpt_read() failed."
あれ…あれ…!?
何が起こったのかわからず、とりあえず再度インストールを試みるも、またもやNG。Ignoreしても結局インストールできず。
RAIDの設定変えて200GB単発のVDにしてみても変わらず
でも、2.2TB以上だとGPTで怒られる。
エラーメッセージでぐぐってみても、"Thanks, this has been fixed in parted v2.4"って、直ってねーよwww じゃない、CentOS 5.8に入ってるのって1.8.1だよwww
詰んだorz
どうしたものかといろいろ悩んだのですが、見てみたらどうやらディスク認識時にバグを踏んでるっぽい。
ってことは、もしかしてGPTのデータかもしくはそれに準じるものが認識されてしまってるのではないか、と推測。
じゃぁデータ上書きしてやるか、と一回ディスクを外して他のマシンでMBRにしてパーティションを切ってみる。
そして、また戻してRAID設定してみました。
キタ━━━━(゚∀゚)━━━━ッ!!
今まで踏んでたバグはどこへやら、何の問題なく認識しました。
GPTの中途半端なデータでバグるPartedなのか、VD構成でディスクの中身を書き換えないH700なのか、もしかしたらこの組み合わせ特有なのかもしれませんが、メモ程度に残しておきます。
CentOS 5.8インストール中に"GPTじゃないとディスクパーティション切れないけど、このシステムはGPTから起動できないよ?"と怒られてしまったです><
まぁ、ここまでは自分のミスというか、適当にやっちゃやっぱりダメだなーということで済むので、早速VirtualDiskを2TBで分割して再度インストールを試みたところ。。。
"Assertion ((PedSector) PED_LE64_TO_CPU (gpt->AlternateLBA) <= disk->dev->length - 1) at gpt.c:815 in function gpt_read() failed."
あれ…あれ…!?
何が起こったのかわからず、とりあえず再度インストールを試みるも、またもやNG。Ignoreしても結局インストールできず。
RAIDの設定変えて200GB単発のVDにしてみても変わらず
でも、2.2TB以上だとGPTで怒られる。
エラーメッセージでぐぐってみても、"Thanks, this has been fixed in parted v2.4"って、直ってねーよwww じゃない、CentOS 5.8に入ってるのって1.8.1だよwww
詰んだorz
どうしたものかといろいろ悩んだのですが、見てみたらどうやらディスク認識時にバグを踏んでるっぽい。
ってことは、もしかしてGPTのデータかもしくはそれに準じるものが認識されてしまってるのではないか、と推測。
じゃぁデータ上書きしてやるか、と一回ディスクを外して他のマシンでMBRにしてパーティションを切ってみる。
そして、また戻してRAID設定してみました。
キタ━━━━(゚∀゚)━━━━ッ!!
今まで踏んでたバグはどこへやら、何の問題なく認識しました。
GPTの中途半端なデータでバグるPartedなのか、VD構成でディスクの中身を書き換えないH700なのか、もしかしたらこの組み合わせ特有なのかもしれませんが、メモ程度に残しておきます。
自分的メモとして。
・問題点
/etc/sysconfig/network に書いたGATEWAYが反映されない
/etc/sysconfig/network には、ちゃんと GATEWAY=(社外向けGW) となっているにもかかわらず、だ。
ちなみに、社内NW向けのスタティックルートは /etc/sysconfig/network-scripts/route-eth0 というファイルで対応している。
さて、何が問題だろうか。まずはインストール時の処理をさかのぼってみることにする。
・問題点
/etc/sysconfig/network に書いたGATEWAYが反映されない
[root@localhost ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface (ローカルNW) 0.0.0.0 255.255.255.0 U 0 0 0 eth0 169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0 (社内NW) (社内向けGW) 255.0.0.0 UG 0 0 0 eth0 0.0.0.0 (社外向けGW) 0.0.0.0 UG 0 0 0 eth0となるべきが、
[root@localhost ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface (ローカルNW) 0.0.0.0 255.255.255.0 U 0 0 0 eth0 169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0 (社内NW) (社内向けGW) 255.0.0.0 UG 0 0 0 eth0 0.0.0.0 (社内向けGW) 0.0.0.0 UG 0 0 0 eth0となってしまうというもの。非常に参った。
/etc/sysconfig/network には、ちゃんと GATEWAY=(社外向けGW) となっているにもかかわらず、だ。
ちなみに、社内NW向けのスタティックルートは /etc/sysconfig/network-scripts/route-eth0 というファイルで対応している。
さて、何が問題だろうか。まずはインストール時の処理をさかのぼってみることにする。
参考「Linux HA Japan」:http://linux-ha.sourceforge.jp/wp/
構成図
powered by nwdiag + Adobe Illustrator
Pacemakerを使うのに、クラスタマネージャをHeartbeatかCorosyncか迷ったので、
まずはこんなものをTwitterへ投げてみたり。
http://twitter.com/H_Shinonome/status/105463900308373504
すると、Linux-HA界隈の方から次々と。
http://twitter.com/minky0/status/105465388506165248
http://twitter.com/minky0/status/105465811560439809
http://twitter.com/tsukishima_ha/status/105469359866118147
http://twitter.com/tsukishima_ha/status/105472064282038272
ありがたやありがたや。
ということで、Pacemaker + Heartbeatでクラスタリングをしてみたのです。
インストール手順は参考URLにあるので割愛。
まずはHeartbeatの設定から。
/etc/ha.d/ha.cf
ポイントは、一行目の [ pacemaker on ]
Heartbeat v2を使って、リソースマネージャにCRMを使ってる人は [ crm yes ] を残してしまうかもしれませんが、Heartbeat起動時にエラーになるので注意です。
その他の注意事項としては heartbeat の chkconfig は off にしておきましょう。
今回台数が4台ということもあるので、マルチキャストで相互監視をしています。
構成図
powered by nwdiag + Adobe Illustrator
Pacemakerを使うのに、クラスタマネージャをHeartbeatかCorosyncか迷ったので、
まずはこんなものをTwitterへ投げてみたり。
http://twitter.com/H_Shinonome/status/105463900308373504
すると、Linux-HA界隈の方から次々と。
http://twitter.com/minky0/status/105465388506165248
http://twitter.com/minky0/status/105465811560439809
http://twitter.com/tsukishima_ha/status/105469359866118147
http://twitter.com/tsukishima_ha/status/105472064282038272
ありがたやありがたや。
ということで、Pacemaker + Heartbeatでクラスタリングをしてみたのです。
インストール手順は参考URLにあるので割愛。
まずはHeartbeatの設定から。
/etc/ha.d/ha.cf
pacemaker on logfile /var/log/ha.log logfacility local1 keepalive 3 deadtime 15 deadping 20 warntime 5 initdead 60 udpport 694 auto_failback off mcast eth2 225.0.0.1 694 1 0 node LVS01 node LVS02 node LVS03 node LVS04 respawn root /usr/lib64/heartbeat/pingd -m 100 -d 5s -a default_ping_set
ポイントは、一行目の [ pacemaker on ]
Heartbeat v2を使って、リソースマネージャにCRMを使ってる人は [ crm yes ] を残してしまうかもしれませんが、Heartbeat起動時にエラーになるので注意です。
その他の注意事項としては heartbeat の chkconfig は off にしておきましょう。
今回台数が4台ということもあるので、マルチキャストで相互監視をしています。
3TB HDD導入にあたり、Western Digital WD30EZRSとHitachi GST HDS723030ALA640の検証をしてみた。
Bonnie++の結果は下記の通り (ファイルシステムはext4デフォルト)
予想通り、ランダム性能があがってる。
ついでに、こちらを参考にiopsを簡易測定してみた。
オリジナルスクリプトからの変更箇所は下記の通り
/dev/sdc 16.094 248.55 'Western Digital WD30EZRS セクタ合わせあり
/dev/sdd 12.687 315.29 'Hitachi GST HDS723030ALA640 セクタ合わせなし
/dev/sde 12.752 313.67 'Hitachi GST HDS723030ALA640 セクタ合わせあり
あれ?かわらん。
ぁ、デバイスに直接命令実行してるからかわらんのかな。と予想して、終了。
ちなみに、partedの表示は下記の通り
Bonnie++の結果は下記の通り (ファイルシステムはext4デフォルト)
- セクタ合わせ前
Western Digital WD30EZRS
------Sequential Output------ --Sequential Input- --Random-
-Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP
582 97 105430 31 50174 14 2333 94 121769 20 169.7 7
27990us 759ms 2279ms 15038us 94146us 2616ms
------Sequential Create------ --------Random Create--------
-Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
/sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP
15039 55 +++++ +++ +++++ +++ 24876 72 +++++ +++ +++++ +++
Hitachi GST HDS723030ALA640
------Sequential Output------ --Sequential Input- --Random-
-Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP
582 98 91263 34 60524 15 2275 96 146728 26 236.4 11
28100us 705ms 584ms 20871us 34202us 160ms
------Sequential Create------ --------Random Create--------
-Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
/sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP
21241 77 +++++ +++ 31458 51 24773 79 +++++ +++ 29594 53
- セクタ合わせ後
Western Digital WD30EZRS
------Sequential Output------ --Sequential Input- --Random-
-Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP
580 98 130905 49 61658 18 2515 97 133861 21 339.0 14
27992us 612ms 2155ms 16851us 100ms 2023ms
------Sequential Create------ --------Random Create--------
-Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
/sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP
17340 54 +++++ +++ +++++ +++ 25100 77 +++++ +++ +++++ +++
Hitachi GST HDS723030ALA640
------Sequential Output------ --Sequential Input- --Random-
-Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP
564 98 149921 51 71179 20 2463 97 157366 28 253.3 14
30132us 476ms 485ms 16935us 34721us 153ms
------Sequential Create------ --------Random Create--------
-Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
/sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP
18250 57 +++++ +++ +++++ +++ 26743 87 +++++ +++ +++++ +++
予想通り、ランダム性能があがってる。
ついでに、こちらを参考にiopsを簡易測定してみた。
オリジナルスクリプトからの変更箇所は下記の通り
/dev/sdb 16.252 246.13 'Western Digital WD30EZRS セクタ合わせなし# diff iops.rb iops_org.rb
29,30c29
< GB = MB * 1024
< Loop = 4000
---
> Loop = 400
35c34
< for disk in ['sdb', 'sdc', 'sdd', 'sde']
---
> for disk in ['hda', 'hdb', 'hdc']
/dev/sdc 16.094 248.55 'Western Digital WD30EZRS セクタ合わせあり
/dev/sdd 12.687 315.29 'Hitachi GST HDS723030ALA640 セクタ合わせなし
/dev/sde 12.752 313.67 'Hitachi GST HDS723030ALA640 セクタ合わせあり
あれ?かわらん。
ぁ、デバイスに直接命令実行してるからかわらんのかな。と予想して、終了。
ちなみに、partedの表示は下記の通り
# parted /dev/sdb
GNU Parted 1.8.1
/dev/sdb を使用
GNU Parted へようこそ! コマンド一覧を見るには 'help' と入力してください。
(parted) p
モデル: ATA WDC WD30EZRS-00J (scsi)
ディスク /dev/sdb: 3001GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: gpt
番号 開始 終了 サイズ ファイルシステム 名前 フラグ
1 17.4kB 3001GB 3001GB ext3 primary
(parted) select /dev/sdc
/dev/sdc を使用
(parted) p
モデル: ATA WDC WD30EZRS-00J (scsi)
ディスク /dev/sdc: 3001GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: gpt
番号 開始 終了 サイズ ファイルシステム 名前 フラグ
1 32.8kB 3001GB 3001GB ext3 primary
(parted) select /dev/sdd
/dev/sdd を使用
(parted) p
モデル: ATA Hitachi HDS72303 (scsi)
ディスク /dev/sdd: 3001GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: gpt
番号 開始 終了 サイズ ファイルシステム 名前 フラグ
1 17.4kB 3001GB 3001GB ext3 primary
(parted) select /dev/sde
/dev/sde を使用
(parted) p
モデル: ATA Hitachi HDS72303 (scsi)
ディスク /dev/sde: 3001GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: gpt
番号 開始 終了 サイズ ファイルシステム 名前 フラグ
1 32.8kB 3001GB 3001GB ext3 primary
(parted)