yukke::note

technical note

sshfsでMacにリモートサーバをマウントする

問題

 普段の研究は、計算資源の問題もあり(お手元のiMacではとても計算できない)sshで接続したunix計算サーバ上で作業することが殆ど。コーディングをしたり、データ解析をする分にはまったくCUIの世界で完結しているので問題はないのだけれど、解析結果を可視化することの必要性はやはりある。

 むろん、Rやpythonでデータにかんするグラフを描くなどして可視化をすることはできるが、X11だと描画はきれいじゃないし、遅延したりあまり安定しない問題もある。ゲノム解析の分野では、DNAやRNAの塩基配列データをゲノム上で可視化する必要があり、またインタラクティブに座標の切り替えや拡大と縮小を必要とする。こうった操作はCUIでは難しく、GUIが得意とするところである。加えて、可視化するためだけに、わざわざデータを落とすのもめんどくさい。サーバでplotしてscpして確認して、サーバでplotしてscp、、、。

 ということを踏まえると、CUIのリモートで生成されるデータとGUIMacとの間をシームレスに行き来できる仕組みがあればよい。

解決策

sshfsを使うと、任意のディレクトリにssh先のサーバのディスクをマウントすることができる。

  • brew install sshfsするか、FUSE for OS X (http://osxfuse.github.io/)というのを入れる。
  • mkdir /Volumes/remote # ディレクトリがないとbad mount pointとか怒られる。
  • sshfs -o reconnect -p 22 soh.i@remote.01.jp:/home/yukke /Volumes/remote

f:id:soh3914:20140601144415p:plain

これで、Finder上でリモートサーバのファイルを全てあたかもMacのファイルのように透過的に扱うことができるようになる。ここでコードを編集したりすることももちろん可能だ。マウントの解除は、umountすればいい。

やっぱり問題が

  • まずFinderにmountできるのは大変便利だが、どうも通信速度の問題なのかファイルの取得や更新に時間がかかる。ずっとロード状態になってしまう。
  • 仕組みは便利だけどあんまり使い物にならない。

結局

  • 1GBくらいの圧縮されたバイナリデータを可視化する必要があったりするので、GUIの可視化ソフトフェアから透過的にこれらのファイルがロードできると便利だなーscpいらないなーと思ったけど、やっぱりそんなことない。scpしてローカルに落とした方が快適。
  • scpかcyberduckしてる。
  • 軽いデータなら、なんとかなるかもしれない。
  • 例えば、サーバ上にRstudioでR projectを作って、ローカルマシンでそのprojectをロードしながらplotするなどすれば、サーバ上に結果はあるのにGUIでの操作がMacでできる。