お勉強

新基幹システムの開発リーダから、Javaの学習の取っ掛かりとなるサンプルを作れとか言われた。

わしとしては、皆で分担して NetBeansを触って、互いに教えあって、組織としてのJava開発能力を上げるという相互利益になる方法で開発力を上げる方針だった。

で、そういう形式にしたらどうだ?と言ったところ、自分は文書書きをしなくてはならないからできないと宣うた。

この開発では、できる限り、文書作成を省略してやるという話で、このリーダの作る文書というのは、データフロー図等であり、上部に評価する組織があるなら必要だろうが、それを理解、評価できる人物がそもそも存在しない。

画面遷移図を作成し、実際に使う現場の承認を取れば良いのではないか?とわしが言っても、頑として、誰も理解できない図を作る事が必要だと言い張り、コーディングから逃げようとする。

つまり、このリーダは、人の組んだコードを少し弄って「ぼくが作りました」ってのをやりたいようだな。

恐らく、今まで人の組んだコードを少し弄って改造ってな仕事しかして来ていないのだろう。わしはそういう仕事もしてきたが、NetBeans のサンプルを触りあぐねている状態だから、その作戦は確実に失敗するだろうな。

だが、わしにしてみれば、当初目標の Java開発能力の習得ができるから、せいぜいわしの技術者としての価値を上げる事に利用させて貰おう。

今の部門は3人居るが、幸いあと一人は全くやる気が無いようだから、わしとしては、悪いけど最初から開発メンバーとは見ておらず、員数外だ。

しかし、妙にやる気を出して「教えて下さい」なんて来た日には、わしのコーディングに支障が出るから、今の状態は、かえってありがたいな。

RTX-1200設定

ひかり電話で使用しているフレッツ光のインターネット回線が、接続されずに遊んでいるそうなので、RTX-1200の設定弄って、メインのインターネット接続が障害で落ちた場合に、フレッツ光の回線を使うように設定した。

ip route default gateway pp 1 hide gateway pp 2 weight 0
ip lan3 address dhcp

pp select 2
description ntt
pp keepalive use off
pp always-on on
pp address 192.168.24.1/32
pp enable 2

と設定して、CTUの線をRTX-1200のlan3へ入れた。
RTX-1200はCTUのDHCPからIPアドレスを貰って、lan3インターフェースのIPアドレスが決定する。

自席のマシンから、ping 192.168.24.1 ってやると応答があるので、ちゃんとルーティングされてるっぽい。

非常時の回線として、一応、インターネット接続だけは確保できるが、VPNまでやろうと思ったら、CTUを取っ払って、ONUへRTX-1200を繋いでPPPoEとかでネゴればいいのかな?

しかし、VG820aを普通にRTX-1200にぶら下げて、ひかりオフィス電話が使えるのかよく分からん。多分、VG820aのパケットを、ONUのインターフェースを通るようにRTX-1200を設定してやらないと電話は使えないだろう。

あ、VG820aに固定IPアドレスを振って、
ip route 192.168.XXX.YYY/32 gateway pp 2
って設定してやればいいのか。

まあ、VPNを完全にバックアップ回線対応とするには、VPNの接続相手のルータ全ての設定やらないといけないから、お手軽にできるのは、CTUにぶら下げるところまでだな。

AHCI HotPlugを試す

Ubuntu 9.04 desktopでSATA IIディスクのHotPlugを試してみた。

挿した途端に、/var/log/messagesに認識されたログがでて、fdisk /dev/sdb もちゃんとできた。2台めの増設とか、RAID1の不良ディスク交換などは、AHCIなら無停止でできる訳だな。

あとやってみたいのが、RAID1で/dev/sdaがdegradeしたケース。
抜いたら /dev/sda が消えて、挿したら再び、/dev/sda が現れるのかな?

/dev/sdb になる場合は、抜き差ししても /dev/sdb として認識したから、多分、 /dev/sda でも大丈夫そう。

いつもは、VirtualBoxでシミュレーションしているが、SATA IIのディスクのHotPlugだけは、実機を使わないと試せないから、今の内にノウハウを貯めておこう。

YAMAHA RTX-1200のVPN

ここ二週間ほどRTX-1200同士で接続するVPNでのファイル転送が遅い問題と格闘していた。おかげで、結構YAMAHAのルータに詳しくなった 🙂

FTPで

本社→東京 30Mbps
本社←東京 300kbps

という感じで、片道だけ遅いという状況。

結局、東京のRTX-1200のPPインターフェースのMTUを1454→1400とてきとーに下げたら、遅いのが直った。

BフレッツMTUサイズ(1492ではなく1454の理由)

これによると、L2TPヘッダが付くので、MTUは1454で良いようで、インターネットの通信では特に遅い現象は発生していないので、問題は無いようだ。

しかし、VPNの時だけ著しい速度低下が発生し、尚且つ、MTUの値を下げれば改善するという事は、これはVPNのパケット送信時にdata fragmentが発生しているのではないかと予想される。

MTU1454byteって指定してるんだから、それに収まるようにやってくれているものとばっかり思ってたな。

問題は最適なMTUの値だが、1454byteで糞詰まり現象があったという事例が殆ど無いので、何が最適値なのかさっぱり分からない。

パスMTUディスカバリブラックホール問題」とは:ITpro

なんて、相当古い話だし、VPNの話とはいえ、今更、こんなのに悩まされるとは思ってもみなかった。

ピンボケ

面接に立ち会ったが、終始こちらの質問にピンボケな回答だった。

同僚は教育する前提で入れたいと言っていたが、こちらの質問に対し、ピンボケ回答をするって事は、論理的思考に難ありという事で、これは即ち、そもそも素質が無いという事だ。

そして思うのは、やっぱ国語は大事だねえという事。
いくら難しい数学の公式が解けたところで、こちらが話している事の意図を正確に理解できていないのでは話にならない。

テレビでやっていたが、工場で、張り紙に書いてある言葉の意味が理解できず、事故を起こすなんて事例もあるそうで、そこでは工員の基礎学力から教育しているとか。

そもそも安い賃金で募集してるのだから、それ相応の人材しか来ない事は分かっていて、逸材というのは万に一つの可能性だろう。

そして、地位なんぞには全く興味が無いわしは、逸材が入ってきて、上司の器であるならば、年齢には拘らず、その元でお仕えするつもりだ。その方が組織としてベストな結果になるし、第一楽だ 🙂

しかし、そういう夢のような結果にはならんので、現実を直視せねばならぬが、教育するにしても「義務教育からやり直せ!」というのは勘弁して欲しいものだ。

RAID

会社のasteriskのサーバのハードディスク冗長化を計画している。

LVM使ってたりするが、わしはLVMは全く弄った事が無いのでよく分からぬ。
しかし、Webにそのものズバリの手順が書いてあったので利用させていただいた。

そのシミュレーションとして、VirtualBoxでTurbolinux Client 2008 Live Edition のCDを使い、まず、LVMでファイルシステム構築。

そして、HDD追加してRAID1のアレイを作って、bootパーティションとrootパーティションをコピー。元のLVMをRAIDパーティションにしてアレイに追加。

無事LVM+RAID1の構築ができた。
で、HDDとっぱらって片肺起動テストすると、起動で止まる。

fsck.ext3で不正なパラメータとか言われる。
rootシェルで見ると、/dev/md0が無いという状態。色々検索しまくって、

mdadm –run /dev/md0

で有効にして、init 5で起動した。しかし、これでは迂闊にリモートで再起動かけられんぞ…。

Ubuntu server 9.04 でRAID1構築したら、片肺でも起動するけど、ディストリビューションによって、起動しないのもあるんだなあ。

HDP725050GLA360初期不良交換

BTOパソコンで、オプションで買ったHDP725050GLA360は、DFTというツールでErase Diskをやったが、0x75のコードで、ハードディスク故障というステータス。

販売元にメールしたら、初期不良で交換しますとの事で、着払いで送った。

F-Secure linuxゲートウエイ構築用で、RAID1で構築したが、足らない分は、わしが自腹切って買ったWestrn Digitalの500GBを使ったので、代わりのハードディスクが送られてきたら、わしのハードディスクは返してもらう。

返して貰ったところで、家には繋げられるパソコンが無いから、本当はどうでも良いのだが、会社のマシンに繋いで、RAID構築して、色々と技術習得させてもらうかな。

intel DG45IDとHDP725050GLA360

F-Secureのlinuxゲートウエイ用にBTOパソコンを調達したが、そいつが、DG45IDとHDP725050GLA360という組み合わせ。

BIOSで設定できるRAIDにハマり、AHCI+ソフトウエアRAIDもダメ。
最近、自作系は全くやってないので、情報を持ってなかったが、検索してびっくり。

intel ICH*R+HDP725050GLA360って、去年から、トラブルに上がりまくりの組み合わせじゃん。 orz

しょうがないので、IDEモードにして、ソフトウエアRAIDで冗長性を確保する事にした。

4GBメモリ搭載なので、/var/tmpをRAMDISKにすれば、それ程、動作も遅くないだろう。

メールサーバトラブル

朝、会社へ行ったら、社内の顧客管理用メールサーバで昨晩からメールが取得できてないとか。

ログ見たら、fetchmail というメール取得プログラムで SIGPIPE のエラーが出ていた。

問題のメールはSPAMメールのようだったので、取得元のメールサーバにThunderbirdのIMAPで接続して、メール削除してフォルダの「最適化」をやり、これでメールが削除できているはずなのだが、反応が鈍い。

Thunderbirdが応答しないので、しょうがないから、fetchmail を再度実行するも、亡霊のごとく、ログにはそのSPAMメールのFrom行が出てくる。

telnet で取得元の port 110 叩いて、POP3プロトコル手打ち。
RETR 1ってやると削除されてねえし orz

ThunderbirdでIMAPのexpungeが完全に実施されていなかったようだ。
で、DELE 1ってやったら再び応答しなくなる。
メールで顧客情報管理なんかやってるから、やたらとクソ重くてやってらんね。

で、そのメールを手動でフォルダに移動させて工程管理だから、紙を回してるのとやってる事は変わらないし、情報化とは程遠い。そもそも基幹システムがしっかりしてたら、客のメール回すなんて馬鹿げた事はやらなくても済む話。

ああ、イカン。トラブル対応でゲンナリして愚痴っぽくなってしまったな。

で、メール取得元サーバにログインして、ハングってるpop3dをkillして、一応、telnetのPOP3プロトコル手打ちで、メールが消えてるのを確認して、fetchmailを実行したら復旧した。

問題のメールは消してしまったが、転送設定で他のアカウントにもコピーが残るように冗長化されてるので、そのアカウントから発掘してソースをじっくり眺めてみた。

multipartのクソSPAMだが、そのpartの一部に、行頭がピリオドで始まっていた。

SMTPのDATAのお約束として、行頭ピリオド+改行でデータ終了の意味となり、fetchmailはそれを取得する際に、それでメールは終わりと判断するので、取得失敗となるようだ。

しょうがないので、Cyurus IMAPdで、DB更新時に root のDBファイル作って書けなくなるのを復旧するログ監視プログラムにfetchmailエラー時にimapsyncで受信トレイをコピーしてコピー元削除するコマンドを組み込んだ。

fetchmailと違って、配送では無いので、メールの振り分けができないが、pop3詰まりになって、メール取得がストップするよりはいいだろう。

自己啓発

わしは新入社員の部門説明の時に「日々、無為に過ごしてはいけない」と言った。

日々、何も考えずに過ごしていたのでは、非常に薄っぺらい人間になってしまう。もう遅いかもしれんが(笑)。

今のままでは、温くて腕が段々落ちてきそうなので、自己啓発としてJavaを習得してみようと思う。ネットワーク技術+データベース技術+クロスプラットフォームの技術を磨いておけば、暫く食うには困らなそうだし 🙂

「恒産無くして恒心無し」には成るまいぞ。