KDE、DolphinにBtrfsスナップショットを統合。KIO Snapshot 1.0

KDE開発者のバラドワジ・ラジュ氏が現地時間8月20日、BtrfsスナップショットをDolphinに統合するKIO Snapshot 1.0をリリースした。ファイルの右クリックから過去バージョンを一覧表示でき、root権限も不要。

KDE、DolphinにBtrfsスナップショットを統合。KIO Snapshot 1.0

KDE開発者のバラドワジ・ラジュ氏が現地時間8月20日、BtrfsスナップショットをDolphinに統合するKIO Snapshot 1.0をリリースした。ファイルの右クリックから過去バージョンを一覧表示でき、root権限も不要。


ファイルの「過去」にDolphinから手が届く

macOSにはTime Machine(タイムマシン)があり、WindowsにはPrevious Versions(以前のバージョン)がある。ファイルの過去の状態を、ファイルブラウザから直接参照できる機能だ。

Linuxにも仕組みはあった。Btrfsのスナップショットはサブボリューム(ファイルシステム内で独立管理できるディレクトリツリー)単位で取得でき、データ領域を共有するため頻繁に取っても容量をほとんど消費しない。日常的な「元に戻す」機能の基盤になりうる。

だがこれまで、この能力をデスクトップの日常操作に持ち込む手段がなかった。Btrfs Assistantのような専用ツールは存在するものの、スナップショットの作成・管理が主眼でファイル操作とは切り離されている。「3日前のあのファイルに戻したい」と思っても、ターミナルか別のツールを開くしかない。

KIO Snapshot 1.0は、この欠落を埋める。KDE開発者のバラドワジ・ラジュ(Bharadwaj Raju)氏が開発し、現地時間8月20日に最初の安定版をリリースした

Dolphinでファイルを右クリックすると、そのファイルの過去バージョンが仮想フォルダとして一覧される。当初はWindowsのPrevious Versionsに似たダイアログ形式で設計していたが、仮想フォルダ方式に切り替えた。

Bharadwaj Raju氏

複数の過去バージョンを選んで比較ツールで開く、別の場所にコピーするといった操作を、通常のファイル操作と変わらない手順でこなせる。

サブボリューム単位の閲覧にも対応する。あるサブボリュームの全スナップショットが時系列で並び、各スナップショットのディレクトリツリーをそのままたどれる。

KIO Snapshotは閲覧専用だ。スナップショットの作成にはSnapper(スナップショット管理ツール)か手動操作が別途必要になる。Snapperを使う場合は設定ファイルのALLOW_USERSに自分のユーザー名を追加し、SYNC_ACL=yesを有効にしておくと、rootなしでスナップショットにアクセスできる。

root権限なしで動く設計

技術的に目を引くのは、KIO Snapshotがroot権限なしで動作する点だ。

BtrfsのAPIは、root以外のユーザーに対してかなり保守的だ。「このパスがどのサブボリュームに属しているか」すら、一般ユーザーには問い合わせられない。

ラジュ氏は当初、この制約を回避するためにシステムレベルのD-Bus(アプリケーション間の通信規格)サービスを作っていた。ユーザーが所有するファイルについての情報取得を中継する仕組みだ。動作はするが、root権限で動くプロセスを常駐させることになる。

転機になったのは、メヴェン・カー(Méven Car)氏の助言だった。BtrfsのAPIには、あるパス以下のサブボリューム一覧を(アクセス権がある範囲で)返す機能がある。

パスからサブボリュームIDを直接取得する方法は閉ざされていても、この一覧から必要な情報はすべて導出できる。root権限で動くプロセスは完全に不要になった

この設計の上に、KIO Snapshotはsnapshot://プロトコルを処理するKIOワーカー(KDEの入出力プラグイン)として実装されている。KDE Frameworksの共通プロトコルであるため、Dolphinに限らずKDEソフト全般からスナップショットにアクセスできる。内部ではbtrfs-progslibbtrfsutilでBtrfsと通信し、KDE FrameworksのSolid(ハードウェア抽象化レイヤー)でファイルシステムやマウントの情報を取得している。

KDE Linuxで標準搭載へ

KDEが開発する独自ディストリビューションKDE Linuxは、SnapperとKIO Snapshotを標準搭載する予定だ。

ハディ・ショクル(Hadi Chokr)氏がこの統合を担当した。ファイルシステムのレイアウトを変更してすべてのユーザーホームをサブボリュームにし、Snapperの設定も全ユーザーに対して自動で行われるようにした。ユーザーがスナップショットの仕組みを意識しなくても、ファイルの過去バージョンが蓄積され、Dolphinからいつでも参照できる環境が最初から整う。

この取り組みはKDE Linuxにおけるデータバックアップ・復元の改善計画の一環であり、Kupバックアップシステムの改良も並行して進んでいる。

KIO SnapshotはKDEプロジェクトとしてリリースされており、各ディストリビューションへのパッケージ提供も比較的早く進む見込みだ。待てない場合はソースからのビルドも容易だという。

関連記事

この記事を共有する

Read more