サーバ更新
録画サーバとして使い始めると、なかなか止められなくて、ハードもOSも変えずに使い続けてたわけですが、
例の年末セールの安鯖TX1310M1を手に入れて、お引越し中です。
ようやくOSを更新できるよ。。9.1-STABLE(2013-05-27)から、11.1-RELEASEへ。
インストーラでZFS rootできるやん。。なんて優しい世界。
HDDの移行が大変。。nfs mountしてcp、rsync+ssh より、たぶんzfs recv/send+netcatが最速じゃないかということで、
新サーバ# nc -w 120 -l 12345 | zfs recv -v zroot/home 元サーバ# zfs snapshot ztank/home@export 元サーバ# zfs send ztank/home@export | nc 新サーバ 12345
さて、一晩で終わるか?。。
問題は、PCIがないのよね。。入手してから数年?使ってなかったPT3が、ついに日の目を見る時がきた。。Piro77さんのドライバ使わせていただきます。なにはなくとも録画が動かないと、引っ越しどころではない。
NP2-android
Kindleネタ。。なのか?
NP2-androidでぐぐると、あちこちで死屍累々ですが、御多分にもれずEclipseADTで爆死したりして早幾年。思い出したように先週からAndroidStudioで再トライしてました。
NP2 ver0.86 + SDL2-2.0.5 を、AndroidStudio2.2でビルドして、FireHDX8.9的なandroid-19のエミュレータで起動して ぴぽっ が鳴るところまで来たー。長かった。。
メニューバーがWindowsのと同じだ。。ファイル選択でコモンダイアログが出てきてびびった。
DOSが起動できたら、Android的なメニューにするのと、ソフトキーボードとマウスをなんとかする。。あと3年くらいで。。。
foltiaメンテ2題
その1
放送予定が空になっているのに気付いた。手でgetxml2db.plを叩いてみたら、何もせずに返ってきちゃう。perl -d:Traceでおっかけていくと、LWP::Simple::mirrorが501 Not Implementedを返してた。なんだそりゃ。。
perlをpkg upgradeした後、モジュールは更新しなかったのが悪かったのか、p5-xxxを片っ端からupgradeしたら治ったが、なんともはや。
HLS
なんとほぼ1年ぶり。。
家族にテレビを占領されたので、なんとかタブレットでMUSIC STATIONが見れんかなぁと、急遽HLS環境をでっちあげたら、意外にうまくいったのでメモ。先人とぐぐる先生に感謝。
環境はこんなの。OS更新せないかんなぁと思いつつ面倒で。。
$ sysctl hw.model hw.model: Intel(R) Atom(TM) CPU D525 @ 1.80GHz $ uname -v FreeBSD 9.1-STABLE #0 r+d844ab2: Mon May 27 18:32:25 JST 2013 (snip) $ pkg info | grep ffmpeg ffmpeg-2.8.7_2,1 Realtime audio/video encoder/converter and streaming server $ sysctl dev.ptx.0.%desc dev.ptx.0.%desc: EARTHSOFT PT2
で、apache24のmod_userdirを有効にしといて、
$ cd ~/public_html/hls $ sh hls.sh
としといて、Android(FireHDX8.9)のMXPlayerで、http://HOST/~user/playlist.m3u8で見れたー。
肝心のhls.shはこんなの。2時間(7200秒)で止まるけど。
perl recptx.pl --b25 24 7200 - \
ffmpeg -i - \ |
最初は、サイズが小さいほうがいいかなぁと、
-c:v libx264 -b:v 1200k -s 640x360
なんてしてみたら、14fpsくらいでとうてい追いつかず。上みたいに単にcopyしてもMXPlayerは再生してくれて、リアルタイムで問題なく見れました。
audioもcopyしたかったのだけど、エラーでffmpegが止まっちゃうので断念。
DISK交換
昨年の9月にほとんど同じ日記を書いてた。やっててよかったZFS。
10/15に録画サーバが応答しなくなってるのに気づいて、コンソール見てみると断末魔が。
(ada1:ahcich1:0:0:0): READ_FPDMA_QUEUED. ACB: 60 08 18 49 00 40 00 00 00 00 00 00 (ada1:ahcich1:0:0:0): CAM status: ATA Status Error (ada1:ahcich1:0:0:0): ATA status: 61 (DRDY DF ERR), error: 04 (ABRT ) (ada1:ahcich1:0:0:0): RES: 61 04 d1 cc 02 40 21 00 00 00 00 (ada1:ahcich1:0:0:0): Retrying command (ada1:ahcich1:0:0:0): READ_FPDMA_QUEUED. ACB: 60 08 18 49 00 40 00 00 00 00 00 00 (ada1:ahcich1:0:0:0): CAM status: ATA Status Error (ada1:ahcich1:0:0:0): ATA status: 61 (DRDY DF ERR), error: 04 (ABRT ) (ada1:ahcich1:0:0:0): RES: 61 04 d1 cc 02 40 21 00 00 00 00 (ada1:ahcich1:0:0:0): Error 5, Retries exhausted swap_pager: I/O error - pagein failed; blkno 264463,size 4096, error 5 vm_fault: pager read error, pid 98520 (http)
どうにもならないのでリセットして再起動、立ち上がった後のzpoolはこんな感じ。
pool: ztank state: DEGRADED status: One or more devices could not be opened. Sufficient replicas exist for the pool to continue functioning in a degraded state. action: Attach the missing device and online it using 'zpool online'. see: http://illumos.org/msg/ZFS-8000-2Q scan: resilvered 2.64T in 22h39m with 0 errors on Tue Sep 16 11:01:07 2014 config: NAME STATE READ WRITE CKSUM ztank DEGRADED 0 0 0 mirror-0 DEGRADED 0 0 0 7724617931313753760 UNAVAIL 0 0 0 was /dev/ada1p3 ada0p3 ONLINE 0 0 0
これが木曜の夜で、そのままAmazonで同じWD30EZRXを注文、金曜に帰ってきたら届いているという、21世紀ってすごいね。。
DISKを取り替えてシングルユーザで起動したら、何かそのままresilverが走り出した?
pool: ztank state: DEGRADED status: One or more devices is currently being resilvered. The pool will continue to function, possibly in a degraded state. action: Wait for the resilver to complete. scan: resilver in progress since Sat Oct 17 11:48:15 2015 2.35G scanned out of 2.67T at 1/s. (scan is slow, no estimated time) 7.81M resilvered. 0.09% done config: NAME STATE READ WRITE CKSUM ztank ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 7724617931313753760 UNAVAIL 0 0 0 was /dev/ada1p3 ada0p3 ONLINE 0 0 0 errors: No known data errors
取り替えるより先にpoolから抜いとくべきだったのかなあ。とりあえず外す。
# zpool detach ztank ada1p3 # zpool status pool: ztank state: ONLINE status: One or more devices is currently being resilvered. The pool will continue to function, possibly in a degraded state. action: Wait for the resilver to complete. scan: resilver in progress since Sat Oct 17 12:20:15 2015 29.6G scanned out of 2.67T at 21/s, (scan is slow, no estimated time) 7.81M resilvered, 1.08% done config: NAME STATE READ WRITE CKSUM ztank ONLINE 0 0 0 ada0p3 ONLINE 0 0 0 errors: No known data errors
シングルユーザモードでの、いつもの作業前のお約束。
# mount -u / # zfs mount -o ro ztank/usr # zfs mount ztank/var # zfs mount ztank/var/empty # zfs mount ztank/tmp # /etc/rc.d/adjkerntz start
HDDが同じなので、既存のada0と同じようにgpart。
# gpart show ada0 => 34 5860533101 ada0 GPT (2.7T) 34 6 - free - (3.0k) 40 128 1 freebsd-boot (64k) 168 2097152 2 freebsd-swap (1.0G) 2097320 5858435808 3 freebsd-zfs (2.7T) 5860533128 7 - free - (3.5k) # gpart create -s GPT ada1 ada1 created # gpart add -b 40 -s 128 -t freebsd-boot ada1 ada1p1 added # gpart add -b 168 -s 2097152 -t freebsd-swap ada1 ada1p2 added # gpart add -b 2097320 -t freebsd-zfs ada1 ada1p3 added # gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ada1 bootcode witten to ada1
このままシングルユーザでattachしてresilver待ちすると、今日の録画予約が間に合わん。。ということで、
リブート通常起動してから、続き。
# zpool status pool: ztank state: ONLINE scan: resilvered 7.81M in 9h17m with 0 errors on Sat Oct 17 21:06:00 2015 config: NAME STATE READ WRITE CKSUM ztank ONLINE 0 0 0 ada0p3 ONLINE 0 0 0 errors: No known data errors
9時間ずれてるな。。
# zpool attach ztank ada0p3 ada1p3 Make sure to wait until resilver is done before rebooting. If you boot from pool 'ztank', you may need to update boot code on newly attached disk 'ada1p3'. Assuming you use GPT partitioning and 'da0' is your new boot disk you may use the following command: gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 da0
しばらくたった後。
# zpool status pool: ztank state: ONLINE status: One or more devices is currently being resilvered. The pool will continue to function, possibly in a degraded state. action: Wait for the resilver to complete. scan: resilver in progress since Sat Oct 17 12:20:15 2015 33.4G scanned out of 2.67T at 10.6M/s, 72h28m to go 33.4G resilvered, 1.22% done config: NAME STATE READ WRITE CKSUM ztank ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 ada0p3 ONLINE 0 0 0 ada1p3 ONLINE 0 0 0 (resilvering) errors: No known data errors
残り72時間って。。