Raspberry Piの電源

先日からRaspberry PiにUSB温度湿度計を付けて記録させているのだけど、運用開始からしばらくするとファイルシステムが破損するという問題があった。

記録しているRRDはもちろん、実行バイナリまでときどき破損するので何かおかしいと思って調べてみると、どうも電源の容量不足であったようだ。

Raspberry PiはMicroUSBの形状のコネクタで給電を受けるのだけど、最大消費電流が1.1AとUSBの規格での500mAよりも大きい。最近はUSB給電が一般的になったこともあって500mA以上出せるACアダプタがほとんどで、私が使っていた物も1ポートあたり1Aまでは出るはずだったのだが、これでは不足だったようだ。SDカードへの書き込み時には700mA消費するという話もあるので瞬間的に電力不足になってデータが化けてしまっていたようだ。

Ankerの大電流が供給できるACアダプタに変更してからは一応問題なく動作しているようだ。温度以外にもSDカードへの書き込みレイテンシを計測していたが、これも電源変更後安定したパフォーマンスになるようになった。従来は電流不足で書き込みにギリギリ成功するが遅いという状態になっていた可能性がある。

変更から1週間ほどしか経過していないので、まだ予断は許さないがこのまま安定してくれることを願うのみ。これでもダメなら電源のバイパスコンデンサの容量を増やすなどしないといけない。流石に規定電力以下で使っているのでこれは不要と思う

自宅のNASをアップデート

今までWindows HomeServerを搭載したAcerのH342というNASを使っていたのだけど、サポートも切れているしOEM版で随分前に買うだけ買っていたWHS2011へ入れ替え。

"H342 WHS2011"でググると自動インストールの手順を公開してくれている方がいてその方法で結果的には上手く行きました。インストール後のコネクタのインストール時に既知の問題があったようで、インストールが上手く行っていないのか判別する方法がなかったため何度もやり直してしまった。最終的にはレジストリを手編集して、その部分を突破してインストール完了。この製品に元々入っていたシステムディスクを潰したくなかったのでデータ用の2本のディスクに加えて、ブート用のディスクの1本を使い、4本のフル実装になってしまった。

WHSからWHS2011への変更ではNAS用に特化した作りになっていたのがかなり普通のフルスペックWindowsになったようで、64bit化したこともあってか増設後に2GBになっているH342ではかなり動作が緩慢になってしまった。

また、WHSでサポートされていたドライブエクステンダー(DE)という複数のディスクをプールして管理でき、ディレクトリ単位で冗長度を指定できる柔軟なストレージ管理方式が廃止になってしまい、標準的なWindowsソフトウェアRAIDの世界に戻されてしまった。データの移行なんてやってくれるわけがないので、データを一時的に全て別のストレージに退避して、データディスクをRAID1で再編成するというかなり時間がかかる作業が必要だった。

データ移行後は恒例のWindows Update祭。これが全然終わらない…

WHSNASヘッドをやるだけには機能も要求スペックも過剰だし、普通のNASヘッドが欲しくなってきた。QNAPやAsustorあたりので十分ではないかと思っている

最近のLinuxにおける*stat

ときどき/usr/bin/以下の*statを見てみると、知らないコマンドが増えていて発見がある。

dstat

一時はてダで話題になったPythonで書かれた汎用stat。デフォルトでもカラフルな表示が楽しい

lnstat

manによると'unified linux network statistics'とのことで、ネットワーク関係のステータスが見られる。/proc/net/statの結果をパースして表示してくれる。 ネットワークレイヤの各種タイマーやらカウンタで普段見ないようなものまで追いかけられるので、トラブルシュートのときに良いかもしれない。引数の与えかたが伝統的な*statとはちょっと異なる

arp_cach|arp_cach|arp_cach|arp_cach|arp_cach|arp_cach|arp_cach|arp_cach|arp_cach|arp_cach|arp_cach|arp_cach|rt_cache|rt_cache|rt_cache|rt_cache|rt_cache|rt_cache|rt_cache|rt_cache|rt_cache|rt_cache|rt_cache|rt_cache|rt_cache|rt_cache|rt_cache|rt_cache|rt_cache|ndisc_ca|ndisc_ca|ndisc_ca|ndisc_ca|ndisc_ca|ndisc_ca|ndisc_ca|ndisc_ca|ndisc_ca|ndisc_ca|ndisc_ca|ndisc_ca|
 entries|  allocs|destroys|hash_gro| lookups|    hits|res_fail|rcv_prob|rcv_prob|periodic|forced_g|unresolv| entries|  in_hit|in_slow_|in_slow_|in_no_ro|  in_brd|in_marti|in_marti| out_hit|out_slow|out_slow|gc_total|gc_ignor|gc_goal_|gc_dst_o|in_hlist|out_hlis| entries|  allocs|destroys|hash_gro| lookups|    hits|res_fail|rcv_prob|rcv_prob|periodic|forced_g|unresolv|
        |        |        |      ws|        |        |      ed|es_mcast|es_ucast|_gc_runs|  c_runs|ed_disca|        |        |     tot|      mc|     ute|        |  an_dst|  an_src|        |    _tot|     _mc|        |      ed|    miss| verflow| _search|t_search|        |        |        |      ws|        |        |      ed|es_mcast|es_ucast|_gc_runs|  c_runs|ed_disca|
        |        |        |        |        |        |        |        |        |        |        |     rds|        |        |        |        |        |        |        |        |        |        |        |        |        |        |        |        |        |        |        |        |        |        |        |        |        |        |        |        |     rds|
      13|     373|     367|       2|   35905|   32708|    1874|       0|       0|   19900|       0|      65|      19|       0|  371775|       0|    6227|   12004|       0|       0|       0|    1303|    1032|       0|       0|       0|       0|       0|       0|       4|       2|       0|       0|       0|       0|       0|       0|       0|   19900|       0|       0|
      13|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|      19|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       4|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|
      13|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|      19|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       4|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|
      13|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|      19|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       4|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|
      13|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|      19|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       4|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|
      13|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|      19|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       4|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|
      13|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|      19|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       4|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|
      13|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|      19|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       4|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|
      13|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|      19|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       4|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|
      13|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|      19|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       4|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|       0|

手元のDebianではiproute2のパッケージに入っていた。

nfsiostat

nfsstatでもいいんだけど、数値の経過とかを追うのにはvmstatのような結果を出してくれるこちらの方が便利そう。 sysstatが/usr/binにnfs-commonが/usr/sbinに同名のコマンドを収録している

numastat

最近のプロセッサだとCPU自身にメモリコントローラが内蔵されていて、複数ソケットのサーバーなどではCPUごとにローカルメモリを持っているような物理構成になっていることが多い。こういうアーキテクチャをNUMA(Non-Uniform Memory Access; 非対称型メモリアクセス)と呼ぶのだけど、このプログラムではNUMA構成でいまどのようにメモリが使われているかを追うことができる。

% numastat
                           node0
numa_hit               410021903
numa_miss                      0
numa_foreign                   0
interleave_hit             13485
local_node             410021903
other_node                     0

手元のPCはNUMAではないので残念ながら意味のある結果にはならない。numactlというパッケージに収録

pidstat

sarのような内容をプロセスごとに定期的に出力してくれる。同じようなデータを取るのにtopをバッチモードで実行して記録したりしていたが、こちらの方が楽そう

03時27分07秒   UID       PID    %usr %system  %guest    %CPU   CPU  Command
03時27分09秒     0       176    0.00    0.50    0.00    0.50     0  kworker/0:1H
03時27分09秒     0      2248    0.00    0.50    0.00    0.50     0  cpufreqd
03時27分09秒     0      2570    3.50    1.50    0.00    5.00     0  Xorg
03時27分09秒  1000      4181    2.00    0.50    0.00    2.50     0  ibus-daemon
03時27分09秒  1000      4195    1.50    0.00    0.00    1.50     1  ibus-ui-gtk3
03時27分09秒  1000      4211    0.50    0.00    0.00    0.50     1  xfwm4
03時27分09秒  1000      4215    1.50    0.00    0.00    1.50     1  ibus-engine-skk
03時27分09秒  1000      4263    0.50    0.00    0.00    0.50     1  mlterm
03時27分09秒  1000     12651    5.50    0.00    0.00    5.50     1  chromium
03時27分09秒  1000     13179    0.50    1.00    0.00    1.50     1  pidstat
03時27分09秒  1000     19829    2.00    0.50    0.00    2.50     0  chromium

03時27分09秒   UID       PID    %usr %system  %guest    %CPU   CPU  Command
03時27分11秒     0      2570    1.00    1.50    0.00    2.50     1  Xorg
03時27分11秒  1000      4181    1.00    0.00    0.00    1.00     0  ibus-daemon
03時27分11秒  1000      4195    1.00    0.00    0.00    1.00     1  ibus-ui-gtk3
03時27分11秒  1000      4211    0.00    0.50    0.00    0.50     0  xfwm4
03時27分11秒  1000      4215    0.50    0.00    0.00    0.50     1  ibus-engine-skk
03時27分11秒  1000      4230    0.50    0.00    0.00    0.50     0  xfce4-panel
03時27分11秒  1000     12651    2.00    0.00    0.00    2.00     0  chromium
03時27分11秒  1000     13179    0.50    0.00    0.00    0.50     1  pidstat
03時27分11秒  1000     19829    1.50    0.00    0.00    1.50     0  chromium

sysstatのコマンドの一つとして収録されていた

nicstat

NICごとの利用状況をiostat風に出してくれる。その名の通りnicstatというパッケージに収録されていた

% nicstat 10                                                                                                                                                       Time      Int   rKB/s   wKB/s   rPk/s   wPk/s    rAvs    wAvs %Util    Sat
03:28:12     eth0   15.65    4.59   14.03   10.09  1142.4   465.5  0.02   0.00
03:28:12       lo    0.13    0.13    0.44    0.44   298.9   298.9  0.00   0.00
    Time      Int   rKB/s   wKB/s   rPk/s   wPk/s    rAvs    wAvs %Util    Sat
03:28:22     eth0    0.00    0.01    0.00    0.10    0.00   66.00  0.00   0.00
03:28:22       lo    0.00    0.00    0.10    0.10   48.00   48.00  0.00   0.00
    Time      Int   rKB/s   wKB/s   rPk/s   wPk/s    rAvs    wAvs %Util    Sat
03:28:32     eth0    0.08    0.04    0.90    0.60   94.11   67.00  0.00   0.00
03:28:32       lo    0.00    0.00    0.00    0.00    0.00    0.00  0.00   0.00

Nexus 5届いた

やや出遅れた感あるけど、届いた。 利用しているSIMはb-mobileのスマホ電話SIM。無難にLTEを掴んでくれる。個人的にはLTEスマートフォンって初めてなのだけど、想像していたよりは掴みが悪いな。すぐにHSDPAとかに切り替わってしまう。 まだ触り始めだけど、幾つか気になった点が

  • 欧文フォントが変わった?Robotoを使うようになったのかな。縦に圧縮された感じのフォント
  • スクリーンアプリの挙動が結構違う
  • アプリを入れても問答無用でデスクトップにアイコン置かない
  • 最初の画面の左側はGoogle Nowが表示される。iOSの検索みたいな感じ
  • スクリーンから5画面とかで始まるわけではないんですね。アイコンを配置していくと勝手に増えるのかな
  • 画面上部のステータスアイコンが常に固定で表示されるわけではなくなった、これはiOS 7っぽい
  • WiFiやWANのアイコンの色が変わってインターネットへの到達性を示す機能が無くなった模様。あれ地味に便利だったんだけどな
  • 位置情報を利用するアプリについて電池消費をケアされるようになった。このアプリが位置情報を頻繁に取得して電池消費を悪化させています、みたいな

比較対象が2年を経過したGalaxy Nexusなので、とにかく色々な動作が機敏。

バンパーを付けているのもあるけど、今どきの端末の流れそのままにゴツくなってしまった。大きくて落としそうだな。たまたま有った Xperia Z1と比較したらそれよりはやや小さく感じる。Z1が角張ったデザインなのに対しては、側面が斜めにカットしてあるのが小さく感じさせる。バンパーを付けていることによる問題かもしれないが、ウェイクアップボタンはやや押し難くい。

本体全面に占める画面の広さは大きくなったので、本体サイズ以上に画面サイズの大きさは感じる。ペンタイルのGNに比べるとだろうか、解像度も上がっているので表示もそれなりに綺麗になった。

小さいことだがMicroUSBのコネクタがGNからは逆になった。MicroUSBは台形のコネクタ形状だが長辺が前面に来る。N5とNexus 7は同じ。最近の傾向だろうか

ecryptfs-mount-privateで若干嵌った話

とあるVPSを借りてUbuntuを入れて作業マシンを作っていたのだけど、インストール時にホームを暗号化するかという項目を何気なしに有効にした状態でインストールしたら若干はまってしまった。 この機能はホームディレクトリ以下をeCryptfsで暗号化する機能だったのだけど、これを有効にしているとsshの公開鍵認証が通らなくなった。公開鍵認証が通らないというのはよくある話なので、authorized_keysのフォーマットが壊れているとかパーミッションに問題があるとか、クライアント側での鍵のフォワーディングに失敗しているとか、そういう問題かと思ったが違った。sshdのログレベルを上げて何に失敗しているか見たところauthorized_keys自体のstatに失敗している旨の表示が出ていた。しかし、ログインして見ると確かにファイルはあるししばらく何が起こっているか理解できなかった。 原因はecryptfs-mount-privateという暗号化されたファイルシステムをログイン時にmountする仕組みと認証の食い合わせの問題だった。ログインして見るとauthorized_keysが存在するように見えるのはその通りで、ログインする瞬間にホームをmountするのでログイン後に見えるのは正しい。しかしログイン前にはホームはほぼ空なのだ。 ecyrptfsでのホームの暗号化は /home/.ecryptfs 以下に暗号化されたファイルが存在して、それをログイン時のUNIXパスワードをPAM経由で取得しパスフレーズとして/home/以下に動的にmountする仕組みなのだ。そりゃUNIXパスワードが必要なわけだ。 ホーム外にsshの鍵を置く方法など幾つか回避策はあるのだけど、ログインされていない状態ではそもそもホームディレクトリ以下が触れないというのは色々と不便そうだったので、結局暗号化自体を止めた。

ドコモにイライラさせられた話

色々あってドコモをMNPで転出しようと思っているところ。 ただし、ドコモポイントだけは溜っているので消費してから解約したい。丁度Qi対応のデバイスを買うことだし"ワイヤレスチャージャー 03"をポイントで購入してから止めようと思った次第。

会社の近所の店舗に行く
  • 窓口の順番待ちをするための整理券発行機の前にボタンを押すためだけに人が立っている
  • 購入したいだけなので、とりあえず在庫があるかないかだけでも知りたかったが素直に窓口に順番が回ってくるのを待つ
  • 窓口の順番が回ってきたので、商品名を伝えるとバックヤードに在庫を確認しに行くも在庫無いとのこと

  • 前に純正オプション品扱いのEyeFiのカードを探したときもそうだが、ドコモショップはオプション品の在庫が薄すぎるだろう

ドコモのオンラインショップ
  • オプション品の商品名ではキーワード検索できない
  • 商品名は分っているのに分類、対応機種を選ばないと選択すらできない
  • ドコモショップでの店頭受け取りができない
  • 今回の注文品の値段では送料無料にならない
ドコモのサイト
  • 商品ページからオンラインショップへの導線がない、売る気がないのか
Myドコモのサイト
  • Myショップという最寄りのショップを登録するシステムがあるので、取り置きできないか調べる。また店頭に行って「無い」というのは嫌だったので
  • 注文・予約というページがあるが端末以外を指定する方法がない
  • キーワード検索にも引っかからず、条件指定でオプション品を指定する方法がない

全般的にオプションパーツを売る体制がない、サイトや店舗を担当する部署が分れているためか相互に連携が取れていない

ということで、MNPでの転出する意志を強くした。

スタートレック イントゥダークネス観てきた

観てきた。 テレビシリーズのファンなのだけど、JJエイブラムスの手による新シリーズはシリーズのファン以外が観ても成立するようになっていて流石だなと割と肯定的に見てます。 前作ではキャラクタ紹介のための時間が長くて本編が短かかったが、今回は全編を通して話を進めていたこともあってボリュームは十分。レナード・ニモイの登場シーンが取ってつけた感強かったり、ワープ航法へ移るときの音が一々大きすぎるとか、ブロンドのグラマー美女がいかにもだなと思っていたら案外生き残ったりとか、メインスクリーンから見て右側手前に座っているオペ子が可愛かったりとか、カーンのアクションシーンが溜めのない動作で格好良かったりとか、まあ全般的には良かったです。 この調子だとTNGもリメイクしたりするのだろうか。パトリック・スチュワートを始め主なキャストは健在だけど、やっぱり全員交代するのかなとか思った。