Google Code Prettify

2008年11月29日

ReadyNAS Duo を購入

ファイルサーバを普通のPCで組み、常時起動して運用すると、月々の電気代がちょっと気になる。

今使っている PC+HDDx4 台の電力消費をワットチェッカで計測すると、ほぼ130W前後になる。コイツが、24時間通電してると、一日 約3kW/h で、約60円程度になる。年間約2万円くらい使ってる計算になる。

RAID0+1の構成が取れるHDDx4台は魅力的だが、、、長期的に見ればHDDx2台(RAID1)のNASに移行するべきですかぁね。。。

HDDx2(RAID1)のNASは、各社多様に製品が展開されている主戦場ですなぁ〜〜

HDDが交換が簡単で扱い易そうなものが良いので、「ReadyNAS Duo」のべアボーンタイプを選択してみた。


"ReadyNAS Duo ホームメディア・サーバー ペアボーンタイプ" (ネットギア)

搭載されているX-RAIDを使えば、容量が同じでない場合でも冗長構成を取れる。余っているSATA HDDとかは容量はまちまちな場合が多いので結構便利だと思う。

最初の初期化は何やらHDD上にファームを展開してるためなのか結構時間がかかる。焦らずに Web管理画面(FrontView) にアクセスできるまで気長に待つ必要がある。

add-onで種々の拡張ができるのも売りで、SSHアクセスやDebian由来のAPTが可能である。 apt が参照してるパッケージ群はベンダーのNETGEAR提供のものに加え、Debian/sarge のものが使える。

ただ sarge 自体はサポート終了してるので、apt-line を debian-archive の近いサイトに変更する必要がある。

deb http://www.readynas.com/packages readynas/

deb http://ftp.riken.jp/Linux/debian/debian-archive sarge main contrib non-free
deb http://ftp.riken.jp/Linux/debian/debian-non-US sarge/non-US main contrib non-free

今更な sarge かぁ。。。

また、NASには珍しく主メモリS.O.DIMMで提供されてより大きなものに交換ができ、より複雑なアプリでもを動かした場合も、結構スラッシングを抑えられる。

でもsargeベースなんだよなぁ。。。

普通にベンダーのファームを使い切るのがベストなんだと思うなぁ。

コイツに使われてる IT3017 は、どうも LEON とか言う Sparc v8 互換のCPUらしい、、、つまり、初めて所有する Sparc になりましたっす。。。 というか Sparc+aptの2点で買いだったのだが、、、

SSH でアクセス出来るので、ローカルでベンチを取ったところシーケンスIn/Outともに、普通のPCの半分以下程度だったっす。ベンチの計測中は、どうもPCに比べてCPUが回りすぎる気がする。

コイツのSATAのバスマスタ転送の実装がヘボイのか、今のx86系のChipsetが優秀すぎるのか、どっちだろう?

今後出てくるだろうATOM系のNASの性能が答えを出してくれるんだろうなぁ。というか、早く優秀なChipset積んで出てこいやぁ!!

まぁ ReadyNAS Duo はNASとしては買っても損はないが、もう少し凝ったことをやりたければ、debian/lenny がインストールできるQNAP NASGLAN Tankとかがお勧めだなぁ。

sarge 止まりなんだよなぁ。。。惜しいなぁ

2008年10月23日

MacOSX 上の Acrobat の OCR の奇妙な文字化けに対処する

MacOSX の OCR の選択肢は狭く、ちょっと躊躇する分野である。そのため、Acrobat 搭載の OCR が重宝すると思う。

しかし!!

僕の持っている Acrobat 8.1.2 では OCR 処理後に埋め込まれる文字が奇妙な文字化けを起こして、全く使えなかった。

ググりまくっても対処法が見つからずに途方に暮れていた。

はて?なんすかね?

ふと文字化け文字列をコピペして UTF-8として再認識させると 80% 位が日本語として識別できるようになった。

詳しく調べてみると、OCR処理後に埋め込まれる文字列が「90ms-RKSJ-H」というエンコードで符号化される(要するにShift-JISの亜流)はずが、コイツの中身が勝手に「UTF-8」になってるっぽい?らしい。

小一日後、、、ふと思ったのが、環境変数LANGかなくらい。。。

LANG変数は、結構昔に ~/.MacOSX/environment.plistで ja_JP.UTF-8 と設定してある。

コイツを削除してみた。。。

あぁぁ、奇妙な文字化けがなくなったぁぁ。

どうやら、MacOSX 版の Acrobat Pro 8.1.2 に含まれる OCR 機能は、勝手に環境変数LANGを参照して、文字化けになってるっぽい。

なんだかなぁ、、、疲れる仕様だなぁ

2008年8月5日

NicoProxy2 と Squid を MacOSX 上で 組み合わせる

最近は元気が無いがニコニコ動画は面白い。Youtube や Veoh に上がってる動画も面白い。

しかし、動画のファイルサイズは HTML/CSS/JavaScript に比べて大きすぎるためか、 キャッシュプロクシとは本当に相性が悪すぎる。Squid でキャッシュ保存するサイズを大きめに取って対処していたのだが、、、どうも気持ちが悪い。

ニコニコ動画限定だが専用のキャッシュサーバ「NicoProxy2」が出てきている。そのうち、動画専用キャッシュサーバがぼこぼこ出て来るんかいなぁ。

なので、Squid と NicoProxy2 を組み合わせてみた。

ユーザは外部サイトを Squid を通してアクセスする状況で、Squid がニコニコ動画の動画リクエストのみNicoProxy2 に委託するのが目的。

NicoProxy2の立ち上げ

手軽に launchd 経由で立ち上げたいので daemondo が含まれる MacPorts を入れてく。

ソースを取ってきて、適当な場所に置く。

# ls -l /opt/local/etc/nicoproxy/
total 24
-rw-r--r--  1 root  admin   321 Aug  5 16:36 conf.yml
-rw-r--r--  1 root  admin  8062 Aug  5 18:58 nicoproxy.rb

もうこの状態で、conf.yml を弄れば、Proxy として機能すると思う。動作確認したら、launchd 用の定義ファイルとラッパースクリプトを書く。

/opt/local/etc/LaunchDaemons/org.macports.nicoproxy/org.macports.nicoproxy.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Debug</key>
	<false/>
	<key>Label</key>
	<string>org.macports.nicoproxy</string>
	<key>OnDemand</key>
	<false/>
	<key>ProgramArguments</key>
	<array>
		<string>/opt/local/bin/daemondo</string>
		<string>--label=nicoproxy</string>
		<string>--start-cmd</string>
		<string>/opt/local/etc/LaunchDaemons/org.macports.nicoproxy/nicoproxy.wrapper</string>
		<string>start</string>
		<string>;</string>
		<string>--stop-cmd</string>
		<string>/opt/local/etc/LaunchDaemons/org.macports.nicoproxy/nicoproxy.wrapper</string>
		<string>stop</string>
		<string>;</string>
		<string>--restart-cmd</string>
		<string>/opt/local/etc/LaunchDaemons/org.macports.nicoproxy/nicoproxy.wrapper</string>
		<string>restart</string>
		<string>;</string>
		<string>--pid=none</string>
	</array>
	<key>RunAtLoad</key>
	<false/>
</dict>
</plist>

/opt/local/etc/LaunchDaemons/org.macports.nicoproxy/nicoproxy.wrapper

#!/bin/sh

prefix=/opt/local
pidfile=/opt/local/var/run/nicoproxy.pid

Start()
{
	cd /opt/local/etc/nicoproxy
	ruby ./nicoproxy.rb &
	echo $! > $pidfile
}

Stop()
{
	kill `cat $pidfile`
}

Restart()
{
	Stop
	Start
}

Run()
{
case $1 in
  start  ) Start   ;;
  stop   ) Stop    ;;
  restart) Restart ;;
  *      ) echo "$0: unknown argument: $1";;
esac
}

Run $1

launchd に登録すれば、再起動しても自動的に上がってくれる筈?

# launchctl load -w /opt/local/etc/LaunchDaemons/org.macports.nicoproxy/org.macports.nicoproxy.plist
...
# launchctl list | grep nicoproxy    
62595	-	org.macports.nicoproxy
...
# ln -s /opt/local/etc/LaunchDaemons/org.macports.nicoproxy/org.macports.nicoproxy.plist /Library/LaunchDaemons/

まぁ、MacPorts に含まれていないのに、org.macports.XXXX なのは愛嬌ってことで。

Squid と連携する

Squid は、MacPorts のものを入れ、取り敢えず動かせる所まではやっておく。NicoProxy2 連携用に、次の設定を加える。但し、例では NicoProxy2 のポートは 25255に変えてあり、自身のホストがCNAMEとか追加して nicoproxy.example.com で引けるようになっているので、各自の環境に合わせる必要がある。

squid.conf

...
# nico proxy
acl nico url_regex -i ^http://www\.nicovideo\.jp/api/getflv/?
acl nico url_regex -i ^http://.*\.nicovideo\.jp/smile\?
cache_peer nicoproxy.example.com. parent 25255 0 proxy-only no-query
cache_peer_access nicoproxy.example.com. allow nico
never_direct allow nico

まとめ

NicoProxy2はon-the-flyでは転送しないのかぁ。。。

久しぶりの投稿

かなり期間が空いてしまったが、ブログを再開してみようと思う。 2013年3月が直前の投稿だったが、頻繁に更新していた時期が 2011年11月までなので、8年間ぶりとなる。 8年間なにをしていたのかと言えば、2回転職して未だにIT技術者の職を得ている。 その...