
字幕一覧(クリック)
(00:00:18) それでは始めます。
(00:00:20) この画像ですけれども、
(00:00:22) これはあの、日本の山村によく見かける棚田の風景です。
(00:00:28) ええ、コンピューターのデータの管理をですね、
(00:00:32) この棚田を流れる水のように行いたいと。
(00:00:36) そう思って、
(00:00:38) 今回この「棚田式ファイル管理システム」を作ってみました。
(00:00:44) まだ最後まで完成していませんが、
(00:00:47) 重要な仕組みは大体出来上がりましたので、
(00:00:51) 紹介したいと思います。
(00:00:54) この動画は、
(00:00:56) Google Vids
(00:00:58) Google V-I-D-S という新しい機能をですね、
(00:01:03) 使って作ってみました。
(00:01:05) それではご覧ください。
(00:01:21) 本日は、私が個人で開発・運用している「DAS棚田式ファイル管理システム」についてお話しします。
(00:01:29) これは市販のNASやRAIDに依存せず、
(00:01:31) Mac miniの計算能力とGoogle Sheetsを活用して、
(00:01:36) 大量のファイルを安全かつ低コストに管理するための仕組みです。
(00:01:40) デジタルデータの断捨離とハードウェアの有効活用をどう両立させたか、その全貌をご紹介します。
(00:01:49) まず、開発のきっかけとなった動機についてお話しします。
(00:01:54) 私は長年、SynologyのNASとMac miniを併用してファイル管理を行ってきました。
(00:02:00) しかし、ある時、ふと疑問を抱きました。
(00:02:03) 「NASも結局は小型のコンピュータであり、Mac miniと機能が重複しているのではないか?」と。
(00:02:08) 手元には強力なプロセッサを持つMac miniがあるのに、データの管理はNASの非力なCPU任せになっている。
(00:02:14) しかも、RAIDを組んでしまうとHDDの組み合わせに制約が生まれ、自由が利きません。
(00:02:22) Mac miniの頭脳(OS)を使って、複数のHDDをもっと自由に、
(00:02:26) まるでレゴブロックのように扱えないか?
(00:02:30) これが最初の着想でした。
(00:02:33) もう一つの、そしてより切実な動機が、私自身の年齢と環境の変化です。
(00:02:39) 高齢になるにつれ、身の回りのものを整理し、「断捨離」を進めたいという思いが強くなりました。
(00:02:44) デジタルデータも同様です。
(00:02:46) ただ溜め込むのではなく、必要なものを選別し、不要なものは手放すサイクルを作りたい。
(00:02:51) また、昨今のHDD価格の高騰も無視できません。
(00:02:57) RAIDのために高価な同容量のHDDを買い揃えるのではなく、
(00:03:02) 手元にある古い500GBや1TBのHDDも捨てずに、
(00:03:07) 資産として有効活用したい。
(00:03:10) この「整理したい欲求」と「もったいない精神」を技術で解決するために構築したのが、このシステムです。
(00:03:19) そこで考案したのが、「棚田」というデータ管理モデルです。
(00:03:23) 水が上流から下流へ流れるように、データも鮮度に応じて、
(00:03:28) 段々畑を下りていくイメージです。
(00:03:30) システムでは、大きく3つの段位を定義しています。
(00:03:34) 一番上が「T0:作業段」。
(00:03:37) これはDropboxなど、人間やアプリが日々読み書きする、最も動きの激しい領域です。
(00:03:43) その下が「T1:保管段」。
(00:03:46) ここからはシステムが管理する領域で、準アクティブなデータを置きます。
(00:03:51) 一番下が「T2:長期保管段」。
(00:03:54) ここはアーカイブ領域です。
(00:03:56) 重要なのは、それぞれの段位に、サイズもメーカーも異なるバラバラのHDDを割り当てられる点です。
(00:04:02) これをソフトウェアで一つの巨大な階層構造として管理します。
(00:04:09) このシステムの核心にある設計思想、それが「判断と実行の分離」です。
(00:04:14) 通常のファイル操作では、人間が「移動」と思った瞬間にファイルが動きます。
(00:04:20) しかし、それでは「あ、間違えた!」という事故を防げません。
(00:04:25) このシステムでは、「考える工程(シミュレーション)」と「動かす工程(アプライ)」を完全に分離しました。
(00:04:32) まず、システムは全ファイルをスキャンし、「もしルール通りに動かしたらどうなるか?」を計算し、
(00:04:38) データベースに記録します。
(00:04:40) これを我々は「メタデータ更新」と呼びます。
(00:04:44) 実体ファイルには指一本触れず、
(00:04:47) メタデータ上で完璧な計画を立てる。
(00:04:50) これが第一段階です。
(00:04:53) このアプローチでは、実体ファイルは「従属物」とみなします。
(00:04:57) そこにファイルがあるから残すのではなく、
(00:05:01) 「メタデータという設計図にあるべきと書かれているから、そこに置く」のです。
(00:05:05) システムは、設定されたパス配下の全ファイルを「棚卸し」します。
(00:05:10) これにより、管理者の知らない「野良ファイル」が存在することを許しません。
(00:05:16) 全てのファイルにIDと行き先が振られ、データベース上で管理される。
(00:05:20) これが「メタデータ至上主義」です。
(00:05:25) システムの全体像をご覧ください。
(00:05:28) ユーザーインターフェースには、なんとGoogle Sheetsを使います。
(00:05:32) 専用のアプリは作りません。
(00:05:35) スプレッドシート上の「tanada.csv」という設定シートに行き先を書き、セル上のボタンを押す。
(00:05:41) すると、Mac mini内で待機しているPythonのデーモン(常駐プログラム)がそれを検知し、
(00:05:47) 裏側でスクリプト群が走り出します。
(00:05:51) 非常にシンプルな構成ですが、Googleの認証基盤を使うため、セキュリティも堅牢です。
(00:05:59) さて、ここからは少し技術的な「柔軟性」の話をします。
(00:06:04) 基本設計では、データはT0からT2へ、重力に従って落ちていく一方でした。
(00:06:10) しかし運用していると、「T2のHDDを別のPCで使いたいから、空にしたい」という場面が出てきます。
(00:06:17) そこで、プログラム上の「重力ルール」を緩和し、T2からT1への「逆流」を許可するようにしました。
(00:06:24) これにより、データは一方通行ではなく、必要に応じてHDD間を行き来できる「リバランス」が可能になりました。
(00:06:31) RAIDのリビルドのような危険な作業なしに、データの引っ越しができるのです。
(00:06:37) この逆流を活用した強力な機能が、「限度0TB設定」です。
(00:06:43) 例えば、T2にある古いHDDを引退させたいとします。
(00:06:47) やることは一つ。
(00:06:49) Google Sheetsでその段位の容量限度を「0TB」に書き換えるだけです。
(00:06:53) シミュレーションを実行すると、システムは
(00:06:56) 「おっと、T2の容量がゼロになった。ここにあるファイルは溢れてしまう」と判断します。
(00:07:02) そして自動的に、空き容量のある上位のT1へ、全てのファイルを移動させる計画を立案してくれます。
(00:07:09) 除外ファイルがあってもエラーにならないよう調整済みですので、ボタン一つで安全にHDDを空っぽにできます。
(00:07:19) しかし、自動化には恐怖も伴います。
(00:07:22) もしシステムが暴走して、作業中のDropbox(T0)を古いデータで上書きしてしまったら?
(00:07:28) これだけは絶対に避けなければなりません。
(00:07:31) そのため、プログラムの最深部に「T0戻り禁止」という安全装置をハードコードしています。
(00:07:36) いかなる設定、いかなるバグがあろうとも、「現在の場所がT0以外で、移動先がT0となる操作」は、
(00:07:43) シミュレーション段階と実行直前の2段階でブロックされ、強制停止します。
(00:07:48) T0は聖域(サンクチュアリ)であり、システムはそこへ書き込む権限を持ちません。
(00:07:52) この制約があるからこそ、安心して自動化を任せられるのです。
(00:08:02) 実際の運用では、いきなりファイルを動かすことはしません。
(00:08:06) まず、「ドライラン(予行演習)」が行われます。
(00:08:10) 処理結果はメールで通知され、何個のファイルが動き、どの程度のリスクがあるかが5段階評価で届きます。
(00:08:16) 「問題なし」という評価を確認してから、初めて人間が「APPLY(適用)」ボタンを押す。
(00:08:22) 寝ている間に、Mac miniが数テラバイトのデータを整理整頓してくれる。
(00:08:28) そんな運用が実現しています。
(00:08:33) 次に、これからの機能である「廃棄(断捨離)の自動化」についてです。
(00:08:38) データは溜まる一方ですが、手動で消すのは勇気が要ります。
(00:08:44) そこで、「廃棄処理の規定」というルールを設けます。
(00:08:47) 例えば、「拡張子が.tmpで、かつ2年以上更新がないファイル」といった条件を定義します。
(00:08:53) これに合致したファイルは、即座に削除されるのではなく、
(00:08:57) 「pending_delete」という専用のゴミ箱領域へ移動されます。
(00:09:02) そこで半年間眠らせて、誰も困らなければ完全に消去する。
(00:09:07) システムが背中を押してくれることで、デジタル断捨離がスムーズに進みます。
(00:09:13) 日々の運用は非常にシンプルです。
(00:09:16) 新しいHDDを買ってきたら、Mac miniに繋ぎ、Google Sheetsの設定行を1行追加するだけ。
(00:09:22) あとはボタンを押せば、システムが自動的にそのHDDをT1やT2として認識し、
(00:09:28) データの保存先として組み込みます。
(00:09:31) 逆にHDDを外す時も、設定を消すだけで、データは他のHDDへ自動的に退避されます。
(00:09:38) RAIDの再構築のような、胃が痛くなる待ち時間はもうありません。
(00:09:44) このシステムを導入して、私は「RAID」という呪縛から解放されました。
(00:09:50) メーカーも容量も違うHDDを自由に組み合わせ、古くなったら交換し、余ったら再利用する。
(00:09:56) DAS(ダイレクト・アタッチド・ストレージ)として各ディスクが独立しているため、万が一システムが壊れても、
(00:10:04) HDDを抜いて別のPCに繋げば、そのまま中のデータを読み出せます。
(00:10:09) 「資産の流動性」と「データの安全性」、この二つを、
(00:10:14) Mac miniという既存のリソースだけで手に入れることができました。
(00:10:20) 最後になります。
(00:10:22) 「DAS棚田式ファイル管理システム」は単なるバックアップツールではありません。
(00:10:25) 「判断と実行を分離する」という哲学に基づき、
(00:10:30) 私たちシニア世代が直面する「デジタル遺産の整理」と「資産の有効活用」を解決するためのソリューションです。
(00:10:37) NASのブラックボックス化に不安を感じている方、
(00:10:40) 手元のHDDをもっと自由に使いこなしたい方。
(00:10:44) 是非、ご自身のMac miniに「棚田」を作ってみてはいかがでしょうか。
(00:10:49) ご静聴、ありがとうございました。

