初代

Personal Cloud – 觔斗雲計画(Project jin dou yun)

  • 背景
  • MacBook Air を使うようになった。その薄さ・軽さゆえにどこにでも持っていけるが、当然の結果として内蔵ストレージに皺寄せが来て、ストレージの容量は最大でも 128GB だ。高音質、高解像度のデジタルデータをストアしておくには心もとない容量である。これらはいつも使うものでは無いが、リーチ出来る環境には置いておきたい。また、バックアップが必要なものもかなりある。また、これらのデータは家族や仲間と共有する必要が往々にしてある。これを解決する目的として好適なのが NAS (Network Aattached Strage) であり、すでに導入していると思う。昨今の流行はクラウドであるが、大容量のデータを全てクラウドに置くことは現在のインターネットの帯域では大変である。データそのものは手元において、運用はインターネット経由つまりクラウドで行えるようにするのが今回紹介する「プロジェクト・觔斗雲」である。

  • 目的
    • ストレージの統合
    • ストレージが各所に分散してしまってデータの管理が煩雑になるのと、物理的な HDD が散逸し整理が面倒になるのでこの際であるからこういったものをすべて統合化できないかを考えた末に NAS (=サーバ)として統一することにした。

    • マシンの集約
    • Windows-XP のデスクトップ, MacBook Air を利用しているが WinXP のデスクトップは地デジの録画などのサーバ的色合いが強い。また、MacBook Air をもう少し使い倒したいし、電力を下げるためには WinXP を停めたいと考えていた。

    • 各種 Web アプリの実行プラットフォーム
    • 当初は元からある teamknox.com のサイトで WordPress の環境を動作させたかったが、レンサバにインストールされているデータベースのバージョンが古いために使うことが出来なかった。自分のところに linux が動作するサーバがあれば管理の手間はかかるが自由に様々な web アプリが楽しめると考えたのだ。

  • せっかく構築するのであるから、自鯖でなければ出来ないことをいくつかトライしてみようと考えた。

  • バックアップ
    • 普段使わないデータの扱い
    • 普段使わないデータはなるべく外部のストレージに追い出し、ローカルのストレージの逼迫を緩和する。ただ、外部にあるデータもネットワーク経由で簡単にリーチできるように設定しておく必要がある。

    • ドライブの二重化
    • ドライブのバックアップの方法として、RAID がある。RAID は現在 0 〜 10 まで定義されていて市販品として手に入れられやすいのは 1, 4 〜 6 である。RAID 対応の NAS と言うことになると大体この辺りのラインナップが多い。RAID の番号に比例して価格も上昇して行く。普通の外付けハードドライブなら、RAID0 相当なので最も安価と言うことになる。ドライブのバックアップが必要なら RAID 1 以降を選択する必要がある。ちなみに web-master は RAID 1 を選択した。RAID 1 はミラーリングなので、ドライブの利用率は 50% になる。RAID の中では最も効率が悪い。ただ、完全なドライブが常に確保出来るメリットがある。つまり、RAID 4 などでは NAS 本体が壊れてしまうとその機材を調達しないと復旧する手段を全く失ってしまうが、RAID 1 のドライブであれば単体なら安い HDDケースを用いて RAID 0 として利用が可能になる。データセンタあるいはそれに準じるようなデータを取り扱う専門の機関であれば代替機がすぐに手配できるが個人でなかなかこうは行かない。冗長性はかなり高いが個人で利用している場合はこのメリットを理解してもらえると思う。

  • 次にバックアップについて考察してみよう。既にローカルの PC にデータが保存されている場合だと NAS あるいはバックアップ用のドライブにローカルの内容をコピーすれば良い。ただ、このやりかただとバックアップをいつとるのかが問題として残る。Mac の場合だと TimeMachine なんかが模範解答だろう。いずれにしてもめったに使わないデータを持ち歩かなければいけないのに変わりは無い。普段持ち歩かないからと言って、データを NAS に全面的に移したとしてもドライブが二重化されていない場合はその NAS にあるドライブがクラッシュした場合は取り返しのつかないことになる。まとめると

  • サブシステム
    上記の機能を実現するにあたり、いくつかのサブシステムが必要になる。ここでは今回インストールしたサブシステムの紹介をおこなう。

    • ssh
    • サーバに入ってシステムを設定する時に必要。特に遠隔地からのリモート制御を行う時には必須である。セキュリティを確保しながら、コネクションを確保できるので各種の xxx over ssh のベースともなる。実際、今回もストレージの mp3 データを楽しむために daap over ssh でも利用している。

    • apache
    • Webサービスは Apache が有名だが觔斗雲でも同様に Apache で行っている。ネットワーク越しにドライブをアクセスするためには後述する webdav とコンビで使う。

    • webdav
    • リモートディスクの代表である mobileMe の iDisk にも使われているテクノロジーで、HTTP のポート番号80 を用いて接続するためのテクノロジーである。Windows7 の Exploer, MacOSX の Finder では クライアント機能を内蔵しているのでリモートディスクをそのままマウントし、スピードを除けばローカルディスクと同様の使用感になる。

    • samba
    • Windows 環境のネットワークの基本プロトコルである smb を使うためのシステムである。大抵の NAS では Windows を接続することが前提であるので、この機能は必須と言える。

    • afp
    • smb が Windows 環境のプロトコルの代表だとすると、こちらは MacOS での標準的なプロトコルである。最近の MacOS では smb を使うことも出来るが、大した負荷でも無いのでインストールする。

    • daap
    • iTunes で使われているデジタル音楽の転送プロトコル。iTunes の他に Mac/Win/Linux で動作する プレイヤーソフトの Songbird もプラグインによってサポートしている。daap サーバを実行させることにより、LAN 内の iTunes や SongBird で利用することが出来る。上記の ssh と併用することにより、機密性を保ったまま外からアクセスし、家庭内の NAS の曲データにアクセスすることができる。

    • CMS
    • CMS として WordPress を用いた。以前までは HTML の直打ちであったが、デザインや内容の更新などの管理のしやすさを鑑みると CMS を導入するのが効果的だと思われる。ただ、自分の趣味と合わないテーマだと少し寂しくなってしまう。WordPress は各所で使われているので様々なノウハウを利用することが出来る。

    • Time Machine & Time Capsule
    • Macが Windowsや linux と比べて優れている点の一つにデータのバックアップのしやすさが挙げられる。このバックアップシステムに使われているソフトが Time Machine であり、純正の NAS が Time Capsule である。これと同等のシステムを市販の NAS で構築できる。

  • 紆余曲折
  • 当初は QNAP の ARM ベースの NAS を転用し、linux をインストールして上記の機能を実現した。インストールは出来たもののとても実用に耐えられるような使い勝手では無かった。確かに QNAP のラインナップを見ても、webdav が使える機種は中上位機種になっていて、CPU も Atom を用いている。linux で中身を書き換えて別の運用形態にしてしまうなら最初から Atom の手軽な互換機に linux をインストールしても同じことだと感じられた。ただ、素から組立、ソフトのインストール、設定をしていくのはかなり大変な作業だし、その分が対価としてコストに反映されているのが NAS なわけである。

  • デジタルTVサーバ
  • PC らしいサーバ用途として TS抜きもある。ARM から Atom にすることでサーバとしてだいぶ余力があるので今回はこれも狙った。専ら家庭内で使われる NAS や参照回数が少ない個人サイトだとサーバはほとんどアイドル状態である。そこでテレビ番組を自由に録画して、iPhone 用にエンコしてくれるサーバも構築してみた。