ラベル ReadyNAS の投稿を表示しています。 すべての投稿を表示
ラベル ReadyNAS の投稿を表示しています。 すべての投稿を表示

2015/09/24

ReadyNASのファン交換

ReadyNAS Ultra 2のファンを初めて掃除して以来、時々掃除してきたが、ついに掃除しても軸音がするようになったのでファン交換を決意した。

1. 失敗のファン


Ultra 2の購入時にファンがうるさかったときのために交換用ファンも買っていたが、元のファンが十分静かだったためにお蔵入りになっていた。この出番がついに来た、というわけで、それに交換すれば終わりの予定だった。

そのファンはオウルテック扱いの山洋電気製SF9-F1で、静音的には鉄板のものだったが……一応温度を見ているとCPU温度がUltra 2では未踏の80度を超え(RAIDar Protocolによる上限は80度)、冷却力不足が露呈した。さすがに回転数が800RPM固定では無理があったらしい。「こんなこともあろうかと……」が実は保険になってなかったという。

仕方ないので、直径9cmで回転数可変のファンということでENERMAXのPWMのUCTB9Pを買ってきたが、これが完全な外れ。たぶん不良個体だと思うが、軸音が元からひどくて話にならない。初ENERMAXだったのだが、不幸な出会いだった。

2. 元のファン


気を取り直して元のファンを改めてチェックすると、このDeltaのAFB0912HHは日本国内の一般の取り扱いはないらしい。ならばと大体同じ筐体の312のファンを見てみると、同じ型番のものだった。
ReadyNAS Ultra 2 and 312: Fans

左がUltra 2のもの、右が312のもので、型番は全く同じ。312本体のコネクタも当然Ultra 2と同じ3ピンのもの。
ReadyNAS 312: Fan Connector Pin

調べてみると4ベイのモデルも同じファンらしいので、ReadyNASの2ベイと4ベイのシリーズでずっと使っているものっぽい。312のファンもこれまでのところ良好なので、これが手に入れば話は早いのだが、サブタイプが複数あって該当するものが分からないし、送料もそれなりにかかる。

3. Noctuaのファン


他に探すとして、3ピンということは4ピンのPWMと違って電圧で回転数を制御していることになる。SF9-F1で回転数が固定だったのは電圧にかかわらず回転が一定になるようにできているのだと思う。そういう場合を除けば選択肢は広い。

一方、静音的には通常時800RPM程度がターゲットなので、ほとんどが定格で1000RPM台半ばのファンのスペックを見たところで参考にはならず、結局は勘になる。回転数の変わる範囲内で、軸音(直接の風切り音以外の音)が出る回転数があるかは実際に回してみないと分からないし。

ということで、一応回転数可変という点を考慮して、NoctuaのNF-B9 redux(非PWM)を購入。回転数変更用の抵抗など付属品を省いたモデルだが、不要なので。

左下が元のDelta、右下が山洋電気、左上がENERMAX、右上がNoctua。
ReadyNAS Ultra2: Replacement Fans

ファンの羽、コアの支柱ともバラエティに富んでいるが、通常時無音を目指すレベルの静音ではあまり関係なかったりする。

NF-B9の結果は当たりで、通常時は十分静かだし、回転数が上がっても気が付くような軸音は発しない。ファンを探す旅も3つ目で終わった。願わくば、次に交換が必要になったときにも市場に存在していることを。

2013/10/27

ReadyNASの掃除

ReadyNAS Ultra 2のファンが、ついにというか、時々軸音を発するようになったので、どんなものか見てみたら埃まみれになっていたので、外してみた。

Ultra 2の筐体はバックパネルの部分が外せそうだとは分かっていたが、実際に外したことはなかったので、自分にしてはやや慎重に4本のネジを外すと、パカっと。

以下は、既に埃を落とした状態。
ReadyNAS Ultra 2: Back side
ReadyNAS Ultra 2: Back side

SATAコネクタのあるバックプレーンを裏側から見たことはなかったので、少し新鮮。

このPCBに"FOXCONN"の文字があったので、改めて見たらメインのPCBにも"FOXCONN"の文字が入っていて、ついでにこれらを繋ぐコネクタもFoxconn製で、つまり高い確率でReadyNASの製造はFoxconnだったんだと、今更ながら了解。既にFoxconn製というか、Hon Hai製の電子製品は日常生活の至るところに溢れているわけだが、その一つだったと。

ファンの方はDeltaのAFB0912HHで、それは初めから見えていたのだが、
ReadyNAS Ultra 2: Fan

このブレードの排気側の縁が、くいっと曲がっているのに初めて気づいた。
ReadyNAS Ultra 2: Fan

おそらくは静音上の意味があるのだろうが、後発メーカーが先発メーカーとの差別化のために変わったことをするのは珍しくないにしても、ファンにかけては老舗のDeltaが、しかも直接ユーザーにアピールする必要のないアプライアンス向けの製品でこういう工夫をしているのは、正直意外だった。

それはそれとして、掃除した結果、また静かな状態に戻ったので満足。交換用に用意していたファンの出番は、結局なしで終わりそうな気がしてきた。

2012/12/21

ReadyNASにSSD

大容量SSDの価格低下もそこそこ進んでいるので、先々はNASにもSSDを入れることを考えて、ReadyNAS Ultra 2にIntel X25-M G1を入れてみるテスト。

1. SMART


HDDと入れ替えると、HDDと同様にRAIDiatorがインストールされて(X-RAID2を指定)普通に起動。FrontViewからSSDの情報も見られる。
Intel X25-M in FrontView

温度は1C/33Fと出ているが、RAIDar Protocolで返ってくるのを見ると-1C/31Fで、食い違っていた。

ここからSMARTも一応表示される。
Intel X25-M SMART in FrontView

が、この中に温度はない。また、寿命に関係するAvailable Reserved SpaceとMedia Wearout Indicatorは項目には出ているが、正しい値は取れてない。

このSMARTはPCに接続してCrystalDiskInfo、SSD Toolbox、Smartmotoolsで見たときには、それぞれこんな感じ。
Intel X25-M SMART by CrystalDiskInfo
Intel X25-M SMART by SSD Toolbox
Intel X25-M SMART by Smartmontools

温度


先に温度について考えると、一見して明らかなように、このSSDはSMARTのデータに温度(IDは16進数でC2、10進数で194)を含んでいない。SSDの中には0Cと返すものもあるようだが、このSSDはそもそも温度のデータを返さない。

したがって、ReadyNASが示す1C/33Fあるいは-1C/31Fはダミーの数字で、それもたぶん-1C/31Fの方が本来の数字で(コードの世界では該当するものが存在しないときに-1を返したりする)、その摂氏のマイナス符号を認識し損ねて1Cと取った上で華氏をそれに合わせて計算したのが1C/33Fではないか、という気がする。

寿命


意外だったのはReadyNASがIntelのSSDに特有のAvailable Reserved Space(E8)とMedia Wearout Indicator(E9)を認識したことで、このIDが示すもののデータを持っていなければこの名前は出てこないはず……。

と、ReadyNASではたぶん字数を減らすために「e」を抜いて「Available Reservd Space」となっているが、上にある「Reallocated Sector Count」は字数が多いにもかかわらずそのままで、少し不自然。一方、この「Available Reservd Space」はSmartmontoolsの表記と同じで、「Intel Internal」も同じ。ということから、ReadyNASは標準的な項目以外はSmartmontoolsと同じデータを利用しているのではないか、という推測を立て得る。

それはともかくとして、値の方は出してくるものを間違えていて、意味を成してないわけだが。この当たり、各ベンダー独自の仕様に合わせてデータを処理するようにしないと意味のある数字は拾い出せない、という当然のことを示している。

2. 評価


NASの動作としてはごく普通で、スピンダウン時でもスピンアップを待つことなくすぐにアクセスできる(SSDの場合にスピンダウンが実際にどう動いているのかは未確認)。

という意味で普通に使う分には問題なさそうだが、SMARTの監視は実質的にできず、各ベンダーの仕様がばらばらである限り、NAS側の対応もなかなか進まないような気がするので(add-onでも出てくれば別だが)、SSDの状態が気になるなら時々外してPCに接続してチェックするしかないと思う。

[追記1]

そういえばSmartmontoolsはたいていのLinuxディストリビューションに含まれている……ことを思い出して、ReadyNASのSSHアクセスを有効にしてログインすると、しっかりRAIDiatorにも入っていた。

これでSMARTを見てみると、PCとの接続時と同じように表示される。
Intel X25-M SMART by Smartmontools on RAIDiator (Linux) through SSH

したがって、ReadyNASに入れたままでも、これで定期的にチェックするようにすればSMARTの値を監視できることになる。

以上、後はしいて言えばTrimがどうなるかという点を除けば、ReadyNASでSSDを使う上での障害は実質的になさそうということが分かった。

[追記2]

WindowsのクライアントPCからSMARTの値をチェックするためのスクリプトを書いてみた。PuTTYを使ってSSHアクセスし、smartctlを実行して、結果からSMARTの目的の項目を拾い出してCSV形式で保存する。

手順としては、
  1. ReadyNASに「Enable Root SSH Access」Add-onをインストールしてSSHアクセスを可能にする。
  2. PuTTYをダウンロードして適当なフォルダーに置く。使うのはコマンドライン用のPLINK.EXE。
  3. 以下の内容のバッチファイルを作成して、ファイル名はここでは「smartctl.bat」として同じフォルダーに保存する。
    plink nas-XX-XX-XX -l root -pw netgear1 ^
     "smartctl -A -f brief /dev/sda" > result.txt
    
    • nas-XX-XX-XXはReadyNASのホスト名かIPアドレス
    • -pwの後ろは管理者パスワード
    • /dev/sdaは1番目のディスクの意味

  4. 以下の内容のVBScriptを作成して、ファイル名はここでは「checksmart.vbs」として同じフォルダーに保存する。ATTRIBUTESで目的の項目を指定。
    Option Explicit
    
    Dim FILE_BAT 'Batch file to execute smartctl through SSH
    Dim FILE_RLT 'File to store result of smartctl temporarily
    Dim FILE_RCD 'File to record (append) result of smartctl
    FILE_BAT = "smartctl.bat"
    FILE_RLT = "result.txt" 'Must be the same file in batch file
    FILE_RCD = "record.csv"
    
    Dim ATTRIBUTES 'SMART attributes (separated by space)
    ATTRIBUTES = "Available_Reservd_Space Media_Wearout_Indicator"
    
    'Execute smartctl through SSH
    Dim objShell
    Set objShell = WScript.CreateObject("WScript.Shell")
    Dim result 'Return value to avoid error in using Run method
    result = objShell.Run(FILE_BAT, 0, True)
    Set objShell = Nothing
    
    'Process result of smartctl
    Dim strBuf
    
    Dim objFSO
    Dim objFile
    Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
    Set objFile = objFSO.OpenTextFile(FILE_RLT)
    strBuf = objFile.ReadAll
    Set objFile = Nothing
    Set objFSO = Nothing
    
    Dim strLines
    strLines = Split(strBuf, vbLf)
    
    Dim strSer 'Array to hold names of attributes
    strSer = Split(ATTRIBUTES)
    
    Dim strVal 'Array to hold values of attributes
    ReDim strVal(UBound(strSer))
    
    Dim objRegExp
    Set objRegExp = New RegExp
    objRegExp.Pattern = " \d{3} " 'Pattern of value of attributes
    objRegExp.IgnoreCase = True
    objRegExp.Global = True
    Dim i
    Dim j
    For i = 0 To UBound(strLines)
        For j = 0 To UBound(strSer)
            If 0 < InStr(1, strLines(i), strSer(j), 1) Then
                Dim objMatches
                Set objMatches = objRegExp.Execute(strLines(i))
                If 0 < objMatches.Count Then
                    strVal(j) = objMatches(0).Value
                End If
                Set objMatches = Nothing
            End If
        Next
    Next
    Set objRegExp = Nothing
    
    'Record result of smartctl
    Dim strRec
    strRec = Now() & ","
    For j = 0 To UBound(strVal)
        strRec = strRec & Trim(strVal(j)) & ","
    Next
    
    Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
    If Not objFSO.FileExists(FILE_RCD) Then
        'If first record, add header line
        strRec = "Date," & Join(strSer, ",") & "," & vbCrLf & strRec
    End If
    Set objFile = objFSO.OpenTextFile(FILE_RCD, 8, True)
    objFile.Write(strRec & vbCrLf)
    Set objFile = Nothing
    Set objFSO = Nothing
    
    (smartctl.batの内容をFILE_BATの部分に直接書いても良さそうなものだが、そうするとなぜかrecord.txtがホスト側に作成されてしまうので、分けた。)
これで、このchecksmart.vbsを定期的に実行するように設定すれば、結果がCSVファイルに記録されていく。

2012/08/08

Metroアプリ

デモとして作っていたMetroアプリが一応形になったので。

1. Raidar Metro Demo


Windows 8 RP上のVisual Studio 2012 RCで作ったが、もうWindows 8もVisual Studio 2012もRTMが一般の開発者向けに出る直前で、RTMでまた動作に変更がある可能性があるが……。言語はC#とXAML。

機能的にはNAS Herderのモニター機能のサブセットで、ロジック部分はVisual BasicからC#に大体そのまま移植。このメインページと設定ページの構成で、この間のページ遷移は本来スワイプで出すNavigationBarかAppBarを使うべきだが、とりあえずAppBar用のSettingsのアイコンを置いている。

対象のNASを指定する方法はHost NameかIP Addressの選択式。Scanで見つかったNASを表示する部分はGridViewで、唯一Metroらしい見た目。トースト通知はStatusにWarningが出た場合か温度が閾値を上回った場合に出るが、音声設定がうまく行かないのでデフォルト音声のまま。

これらの設定項目は、変更がある度にApplicationData.LocalSettingsに保存するようにしているので、このアプリのサスペンド時には何もしない。

Metro特有の要求の一つが4つのレイアウト(デフォルトの全画面横長のFullScreenLandscape、Snappedになった別のアプリが横に入って幅が狭まったFilled、全画面縦長のFullScreenPortrait、横に寄せたSnapped)への対応だが、とくにSnappedは要素の配置を大きく変える必要がある。

ちなみに、このレイアウト遷移をアニメーションと呼んでいるが、実際にはアニメーションするわけでも何でもなく、ただ配置が切り替わるだけ(XAMLのアニメーション機能で、いきなり最終値に変えるメソッドを待ち時間0で実行)という。

メインページを左側にSnappedにすると、こうなる。右側はデスクトップ。

やっていることは、
  • タイトルのアイコンを非表示にする。
  • Ping NASのButtonの列は、各要素を入れたGridをStackPanelに入れているが、この配置方向を横にしていたものから縦にし、サイズも合わせて変える。
  • Settingsのアイコンを非表示にする。
  • StatusのTextBoxの位置を下げる。
  • CPUなどの各項目は、各要素を3つに分けて入れたGridをStackPanelに入れているが、これも配置方向を横から縦にし、サイズを変えて位置を下げる。
  • WarningのTextBoxのサイズを変えて位置を下げる。
  • 一番下のRaw responseのTextBoxを非表示にする。
なお、このページは基本ページ(Basic Page)のテンプレートから作ったもので、タイトルのフォントが小さくなっているのはテンプレートによるもの。また、タイトルのアイコンの位置に、元のページに戻るbackButtonのアイコンが要素として存在する。これは最初のページの場合は実際には表示されないが、不要かといえばそうでもなく、ページ履歴の管理に関係しているようで、削ってしまうとSnapped状態のときにこのページに戻れなくなる。

ついでに、デスクトップの壁紙を見ていて気づいたが、Filled状態になったデスクトップは、アイコンは移動しても壁紙は移動しないらしい。

次にSnapped状態の設定ページ。Snappedになったら自動的にメインページに遷移することも考えたが、一応用意した。

やっていることは、
  • Scan NASのButtonの列も、同じくStackPanelの配置方向を横から縦にし、サイズを変える。
  • 見つかったNASを表示するGridViewは、実は同じ内容のListViewも要素として存在していて、このGridViewを表示にしてListViewを非表示にしていたものを逆にする。
  • Ping Intervalなどの各項目も、同じくStackPanelの配置方向を横から縦にし、サイズと位置を変える。
  • 一番下のRaw responseのTextBoxを非表示にする。
このGridViewとListViewを両方持っていて切り替えるという方法は、非効率な気もするが、Grid AppとSplit Appのテンプレートでやっている方法なので。なお、これらの中のGridはItemTemplateでサイズを指定しているが、実際に表示されるサイズは外のGridViewとListViewのサイズにも影響される模様。

以上、このプロジェクトファイルはNAS Herderのプロジェクトサイトに置いてある。ただし、Microsoftの審査は受けてないので開発者ライセンスのあるPCでしか実行できない。そもそも常駐できない監視アプリに何の意味があるのか、という致命的問題があるが……。

2. プロジェクトのテンプレート


アプリを作り始めるのに、どのテンプレートをベースにするのがいいのか、ということを調べるのに時間を食ったので、そのメモ。

新しいプロジェクトをWindows Metro styleで作成するときは、Blank App、Grid App、Split Appのテンプレートから選ぶわけだが、アプリの内容的にGrid AppでもSplit AppでもないとなるとBlank Appになる。ただ、Blank AppにはMetroアプリとして必須のレイアウト切り替え機能なども入ってないので、あまりベースとして使えない。

そこで、プロジェクト作成後に追加できる基本ページ(Basic Page)のテンプレートにはこれらの機能が入っているので、最初のページをこれに差し替える手順。に、プロジェクト作成時に入る、XAMLのテンプレートの大元たるStandardStyles.xamlには後々にBlendで開いたときにエラーを出す問題があるので、これをMSDNのサンプルのものに差し替えることを含めた手順が以下。
  1. Visual Studioで、ファイル -> 新規作成 -> プロジェクト -> テンプレート -> Visual C# -> Windows Metro style -> Blank App (XAML) を選び、プロジェクトを作成したら一旦終了。
  2. 作成されたプロジェクトフォルダーのCommonフォルダーを開き、StandardStyles.xamlを、MSDNのいずれかのサンプルにある同名ファイルで上書き。
  3. Visual Studioでこのプロジェクトを開き、プロジェクト -> 新しい項目の追加 -> Visual C# -> Windows Metro style -> 基本ページ を選び、追加(名前はここではBasicPage1.xamlとする)。
  4. App.xamlのコードの表示を開き(C#)、 if (!rootFrame.Navigate(typeof(MainPage))) 中の MainPageBasicPage1 に修正し、ビルドして最初にBasicPage1が表示されることを確認。(ファイルの差し替えまでしない場合は、ここまで。)
  5. ソリューションエクスプローラーで(元の)MainPage.xamlを削除。
  6. BasicPage1.xamlのデザイナーの表示を開き(XAML)、 x:Class="[名前空間名].BasicPage1" 中の BasicPage1MainPage に修正。
  7. 同じくBasicPage1.xamlのコードの表示を開き(C#)、 public sealed partial class BasicPage1 中の BasicPage1MainPage に修正し、 public BasicPage1() 中の BasicPage1MainPage に修正。
  8. ソリューションエクスプローラーでBasicPage1.xamlの名前をMainPage.xamlに変更。
ただ、Visual Studio 2012もRTMで変わるだろうから、この手順もたぶん変わる。

3. よしなしごと


本格的にXAMLを使ったアプリは初めてで、最初は「何かややこしいことしてるな」という印象だったが、慣れてくるとこれはこれで合理的で面白い。スタイルやテンプレートのかけ方は、CSSを多重にかけたウェブページに似ている。

一方で、Metroアプリ作成のガイドラインなど改めて読んでいると、Metroはやはりタブレット向けのUIとの印象を強くした。その辺り、Microsoftの偉い人が話すことと、実際のMetroにはズレがある感じがする。

Metroでは比較的狭いタブレット画面でタッチ操作するために色々なガイドラインがあって、一言でいうと画面が窮屈になりがちだが、そこを(タッチ操作を駆使して)使いやすいUIにデザインすることが求められる。

また、Metroアプリの重要な方針として、「Content not Chrome」がある。つまり、従来のウィンドウの枠部分(Chrome)は表示せず(必要なときだけ出す)、ユーザーを内容(Content)に集中させよ、というものだが、これにはそもそもの前提として窮屈になりがちな画面の有効活用という要求があると思う。

これは見方を変えると、ユーザーに(OSの存在を意識させず)シングルタスクをさせろ、ということでもある。Metroではユーザーが同時に見られるアプリは基本的に1つで、Snappedで他のアプリも出しておけば一応2つになるが、まあシングルタスク+のUIといえる。

で、従来どおりのPCでは当然にウィンドウを幾つも開いてマルチタスクで使えるわけで(大型化するディスプレイを使えばなおさら)、それをシングルタスク+で使えと言われても無理がある。例えば、よく例に出る旅行サイトを使うアプリの場合、1つのアプリで見るより、色々な会社の旅行サイトを開いて見比べたり、Google Street Viewで現地の写真を見たり、交通の便を確かめたり、他の人の体験を読んだり、そういうことが同時にできた方が効率がいい。

いや、そんなことは当然で、リラックスしながらタブレットで見られることに価値がある、という言い方もできる。実際、従来はPCでやっていたがタブレットでも可能で、むしろそちらの方が便利という作業はあって、そこはタブレットが伸していくのだと思う。

ただ、そうすると対立軸はデスクトップかMetroかではなく、従来のPCかタブレットかになると思うので、それはつまり、従来のPCではデスクトップを使い、タブレットではMetroを使えばいい、という面白くも何ともない話に落ち着く。一周回って「元々そういう話だったのでは」という地点に戻るというか。

したがって、使う人、使う場面を考えて、タブレットがよければMetroアプリで行き、従来のPCがよければデスクトップアプリで行く、ということでいいのではないか、と改めて思う。

2011/09/03

NAS Herder beta

Beta版ということで公開しました。外見的な変化はFan回転数の横にグラフを付けたぐらいです。

プロジェクトサイト: NAS Herder 英語 at SourceForge.net
実行ファイル from SourceForge.net

関連スレッド: Beta Tester Wanted (new Windows app for ReadyNAS)

[更新]

ボリューム使用率とUPS充電率のバー表示を変更しました。ボリューム使用率が90%を超えると赤に変わります。このvisual styleで色を自由に変えられるプログレスバーのサンプルコード

標準のプログレスバーをこれに使っていたところ、Windows Developer Previewでは自動的にマーキーになってしまってましたが(本来のプログレスバーとしては間違ってはいない)、自分で作成したことで解決となりました。

2011/08/24

NAS Herder 開発中

ReadyNAS用のWindowsアプリとしてNAS Herder(仮)を開発中です。

見て想像できるとおり、ReadyNASの起動・監視・終了をタスクトレイから行えるソフトです。監視にはNetGear純正のRAIDarと同じプロトコルを利用することができます(追記2にサンプルコードあり)。

起動・終了には基本的にこれ(遠隔から電源オン/オフ)と同じことをしていますが、この機能とWindowsの起動・終了・サスペンド・レジュームを絡めて電源同期ができるのが特徴かなと。

大体完成していますが、電源同期関係はまだテストが必要という状態です。VB.NETで開発するのも3本目なので、慣れてはきましたが、通信機能を4種類実装したり、それをマルチスレッド化したりで、内情的には色々あって……。前と違って季節ものではないので、急いではないのですが。

想定している使用環境は日本に限らないので、全部英語です。多言語化も難しくはないのですが、正直そこにあまり手間をかけたくないということもあり。まあ需要次第ということで。

[追記1] 参考

必ずしも直接参考にしたわけではないですが、先人への敬意を込めて。

[追記2] RAIDarプロトコルのサンプルコード

移動しました(RAIDar Protocol Sample)。

[追記3]

関連スレッド: ReadyNAS Remote Monitoring Tool?

[追記4]

Beta版を公開しました。

2011/04/08

ReadyNASとは何か

ReadyNASを普通に使っている限りは全く気にする必要はないが、何か問題が起きたりしたときに、そもそもReadyNASの中はどうなってるのかということに興味が湧くのは自然だと思うので、その流れの話。

(このエントリは一続きのエントリの5/5)

4.1. ReadyNASの構成(推測)


ReadyNASが何かといえば、LinuxをOSとして稼働する/RAID構成で/NAS専用のPC、ということになる。アプライアンスのLinux機としては普通のPCに近いが、普通のPCと特に違うのは、
  • オンボードにOSのインストールイメージを持っていること
  • ブートプロセスが少し変わっていること
ただ、Netgearの人はこういう話をあまり正面から書いてくれてない。あくまでアプライアンスであってユーザーの心配することではないし、SSHでログインすれば分かる人には分かるだろう、と説明の必要を感じてないのかもしれない。したがって、自分の推測がかなり入っているし、自分はLinuxに特に詳しいわけでも何でもないので、その前提で。

本当にトラブルに陥って回復作業をしなければいけないときは、素直にNetgearのサポートに頼った方がいい。

先に用語について。ReadyNASでは、そのファームウェア=専用にカスタマイズされたLinux=OSのことをRAIDiatorと呼んでいる。よく似た名前でRAIDarもあるが、こちらはクライアントPCからネットワーク上のReadyNASをモニターするためのソフト。何でこんなややこしい名前にしたのか知らないが。

いきなりだが、ReadyNASの構成とRAIDiatorのアップデート/回復の関係を整理。
場所Duo
(Sparc)
(X-RAID)
Ultra 2
(x86)
(X-RAID2)
RAIDiatorのアップデート/回復の影響
Frontview
/USBメモリ
からの
アップデート
(注1)
OS
Reinstall
(注3)
Factory
default
(注4)
BIOSオン
ボード
NAND
Flash
(64MB)
Flash ROM
(2MB)



Linux
カーネル
NAND
Flash
(128MB)
書き換え
Linux
インストール
イメージ
(RAIDiator
ファイル)
OS (Linux
ユーザー
ランド)
(RAIDiator)
HDD
(2台
とも)
2GB
(初期に
約350MB
を使用)
4GiB
(初期に
約370MB
を使用)
書き換え
(注2)
OSをNAND
Flashから
インストール
パーティション
を作成し直して
(ユーザーデー
タは消える)、
OSをNAND
Flashから
インストール
スワップ256MB512MiB
ユーザー
データ
残り残り
DRAM
メモリ
SO-
DIMM
DDR-
SDRAM
(初期は
256MB)
DDR3-
SDRAM
(初期は
1GB)
(注1)USBメモリからのアップデートを確認したのはUltra 2のみ。
(注2)既にインストールされているバージョンと同じ場合は書き換えない。
(注3)何かの事情でNAND FlashとHDDのRAIDiatorのバージョンが違う状態になった場合、自動的にOS Reinstallが行われる。ただし、これがうまく行かず、起動できない状態になることもあり、そのときは手動でOS Reinstallが必要。
(注4)そのReadyNASで稼働する状態になったHDD以外を入れた場合、自動的にFactory defaultが行われる。ただし、これがうまく行かず、起動できない状態になることもあり、そのときは手動でFactory defaultが必要。なお、同じ機種同士であればそのままのHDDで稼働する模様。

4.2. アップデート/回復手段


なぜこう言えるのかはひとまず置いて、具体的な方法について説明すると、

Frontviewからのアップデート


基本簡単。ただし、古いバージョンに戻せない制限付きのことがあるので、リリースノートに注意。

USBメモリからのアップデート


ReadyNASがまともに起動せず、Frontviewが使えない場合や、Frontviewからは古いバージョンに戻せない制限がある場合でも可能だったりする。

以下はUltra 2(x86)の場合の方法。

[参考] 非公式だが、公式FAQからリンクされている方法
Unofficial ReadyNAS USB Recovery Guide for x86-based Systems

  1. ReadyNAS_x86_USB_Flash_Recovery-4.2.12.zipをダウンロードする。これを展開してusbrecovery.exe(NETGEAR USB Recovery Utility)を実行すればUSBメモリが作成される。

    なお、このユーティリティの実行にはVisual C++ 2005 SP1 Redistributable (x86)が必要。また、これにはRAIDiatorファイル(4.2.12)が同梱されているが、同じフォルダに新しいRAIDiatorファイルをコピーすれば、実行時にそれを選ぶことができる。

  2. このUSBメモリを前面のUSB3.0ポートに挿し、backupボタンを押した状態で電源ボタンを押して離す。電源が入って自動的にUSBメモリにアクセスが行われ、2分ぐらいで自動的に電源が落ちる(ここまでbackupボタンは押したまま)。

  3. USBメモリを抜き、普通に電源を入れると、アップデート作業が行われて起動する。
ちなみに、自分のDuoではUSBメモリによるアップデートに成功したことは、相当粘ってみたが一度もない。どこかに問題があるのだと思う。一方、DuoにはPCと直結してTFTPでアップデートする方法があるが、Ultra 2でも同様の方法があるのかは不明。

OS Reinstall


HDDにあるOSをNAND Flashにあるインストールイメージを使って書き換えるもの。ユーザーデータには触らないので、ユーザーデータが失われることはない。

ただし、これを開始する操作はFactory defaultにごく近いので、一歩間違えるとFactory defaultになってユーザーデータは失われる。もし誤ってFactory defaultが開始されかけたときは、電源ケーブルを引き抜いてでも止めなければいけない。

以下はUltra 2(x86)の場合にOS Reinstallを開始する方法。

[参考] 日本公式サイトにある説明
ReadyNAS Ultra2 : RAIDiator (ReadyNAS OS) の再インストール

  1. 後面のResetスイッチをピンで押した状態で電源ボタンを押して離す(Resetスイッチは押したまま)。Act以外のLEDが全部点灯したらResetスイッチを離す。

  2. これで管理用のブートメニューに入ったので、backupボタンを3回押し、HDD2のLEDだけが点灯した状態(OS Reinstallが選択された状態)にする。ここで後面のResetスイッチを押すと、選択が確定され、OS Reinstallが開始される。
ちなみに、このブートメニューとLEDの関係は以下のようなもの(Readynas Ultra 2 how to resets etc...)。
電源HDD 1HDD 2backup
(USB)
ブートメニュー開始
1回目Normal---
2回目Factory default---
3回目OS Reinstall---
4回目Tech Support---
5回目Skip Vol Check--
6回目Memory Test--
7回目Test Disk--
(注)Actは関係ない。

なお、OS Reinstallの後も一部の設定は残ってたりするので、OSのパーティションをフォーマットしてからインストールするのではなく、上書きインストールをする模様。

Factory default


最も根本的かつ破壊的な手段で、HDDをチェックした後、全てのパーティションを作成し直した上で(ユーザーデータは消える)、OSをNAND Flashにあるインストールイメージからインストールするもの。

なお、工場出荷時の状態にリセットするといっても、RAIDiatorをアップデートしたことがあれば、NAND Flashのインストールイメージも書き換えられているので、文字通り工場出荷時の状態に戻るわけではない。

以下はUltra 2(x86)の場合にFactory defaultを開始する方法。

[参考] 日本公式サイトにある説明
ReadyNAS Ultra2 : 工場出荷時の設定への戻し方

  1. 後面のResetスイッチをピンで押した状態で電源ボタンを押して離す(Resetスイッチは押したまま)。Act以外のLEDが全部点灯したらResetスイッチを離す。

  2. これで管理用のブートメニューに入ったので、backupボタンを2回押し、HDD1のLEDだけが点灯した状態(Factory defaultが選択された状態)にする。ここで後面のResetスイッチを押すと、選択が確定され、Factory defaultが開始される。
上記の(注4)のとおり、そのReadyNASで稼動する状態になっているHDD以外を入れた場合(空のHDDや普通のPCで使っていたHDDを入れた場合、Duo(Sparc)で稼動していたHDDをUltra 2(x86)に入れた場合、またはその逆も含まれる)は、起動時に自動的にFactory defaultが行われる。この辺は少し怖いところ。

ただし、これがうまく行かず、起動できない状態になることがある。法則性はよく分からないが、以前にReadyNASで使っていたHDDを一旦別の用に使い、再びReadyNASで使おうとしたときに起こった(RAIDarに「ルートファイルシステムが壊れています」と表示される。このルートファイルシステムとはRAIDiatorのOSのあるパーティションを指しているようなので、それがない状態では当然ではある)。

そういうときは手動でFactory defaultを開始すれば回復できた。

4.3. ReadyNASの構成に関する推測


話は戻って、ReadyNASの構成に関して。基本的に、馴染みのあるx86のUltra 2を中心に話を進める。

まずメモリの構成については、Netgearの資料に記載がある(Letter of Volatility)。これを見るまで、Ultra 2のAMIBIOSがNAND Flashにあるのか、(普通のPCのように)独立したFlash ROMにあるのか分からなかったが、答えは後者だった。

HDDのパーティション


パーティションについては、実はログ(「全てのログ」の方)に出ている。まずDuo(HDDは5400.5の320GB)の方で、「fdisk -l」の結果らしきpartition.logを見ると、
Disk /dev/hdc: 320.0 GB, 320062447616 bytes
255 heads, 63 sectors/track, 38912 cylinders, total 625121968 sectors
Units = sectors of 1 * 512 = 512 bytes
Disk identifier: 0x53c9a337

   Device Boot      Start         End      Blocks   Id  System
/dev/hdc1              32     4096031     2048000   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/hdc2         4096032     4608031      256000   82  Linux swap / Solaris
Partition 2 does not end on cylinder boundary.
/dev/hdc3         4608032   625105615   310248792    5  Extended
/dev/hdc5         4608040   625105615   310248788   8e  Linux LVM

Disk /dev/hde: 320.0 GB, 320062447616 bytes
255 heads, 63 sectors/track, 38912 cylinders, total 625121968 sectors
Units = sectors of 1 * 512 = 512 bytes
Disk identifier: 0x00000000

この中のhdc1のパーティションがOSのあるルートで、hdc2はスワップ、その後ろの拡張パーティション中のhdc5にユーザーデータの入ったLVMがある。

さらに「df -h」の結果らしきdisk_usage.logを見ると、
Filesystem            Size  Used Avail Use% Mounted on
/dev/hdc1             2.0G  352M  1.6G      18% /
tmpfs                  16k     0   16k       0% /USB
/dev/c/c              294G  270G   24G      92% /c

OSのあるhdc1の使用量が分かる。また、ユーザーデータは/dev/c/cにマウントされていることも分かる。

同様に、Ultra 2(HDDは5K500.Bの500GB)のpartition.logを見ると、
Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders, total 976773168 sectors
Units = sectors of 1 * 512 = 512 bytes
Disk identifier: 0xbe56265a

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1              64     8388671     4194304   fd  Linux raid autodetect
Partition 1 does not end on cylinder boundary.
/dev/sda2         8388672     9437247      524288   fd  Linux raid autodetect
Partition 2 does not end on cylinder boundary.
/dev/sda4         9437248   976768064   483665408+   5  Extended
/dev/sda5         9437256   976768064   483665404+  fd  Linux raid autodetect

Disk /dev/sdb: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders, total 976773168 sectors
Units = sectors of 1 * 512 = 512 bytes
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1              64     8388671     4194304   fd  Linux raid autodetect
Partition 1 does not end on cylinder boundary.
/dev/sdb2         8388672     9437247      524288   fd  Linux raid autodetect
Partition 2 does not end on cylinder boundary.
/dev/sdb4         9437248   976768063   483665408    5  Extended
/dev/sdb5         9437256   976768064   483665404+  fd  Linux raid autodetect

Disk /dev/md0: 4293 MB, 4293906432 bytes
2 heads, 4 sectors/track, 1048317 cylinders, total 8386536 sectors
Units = sectors of 1 * 512 = 512 bytes
Disk identifier: 0x00000000


Disk /dev/md1: 536 MB, 536805376 bytes
2 heads, 4 sectors/track, 131056 cylinders, total 1048448 sectors
Units = sectors of 1 * 512 = 512 bytes
Disk identifier: 0x00000000


Disk /dev/md2: 495.2 GB, 495272132608 bytes
2 heads, 4 sectors/track, 120916048 cylinders, total 967328384 sectors
Units = sectors of 1 * 512 = 512 bytes
Disk identifier: 0x00000000


Disk /dev/dm-0: 489.8 GB, 489894707200 bytes
255 heads, 63 sectors/track, 59559 cylinders, total 956825600 sectors
Units = sectors of 1 * 512 = 512 bytes
Disk identifier: 0x00000000

こちらは完全にソフトウェアRAIDの状態を示していて、sda1とsdb1から成るmd0がOSのルート、sda2とsdb2から成るmd1がスワップ、拡張パーティション中のsda5とsdb5から成るmd2にユーザーデータの入ったLVMがある。

同じくdisk_usage.logを見ると、
Filesystem            Size  Used Avail Use% Mounted on
/dev/md0              4.0G  371M  3.5G  10% /
tmpfs                  16K     0   16K   0% /USB
/dev/c/c              455G  273G  182G  60% /c

OSのあるmd0の使用量が分かる。

また、同じくmdconfig.logを見ると、
Device         : /dev/md0
Create Time    : 1296968223
Update Time    : 1299155668
RAID Level     : 1
RAID Capacity  : 4193268
Disk Size      : 4193268
Chunk Size     : 0
Disks          : 2
RAID Disks     : 2
Active Disks   : 2
Working Disks  : 2
Failed Disks   : 0
Spare Disks    : 0
State          : 1 [ Clean ]

Disk  Device         RAID Disk  Maj/Min     Sectors   State
---------------------------------------------------------------------------
  0   /dev/sda1          0        8/ 1      8388608    6 [ Active Sync ]
  2   /dev/sdb1          1        8/17      8388608    6 [ Active Sync ]

Device         : /dev/md1
Create Time    : 1296968223
Update Time    : 1299119883
RAID Level     : 5
RAID Capacity  : 524224
Disk Size      : 524224
Chunk Size     : 65536
Disks          : 2
RAID Disks     : 2
Active Disks   : 2
Working Disks  : 2
Failed Disks   : 0
Spare Disks    : 0
State          : 1 [ Clean ]

Disk  Device         RAID Disk  Maj/Min     Sectors   State
---------------------------------------------------------------------------
  0   /dev/sda2          0        8/ 2      1048576    6 [ Active Sync ]
  2   /dev/sdb2          1        8/18      1048576    6 [ Active Sync ]

Device         : /dev/md2
Create Time    : 1296968223
Update Time    : 1299155668
RAID Level     : 5
RAID Capacity  : 483664192
Disk Size      : 483664192
Chunk Size     : 65536
Disks          : 2
RAID Disks     : 2
Active Disks   : 2
Working Disks  : 2
Failed Disks   : 0
Spare Disks    : 0
State          : 1 [ Clean ]

Disk  Device         RAID Disk  Maj/Min     Sectors   State
---------------------------------------------------------------------------
  0   /dev/sda5          0        8/ 5    967330809    6 [ Active Sync ]
  2   /dev/sdb5          1        8/21    967330809    6 [ Active Sync ]

RAIDの設定が分かる。OSのあるmd0はRAID1、ユーザーデータのあるmd2はRAID5と出ているが、X-RAID2はNetgearの独自拡張らしいので、その通りに取っていいかは不明。

ちなみに、Ultra 2はRAIDiator 4.2.16で3TBのHDDに対応するが、そのためにHDDのパーティショニングが従来のMBRからGPTに変わる。その場合はどうなるかといえば、4.2.16-T33にアップデートしたUltra 2(HDDは5K500.Bの120GB)で「sgdisk -p」をすると、
Disk /dev/sda: 234441648 sectors, 111.8 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 316D3541-952B-44B0-ABC1-E150505DF780
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 234441614
Partitions will be aligned on 8-sector boundaries
Total free space is 5108 sectors (2.5 MiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1              64         8388671   4.0 GiB     FD00  Linux RAID
   2         8388672         9437247   512.0 MiB   FD00  Linux RAID
   5         9437256       234436544   107.3 GiB   FD00  Linux RAID

同じく「df -h」をすると、
Filesystem            Size  Used Avail Use% Mounted on
/dev/md0              4.0G  376M  3.5G  10% /
tmpfs                  16K     0   16K   0% /USB
/dev/c/c              102G  257M  102G   1% /c

パーティション自体はMBRのときと変わってないのが分かる。というわけで、4.2.16にアップデートしたらパーティションはそのままGPTに横滑りする仕組みらしい。なお、HDDのセクタ0はしっかりprotective MBRになっていた。

以上でHDD内の大まかな構成は分かった。

カーネルの所在


オンボードのNAND Flashについて、そこにRAIDiator(ファームウェア)のインストールイメージが置かれていることは色々なところで書かれている。例えば、Netgearの人はPro(x86)についてこう書いている。
(Re: [Readynas Pro Business] 128MB or 256MB embedded flash?)
That is just where the firmware image is stored for re-install/factory installs, you cannot use the flash in user mode. Right now the firmware image is around ~65MB. Upon system install, an OS partition is created on the hard drives that is 4GB in size. That is where all applications/configuration is stored.

また、Sparc(機種は書いてないが時期的に)については、
(Re: general interest question about the firmware)
The firmware is stored on Flash RAM on the main board. The OS is installed to a 2GB partition on the drives.
(Re: iTunes Server won't go away)
The firmware will stay as whatever you have installed. When you update the system, the firmware is written to the NAND/Flash as well, which is the source during a re-install. It won't touch your data, but will set the network IP to DHCP and admin password to default (netgear1).

HDDにインストールされたOSの使用量から見て、NAND Flashにその(たぶん圧縮された)インストールイメージが入っているのは容易に理解できる。ただ、NAND Flashの役割が単にその倉庫だけなのか、あるいはブートプロセスに関わっているのかが分からなかった。

そこで、Ultra 2のHDD(5K500.Bの500GB)のセクタ0を見てみると、

パーティションテーブルは当然あるが、ブートコードの部分は空になっている(WindowsのDiskIDが付いているが、これはX61sに接続したときに書き込まれたものだと思う)。

さらに、OSのパーティションの中を見回しても、GRUBのようなLinuxのブートローダーがないことに気づいた。つまり、普通にHDDからブートしている形跡がない。

不思議に思いながら、ブート時の記録であるdmesg.logを見ると、その冒頭に以下の記述があった。
Linux version 2.6.33.7.RNx86_64.2.2 (jmaggard@calzone) (gcc version 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)) #1 SMP Fri Oct 15 13:20:46 PDT 2010
Command line: initrd=initrd.gz console=ttyS0 sk98lin.LowLatency=Off,Off reason=normal BOOT_IMAGE=kernel

実はここでLowLatencyの設定がされてたりするが、それは置いといて重要なのは以下の部分。
  • initrd=initrd.gz
  • BOOT_IMAGE=kernel
これはinitrd(ブート初期のramdiskイメージ)としてinitrd.gzを、カーネルイメージとしてkernelをロードしているらしいが、OSのパーティションにはそれらしきものはなかった。

が、この2つのファイルには見覚えがあった。それはRAIDiatorのアップデート用のUSBメモリの中で。

実はこのUSBメモリはsyslinuxでブータブルになっていて、X61sでも途中まで起動できたりする。

さらに面白いのは、この設定ファイルであるsyslinux.cfgで、その中身が以下。
serial 0 9600 0

default Normal

label Normal
kernel kernel
append initrd=initrd.gz console=ttyS0 reason=normal

label FactoryDefault
kernel kernel
append initrd=initrd.gz console=ttyS0 reason=factory

label OSReinstall
kernel kernel
append initrd=initrd.gz console=ttyS0 reason=os_reinstall

label TechSupport
kernel kernel
append initrd=initrd.gz console=ttyS0 reason=diag

label SkipVolCheck
kernel kernel
append initrd=initrd.gz console=ttyS0 reason=skip_fsck

label MemoryTest
kernel memtest

冒頭にシリアルポートの設定らしきものがあるが、その後には明らかに管理用のブートメニューと関係ありそうな記述が並んでいる。とくに、先頭のlabel Normalの部分はdmesg.logの冒頭と似ていて、カーネルイメージとしてkernelを、initrdイメージとしてinitrd.gzをロードするとの設定になっている。

ここで、ブート時にNAND Flashがどういう扱いになっているか調べてみると、ReadyNAS Pro(x86)でBIOSのブート時の画面が写っているものがあった(ReadyNAS Pro RNDP6350 Possible Flash Disk Boot Failure)。

ProのPCBにはVGAのピンが出ていて、こういう画面が出せたりするようだが、AMIBIOSがHDDを認識した後にこんな表示を出している。
Device #01 : SMI USB DISK *HiSpeed*
01 USB mass storage devices found and configured.

この「SMI USB DISK」に関して、Ultra 2のusb_devices.logに以下の記述があるのを見つけた。
T:  Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  2 Spd=480 MxCh= 0
D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=090c ProdID=1000 Rev=11.00
S:  Manufacturer=SMI Corporation
S:  Product=USB DISK
S:  SerialNumber=AA04012700015822
C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=100mA
I:* If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=(none)
E:  Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=31875us

この「Vender=090c」で検索してみると、SMIは「Silicon Motion Inc.」を指すらしい。したがって、Proには(Ultra 2やUltra 4と同様に)Silicon MotionのNAND Flashコントローラがあり、これがブート時にBIOSでUSB接続の、たぶんブートデバイスとして認識されているのだと思う。

ということは、同じx86のUltra 2でもオンボードのNAND FlashがBIOSでブートデバイスとして認識されているのではないか、ということになる。ただ、それを直接確かめることはできないので(カーネルが起動する前のことなのでログにも残らない)、NAND Flashの中身を見られないか。

Ultra 2のdmesg.logには以下の記述があるので、NAND Flashはsdcとなっているらしい。が、色々試しても自分ではこれをマウントできず、中身は分からなかった。
scsi 4:0:0:0: Direct-Access     SMI      USB DISK         1100 PQ: 0 ANSI: 0 CCS
sd 4:0:0:0: Attached scsi generic sg2 type 0
sd 4:0:0:0: [sdc] 244736 512-byte logical blocks: (125 MB/119 MiB)
sd 4:0:0:0: [sdc] Write Protect is off
sd 4:0:0:0: [sdc] Mode Sense: 43 00 00 00
sd 4:0:0:0: [sdc] Assuming drive cache: write through
sd 4:0:0:0: [sdc] Assuming drive cache: write through
 sdc: sdc1
sd 4:0:0:0: [sdc] Assuming drive cache: write through
sd 4:0:0:0: [sdc] Attached SCSI removable disk

ともあれ、諸々を考え合わせると、以下のような推測を立てられる。
  1. ブート時にはBIOSがいわばオンボードのUSBメモリであるNAND Flashをブートデバイスとし、
  2. NAND Flashから(syslinuxか何かのブートローダーを介して)Linuxのカーネル(kernel、initrd.gz)がロードされて起動し、
  3. 後はカーネルがHDD内のOSのパーティションからカーネル以外(ユーザーランド)をロードして起動する。
と、ここまで来たところで、そういうことはNetgearの人も書いている(断片的だが)のを見つけた。まずNVX(x86)についてこう書いている。
(Re: PAE (Physical Address Extention) for NVX Models)
It has some custom modules for handling the special hardware, and the kernel itself is not stored on disk, but in the firmware flash, so doing an apt-get won't do much.

また、全てのx86について、
(Re: Ultra 6 with 4.2.15 - GPT support?)
The Ultra (all x86) boot using BIOS to Internal Flash ROM. It mounts / (root) from the disks, but the boot process is in the flash.

Duo(Sparc)については、
(Re: Duo stuck in boot up flashing blue light)
The drives aren't needed for it to boot in telnet mode, it loads that boot image from the internal flash.

また別の人はNV+(Sparc)についてこう書いている。
(Re: T21: Trouble (re)booting after first application of update)
It does do the initial booting off the flash, so I suppose it's possible there are some bad blocks on the flash.

ということで、初期のブート(=カーネルのロード)はオンボードのNAND Flashから行われることが確定。

なお、Netgearの人はブートプロセスに関してこうも書いている。
(Re: VirtualBox version of x86 RAIDiator?)
Not possible at this time. It would take much changing on the boot code. Much of it is tied to hardware addresses (firmware location etc), so it would never find the boot flash.

これを見ると、NAND Flashには普通のファイルシステムはなく、ハードウェアのアドレスを直接叩くやり方になっているのかもしれない。

ちなみに、このカーネルはRAIDiatorをアップデートするとバージョンが変わるので、一緒にアップデートされる模様。USBメモリからアップデートした場合でもUSBメモリ中のkernelとは違うので、単純なコピーではない。
  • 4.2.13: 2.6.33.6.RNx86_64.2.1 #1 SMP Tue Jul 27 13:21:19 PDT 2010
  • 4.2.14: 2.6.33.7.RNx86_64.2.2 #1 SMP Wed Sep 29 17:22:45 PDT 2010
  • 4.2.15: 2.6.33.7.RNx86_64.2.2 #1 SMP Fri Oct 15 13:20:46 PDT 2010

シリアルポート

Duoの後面には診断用のシリアルポートが付いている(ReadyNAS DUO Reset Switch Location Image)。同じものはUltra 2の後面にもある。4pinのもので、ピンアサインも分かっているようなので(Running own code on the Infrant ReadyNAS)、もし興味があれば。

4.4. ReadyNASのHDDをPCで直接見る可能性

DuoとUltra 2は2台のHDDによるミラーリングなので、原理的には、どちらか1台を普通のPCに繋げばユーザーデータを見ることはできる。

ただし、DuoはハードウェアRAID(たぶん)のせいか、パーティションは普通のLinuxのPCと変わらないが、ユーザーデータはLVMで管理されていて、かつブロックサイズがx86のLinuxでは標準でサポートされてない16KBなので、これを読むのに四苦八苦してたりする(ReadyNAS Data Recovery - VMware recovery toolなど)。なお、暗号化はされてない。

以下はDuo(HDDは5K500.Bの120GB)のユーザーデータのある/dev/c/cを「dumpe2fs -h」したもの。
dumpe2fs 1.40.11 (17-June-2008)
Filesystem volume name:   c
Last mounted on:          <not available>
Filesystem UUID:          8adbb446-8d4d-4ec1-a6e1-2223841c5417
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype needs_recovery sparse_super large_file
Filesystem flags:         signed_directory_hash 
Default mount options:    (none)
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              3590400
Block count:              7180288
Reserved block count:     0
Free blocks:              7089875
Free inodes:              3590376
First block:              0
Block size:               16384
Fragment size:            16384
Reserved GDT blocks:      128
Blocks per group:         65528
Fragments per group:      65528
Inodes per group:         32640
Inode blocks per group:   510
Filesystem created:       Wed Feb 16 19:24:25 2011
Last mount time:          Wed Feb 16 19:39:31 2011
Last write time:          Wed Feb 16 19:39:31 2011
Mount count:              4
Maximum mount count:      -1
Last checked:             Wed Feb 16 19:24:25 2011
Check interval:           0 (<none>)
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:               256
Journal inode:            8
Default directory hash:   tea
Directory Hash Seed:      552799a4-355e-4415-9b7c-2c78b4f7772b
Journal backup:           inode blocks
Journal size:             512M

また、Ultra 2の方はソフトウェアRAIDなので、そもそもパーティションが違う。ただ、ブロックサイズは4KB。

以下はUltra 2(HDDは5K500.Bの120GB)のユーザーデータのある/dev/c/cを「dumpe2fs -h」したもの。
dumpe2fs 1.41.12 (17-May-2010)
Filesystem volume name:   <none>
Last mounted on:          /c
Filesystem UUID:          01ce2742-6b27-49ea-b11a-ec7e7290767b
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype needs_recovery extent 64bit flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
Filesystem flags:         signed_directory_hash 
Default mount options:    user_xattr acl
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              1675264
Block count:              26804224
Reserved block count:     0
Free blocks:              26649527
Free inodes:              1675241
First block:              0
Block size:               4096
Fragment size:            4096
Reserved GDT blocks:      1024
Blocks per group:         32768
Fragments per group:      32768
Inodes per group:         2048
Inode blocks per group:   128
RAID stride:              16
RAID stripe width:        16
Flex block group size:    16
Filesystem created:       Wed Feb 16 18:12:28 2011
Last mount time:          Wed Feb 16 18:30:05 2011
Last write time:          Wed Feb 16 18:30:05 2011
Mount count:              5
Maximum mount count:      -1
Last checked:             Wed Feb 16 18:12:28 2011
Check interval:           0 (<none>)
Lifetime writes:          543 MB
Reserved blocks uid:      0 (user unknown)
Reserved blocks gid:      0 (group unknown)
First inode:              11
Inode size:               256
Required extra isize:     28
Desired extra isize:      28
Journal inode:            8
Default directory hash:   half_md4
Directory Hash Seed:      fe87f508-0a80-4ad7-a643-23ffa57bc308
Journal backup:           inode blocks
Journal features:         (none)
Journal size:             128M
Journal length:           32768
Journal sequence:         0x0000001e
Journal start:            1

ここまで見て、これは普段からmdadmやlvmに慣れ親しんだLinux使いの人でもなければ太刀打ちできないと思う。いざとなればLinuxをインストールしたPCに繋げれば読めるだろう、というのは甘ーい幻想。お任せのアプライアンスなNASのために、それだけの苦労をするのも本末転倒なので、バックアップなど運用上の注意で何とかするのが結果的には楽だと思う。

なお、ReadyNAS本体が故障してHDDが生き残った場合、そのHDDを読む方法は、Netgearの公式では、同じ機種のReadyNASを入手してきて同じ順番で差せばそのまま稼働する、というもの。絶対どうしても、という場合はこれが確実かつ安全策ではある。

いずれにせよ、本体がハードウェア的に壊れた様子はないが、起動しなくなったり、OSがおかしくなったりした場合には、まずはOS Reinstallを試してみるのが基本。

2011/03/28

バッテリー最強構成

一日を通したピークシフトを考えた場合、大容量バッテリーだけでは持続時間がやや物足りないので、拡張ライフバッテリー(底面に貼り付けるもの)を購入した。これでThinkPad X6x用のバッテリーは全種類を揃えたことになる。

1. X6x用バッテリー比較


12時の位置から時計回りに、拡張ライフバッテリー、標準の4セル拡張容量バッテリー、8セル大容量バッテリー、4セルスリムラインバッテリー。
Batteries for ThinkPad X6x

この拡張ライフバッテリー、表面積はやたらでかいものの、持ってみると予想を裏切る軽さ。ずっしりした大容量バッテリーと比べると歴然たる差で、中は空いているのが分かる。

それぞれのバッテリー詳細情報は以下のとおり(スリムラインバッテリーは4本あったうちの一番新しいもの)。

4セルスリムラインバッテリー

4セル拡張容量バッテリー

8セル大容量バッテリー

拡張ライフバッテリー

スペックをまとめると以下のようになる。
セルFRU重量
(g)
定格
容量
(Wh)
比率
(注2)
持続
時間
(注3)
満充電
容量
(Wh)
サイクル
カウント
4セル
スリムライン
バッテリー
角形×442T462918928.800.771.623.2955
4セル
拡張容量
バッテリー
シリンド
リカル×4
42T4570240
(注1)
37.441.00 2.137.4423
8セル
大容量
バッテリー
シリンド
リカル×8
42T4632450
(注1)
74.882.004.275.968
拡張ライフ
バッテリー
不明
(角形×4?)
40Y790436528.080.751.628.081
(注1)スペーサーを含む。
(注2)拡張容量バッテリーの定格容量を1とした場合の比率。
(注3)大容量バッテリーの持続時間を4.2とし、定格容量の比率から計算したもの。
  • バッテリ持続時間は使い方によって大きく変わるが、このX61s(CPU: Core2Duo L7700 1.8GHz、メモリ: 4GB、Windows 7 64bit)では、自分の使い方では大容量バッテリーで4時間強といったところ。

    省電力マネージャーの計算ではこれぐらい。ただし、これはふらふら変わるので、たいして当てにはならない。

    これでLenovoのバッテリー時間対応表の半分ぐらいになる。

  • このスリムラインバッテリーはあまり優しい使い方をしてなかったので、サイクルカウントの割に満充電容量の落ちが大きい。

  • 大容量バッテリーの定格容量は拡張容量バッテリーの丁度倍で、セル数を反映している。

  • この拡張ライフバッテリーは、新品だが、製造日は一番古い。つまり蔵出し品で、そんなに生産されなかったらしい。定格容量はスリムラインバッテリーよりやや小さい程度なので、たぶん同じ角形セル×4の構成で、セル自体の型が少し古いのではないかと思う。
拡張ライフバッテリーはもっと容量があるものだと勝手に思い込んでいたので、スリムラインバッテリーと同程度というのは拍子抜けではある。

それはともかく、大容量バッテリー+拡張ライフバッテリーというX6xのバッテリー最強構成でも持続時間は6時間ぐらいなので、一日の日中をずっとバッテリ駆動させるのは無理で、やはりスポット的にバッテリ駆動を組み込んだピークシフトプランにせざるを得ないと分かった。

2. 拡張ライフバッテリーを追加すると


拡張ライフバッテリーは、省電力マネージャーに出るとおりセカンドバッテリーという扱いになり、これに対して普通に本体の後ろに付くバッテリーはメインバッテリーとなる。これらの違いは、放電と充電の両面でメインバッテリーが優先されるということにある。

まず放電のときは、セカンドバッテリーの方から使われ、その後にメインバッテリーが使われる。これにより、使い終わったセカンドバッテリーを取り外して軽くすることができる。つまり、航空機のドロップタンクと機内燃料タンクの関係と同じ。

最初はメインバッテリー(これは大容量バッテリー)は使われず、

セカンドバッテリー(拡張ライフバッテリー)の方から使われ始める。

次に充電のときは、メインバッテリーの方から充電され、それが終わってからセカンドバッテリーが充電される。

最初にメインバッテリーの充電が始まるが、

セカンドバッテリーの方は放置。

メインバッテリーが満充電になってから、

セカンドバッテリーの充電が始まる。

ということで、拡張ライフバッテリーを付けたときに充電が同時に行われると消費電力がどうなるのか気になっていたが、充電は(放電も)片方ずつ行われるので、そういう問題は起こらない。

3. ワットモニターでチェック


サンワサプライのワットモニターを使ってX61sの消費電力を確認してみた。


しばらく計測していて気づいたのは、バッテリ充電中は、その空き容量によってバッテリに流れる電流(A)が変わり、それに伴って消費電力(W)も変わること。また、バッテリによる差も結構ある。
消費電力(W)
充電して
いない
充電中
バッテリ空き容量(注1)
50%20%10%5%
AC駆動中
(LCDオン)
(注2)
4セル拡張容量バッテリー17~2153412523
8セル大容量バッテリー60483425
拡張ライフバッテリー49393025
AC駆動中(LCDオフ、外部ディスプレイ使用)15~18
ピークシフト機能によるバッテリ駆動中0.4
電源オフ
(待機中)
WOLオフ0.7
WOLオン1.1
(注1)小刻みに変動するので、大体これぐらいを中心に動くという数字。
(注2)ディスプレイ・ブライトネスを15段階中の6に設定。
  • 通常のAC駆動中は低消費電力のノートPCでも、バッテリ充電中は消費電力が跳ね上がる。

  • 充電中は、放電したてで空き容量が大きいと消費電力も大きく、充電が進んで空き容量が小さくなるにつれ消費電力も小さくなっていく(充電速度も遅くなって……)。
  • 容量の大きいバッテリーほど、充電中の消費電力も大きい。大容量バッテリーのときなどはACアダプターの容量(65W)の上限に近い。

  • ピークシフト機能によるバッテリ駆動中にも、わずかながら電力の消費はある。

  • LCDのオン/オフによる差はそれほど大きくない。
  • 待機中はWOLオンの方が消費電力が高い。これは理解できる。
これからピークシフト実行時の消費電力のイメージを描いてみると、大容量バッテリーの場合はこんな感じ。

さらに、大容量バッテリー+拡張ライフバッテリーの最強構成の場合は、大容量バッテリーの充電終了後に拡張ライフバッテリーの充電が行われるので、充電の山が2回来ることになる。

いずれも一見して分かるとおり、ピークシフト実行中に通常のAC駆動分を節電する代償として、バッテリ充電時にはその倍以上の電力を消費するわけで、充電を始めるタイミングはよく考える必要がある

ついでに、手近な機器も計測してみた。
消費電力(W)
LCDディスプレイ
(Eizo S2110W)
ブライトネス5%40
ブライトネス50%59
ブライトネス100%66
未入力時1.3
電源オフ(待機中)0.6
PCスピーカー(Bose MediaMate II)4.5~5
ReadyNAS Ultra 2
(5K500.B-500×2)
アイドル時19~20
使用時20~22
スピンダウン時17.8
電源オフ(待機中、WOLオン)1
電源オフ(待機中、WOLオフ)2.8
ReadyNAS Duo
(5400.5-320×2)
アイドル時12~13
使用時13~15
スピンダウン時10.6
電源オフ(待機中)0.4
プリンター
(Canon MP630)
アイドル時5
電源オフ(待機中)0.4
ハブ(Buffalo LSW-GT-5W)6.5
ADSLルーター(Aterm WD701CV)5.8
  • LCDディスプレイの消費電力が馬鹿にならない。X61sに接続して使ってきたが、本体の倍も消費していたとは……。
  • BoseのPCスピーカーには電源スイッチがなく、少し気になっていたが、入力がなくても音量に関係なく消費していると分かった。よって、途中に電源スイッチを挟むことにした。

  • ReadyNAS Ultra 2は、ノートPC並みに消費することが分かった。Atom機だからか。待機中はなぜかWOLオフの方が数字は高い。普通は逆だと思うが、変なことを見つけてしまった。
  • ReadyNAS Duoは、さすがというべきなのか、Ultra 2より低消費電力。

  • ハブも新しい省電力のものに換えたいところ。数字はたいしたことないが、常時通電しているものだけに。
  • ADSLルーターも数字は低くないが、レンタル品だし、これを切るわけにもいかず。

4. 拡張ライフバッテリーを見る


拡張ライフバッテリーについてはそんなに情報が出てないので、少しだけ紹介。

大容量バッテリーと一緒にX6x本体に付けたときと同じ状態に重ねてみると、こんな位置関係になる。
Batteries for ThinkPad X6x

本体との接続にはウルトラベースなどとのドッキング用コネクタを使用するが、他のバッテリーと同じ端子も付いている。たぶんバッテリーチャージャー用。
Batteries for ThinkPad X6x

スリムラインバッテリーと一緒にX61sに付けたところ。隙間が空いて見えるが、中で足が突いているのか、とくにがたつきはない。
ThinkPad X61s with Extended Life Battery

以下、大容量バッテリーと一緒に付けた状態。
ThinkPad X61s with Extended Life Battery
ThinkPad X61s with Extended Life Battery
ThinkPad X61s with Extended Life Battery
ThinkPad X61s with Extended Life Battery
ThinkPad X61s with Extended Life Battery
ThinkPad X61s with Extended Life Battery

裏側から見るとかなりぼてっとした感じになるが、表側から見ると意外とすっきりまとまる。日常的に付けていても違和感はなさそう。

2011/03/19

ReadyNAS的クラウド

これをクラウドというのかよく知らないが、Pogoplugがパーソナルクラウドとして売り出していて、それと基本的に同じ機能なので。要はLAN内のNASに外のインターネットから簡単にアクセスできる機能だが、ReadyNASではReadyNAS Remoteがそれに当たる。

これ自体はDuoでも使えるが、非力なDuoではやる気にならなかった。Ultra 2では初めからAdd-onに入っている。

(このエントリは一続きのエントリの4/5)

5.1. 手順


ReadyNAS Remoteの準備は簡単。ネットワークに関する設定は不要。
  1. クライアントソフトをNetgearからダウンロードして、クライアントPCにインストール。そのまま初回起動時にアカウント登録をする。

  2. FrontviewのサービスからReadyNAS Remoteを有効にする。その管理画面を開き、登録したアカウントのメールアドレスで検索して、出てきたら接続を許可する方に移して保存する。これで準備完了。
接続するときは、
  1. PCの方でReadyNAS Remoteを起動するか、既に起動していればタスクトレイに出るアイコンを右クリックして「Log In」を選ぶと、(ReadyNAS Remoteの管理サーバーに)ログインしたと表示が出る。続けて、自動的に自分のReadyNASのホスト名が出てオンラインになったと表示されれば、接続完了。

  2. 同じように「Connect to ReadyNAS...」を選ぶと、エクスプローラにReadyNAS Remoteのアイコンが出現するので、これを開けば共有フォルダにアクセスできる。後は普通のエクスプローラと同じ。

5.2. 接続経路


速度や安定性を考えると接続経路がどうなっているかが気になるが、
  • 接続したときに表示されるIPアドレスを調べたところ、
    • whoisしてみると、クライアントPC、ReadyNASともにアメリカのアドレスになっていた。
    • tracertなどをしてみると、このアドレスは(見かけ上は)どこかを中継しているわけではなく、それぞれが直接持っている形になっていた。
    • Microsoft Network Monitorで観察すると、クライアントPCとReadyNASの間の通信はこのアドレス間でSMBなどのプロトコルによって行われていた。
    • tracertしてみると、この通信は(見かけ上は)直接行われていた(ホップ数は1)。

  • ReadyNAS Remoteを有効にした状態のReadyNASにログインしてnetstatしたところ、外のIPアドレス(複数)と繋がっていた。

    このアドレスをwhoisしてみると、アメリカの会社になっていた。試しにこのアドレスにブラウザでアクセスすると、繋がったのはReadyNAS Remoteのクライアントソフトから「View Profile」を選んだときと同じページだった。

    ということで、このIPアドレスがReadyNAS Remoteの管理サーバーであることが確定。

  • クライアントPCを持ち出して外のインターネットから接続しているとき、インターネット接続状態が悪くてサーバーとの接続が切れると、ReadyNASとの通信も止まる。
ということから考えるに、ReadyNAS RemoteではクライアントPCとReadyNASを共に管理サーバーに接続させた状態で、それぞれに仮想のIPアドレスを割り当て、その間を管理サーバーが中継しているのではないかと思う。

5.3. 速度


前提として、ReadyNASのある自宅のLAN(eAccessのADSL接続)からSpeedtest.netでアメリカ西海岸のサンノゼと東海岸のボストンとの速度を計ると、こんな感じ。

まあ速くはない。とくに上り側は。

E-Mobile


外でのモバイル用には基本的にE-Mobileを使っているが、アダプターが古いこともあって(D01NX)、基本的に速くはない。

このアダプターでE-Mobileに接続し、ブラウザでウェブを見るぐらいなら何とかという状態で試したところ、ReadyNAS Remoteの管理サーバーとの接続がぷちぷち切れて使い物にならなかった。

違う場所からE-Mobileの接続が比較的安定している状態で、まずE-Mobile自体の速度を計ると、

この状態でReadyNAS Remotoに接続し、エクスプローラでファイルを転送中に「詳細」を開いてスピードを読むと、大体こんなもの。
  • ReadyNAS --> クライアントPC: 100KB/s前後
  • クライアントPC --> ReadyNAS: 40KB/s前後
決して速くはないが、数MBのファイルの出し入れ程度なら、少し待たされるが使えないこともない。ただし、通信がReadyNAS Remoteで占有されてしまうらしく、同時にブラウザでウェブを見たりするのは難しかった。

Freespot


比較のため、公衆無線LANではどうかということで、Freespotの使える店に行ってみた。

そこでの無線LANの速度を計ると、上り側が割と速かった。

この状態で同じくエクスプローラで転送してみると、
  • ReadyNAS --> クライアントPC: 120KB/s前後
  • クライアントPC --> ReadyNAS: 800KB/s前後
ReadyNASからのリードはあまり違わないが、ライトは格段に速い。その分、ストレスなくファイルの出し入れができた。

ということで、ReadyNASからのリードはたぶん自宅のLANの上り速度がボトルネックになっていると思う。一方、ReadyNASへのライトはクライアントPCからの上り速度がボトルネックになっていることが分かる。したがって、この両方の速度がもっと速ければ、ReadyNAS Remoteの速度も上がる可能性が高いと思う。

5.4. まとめ


ReadyNAS Remoteは(インターネット接続環境がよければ)十分使える。Pogoplugにあるような便利機能も、スマートフォン用のクライアントソフトもないが、追加投資なしで使えるNASの機能としては、まあいいかなと。

最後にReadyNASの回復に関することを。

[追記]

ReadyNAS RemoteのAndroid用アプリが出てた(ReadyNAS Remote)。