イーモバイル D01NX故障、D02HW買い増しへ

頻度は低くとも常に仕事用ノートPCにはイーモバイルの D01NX が刺さっていたわけですが。ある日OS起動をするとドライバをインストールするかと聞かれるようになった。ダウンロードしたドライバのファイルがあったので指定しても見つかりませんとな。。。デバイスが認識できないので、もちろんつないで使うこともできない。

この現象って購入直後の初期不良の現象と同じでは?と前のいやな思いがよぎる。またサポートに電話して意味のない問診に答えて、送って返ってきて試してってのもやりたくないし、MacBook買ったらUSBタイプじゃないと使えないからいっそ変えてしまいたいと思った。

調べると買い増しということができるらしい。単純に端末2台目購入というイメージ。

会社帰りにビックカメラへ行きイーモバイルの販売員さんに買い増し可能かどうか聞いてみる。新しいモデルは買い増し未対応らしいが、D02HWは ¥2,980 で買えるらしい。

http://emobile.jp/products/hw/d02hw/images/D02HW.jpg?w=830

本当はUSBメモリのような形状が良かったがまぁ安いしいいか、ということで購入。申し込んで30分後くらいに開通連絡が来て、帰り道にユーティリティーをセットアップしてつながった。

D01NXはドライバのみインストールして、ダイヤルアップ接続の設定でつなげられたけど、D02HWは本体にユーティリティのインストーラーが入っていて、それをインストールしなければいけない。あまりアプリは入れたくなかったけど、しょうがない。

とりあえず安く手間少なく外で使える環境が復活できたので、まぁ良かった。

  • 2008/12/10 追記: 書き忘れてしまったが、買い増しした段階からまた1年割が適用されるので、すでに利用して1年以上経っていてもさらに1年間しばりが発生するので注意。

エンジニアのあり方について共感した

いつも読んでいるブログ(小野和俊のブログ)で紹介していたインタビュー記事に今自分が考えるエンジニアのあり方と非常に共感した部分があった。

 よくあるのが、エンジニアが資格を取って、こういう資格があって仕事ができます、ということを会社やエンジニアが仕事をもらうために宣伝している例。

 これでは同じ資格を持っているほかの人と交換可能なことを示しているのであって、そうじゃなくてあの人はこんなシステムを作ったことがあるとか、こんな短期間にできるとか、自分自身がワンノブゼムではなく、自分にしかできないことを言わないとダメ。いきなりナンバーワンにはなれなくても、こういうことを心がけている、というのでもいい、そういうのをアピールできないと、そういう自分にしかできないことを見つけないと、ISV でも SI でもどの業態でも、よい仕事や顧客とめぐりあえないのではないでしょうか。

仕事のしかたのレベルはあると思っていて、エンジニアがよりレベルをあげていくと組織やグループの中では単に言われたことをやる軸のない歯車から、自分自身がより動力になっていく軸のある大きな歯車の立場になっていく。そうなっていった時に自分自身の実績から自信と自分の価値を自覚する。

それが分かると会社に属していることがステイタスというより、自分自身はどういう人間かを明示したりブログに書いて発信したりして、アピールしたりフィードバックをもらっていくほうがより自分自身の成長のためになると思えてくる。

ここ2年くらいの経験を振り返るとまさに自分がどんなことを実際やっていて、どんなことを考えているかをこのブログに残してきたと思う。

背景としては終身雇用崩壊して人材の流動が激しくなって、就職する際にどういう人かを問われるケースが多くなったこともあるが、個人がweb上で自分自身を表現しやすくなったことのほうがはるかに大きい。

自分の経験と背景を通じて考えるに、これからは「***ができる」「***をやってきた」という基準で小さな個人でも今までの大きな会社同様、顧客から仕事をするパートナーとして選ばれるようになると思っている。

この流れをある程度確信しつつ、それを実行していくために最も動きやすい個人の形態でのスタートアップを自分は選んだ。

近所の焼き芋

近所の田んぼで焼き芋大会があるというので家族で行ってきた。焼き芋は無料で配られるらしい。

最近は焚き火をしてはいけないとかあるので、外で焼き芋なんて子どものころ以来かと思う。

収穫の終わった田んぼに入るとすでに煙にくすぶっている山なりのものがいくつかある。良く見ると落ち葉の山ではなくて籾殻の山で炎は出さずにいぶし焼みたいにしている。

f:id:d_sea:20081115123355j:image

稲の収穫後のだから無駄にならずにこういう利用方法があるのかと感心した。しかし籾殻に火をつけても炎が出るわけでなくくすぶるような感じで煙のみが出るのだなぁ。これなら子どもにも危なくないし、若干エコなのかも。

焼きあがるまでの間、この焼き芋大会を主催してくださっている地元の農家の人たちによるクイズ大会をしたりして子ども達を飽きないようにしてくださった。

始まってから待つこと45分くらいして山の中の焼き芋を掘り出し始めて配り始めた。

f:id:d_sea:20081115124619j:image

実際いただいた焼き芋はすごく大きくって、中までホクホク。

f:id:d_sea:20081115135132j:image

いや~おいしかった!蒸し焼きみたいにしているから中までちゃんと火が通っていくんだなぁ。スーパーで売っているサツマイモはここまで大きいものはないそうなので、出荷する手前で落とされてしまうのかもしれない。不恰好でも大きすぎてもおいしいものは普通に流通すればいいのに、もったいない。

しかし、印象的だったのはこの焼き芋大会を主催してくださった田んぼの持ち主さんとサツマイモを提供してくれているであろう農家の方々の姿。皆さん元気で明るくって力強かった。歳は自分の親くらいの方でもどんどん動いて準備してくれるし、なかなか焼けない芋があって待っていてもその時間を楽しんでいるかのように笑顔だった。土からエネルギーをもらっているからかもしれない。

PCにずっと向き合っていることを仕事としている自分にとってはなんともうらやましく感じた。これが昔から人が生きていくために行ってきた仕事の根本であるような気がして、仕事の全てをリセットしなくちゃいけないときに思い切ってやってみてもいいかなと思ってしまった。そこには優劣とか関係なく純粋に働いた分に対する収穫が得られる世界がある。

焼き芋大会は毎年やっているようで、また来年も予定されているらしい。準備してくださった農家の皆さん、本当においしい焼き芋と素敵な時間をありがとうございました。

Mac Book を買ってしまう宣言

http://img.kakaku.com/images/productimage/fullscale/00209017463.jpg?w=500

いつかは使うんだろうなぁという根拠のない漠然とした思いを持ちつつ、渋谷のアップルストアに仕事帰りに寄ってきました。

f:id:d_sea:20081113224034j:image:w200

写真は店員さんからもらった名刺とパーソナルショッピングの案内カード。こういう名刺いいなぁ。どうしても昔のマックのロゴ(七色の横シマ模様)のイメージもあるから、ここまで単色になっていることに若干違和感もあったり。

そろそろ自分のメインとなるノートPCを決めるべく何にしようか考えていた訳ですが、もう Mac Book にしてしまえっ!と宣言してしまいます。# といっても買うのはもう少し先なのですが、、まだまだ値下がりしそうなので。

機種は下位のCPUが2GHzものでもスペックは動画や画像をほとんど扱わない自分としては十分。

今はWindows Vista を使っているのですが、やはりOS自体が重い印象だし(メモリ1GBだと絶対足りない)、フォントの見にくさ(メイリオは見やすいけど横幅取るしTPOによるかな)、設定まわりの分かりづらさ/使いづらさもあるので、使ってる上のストレスはあるかと思う。このストレスとずっと付き合う覚悟をしてお金払うのもなんだか、自分らしくないなぁと思っていたところ。

ちょうどいいタイミングで Mac Book の発売。しかも15万を切った定価は想定コスト内。重さもバッテリーもまぁこのくらいならOK。

それよりも何よりも BSD ベース(Unix)になったマックで、サーバとしていろいろ出来ることがありそうで興味津々。

年内には買う予定。あー、楽しみになってきた。

[server] https できたものを http にリダイレクトさせる on Apache

作業メモ。以下のようなことをしたいときの RedirectMatch の正規表現を忘れてしまいそうなので。

  • https でアクセスにきたものを http にリダイレクトさせる
  • その際、ホスト名とそれ以下の URL は保持されること

例) https://www.temp.domain.com/temp/temp.html できたものを http://www.temp.domain.com/temp/temp.html へリダイレクトさせる

  • 前提環境</p>
    • 複数のホスト名をサービスしているとして、temp-ssl.conf 上、Virtual Host で設定している
    • ここでは仮に temp.domain.com に https できたものを http にリダイレクトする

  • 1) /etc/httpd/conf/ or /etc/httpd/conf.d/ にある temp-ssl.conf に以下の記述を追記

Cacti でトラフィックを合算したグラフを作成する方法

サーバが複数台あるとwebのフロントだけで合計したらどれくらいのトラフィックになるかとか、運用上拡張を考慮しするやっぱり知りたくなる。Cactiでどうやるのか調べて出来たのでそのメモ。

以下は3つ以上のインターフェイスを合算する場合のカスタマイズ方法。2つインターフェイスの合算であれば途中のカスタマイズ作業は不要で5)からはじめればOK。

元ネタは Cactiの本家フォーラムから。

0) 作業前の前提条件
  • 合算させたいインターフェイスを持つサーバやスイッチはすでに Cacti 上の Devices として登録済みであること
  • SNMP Interface Statistics にて該当 Devices のトラフィックが Cacti にて取得できていること
1) トラフィック合計をしてくれるテンプレートを入手する

f:id:d_sea:20081105162455p:image

    • 直接ダウンロードはこちらを右クリックしてリンク先を保存する (いきなりクリックすると xml の中身が見えてしまいます)
  • Cacti コンソール画面からインポート
  • Cacti画面で、[console] – [Import/Export] – [ImportTemplates] をクリックして、ダウンロードした xml ファイルを選択して save
    • この時、Import RRA Settings は Use Defaults for this installation を選択

f:id:d_sea:20081105151321p:image

2) カスタマイズ用テンプレートの作成
  • [console] – [Templates] – [Graph Templates] をクリックして、Aggregate 2 Graph が追加されていることを確認
  • 一応、カスタマイズ用のテンプレートを別で用意するため、Aggregate 2 Graph のチェックボックスにチェックを入れて、下の Choose an action: で Duplicate を選択して go を押す
  • Title Format を任意に決めて yes を押す
    • 例えばインターフェイス8つ分であれば Aggregate 8 Graph とかにする
3) カスタマイズ用 CDEFs を作成
  • [console] – [Management] – [Graph Management] – [CDEFs] をクリック
  • 右端の Add をクリック
  • Name を任意につけて create をクリック
    • Name はトラフィックのIN/OUT用2つ作るのでわかりやすいように、Combine 8 IN とか Combine 8 OUTとかにしておく
  • 続いて、CDEF Items の Add をクリック
  • CDEF Items の CDEF Item Type を Custom String を選択し、下の CDEF Item Value が空白になるので、そこに記入して save を押す

ここでは逆ポーランド記法(RPN)で対象インターフェイスのトラフィックデータを加算してbit表示する式を書く。

合算させたいインターフェイスの数ごとに以下のようになる

インターフェイス数 IN側 OUT側
2 a,b,+,8,* c,d,+,8,*
8 a,b,c,d,e,f,g,h,+,+,+,+,+,+,+,8,* i,j,ba,bb,bc,bd,be,bf,+,+,+,+,+,+,+,8,*
14 a,b,c,d,e,f,g,h,i,j,ba,bb,bc,bd,+,+,+,+,+,+,+,+,+,+,+,+,+,8,* be,bf,bg,bh,bi,bj,ca,cb,cc,cd,ce,cf,cg,ch,+,+,+,+,+,+,+,+,+,+,+,+,+,8,*

インターフェイス数が増えれば対応するアルファベットを増やせば適用される。アルファベットの順番は a~j まで行ったら、ba~bj、その後は ca~cj というようになるようだ。INのアルファベット順に続けてOUTのアルファベットにする。

4) Graph Templates をカスタマイズ
  • 再び [console] – [Templates] – [Graph Templates] をクリックして、新しく作成された Template Title をクリック
  • 合算させたいインターフェイス数に対して足りない分の Item # を IN/OUT ともに作成する
    • Graph Template Items の Add をクリックする
    • 設定内容は既存の Data Source が (traffic_in) と (traffic_out) の内容と同様にする
    • 作成された Item # を IN/OUT それぞれ Data Source (No Task):Inbound の上になるよう上向き矢印ボタンで移動させる
  • Data Source が (No task):Inbound/Outbound/Current/Average/Maximum の Item # をそれぞれ変更する
    • それぞれをクリックして CDEF Function を先ほど作成した CDEFs を選択して save を押す</p>
      • 例では Combine 8 IN とした部分。IN側/OUT側を間違えないように

f:id:d_sea:20081105164306p:image

  • Graph Item Inputs を確認</p>
    • Graph Item Inputs の Item ** が合算させたいインターフェイスの数になっているか確認</p>
      • 一通り、記載されている Graph Item Inputs の内容を確認する
      • Name は 連番で命名。FeildType は DataSource、Associated Graph Items は順番どおりの位置にチェックされているか
      • チェックが2つ付いてしまっているケースもあるので、順番どおり1つがチェックされるように変更する
    • [Graph Template] – [Upper Limit] が 100 になっているので、1Gbpsまでトラフィックが流れる場合は 1000 に変更する
    • 一通り変更が終わったら save を押す
5) グラフを作成
  • [console] – [Management] – [Graph Management] をクリックして、Graph Management 右端の Add をクリック
  • Selected Graph Template にて、作成した Graph Template 名を選択(例だと Aggregate 8 Graph)
  • Host のプルダウンは None を選んだまま create を押す
  • Supplemental Graph Template Data – Graph Item Fields にて合算させたいインターフェイスを選択する
  • 選択したら最下部の save を押す
  • グラフが描けていればOK
  • RRDTool Command での動作確認は上部の Turn On Graph Debug Mode をクリックすれば下部に出力結果がでる

合計のみのグラフとして1つ作成させるとこんな感じに見れます。クリックするとホストのグラフと同様、weekly, monthly, yearlyのグラフが見られます。

f:id:d_sea:20081105174720p:image

小学校の授業参観にいってみて思ったこと

子どもの小学校の授業参観が土曜日にあったので行ってきた。はじめて子どもが通っている学校の教室へ入る。

事前に嫁からは先生の話がが聞けない子。席を立ってしまう子がいてなかなか授業にならない状況を聞いていた。その話を聞くと原因は核家族とか子供同士の関わり方の変化とかそういうものが精神的に影響してしまっていて、それが表面化してしまっている。と思っていたが、実際授業を見てどうやら違うと思えた。

子供たちはとても素直で、元気で、正直で、うれしい時はうれしそうな顔をしていた。すごく素直でまっすぐな印象を受けた。これは自分の子供時代と共通するような、時代が過ぎてもあまり変わっていないような気がした。

授業が進む。国語の授業で2ページほどの文章を読み、情景に対してどう思ったかを子供たちに考えさせて発表させることをしていた。授業の後半で話を聞かなくなる子、席を立つ子がいた。確かにいたがそれは授業に飽きてしまっているからのように見えた。

現象の原因は授業をする立場の面白さの提供不足かと思った。

子供たちはあいまいな質問に長時間答えることにもう飽きてしまっていた。どう思うかをしつこく聞かれたところで、表現するために使える単語は多く持ってないので一文で終わってしまうのだ。

もっと彼らは表現する単語を覚えられるし、覚えたいと思っているだろう。あいまいな質問を続けるよりかは表現するための単語や漢字をもっと覚える時間に使ったほうが子ども達(聞いている側)の興味を満たしているように思えた。

この時期の子供の脳の発達はすばらしいと思う。細胞がどんどん活性化されて広がって行くこの時期に、授業の内容や先生の話が活性化するための刺激にはなっていない。

これがゆとり教育の現場かと思えた。ゆとりと聞くとネガティブさがないが、実際これはスピード感のない、刺激の少ない退屈な時間。になっていると思えた。

これは小学校の先生と生徒の関係だけではなくて、大学での講義をする人/受ける人、社会人ではのプレゼンをする人/聞く人の関係も同じだと思う。細かい単位だと会議や打合せで発言する人/聞く人の関係もそう。発表や話をする人の内容がよければ聞く人は聞いてくれる。つまらなければ聞いてくれない。大学では寝てしまうだろうし、社会人であればプレゼン中でも突っ込まれたり、結果的に顧客に認められず失注という結果になったりする。

プレゼンする人は聞いている人の時間を奪いながらも自分が主張させてもらっていることをもっと自覚したほうがいいと思っている。自分の話す言葉を考え、聞いてくれる相手に対して謙虚になり、自分の力がどこまで届くかのチャレンジだという意識を持って望むべきだと思う。

この自覚を持って話してみるだけでも、かなりの質的向上が図れると思う。

MySQL ユーザカンファレンス 2008 に行ってきました

勉強がてら MySQLユーザカンファレンス2008 に行ってきた。結構内容は濃かったと思うが、講演時間が50分の質問タイムなし+資料配布なしなので、ちゃんと理解するには厳しい環境だった。当日のスライドは後日webで公開されるらしい。

Sunに買収されて有償商品の紹介が多かったような。各セッションは立ち見やキャンセル待ちが出るほどの盛況ぶりで、確かに MySQL のコアで最近な情報は本も含め出回っていない感がするので、それだけ需要があるということなのだろう。実際運用されている方の話も普段表には出ないので貴重だったかと思う。

以下、バッテリーが切れるまで取れるだけ取れたメモ。
# ノートPCのバッテリーは4時間くらい持ってくれればモバイルする意欲がもっと沸くのだが、、、
# あとは開場にコンセント用意してくれると大変ありがたい。

1日目 10/30

MySQLデータベースシステムの設計で役立つソリューション

サン・マイクロシステムズ MySQLビジネス統括本部 梶山

14:00-14:50

クラスタリング 高可用性
  • 可用性=稼働性
  • 止めていい日数が多いほど可用性が高い
  • 止めてもいい月間4日くらい レプリケーション
レプリケーション
  • シンプルな設定、マスター=>スレーブ、多数webでの実績
  • 非同期型 ほとんどの場合読み込みだけ 参照性能を上げる
  • 良い構成(M:S) 1:1、1:1:N(階層的)、1:N ならOK
    • US チケットマスター 階層的な構成で構築した
  • いまいちな構成 MS:MS、△構成
  • ダメな構成 N:1
  • 書き込み性能UPは DRBD、Active/Passiveクラスタ で冗長するケースが多い
    • スレーブサーバで障害が起きた際には別のサーバに再接続
    • テーブルごとにサーバを分けることも可能
  • MySQL Proxy オープンソース
    • クライアントとサーバ間で稼働する
    • ロードバランス
    • フェールオーバー
DRBD
  • 一般的なIPネットワーク上で動作
  • 分散ストレージ、ネットワークRAID
  • Linux上のみで利用可能
  • ハートビートを飛ばしあって確認
Actve/passive
  • 昔ながらの構成
MySQL Cluster
  • シェアードナッシング型クラスタ
  • 複数の MySQL Server にて Nodes構成、Data複数 にて Nodes 構成
  • ネットワーク越しに RAID 構成しているような感じ
  • Single Point of failure がない構成
  • MySQL Server~DataNode 間に NDB API を設けることが出来る
トータルとして大規模構成
  • データセンターごとに MySQL Clustre 同士をレプリケーション
  • CGE ライセンスが必要 Standalone では構成できない
memcached 分散キャッシュ
  • mixi, LiveJournal, Yahoo!, Facebook 大規模webサイトで利用
  • MySQLから伽主を読み書きする
  • UDFが開発中
  • MySQL Enterprise でSUNが対応可能
  • HP が公開しているドキュメント HP Open Source?
DRBD Plus 商用製品
  • ディザスタリカバリ
セキュリティ設計
  • ユーザ認証 ユーザ名/パスワードが同じでも接続元が異なれば別アカウント
  • ユーザ権限 Level5 行列ごとに適用可能
  • 実装済み データ暗号化、SSL、MySQL Enterprise Monitor監視、mysql_secure_installationセキュリティ強化
  • 実装予定 ロールベースのアカウント管理、外部認証との連携 開発状況は http://forge.mysql.com work logにて公開
バックアップ
  • MySQLバックアップ方法 Warm
  • mysqldump Warm
  • OSコピーコマンド Warm
  • mysqlhotcopy Warm
  • MySQL Administrator Warm
  • レプリケーション Hot
  • スナップショット Hot
  • InnoDB Hot Backup(有償) Hot
NetApp
  • 外部ストレージ
  • スナップショットでのバックアップ
監視方式 MySQL Enterprise Monitor
  • 一括監視可能なダッシュボード
  • クエリーアナライザー 統計情報の分析が可能 近日リリース
    • SQL文に対して リクエスト数、レスポンス時間などwebからみれる
  • エージェントインストールが必要
  • アドバイザー機能あり
  • 他ツールと連携 メール通知、SNMP対応

金融機関向けMySQLを活用したシステム事例紹介

野村総合研究所 情報技術本部 オープンソースソリューションセンター(OSSC) 寺田

15:00-15:50

自己紹介
  • 2003年オープンソース OSSC 設立
  • Linux、Tomcatなど使う MySQLパートナー契約
  • 40種類のオープンソース扱う OpenStandia サービスというらしい
  • 今後もオープンソースの導入が進むだろう
事例紹介 金融会社
  • コスト削減でオープンソースを活用したい OSもDBまわりも
  • NRI DBエンジニアが商用製品の良いと思っているところ
    • 採用実績、安定度、多くの技術者、ノウハウの展開、大規模システムでの事例
  • MySQLのメリット
    • シンプルなアーキテクチャ
    • 理解しやすい、設計が容易
    • 圧倒的なコスト削減効果
  • 導入前の実現可能性検証した ダメだったら Oracle にする予定
    • 性能面評価 Select(Index Scan/Full Scan),Insert
    • 機能面の評価 バックアップ、リカバリー、クラスター(冗長化)
    • 結果 耐えうると判断 導入へ
  • 構成 RedHat Enterprise + MySQL、JBoss AS、Apache httpd
    • MySQL は2台構成
  • 5年間コスト(初期費+5年間保守費)で1/7へ 短期間で完了
  • 顧客より
    • コスト削減はOK、性能信頼性も満たしている、より大規模システムに向けた機能には不満</p>
      • パーテション機能ない 5.1で対応予定 検証してから入れましょうにしている
冗長構成
  • 非同期シングルマスタ レプリケーション
  • 同期シングルマスタ 共有ディスク、商用クラスタ DRBD # 今回は商用クラスタを使った
  • 同期マルチクラスタ MySQL Cluster 最近出てきた
事例紹介 サービス業L社
  • プロジェクト管理システム
  • 負荷分散(ロードバランサー)、DBもすべてオープンソースに出来ないか
    • CentOS, Apache, mod_jk, JBoss AS, MySQL</p>
      • JAVAを使った場合は mod_jk の高負荷時のパフォーマンスが良い
  • コスト削減効果 5年間コスト 1/5になった
事例紹介 メディア企業 O社
  • インターネットサイト Tomcat、MySQLを採用
  • 冗長には MySQL Cluster を採用
  • MySQL ServerとDataNodeのセット 2つ 障害時にはフェイルオーバして、たすき状にデータが流れる
  • MySQL Cluster まだでたばかり 5.0.40以降は比較的安定している、くせがある、スケールアウトしやすい
事例紹介 金融機関 D社
  • 証券のオンライントレードシステム 高い信頼性、高いピーク性
  • 商用アプリケーションのサポートレベルが不満 サポート期間短い3年 バージョンアップが頻繁
  • 1次切り分けは顧客実施、サポート1次窓口の質が悪かった、サポート履歴管理していない
  • オープンソースでサポートの質を上げたい ソースが見れる
    • JBOSS AS、OpenStandiaで7年間サポート
  • 基幹DBは Oracle、参照用で MySQL
  • 顧客側から ハードのコストは下がっているがソフトのコストが負担になる
    • 台数が増えてもコストが増えない スケールメリットでやすい

2日目 10/31

ストレージエンジンまとめて概要説明

サン・マイクロシステムズ MySQL ビジネス統括本部 梶山

10:00-10:50

ストレージエンジンのメリット
  • 例)メモリーストレージエンジン 処理能力を向上、Archiveストレージエンジン ディスク容量を削減
  • MyISAM オーバーヘッドを配して応答性能を向上
  • すべてのエンジンには外部からのアクセス方法は共通
ストレージエンジンの役割
  • データレイアウト どこに格納するか
  • インデックス 実装アルゴリズム
  • メモリ利用 データキャッシュ、バッファリング
  • トランザクション
  • 同時実行 ロックの単位、排他制御
MySQL ストレージエンジン SUNがつくっているもの
  • MyISAM : 標準、トランザクション対応していない、ファイルシステムの置き換え
  • Falcon(Alpha) : トランザクション
  • Memory : 高速ルックアップ、参照頻度が高いアプリ向け
  • Archive : SELECT/INSERT のみ、ロギングや監査向け
  • Merge : MySQL5.1より前のパーテショニング的機能
  • Federated : 分散配置したデータに透過的にアクセス
  • Custom : エンジンを開発するためのベース
  • Blackhole : 書き込んだデータをすべて飲み込む dev/null 的なエンジン
サードパーティ製ストレージエンジン
  • InnoDB : 標準的なトランザクションアプリケーション向け Oracleが作っている
  • InfoBright : GB-TB 級データウエアハウス向け
  • DB2 : IBM用
何を使っているか
  • 2006年調査 エンジン名 一般ユーザ、Enterprise、OEM 割合
  • MyISAM 69%, 83%, 65%
  • InnoDB 60%, 79%, 54%
  • Memory 10%, 18%, 9%
  • Archive 5%, 6%, 1%
  • Merge 3%, 12%, 3%
次 5.1
  • プラグインとしてエンジンを追加できるようになる
  • 出力先がログファイルではなくログテーブルにためるようになる(csvストレージエンジンで作られた) slow.log
  • SQLもしくはCSV形式で出力できるようになる
ストレージエンジンごとの性能の違い
  • Archive の INSERT処理能力はMyISAMの1.5倍くらい早い
  • Archiveの処理能力は商用DBのテーブルの1.6倍
その他 こんなことも出来ます
  • CSVストレージエンジン : CSV形式で扱う、高速データローディング、インデックス利用不可
  • Bloackhole : 利用例 binログをレプリケーション多段間で受け渡すときに間に使う
コマンド
  • 確認 show engines/G
  • CREATE TABLE 文で指定できる ENGINE = InnoDB;
  • 変更可能 ALTER TABLE t ENGINE = MEMORY;
  • テーブルに設定したエンジンの確認 SHOW CREATE TABLE temp/G
MyISAM
  • 1つのテーブルが3つのファイルで構成されている .frm, .MYD, .MYI
  • 可搬性の高いストレージエンジン
  • トランザクション非対応、テーブルレベルロック
  • テーブルを圧縮可能 圧縮後は読み取り専用になる myisampack コマンド実行(基本的にMySQLを停止して実行)
  • Fulltext, GISインデックスをサポート
  • Concurrent Insert をサポート
InnoDB
  • 表領域ファイルにテーブルデータとインデックスを格納</p>
    • テーブルごとにデータファイルの作成も可能
    • RAW デバイスを表領域として利用可能
Memory
  • データおよびインデックスはメインメモリ上に配置
  • ディスク上にはテーブル定義ファイルのみ存在
Federated
  • 別のサーバ上のテーブルに接続するしているように見える
開発途上のエンジンもあり
  • MySQL Web の wiki?に開発中のものが試せるようだ

MySQL Clusterで高性能システムを構築する際のポイント

住商情報システム 廣濱

11:00-11:50

MySQL Cluster とは
  • 非共有ディスク型 特別なHWいらない
  • アクティブ/アクティブ型
  • 概要図より
    • アプリ~SQL Node~DataNode
    • 直接 DataNode に触れる NDB API がある
    • MySQL 上位層 NDB(NDB API)~DataNode
    • DataNode でデータの管理をしている
MySQL Clusterが利用するアプリケーション
  • SQL Node経由
  • NDB アプリケーション(JAVA/C++ アプリ)
    • SQLクエリを発行することは出来ないが高速
MySQL Cluster 配布形態
  • MySQL Cluster 6.2.15 CGE/SE
  • エディションの違い Standard Edision/Carrier Grade Edition
    • NDB Bindings なし/あり
ベンチマーク
  • CGE にて 25%UP 以前のものより性能向上
ディスクテーブル
  • メモリベース、ディスクベース、ディスクベース(チューニングなし) の順に
  • バッファーをチューニングする場合はメモリとあまり変わらない
  • DiskPageBufferMemory デフォルト64MB 可能な限り多く割り当てる
SQL Node
  • 1台あたり50同時接続で最大性能等傾向は変わらない
  • CPU利用率はSQLNode 4台で初めて90%近くまで上昇
    • シングルスレッドなので
InnoDBとMySQL Clusterの処理比較
  • スループット MySQL Cluster CGE6.2.13 > 5.12 > InnoDB
  • MySQL Cluster のほうが性能がいい
  • ただし バイナリログを出すと InnoDBは倍近い性能になった
ベンチマークまとめ
  • ディスクテーブルの全面的な採用はまだ早い
  • DataNodeはすくなく、SQLNodeはおおく、レプリカ数は少なく、同時接続数は50くらい
    • MySQL Cluster 5.0 と同じ考え
  • DataNodeはシングルスレッドなので CPUコア数を増やしても性能はのびない
    • 6.4 で改善される予定
システム構成例
  • 非同期レプリケーションを SQLNode/DataNode/アプリケーション の2セット間でおこなう
  • ディザスタリカバリを防ぐ 東京が落ちても大阪で提供し続ける
MySQL Clusterに適したアプリケーション
  • データの見積が設計時になる程度可能なシステム
  • JOINやSUB QUERYをほとんど利用しないアプリケーション
  • 検索するカラムにはインデックスが張られている メモリ上に保持するので上限あり
  • 単純なSQLクエリを大量に発行するアプリケーション
  • 高い可用性が要求される
制限
  • 設計見積よりもデータ容量が大きくなってしまったら</p>
    • MySQL Cluster だけでは難しい 止めなくてはいけない
  • オンラインでマイグレーションできる 住商の製品であるらしい
まとめ
  • MySQL Cluter 6.2 は使える</p>
    • 海外での事例は多数
    • 日本でも増えてきている
  • 住商情報のwebで資料配布する MySQL でもwebにのせる予定

MySQLデータベースレプリケーションを理解する

Sun Microsystems Inc. ブライアン・エーカー

15:00-15:50

用語の定義
  • Instance MySQLの1つのプロセス
  • レプリケーションとは
    • 同じデータをもうひとつにコピーされる、自動的に non-blocking
  • user applicatin – MySQL instance(binlog) – MySQL Slave Instance(Relay binlog)
    • スレーブはより長いログを持つ 迅速さではなく保持するように働く
  • 5.0 Architecture
    • マスター スレーブにつなげる、マスターへつなげる
  • Clustering はレプリケーションとは違う
    • レプリケーションはリアルタイムではない
    • レプリケーション自身の障害を tolerant できない
    • 2つのフェーズをコミットできない
  • Cluster はMySQL Instance が Cluster とやり取りを行う
  • MySQL CLuster は同時にトランザクションを行う
    • memory 上で処理する
  • Read Replication Cluster
    • 非同期、書き込み
    • フェールオーバーしやすい
  • Application Cluster
    • User Application — MySQL InnoDB — MySQL MYISAM が応答
  • full text and Innodb
  • Replicate Data to separate host
  • blackhole binlog だけに残したい I/O は

以下はバッテリー切れのため手書きメモ程度。。。

</div>

古巣の職場を久々に見て感じたこと

近くまで行ったので、古巣の職場にちょこっとだけ寄った。インターネットバックボーン運用から離れてもう2.5年もたつのか。ずっと一緒にやってきた人と少し話したり思ったりした時のメモ。

  • IPv6を結構本気で取り組んでいた</p>
    • v6フルルートは前から持っていたけど、そこから後のコア~エッジはなかったけど作ったらしい。顧客要望も出てきたらしい。
    • Windows Vista は IPv6 native なので、かなり使えるらしい
  • マルチキャストもトライ中
    • 自AS内でのマルチキャストネットワークは構築した
    • マルチキャスト対応のアプリがない。。
    • AS間マルチキャスト用のプロトコルがあるらしい PIM-SM というらしい
    • クライアントレベルでチェックするときにアプリがないらしい
  • 自分がいたころに苦労してひいたサイト間ダークファイバがサービスとして顧客提供されていた
  • 監視ツールが SiteScope(しかもWindowsサーバ上で動いていた)のが、Nagiosに変わっていた # 偶然にも同じ
  • border ルータがある程度あって、トラフィック分散できていれば Cisco GSR 級はいらないよなぁ
  • ある程度バックボーンが作れてしまえば、ネットワーク的なものはそこから先あまりない
  • ロードバランサとファイアウォールまで提供するサービスでもやってみたら?
    • 顧客はサーバ管理の注力できる
    • 1台/顧客だとコスト的に高くつくので、バーチャルマシン的に出来ないと # ポートがたくさんあればいいのだろうけど

久々にコアネットワークの雰囲気を感じれたな。

大事だと思ったのは運用を単にこなすのではなくて、エンジニアが発想しながら技術的なチャレンジを怠らず作り続けることかな。余計な雑音を入れずに技術的アウトプットを出すことに集中できる環境を提供する余裕が経営やマネージメント層にあるかどうかが肝なのだろう。背景には技術的なアプトプットがもたらす革新的な力を信じることだと思う。

そういえばコールリアントが買収されていた

http://japan.zdnet.com/news/ir/story/0,2000056187,20364138,00.htm

全然知らなかった。大きくなってプロフェッショナル部隊の価値が下がらなければいいけど。

行っていたら IRI で一緒だった方ともまた同じ会社になっていたかもなのかw

ネットワークエンジニアとして極める道もあったけど、インターネットサービスの立ち上げは譲れなかったから、自分にとっては結果オーライなのだろう。