flowplayerとストリーミング

flowplayerはGPLライセンスで、個人で使用するにはダウンロードするだけという使いやすいFlash動画プレイヤーだ。

今まで書くのを後回しにしていたので、wikiにも少し書いておきました。

こちらは一般的なストリーミング(と勘違いされやすい)方式のプログレッシブダウンロード。

シークを実装するには、動画とサーバの双方で対応しないとダメ。

http://www.ainoniwa.net/doku/web/flash/pseudo/

こっちはFlashでRTMP(≠RTP,RTCP)を使用したライブストリーミング方式。

http://www.ainoniwa.net/doku/web/flash/rtmp/

まぁ、割とそのへんに転がってる話題なので、整理程度に。

more…

RAIDZ + 電源断

UPSを設置したから、瞬断位なら耐えられるぜ!→初仕事は輪番停電。

という華麗なコンボを食らったので、RAIDZのresilver中に停電が来たらどうなるの、っと。

手順。

  1. ファイルを作る。(300MiBを2300個。
  2. replace開始
  3. 適当なところで電源ケーブル引っこ抜く
  4. 挿しなおして再起動
  5. おわり

最初はこんな状態。

~# zpool status replace-test
pool: replace-test
state: ONLINE
scan: none requested
config:

NAME STATE READ WRITE CKSUM
replace-test ONLINE 0 0 0
raidz1-0 ONLINE 0 0 0
c3t1d0 ONLINE 0 0 0
c3t2d0 ONLINE 0 0 0 …
more…

Centreon 2.1.12を使ってみる

CentreonというNagiosのフロントエンドのようなものがある。

NagiosとCactiを足してZabbixで薄めたような感じ。

個人的な感触では、日本語対応さえすればZabbixより視認性は上なんじゃないかと思う。

Linux, FreeBSD, NW機器の監視は、今のところ割と良好に動いている...ように見える。

wikiの方に記述してるので、Zabbixがイマイチだと思った人は試してもいいんじゃないかなぁ。

http://www.ainoniwa.net/doku/management/centreon/start

記載状況

Done

  • Ubuntu 10.04 server amd64へのインストール
  • HDDの温度監視
  • グラフ周りの調整

ToDo

  • 基本操作の記述
  • syslog-ngによるログの集中管理のテストと記述
  • Solaris、VMware、Windowsの監視周りのテストと記述
more…

DTraceでTCPを眺めてみる

TCPの帯域遅延積とかスロースタートの理解が、人によって異なる話はさておき。

DTraceを使ってTCPフローを眺めたら、もしかしてCongestion Windowも可視化出来るんじゃね?って思って簡単なDスクリプトを書いてみた。

一瞬かじっただけなので、非常に稚拙なのは許してぽん。

少し手直し。

#!/usr/sbin/dtrace -s
#pragma D option quiet
#pragma D option switchrate=50hz
dtrace:::BEGIN
{
printf(" %3s %15s:%-5s      %15s:%-5s %6s  %s  %10s %6s %6s %6s\n", "CPU", "LADDR", "LPORT", "RADDR", "RPORT", "BYTES", "FLAGS", "LWIN", "LTHRESH", "RWIN", "RSCALE");
}

tcp:::send …
more…

tsファイル置き場としてのZFS deduplicaition

zpool v28のdeduplicationを有効にしても、tsファイルだとブロック重複はこれっぽっちも働かないから、幻想を抱くのはやめようね。という実例。

環境は前回と同じ(GT110b - Mem1GB + Mem12GB + BR10i)

状況:

# zfs get all dup-test/rec \grep dedup
dup-test/rec dedup on local

# zpool list
NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT
dup-test 1.81T 1.74T 72.8G 96% 1.00x ONLINE -
rpool 19.9G 8.33G 11 …
more…

pfでv6NATしてみる

今までv6ってほらグローバルだし!の妄想にとりつかれていたので、pfでv6NATしてフレッツ・スクウェアv6に抜けていくことを、ちっとも考えていなかった。

そろそろv6NAT使いたい状況ってのも増えてくるはずだし…と、思っていたら、手元の環境はフレッツ・スクウェアv6にproxyで抜けてた。NATしろよ俺。

設定を書き散らかそうと思ったけど、実はpf.confに以下を書き足しただけだった。:

#-----------------------------------------------
# IPv6 NAT
#-----------------------------------------------
#binat on $ra_if inet6 from 2001:380:e08:f7::/64 to 2001:c90::/32 -> 2001:c90:XXXX:XXXX::/64
nat on $ra_if inet6 from 2001:380:e08:f7::/64 to 2001:c90::/32 -> 2001 …
more…

HTS725050A9A364

HTS725050A9A364の読み込み性能を軽く測った結果、ZFSの記事は飛ばし記事みたいになってしまったから、当たり障りの無い表現に修正しておこう。

決してファイルシステムによる性能劣化…ではない、という辺りで。

とはいえ、何も考えずにdd使うと、ZFSは外周から素直に埋めていくってことは分かったよね。って言い訳。:

# dd if=/dev/dsk/c3t1d0 of=/dev/null bs=512k count=30720
30720+0 records in
30720+0 records out
16106127360 bytes (16 GB) copied, 154.042 s, 105 MB/s

# dd if=/dev/dsk/c3t1d0 of=/dev/null bs …
more…

ZFSの性能劣化について - snapshot無し版

前回は、テストケースに合わせた測定をしたので、そこからSnapshotを取得しない(したとしても、別のプールの)場合を考える。

少しファイル量を調整(定常CAP 94%、測定終了時CAP98%位)したので、厳密な比較ではないです。

本当は、性能の回復に向けたデータ取得がしたいのだけど、スクリプトが上手く表現できなさそうだったから、簡単な方からやりました。

しかし、ディスクの内外周性能差が直接グラフに出てるだけで、ZFSさんは何も悪くない感じですね、マジで。

以下特に面白くないグラフぺたぺた。

image0

snapshot取得時に比べると、低下は若干緩やかになっている。

440GiB地点では、何故かReadが向上してWriteは低下している。

たまたまシーケンシャルに近い動きをしたのかもしれない けど、そもそもZFSさんはどの程度アロケートサイズの間隔を持たせるのかよく知らないので割愛。

しかし、概ねsnapshotを取得していた場合と傾向は似ており、snapshotを大量に取得することで、性能に大幅な影響を与える可能性は今のところ少ないように見える。

(データの削除やパーティションごとのデータ移動に伴って、snapshotの示すデータ位置のフラグメンテーションが激しくなる場合は性能が劣化して当然なので、実運用における結論とはならない)

性能劣化はファイルシステムじゃなくて、ディスクの内外周の速度差に起因するものだと見ても良いレベル。

image1

概ね同様の傾向。

image2

2枚目と同様の傾向。

352GiB地点における安定感から、440GiB地点のぶれは、微妙に余った外周部分にも読み書きが発生しているだけのように見える。

image3

応答時間は徐々に増えているが、440GiB地点のぶれは、同様にディスクの内外周に起因するものに見える。

snapshot取得時はこのような傾向が見えていなかったが、若干ファイル数の調整を行ったのが裏目に出た感じかなぁ…。

再取得してくるます。

image4

zpool …

more…

ZFSの性能劣化について

ZFSはHDDの空き領域の現象に伴って、性能が劣化すると言われている。

自宅で動いているZFSなファイルサーバのパフォーマンスも、少し落ちてきている気もする。

そこで、簡単なテストケースを準備して、性能劣化が見られるか試してみることにした。

結論から言うと、別に容量問題は存在しないように見受けられる。

空き領域が減ったら問題が起きるわけではない、と言うだけ。

一般的な書き換え頻度によって長期間運用された結果、空き領域が足りなくなった状況においては、 直接的に性能に影響を及ぼす要素は、単純な空き領域以外の要素(CoWによるデータの散らばりやフラグメント)ではないかと考えられる。 そして、性能低下と言う状況が表面化するタイミングを見極めるうえで、空き領域を指標として用いる、と言うのが直感的に理解しやすいために、空き領域が足りなくなると性能が極端に低下する、と表現されるような気がしている。

試験環境

  • GT110b + OpenIndiana v148

OpenIndianaから見た情報

  • HDD(HTS725050A9A364):

    # format
     Searching for disks...
     Failed to inquiry this logical diskdone
    
    AVAILABLE DISK SELECTIONS:
     0. c2d0 <????pHoH??[Xq???? cyl 2608 alt …
more…

Intel EXPI9402PT + isc-dhcpd + istgt = iSCSI Boot

静的に設定したら、iSCSI Bootが出来ることは、ググっていくつか日本語情報がありました。

せっかくなので、DHCPでディスクの交換ができるようにして、

  1. LUN1にwindows 7を入れて、PCをiSCSI Bootしている。
  2. LUN2にCentOSを入れてあるとする。
  3. DHCPサーバの公開LUNを2に変更する。
  4. PCを再起動する。
  5. CentOSが立ち上がる。

こいつぁ楽だ!(正直OSのインストールがめんどい。)

しかも、LUNの配置場所をzfs createしてrollbackできるようにしたりすると・・・楽だ!

ということが言いたかったので、軽く設定して動作確認してみました。

という話をwikiに書きました。

http://www.ainoniwa.net/doku/device/nic/expi9402pt/start

more…