ReadyNAS 214のRAID5が崩壊したときの備忘録
追記 20180915
ReadyNAS 214のRAID5が崩壊しました。
駄文です、お暇なときにお読みください。
書いていることを試すのは自己責任・データが消えてもいいかた向け
■結果
データサルベージ"は"成功しました。
■経緯
2018/07/22
アラートメールがReadyNASからくる。
20:05:10あたり - Disk Model:WDC WD80EFZX-68UW8N0 Serial:XXXXXXXX was removed from Channel 1 of the head unit.
HDDが一本抜けた、クーラつけてない部屋のせいか?
ただRAID5で組んでいるから安心、家帰って状態確認して新しいHDD買おう。
20:05:50あたり - Disk Model:WDC WD80EFZX-68UW8N0 Serial:YYYYYYYY was removed from Channel 1 of the head unit.
(つд⊂)ゴシゴシ HDD 2本目抜けた?! 何これデータどうなるの・・・
とりあえずWeb管理画面から状態を確認、ディスクが2本認識していない・・・
データを参照・・・できる大丈夫だろう 再起動してみよう
対象ディスクが外れている状態で、論理ドライブ崩壊、データ参照不可に
■とりあえずサポートに問い合わせる
8TB*4のRAID5構成 すべて WD RED(MC前/後は2本づつ入り混じっている)
リモートアクセスしてもらい論理ドライブにアクセス出来ないことが判明
直せないのでサルベージ業者に頼めと言われてしまいました。
■復旧を試みる
とりあえずRAIDを構成するディスクすべてをWindows PCに接続し、状態を確認
抜けてしまったディスク2本でパーティション情報が崩壊していました。
■TestDiskでディスクパーティション復元
とりあえず復元できました。
画面直でごめんなさい。
うーん謎の未使用領域ができてしまった。
適当にパーティションを正常に動いているディスクと合わせてみる。
開始セクタ、終了セクタをあわせてみる。
たぶんいい感じ ファイルシステムの選択には注意してね
■ReadyNASにディスクを戻してみる
だめでした。 論理ディスクは戻ってきません。
■ソフトウェアRAIDなのでLinuxでデータサルベージを試みる
mdadmを使って見るものもだめでした。論理ディスクが見えてきません。
■市販ソフトウェアを使って復旧を試みる
7.7TB分のデータが多分手元にあるのに・・ReadyNASには見えてこない
結局 Raise Data Recoveryでほかディスクにサルベージしました。 \20,000
ごめんねお財布、ごめんね暑い部屋にずっといたReadyNAS
ただ業者に出すよりは数十万、数百万レベル安くすみました。。
■今後
RAID5はもう使いたくない、RAID6にしたい
ただ実効容量はかなり(ディスク一台分)減ってしまうのでとりあえずRAID5でReadyNASを構築し、データを戻す
旧NASにバックアップするようジョブを書いたがバックアップ中にバックアップ先のNASでRAIDが崩壊してしまった。もうだめだ
お金に余裕ができたら、4*HDDが入るUSBかeSATA接続のDASを買って、ReadyNASに接続しバックアップ先としたい
頼むからあと数ヶ月たえてほしい
2018/09/15 追記
外付けHDD BOXを買いました。
HDD TOWER 4 MAL-3035SBKU3
実はReadyNAS eSATAのポートに接続すると純正パーツ(EDA500)のように認識するのです! 自己責任ですが 24TBのうち8TBくらいしか使っていないので、外付けHDDの8TB(RAID0 2*4)にバックアップでとりあえず過ごしてます。
以上
Spinel+BonDriverProxy_Linuxを使って仮想環境でChinachuを動かそうとした話
最近自宅サーバを入れ替えようかなって考えていて5年ほど前に構築した録画サーバも新しくしよう!と思い、いいのないかなと探していたらChinachuというのにめぐりあいました><><>
ですがこのChinachu Linuxのみの対応ということでしばらく導入は諦めていました。
VT-Dなどの仮想化技術を使いPCIパススルーをしようとも考えたのですが対応のCPUを用意できませんでした。
SpinelはLinuxには対応していないため最近DTV板で流行っている?BonDriverProxy_Linuxを使いLinuxにチューナを渡しChinachuで操る記事です。
【必要なもの】
- B-CASカードリーダ,赤or青カード
- BonDriverがあるチューナ(この記事ではDY-UD200を使います。PT3でも動作確認済みです)
- Spinel
- LinuxOS(この記事ではUbuntu Server 14.04を使います。Debian系すいしょう)
- 仮想環境(この記事ではHyper-Vを使います。Vmware Player、VirtualBoxなどで動くと思います)
- BonDriverProxyEx (BonDriverを共有する奴)
- BonDriverProxy_Linux (BonDriverProxyのサーバ、ドライバ、クライアント)
- recbond(recpt1のBonDriver対応版、スプリッタなど同封)
- Chinachu(かわいいの)
- B25Decoder.dll(いつもの)
【備考】
Spinel+Tvtest+Tvrockなどで録画環境が構築されすでに使用できる状態ということを想定しています。
自己責任で頼んます。
1.Spinelの設定変更
B25Decoder.dllがない場合はSpinel.exeがあるフォルダにコピー
Spinel.ini
; B25/B1スクランブル解除の動作を指定します。
DescrambleControl = 2
DescrambleControlの記述を2に変更します。
こうすることによりBonDriverSpinelの設定によりB-CASカードによりスクランブル解除された映像が配信され仮想環境でB-CASカードが不要になります。
Spinelの起動してください。
2.BonDriverProxyExの導入
u-n-k-n-o-w-n/BonDriverProxyEx · GitHub
ダウンロードし、ビルド
BonDriverProxyEx.exeがあるフォルダにBonDriverのファイル郡をコピー
BonDriver_Spinel_XXXX.dll
BonDriver_Spinel_XXXX.dll.ini
BonDriver_Spinel_XXXX.dll.ini
; スクランブル解除を行ったTSの配信を希望するかどうかを指定します。
DesiredDescrambleControl = 1
こうすることによりSpinel側にスクランブル解除された映像を希望できます。
Sample.iniのファイル名を[BonDriverProxyEx.ini]に変更
BonDriverProxyEx.exeがあるフォルダにコピー
BonDriverProxyEx.ini (改行コードがWindowsのそれと違うのでメモ帳以外で開くことを推奨します。
[OPTION]
ADDRESS=192.168.0.XX
PORT=1192
OPENTUNER_RETURN_DELAY=0
SANDBOXED_RELEASE=0
DISABLE_UNLOAD_BONDRIVER=0
BONDRIVER=PT-T
CHANNEL_LOCK=0
ADDRESSにはサーバのアドレス(この場合実行しているコンピュータのIPアドレス)
PORTはポート番号
00=PT-T;BonDriver_Spinel_XXXX.dll
コピーしてきたDLLを指定
sample.iniに元から記述されているように複数チューナにも対応しているEx版なので
00=PT-T;BonDriver_Spinel_PT3-T0.dll;BonDriver_Spinel_PT3-T1.dll
01=PT-S;BonDriver_Spinel_PT3-S0.dll;BonDriver_Spinel_PT3-S1.dll
このようにすれば複数チューナ&地上波/BSCS共存のBonDriverProxyができます。
BonDriverProxyExを起動してください。
3.Linuxした準備
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install make g++ build-essential curl git-core libssl-dev yasm libtool autoconf automake libboost-all-dev pkg-config node npm
パッケージのアップデートとパッケージのインストールを行います。
sudo adduser chinachu
Chinachu用のユーザを追加、パスワード、本名などの設定
sudo visudo
設定ファイルが開かれるので最終行に
chinachu ALL=(ALL)ALL
を追加。いろいろインストールするためにこうしますがセキュリティ上気になるようであれば最後に戻してください。
sudo -i -u chinachu
新しく作成したユーザに切り替えます。
4.BonDriverProxy_Linuxの導入
git clone https://github.com/u-n-k-n-o-w-n/BonDriverProxy_Linux ~/BonDriverProxy_Linux
BonDriverProxy_Linuxをリポジトリからクローン。
cd ~/BonDriverProxy_Linux
ディレクトリに移動
make client
BonDriverProxy_Linuxのクライアントのコンパイル
cp BonDriver_Proxy.so BonDriver_Proxy-T.so
cp BonDriver_Proxy.conf BonDriver_Proxy-T.so.conf
設定ファイル、ライブラリをコピーします。
BS/CSを使用する際は
cp BonDriver_Proxy.so BonDriver_Proxy-S.so
cp BonDriver_Proxy.conf BonDriver_Proxy-S.so.conf
これも作成。
設定ファイルの編集
BonDriver_Proxy-T.so.conf
ADDRESS=192.168.0.XX
PORT=1192
BONDRIVER=PT-T
ADDRESSをBonDriverProxyExが起動しているサーバのものに
PORTも同じように
BONDRIVERはチューナ名
BS/CSを使用する場合は
BonDriver_Proxy-S.so.conf
ADDRESS=192.168.0.XX
PORT=1192
BONDRIVER=PT-S
にして保存。
make sample
動作確認用にsampleをコンパイル
./sample -b /home/chinachu/BonDriverProxy_Linux/BonDriver_Proxy-T.so -s 0 -c 21-t 5 output.ts
地上波16chの録画を5秒間テスト。
CATVだったらch2ファイル覗いて調整しましょう。
WinSCPとかでoutput.tsをダウンロードしスクランブル解除した状態で録画出来ているたら動作はOKです。
5.recbondの導入
git clone https://github.com/dogeel/recbond.git ~/BonDriverProxy_Linux/recbond
BonDriverProxy_Linuxをリポジトリからクローン。
cd ~/BonDriverProxy_Linux/recbond
ディレクトリに移動
./autogen.sh
./configure
make
sudo make install
コンパイル&インストール
recbond --driver /home/chinachu/BonDriverProxy_Linux/BonDriver_Proxy-T.so --space 1 B16 5 ts.ts
BonDriverチャンネル16chを5秒間録画で動作確認 ダウンロードして表示されなかったら--spaceのところを0にするか記述を消してください。
6.Chinachuの導入
git clone git://github.com/kanreisa/Chinachu.git ~/chinachu
Chinachuをリポジトリからクローン。
cd ~/chinachu
ディレクトリに移動
./chinachu installer
インストーラの起動 1) Auto (full)を選択
インストールが終わったら
./chinachu service operator initscript > /tmp/chinachu-operator
./chinachu service wui initscript > /tmp/chinachu-wui
sudo chown root:root /tmp/chinachu-operator /tmp/chinachu-wui
sudo chmod +x /tmp/chinachu-operator /tmp/chinachu-wui
sudo mv /tmp/chinachu-operator /tmp/chinachu-wui /etc/init.d/
sudo insserv chinachu-operator
sudo insserv chinachu-wui
サービス登録+スタートアップ登録
insservがなんとか言われたら
sudo ln -s /usr/lib/insserv/insserv /sbin/insserv
シンボリックリンクを作成してください。
sudo service chinachu-operator start
sudo service chinachu-wui start
でサービス起動です。
ブラウザにて http://ServerIP:10772
を開き sample.json->wuiUsersに記載されているIDとパスワードを参考にしログイン。
表示したページから 設定を開き
"wuiUsers": [
"id:Password"
],
IDとパスワードを変更
"tuners": [
{
"name" : "DY-UD200",
"isScrambling": false,
"types" : [ "GR" ],
"command" : "recbond --driver /home/chinachu/BonDriverProxy_Linux/BonDriver_Proxy-T.so --space 1 <channel> - -"
}
],
BonDriverProxyExのBonDriverProxyEx.iniに記述されているチューナの数だけコピー
--spaceのところはさっきうまく受信できたように。
"tuners": [
{
"name" : "PT3-S1",
"isScrambling": false,
"types" : [ "BS", "CS" ],
"command" : "recbond --driver /home/chinachu/BonDriverProxy_Linux/BonDriver_Proxy-S.so --strip --sid <sid> <channel> - -"
},
{
"name" : "PT3-S2",
"isScrambling": false,
"types" : [ "BS", "CS" ],
"command" : "recbond --driver /home/chinachu/BonDriverProxy_Linux/BonDriver_Proxy-S.so --strip --sid <sid> <channel> - -"
},
{
"name" : "PT3-T1",
"isScrambling": false,
"types" : [ "GR" ],
"command" : "recbond --driver /home/chinachu/BonDriverProxy_Linux/BonDriver_Proxy-T.so --space 1 <channel> - -"
},
{"name" : "PT3-T2",
"isScrambling": false,
"types" : [ "GR" ],
"command" : "recbond --driver /home/chinachu/BonDriverProxy_Linux/BonDriver_Proxy-T.so --space 1 <channel> - -"
}
],
複数チューナーだったらこんな感じに
地上波のチャンネルは
"channels": [
{ "type": "GR", "channel": "B30" },
{ "type": "GR", "channel": "B29" },
{ "type": "GR", "channel": "B32" },
{ "type": "GR", "channel": "B33" },
{ "type": "GR", "channel": "B28" },
{ "type": "GR", "channel": "B27" },
{ "type": "GR", "channel": "B25" },
{ "type": "GR", "channel": "B26" },
{ "type": "GR", "channel": "B24" },
{ "type": "GR", "channel": "B31" },
{ "type": "GR", "channel": "B12" },
{ "type": "GR", "channel": "B5" },
こんな感じに先頭にBをつけてあとにBonDriverチャンネル
書いた順番が番組表に反映されます。
上記はCATVなので環境に合わせて変更してください。
sudo service chinachu-operator restart
保存したらサービス再起動してください。EPGの取得が始まると思います。
始まらなかったらログを参考に自力でお願いしmさう><
参考にさせて頂きました:
PT3とChinachuで手軽に録画サーバ - Aglona(アグロナ)
Installation · kanreisa/Chinachu Wiki · GitHub
2015/10/05 22:16 追記
パス修正、make client忘れてたの追加
現在Chinachuがインストールできずお困りの方は:
Node.js Environmentのインストールに失敗する · Issue #234 · kanreisa/Chinachu · GitHub
が参考になるかもしれないです。
potofu
potofu<3