RSS

初出:2009年3月29日 14:10

この6年ばかり自宅で動かしていたサーバーは、Power Mac G4 800Dualでした。当時としてはデュアルプロセッサだし、メモリなんて1GB。サーバーとしては破格の性能でした。その後、Gigabitイーサーカードを2枚挿しにしてSATAカードで500GB×2をもつなど、順当に進化していきました。しかしなにせ7年前のモデルだけに、Leopardの動作対象から外れ、ついにはAppleから完全サポート対象外の機種に認定されるなど、もう先はない状態。そしてそんなことより、とにかく消費電力が異様に大きい! うちのブレーカーが落ちるたびに「こいつめ!」と槍玉に上がるわけです。エコとかそんなんじゃないよ。シャワーを浴びている時にブレーカーが落ちた時の苦しみは、エコよりもっと切実なことです。

macMiniAndPowerMac.jpg...で、晴れてこの度、中古ではありますがIntel Mac miniに変わりました。消費電力は400Wから20Wとグンと小さくなり、処理速度はウン十倍。うちはシューズクロークをサーバールーム代わりに使っているんですが、そもそもPower Macの動作音がうるさすぎて居住空間から隔離するための処置でした。でもMac miniならそんな配慮もいらない。まあ場所を動かす理由もないので、そのままシュークロールに居座ってもらいますが。

ただMac miniはさすがにサーバーに使うようには考慮されていないので、ハードディスクは2.5インチだし、Ethernetポートは1つしかない。つまり、Leopardサーバーを動かしてTime Machineバックアップ用のディスクを管理し、インターネットとLANをNATで結ぶなんてことはできないわけです。そこで、以下のものを追加購入。

  1. Seagate 2.5インチ SATA HDD 160GB/8MB/5400rpm
  2. 2GB DDR2 667MHz PC2-5300 SODIMM ×2枚
  3. PLANEX 1000BASE-T USB Ethernetアダプタ (MacBook Air対応) GU-1000Air/li>
  4. 裸族の二世帯住宅(CRNS35EU2/R
  5. Barracuda 7200.11 1.5TB(1500GB) Serial ATA [ST31500341AS]
  6. Mac mini 分解用ツール

結構買い込みましたが、値段はそれほどでも。1) はMac mini内蔵用で、最近は250GBでも7,000円ということを考えればそっちを買っても良かったけど、内蔵ディスクにはOSとユーザー環境のみ入れられれば良いということを考えると、160GBでも大きいくらいです。2) は合計4GBに増設するためのメモリですが、2枚で6,000円ですからね。すごい世界になったもんです。

USB_Ether_adapter.jpg

3)は本体にEthernetポートがひとつしかないMac miniですから、もうひとつEtherポートを追加するために使うグッドアイテム。USBに接続すればEthernetとして増設できるアダプタです。Ethernetが本体にないMacBook Air向けに売られているものですが、要はOSが認識してくれさえすればいいわけですから、当然どのMacでも使える。USB 2.0の制約から理論値最大480Mbpsと、Gigabitの速度は望めませんが、そもそも6MbpsのADSLに繋がればいいんだからノープロブレム。

CRNS35EU2.jpg 4) は外付けハードディスクを2台、RAIDとかじゃなく独立して動かせる筐体が欲しかったので、秋葉館でアウトレット品として出てたものを購入。前のサーバーで使っていた500GBに加えて、Time Machine用に5)の1.5TB HDDに突っ込んでます。HDDの装着も鬱陶しいケーブル配線とかいらずガシャポンでいけるのでラクチン。PCとはUSB 2.0とeSATAのどちらかで接続できるんですが、Mac miniの場合はUSB 2.0で繋ぎます。しかし、さすがにUSB、転送速度がとても遅い。うちのすべてのMacは、Mac miniに繋がれたHDDに向けてTime Machineバックアップを行うのですが、20GBとかバックアップするのに3時間くらいかかります。はー、遅い。今、目下の悩みはここです。

6) は分解しづらいMac miniをバキっと分解するためのヘラ。ホントに「バキ!」と言わせて開けるので、最初はかなりビビりましたが。まあ、しかしMac miniの中身はホントに変態的なまでに密度の濃い作りをしていますなあ。

最後にMac OS X Serverの話を。Power Mac G4ではずっとTiger Serverを稼働させていたんですが、そろそろLeopardにアップしたいと思い、そのタイミングを虎視眈々と狙ってました。Tiger Serverの頃はかなり行き当たりばったりの対処両方的に各種サービスをメンテしていたので、きちんと動かないことがしばしば。そこで今回Leopard Serverにアップグレードする際は、まずはきちんと設定しようと頑張りました。で、Leopard Serverで新たにできるようになったことは、こんな感じです。

  • Time Machineサーバー。家のMacのTime Machineのバックアップ先をMac miniの1.5TBに集中。家が火事になってもこのハードディスクさえ持ち出せば、とりあえず一安心。
  • Kerberosサーバー。Tiger Serverではどうやってもうまく稼働しなかったけど、今回はバッチリ。DNS周りが原因だったかも。おかげでクライアント側のSyslogからKerberosのエラーが消えました。
  • このブログを格納しているDBをMySQLからSQLiteへ変更。1ファイルになってくれたんで、Time Machineでのバックアップがラクチン。

Googleさんは、この記事をこう解釈しました

記事の詳細ページ

記事の全文を表示します。関連するコメントやトラックバックなどもこちらからどうぞ。

本日のBGM

★印があったら「これは聴いてみてほしい!」という推薦曲です。曲名をクリックするとiTunes Storeへジャンプします。

'; // loop through the songs in the array and get 4 fields that I want to see foreach ($songs as $song) { $output .= '
  • '; if ($song["Rating"] == 100){ $output .= ''.$song["Rating"].''; } $output .= '
    '; $output .= '
    '.$song["Name"].''; $output .= '
    '.$song["Artist"].''; $output .= ''.$song["Album"].''; if ($song["Year"]){ $output .= '('.$song["Year"].')'; } $output .= '
  • '; } // end the table $output .= ''; // show my new table print ($output); } ?>

    Now & Then

    Twitter Updates

      OAuthRequest('https://api.twitter.com/1.1/statuses/user_timeline.json','GET',array('screen_name' =>$search_word,'count' =>'3')); //Jsonデータをオブジェクトに変更 $oObj = json_decode($vRequest); //var_dump(json_decode($vRequest)); //オブジェクトを展開 for($i_tweet = 0; $i_tweet < sizeof($oObj); $i_tweet++){ $screen_name = $oObj[$i_tweet] -> {'screen_name'};//ユーザーID $profile_image_url = $oObj[$i_tweet] -> {'profile_image_url'};//プロフィール画像のURL $text = $oObj[$i_tweet] -> {'text'};//ツイート $date = $oObj[$i_tweet] -> {'created_at'};//時間 $tweet_time=strtotime($date);//Unixタイムスタンプ形式に変換 $now_time=time();//現在の時刻をUnixタイムスタンプで取得 $relative_time=$now_time-$tweet_time;//つぶやかれたのが何秒前か if($relative_time<60){//ss $displayTime = $relative_time.'秒前'; }elseif($relative_time>=60 && $relative_time<(60*60)){//mm $displayTime = floor($relative_time/60).'分前'; }elseif($relative_time>=(60*60) && $relative_time<(60*60*24)){//hh $displayTime = floor($relative_time/(60*60)).'時間前'; }elseif($relative_time>=(60*60*24)){//日付 $displayTime = date('n月j日',$tweet_time); } //表示 echo '
    • ' . $text .'' . $displayTime . '
    • '; } ?>
    follow me on Twitter