読者です 読者をやめる 読者になる 読者になる

よかろうもん!

アプリからインフラまで幅広くこなすいまどきのクラウドエンジニアが記す技術ブログ

オープンソースカンファレンス2008 2日目

今日もよい刺激になりました。
昨日は講演を聞くのがメインだったけど、今日は展示ブースで話をすることが多かったな。
hinemosのことやらDRBDのことやら。
hinemosについては実際に開発している人とシステム内部のことで話せて面白かった。
今後の展望についてはあまりお話を伺うことはできなかったけど、せっかくなんでロードマップを公開してもらいたいなぁ。

DRBD Plusのブースでは1時間近くも担当の方々とお話させていただきました。
応用的な活用方法参考になりました!ありがとうございました。
あとで頂いた名刺を見直して、『えっ!』と思ったのですが、どうも代表取締役の方とずっと話していたみたい・・・。こんな未熟者にアドバイスくださり、ありがとうございました。

では、本日のメモを残しておきます。

Xen こんな使い方いかがですか

  • お客様が抱えている課題

・物理的空間(ラックの空きスペース、床の耐荷重)
・電力
・空調設備
・コンソール(コンソール切替機、モニタ、キーボード、マウス)
・物理的な管理(ケーブリング)
・ランニングコスト(保守費用、電気代)

  • ディスクの仮想化

・RAID
・論理簿ルームマネージャ
・グリッドファイルシステムMogileFS,Gfarm

  • LVM

・スナップショットを取得するとディスクの中身が壊れる可能性あり

  • VLAN

・タグVLAN
 ケーブル1本でOKなので物理要素の数が激減
 ifconfigのパラメータを設定することですぐに利用可能

SCSIプロトコルをTCP/IP網で使う
・SANのようなものが簡単&安価に組める
ディザスタリカバリもOK
Xenと組み合わせて利用可能
 ※Xen徹底入門に解説あり!

  • Xenで以下のような技術も動作する

IPsecスタック
・user-mode PPPoE
・IProute2

  • 仮想したときのI/Oなどのオーバーヘッド

・完全仮想化
  ・Paravirtual Driverを利用すると不使用のときと比較したら20倍くらいの差
  ・イベントチャネルにはほとんど負荷はかかっていない

・どのコアで動かすかを指定することが可能
  ※Xen徹底入門に解説あり

  • 仮想化する上でのサイジング

・CPUを使い切らないようにサイジングをする必要あり
仮想マシンに乗せるサーバにもよる
  ・ピークタイムが分散しているものを統合するのも使い方の一つ
・CPU,ネットワーク性能は60%以内で納まるようにしている
クラスタ構成を組んでいる場合は、障害時のことを考慮しておく

  • Xenのディスク

・XMスケットコマンドを利用するとディスクにアクセスする時間を制限することが可能

Samba最新動向

  • samba3.0系列の開発状況

・開発は終息

  • samba3.2系列の開発状況

・最近はあまり活動していない
・GPLv3対応
・AD連携関連の機能強化
  ・Ldap署名対応、クロスフォレスト対応
Linux以外の環境のACLサポート強化

  • samba4.0系列の開発状況

・現状
  ・グループポリシーの設定は可能だが有効に動作していないのが現状

・ADサポートが大幅強化
  ・各種設定変更(情報格納)もwindowsから可能に

・今後の予定
  ・ADのDC(ドメインコントローラ)機能
    ・グループポリシー
  ・NTFS機能(ACL,ストリーム)の完全サポート
    ・Unixはrwxがだwindowsの設定は複数存在
    ・3.0系ではNTFSとUNIXACLとで非互換な機能がある
    ・4.0系ではNTFS固有の属性をUNIXファイルシステム
  ・リモート管理機能の互換性向上
  ・SWAT
    ・標準でSSLに対応
  ・SMB2.0対応
  ・クラスタサポート
  ・パラメータの統廃合

・Windows2008との互換性
  ・windowsNTのサポート打ち切り

PostgreSQL 8.3

リリースノートに詳細は掲載されているのでそちらを参照にするとよい

・日本におけるDB製品では第2位のシェア
 ・1位がOracle
 ・2位がpostgreSQL
 ・3位がMySQL
  3つで3/4を占めている

MySQLとの性能比較(M5.0 vs P8.2)
  ・負荷が増えても急激にパフォーマンスは低下しない

  • どこが早くなったのか

・更新性能(HOT)
  ・今まで
    ・行データについて更新を繰り返すと各バージョンを記録(物理的にデータが増える)し、さらにインデックスも複数になってしまい、パフォーマンスが低下する
  ・HOT(Heap Only Tuple)
    ・更新対象列にインデックスカラムが含まれていない場合に有効
    ・Vacuumの必要性を減らす
      ・更新を繰り返してもインデックスは増えないように
      ・不要な行(不要なバージョン)を削除
    ・HOTの有無では2倍近くベンチマークで差がでる(900万カラム)

  ・Hotの適用条件
    ・更新の際に値が変化した列にインデックスが張られていない(不要なインデックスを張らない)
    ・更新処理が行われたときにページに空きがある(FILLFACTORの必要性)
  ・HOTが「自動VACUUM」を行う条件
    ・以下のようなページにアクセスした際
      ・以前に更新か削除が実施された
      ・ブロック内の空き領域がページサイズの1/10か、FILLFACTORで指定した値を下回っている
    ・abortした更新や削除にはHOTは適用されない(通常のVACUUMが必要)

・同期スキャン
  ・今まで
    ・共有バッファに入りきらないような大きなテーブルを複数セッションが順スキャンするとキャッシュヒット率が低下する
  ・同期スキャン
    ・常にテーブルの先頭からスキャンするのではなく、バッファキャッシュにキャッシュされたものから読み込む
  ・同期スキャン利用上の注意
    ・テーブルの先頭からスキャンしないので、行返却順序が問題になる場合は、order byを利用する必要がある

・非同期コミット
  ・fsync=offとは違い、整合性は保たれる
  ・同期コミットの1.6倍の性能

・ORDER BY LIMITの高速化
  ・8.2と比較すると14倍以上の高速化
  ・メモリでsortする

・WALログ(トランザクションログ)の省略
  ・不要なWALログの出力がなくなった

  • どこが使い勝手がよくなったのか

・Auto Vacuum
  ・デフォルトで有効になった
  ・デフォルトの設定でも問題が生じることは少ないと思われる
・ソート処理のモニタリング
  ・sort時に劇的にパフォーマンスが低下することがよくある
  ・メモリにはいらない場合は作業ファイルを作成する
    ・どの程度の作業ファイルが必要だったかも調査することが可能に

・ログ項目の追加
  ・ロック待ち状態のトランザクションを表示
  ・チェックポイントログ

・更新可能カーソル
  ・従来のカーソルは更新不可能だった
  ・「FOR UPDATE」をつけて更新可能カーソルへ

全文検索機能
  ・tsearch2が本体に取り込まれた
  ・インデックスを追加するだけでOK
  ・分かち書きにする前処理が必要
    ・mecabを利用

XML対応
  ・SQL:2003のXML対応
  ・XMLデータ型の提供
  ・データのインポート、エクスポートが可能

DRBD

・ディレクトリ単位でのミラーリングは不可能(ルート以下をミラーリングは無理)

keepalivedよりもheartbeastの方がおすすめ
  ・特に大きな差はないが、サポートがしっかりしている

・DRBDのベンチマーク資料が公開されている

MySQLクラスタと比較
  ・DRBDを利用する場合、データの障害復旧は手動で行う必要あり
  ・比較資料なし

・非同期でのミラーリングは手動ではできない
  ・スタンバイ側で障害が発生した場合は、アクティブ側で更新データを保持しておき、復旧後に一括書き込み

・ローカルのディスクに書き込むよりDRBDでのミラーリングの方が早い場合があるが、CPU使用率は劇的に上昇する

・アプリケーションデータの約10倍の帯域がベスト
・最近では金融系のお客様が増えてきている

・ディザスタでDRBDを利用する場合は、専用線の帯域が問題になるかも

hinemos

  • 設定データ移行

・できないことはない(データをダンプすればOKらしい)
・2.3から2.4へのバージョンアップ時には再設定が必要
  ・リリース後に何かしらデータ移行ツールが提供されるかも・・・

  • 要求

・WEB画面の要求はそこそこあるらしい
  ・RSS配信についてはWEB画面が作られることになったら実装されるかも
・オリジナルメッセージでエラー行の内容をメールに載せることが可能
・認証つきのHTTP監視
  ・実装するかもしれない

  • hinemos開発日記

・開発メンバーが書いている
・開発メンバーは5人