コンテンツにスキップ

「Profile-sync-daemon」の版間の差分

提供: ArchWiki
削除された内容 追加された内容
設定ファイルの編集: 英語版を元に修正
Kgx (トーク | 投稿記録)
関連記事のリンクを同期
 
(4人の利用者による、間の19版が非表示)
1行目: 1行目:
[[Category:ウェブブラウザ]]
[[Category:ウェブブラウザ]]
[[Category:スクリプト]]
[[en:Profile-sync-daemon]]
[[en:Profile-sync-daemon]]
[[ru:Profile-sync-daemon]]
[[ru:Profile-sync-daemon]]
7行目: 6行目:
{{Related|Firefox}}
{{Related|Firefox}}
{{Related|Chromium}}
{{Related|Chromium}}
{{Related|Opera}}
{{Related|Pdnsd}}
{{Related|Pdnsd}}
{{Related|ソリッドステートドライブ}}
{{Related|ソリッドステートドライブ}}
{{Related articles end}}
{{Related articles end}}


{{pkg|profile-sync-daemon}} (psd)はブラウザプロファイルを tmpfs で管理して定期的に物理ディスク (HDD/SSD) に同期させる、とても小さな擬似的なデーモンです。rsync でブラウザプロファイルの tmpfs のコピーとメディアのバックアップを同期させるという革新的な利用法によります。さらに、psd にはクラッシュからの復元機能が存在します。
{{pkg|profile-sync-daemon}} (psd) はブラウザプロファイルを tmpfs で管理して定期的に物理ディスク (HDD/SSD) に同期させる、とても小さな擬似的なデーモンです。rsync でブラウザプロファイルの tmpfs のコピーとメディアのバックアップを同期させるという革新的な利用法によります。さらに、psd にはクラッシュからの復元機能が存在します。


psd の設計目標および利点は以下の通りです。
{{Note|場合によっては、デフォルトの構成ファイル {{ic|/usr/share/psd/psd.conf}} のアップストリームが更新/変更されます。 ユーザーコピー {{ic|$XDG_CONFIG_HOME/psd/psd.conf}} をそれと比較する必要があります。 Arch Linux の pacman ではユーザーにこれを行うように通知する必要があります。 他のパッケージマネージャーやディストリビューションのユーザーは、定期的にファイルを手動で、変更部分を差し替える必要があります。}}


# 透過的に利用できる
{{Note|psd はブラウザのキャッシュを RAM にコピーするため、 [https://www.reddit.com/r/archlinux/comments/4l7gvm/very_slow_when_login/d3lrx9y/ login] の速度が低下する可能性があります。}}
# 物理ドライブの損耗が減る
# 速度


プロファイル、ブラウザキャッシュなどを [[tmpfs]] (RAM ディスク) に再配置するため、ブラウザの使用に関連する I/O も物理ドライブから RAM にリダイレクトされ、物理ドライブの消耗を抑え、ブラウザの速度と応答性を大幅に改善します。
== psd 設計目標とメリット ==


{{Note|
#透過的に利用できる
* Chrome/Chromium、Firefox (v21以降)、Midori などの一部のブラウザでは、キャッシュディレクトリをプロファイルディレクトリとは '''別''' に管理しています。この動作を変更することは profile-sync-daemon の範囲ではありません。Chromium については [[Chromium 設定#tmpfs にキャッシュ]] や、[[Firefox Ramdisk]] の記事でいくつかの回避策を参照することをお勧めします。
#物理ドライブの損耗が減る
* デフォルトの設定ファイル {{ic|/usr/share/psd/psd.conf}} は、アップストリームで更新・変更されることがあります。ユーザーコピーの {{ic|$XDG_CONFIG_HOME/psd/psd.conf}} はそれに対して diff を取る必要があります。Arch Linux では、pacman はこれを行うようユーザーに通知する必要があります。
#速度
* psd は、ブラウザのキャッシュを RAM にコピーする為 [https://www.reddit.com/r/archlinux/comments/4l7gvm/very_slow_when_login/d3lrx9y/ ログイン] が遅くなることがあります。}}


== インストール ==
プロファイルやブラウザキャッシュなどを [[tmpfs]] (RAM ディスク) に再配置して、ブラウザの使用に関連する I/O を物理ドライブから RAM に変更することにより、物理ドライブの消耗を抑えつつブラウザの速度や反応性を劇的に高められます。


{{pkg|profile-sync-daemon}} パッケージを [[インストール]] して下さい。
{{Note|Chrome/Chromium, Firefox (v21 以上), Midori, Rekonq などのブラウザはプロファイルのディレクトリとは別個にキャッシュディレクトリを保存しています。この挙動を変更するのは profile-sync-daemon の射程外です。Chromium の [[Chromium 設定#tmpfs にキャッシュ]]セクションや [[Firefox Ramdisk]] 記事を参照して対処することが推奨されます。}}


== 設定 ==
== セットアップとインストール ==


{{Pkg|profile-sync-daemon}} パッケージをインストールします。

=== 設定ファイルの編集 ===
psd を初めて実行したときに、全ての設定が記述された {{ic|$XDG_CONFIG_HOME/psd/psd.conf}} が作成されます (以下、このファイルを設定ファイルと呼称します)。
psd を初めて実行したときに、全ての設定が記述された {{ic|$XDG_CONFIG_HOME/psd/psd.conf}} が作成されます (以下、このファイルを設定ファイルと呼称します)。


42行目: 40行目:
* 任意で overlayfs を利用することで同期を高速化させてメモリの使用量を減らすことができます。USE_OVERLAYFS 変数を設定してください。このオプションを使う場合、{{ic|/usr/bin/psd-overlay-helper}} に sudo 権限が必要で、カーネルが overlayfs バージョン22以上に対応していなければなりません。この機能の詳細は下の FAQ を見て下さい。
* 任意で overlayfs を利用することで同期を高速化させてメモリの使用量を減らすことができます。USE_OVERLAYFS 変数を設定してください。このオプションを使う場合、{{ic|/usr/bin/psd-overlay-helper}} に sudo 権限が必要で、カーネルが overlayfs バージョン22以上に対応していなければなりません。この機能の詳細は下の FAQ を見て下さい。
* 任意で BROWSERS 行をアンコメントして tmpfs に同期するブラウザを指定することができます。BROWSERS がコメントアウトされている場合 (デフォルト)、サポートしているブラウザ全てのプロファイルが同期されます。
* 任意で BROWSERS 行をアンコメントして tmpfs に同期するブラウザを指定することができます。BROWSERS がコメントアウトされている場合 (デフォルト)、サポートしているブラウザ全てのプロファイルが同期されます。
* 任意でクラッシュしたときに復帰するためのスナップショットを無効化することができます (非推奨)USE_BACKUPS 変数で設定します。
* 任意でクラッシュしたときに復帰するためのスナップショットを無効化することができます (非推奨) USE_BACKUPS 変数で設定します。
* オプションで、保持するクラッシュリカバリ用のスナップショットの数を定義します。{{ic|BACKUP_LIMIT}} 変数でこれを行います。


例: Chromium, Opera, Midori インストールていて Chromium と Opera だけを tmpfs に同期す(Midori バックアップブラウザとしてたしか使ない)いう場合:
例: ChromiumOpera、および Midori インストールされているが、ユーザーが Midori バックアップブラウザとして保持しており、めったに使用されないため、Chromium Opera のみを tmpfs に同期するとします。


BROWSERS=(chromium opera)
# List browsers separated by spaces to include in the sync. Useful if you do not
# wish to have all possible browser profiles sync'ed which is the default if
# this variable is left commented.
#
# Possible values:
# chromium
# chromium-dev
# conkeror.mozdev.org
# epiphany
# firefox
# firefox-trunk
# google-chrome
# google-chrome-beta
# google-chrome-unstable
# heftig-aurora
# icecat
# inox
# luakit
# midori
# opera
# opera-beta
# opera-developer
# opera-legacy
# otter-browser
# qupzilla
# qutebrowser
# palemoon
# rekonq
# seamonkey
# surf
# vivaldi
# vivaldi-snapshot
#
BROWSERS="chromium opera"


psd のバージョン 5.54 から、overlayfs がネイティブでサポートされるようになりました。この機能を使うには 3.18.0 以上の Linux カーネルが必要です。
psd のバージョン 5.54 から、overlayfs がネイティブでサポートされるようになりました。この機能を使うには 3.18.0 以上の Linux カーネルが必要です。


== サポートしているブラウザ ==
=== サポートしているブラウザ ===


現在、以下のブラウザを自動で検出して管理します:
現在、以下のブラウザを自動で検出して管理します:

* [[Chromium]]
* [[Chromium]]
* {{AUR|chromium-dev}}
* {{AUR|chromium-dev}}
* {{AUR|conkeror-git}}
* {{AUR|conkeror-git}}
* [[Epiphany]]
* [[Epiphany]]
* {{Pkg|falkon}}
* [[Firefox]] (安定版・ベータ版・Aurora 版など全てをサポート)
* [[Firefox]] (安定版、ベータ版、Aurora 版など全てをサポート)
* {{AUR|google-chrome}}
* {{AUR|google-chrome}}
* {{AUR|google-chrome-beta}}
* {{AUR|google-chrome-beta}}
100行目: 68行目:
* [[Opera]]
* [[Opera]]
* [[Otter Browser]]
* [[Otter Browser]]
* {{AUR|palemoon}}
* [[Qutebrowser]]
* [[Qutebrowser]]
* {{AUR|palemoon}} / {{AUR|palemoon-bin}}
* {{Pkg|seamonkey}}
* {{Pkg|seamonkey}}
* {{AUR|surf}}
* {{AUR|surf}}
* {{Pkg|vivaldi}}
* [[Vivaldi]]


== psd を使 ==
== 使い方 ==

{{ic|psd.service}} を [[systemd/ユーザー|ユーザーユニット]] で [[起動/有効化]] さらに、提供された resync-timer は 1 時間ごとに tmpfs からディスクへの再同期を実行します。resync-timer は {{ic|psd.service}} で自動的に起動するので、手動でタイマーを起動する必要はありません。


=== プレビューモード (parse) ===
=== プレビューモード (parse) ===


'parse' オプションを使うことで {{ic|$XDG_CONFIG_HOME/psd/psd.conf}} に基づいて ''psd''何をうのか正確に表示することができます。ように呼び出して下さい:
{{ic|$XDG_CONFIG_HOME/psd/psd.conf}} に基づいて psd がする/していることを表示するために {{ic|psd parse}} を実行します。また、プロファイルサイズ、パス、回復スナップショットが作成れてるかどうかなど、有用な情報も提供されます。
$ psd p
Profile-sync-daemon v6.44
Systemd service: active
resync-timer: active
sync on sleep: enabled
use overlayfs: enabled
Psd will manage the following per /home/facade/.config/psd/psd.conf settings:
browser/psname: chromium/chromium
owner/group id: facade/100
sync target:     /home/facade/.config/chromium
tmpfs dir:       /run/user/1000/facade-chromium
profile size:   93M
overlayfs size: 39M
recovery dirs:   2 <- delete with the c option
  dir path/size: /home/facade/.config/chromium-backup-crashrecovery-20150117_171359 (92M)
  dir path/size: /home/facade/.config/chromium-backup-crashrecovery-20150119_112204 (93M)
browser/psname: firefox/firefox
owner/group id: facade/100
sync target:     /mnt/data/docs/facade/mozilla/firefox/f8cv8bfu.default
tmpfs dir:       /run/user/1000/facade-firefox-f8cv8bfu.default
profile size:   145M
overlayfs size: 13M
recovery dirs:   none

上記の通り、特定のブラウザが BROWSERS 行に設定されていない場合、''psd'' は指定されたユーザーのサポートされているプロファイル全てを同期します。

=== クリーンモード ===
クリーンモードを使うと保存されているスナップショットを全て削除します。削除しても問題ない場合にのみ実行してください。

$ psd c
Profile-sync-daemon v6.03 on Arch Linux.
Deleting 2 crashrecovery dirs for profile /home/facade/.config/chromium
/home/facade/.config/chromium-backup-crashrecovery-20150117_171359
/home/facade/.config/chromium-backup-crashrecovery-20150119_112204

=== psd の起動と停止 ===

psd のバージョン 6.x シリーズのリリースから、公式でサポートされる init システムは systemd だけになりました。Psd には起動と停止を行うための systemd ユーザーサービスが付属しています (psd.service)。さらに、1時間毎に tmpfs からディスクに再同期させる resync-timer も含まれています。resync-timer は psd.service によって自動的に起動するため、あなたがタイマーを起動させる必要はありません。

systemd のユーザーモードの使い方がよくわからない場合、以下のコマンドで psd サービスを有効化できます:

$ systemctl --user [option] psd.service

次のオプションが利用できます: start stop enable disable status。

===サポートしているディストリビューション===


== ヒントとテクニック ==
psd は systemd サービスが付いているただの bash スクリプトなので、systemd が動作している Linux ならどこでも動作します。公式パッケージとして提供しているディストリビューションが数多くあり、psd をインストールする方法をユーザーがメンテナンスしている場合もあります。ソースから psd をビルドすることも可能です。利用できるパッケージやインストールの手順については公式ウェブサイトを見て下さい。


=== もっと頻繁に同期する (任意) ===
=== もっと頻繁に同期する (任意) ===
179行目: 97行目:
</nowiki>}}
</nowiki>}}


オプションについては {{ic|man systemd.timer}} を見て下さい。
オプションについては {{man|5|systemd.timer}} を見て下さい。

== FAQ ==


=== overlayfs モードとは? ===
=== overlayfs モードとは? ===

{{Note|Linux カーネルで利用可能な overlayfs にはいくつかのバージョンがあり、様々なディストリビューションで運用されています。バージョン22以下では、'overlayfs' と呼ばれるモジュールが使用されていますが、新しいバージョン (23以上) では、'overlay' と呼ばれるモジュールが使用されています (新しいバージョンでは、'fs' がないことに注意してください) Psd は、カーネルが利用可能な overlayfs を使用するように設定されていれば、自動的にそれを検出します。}}


Overlayfs は Linux カーネル 3.18.0 でメインラインに取り込まれたシンプルなユニオンファイルシステムです。psd バージョン 5.54 から、overlayfs を使うことで psd の tmpfs 領域のメモリフットプリントを減らしたり、同期を高速化させることができるようになっています。オーバーレイマウントでは、プロファイル全体ではなく、変更が加えられたデータだけが書き出されるというところがミソです。overlayfs モードで実行した場合、psd がデフォルトで使用する同一の復帰機能も有効になります。Overlayfs モードは {{ic|$XDG_CONFIG_HOME/psd/psd.conf}} の {{ic|1=USE_OVERLAYFS="yes"}} という行をアンコメントしてデーモンを再起動することで有効にできます。
Overlayfs は Linux カーネル 3.18.0 でメインラインに取り込まれたシンプルなユニオンファイルシステムです。psd バージョン 5.54 から、overlayfs を使うことで psd の tmpfs 領域のメモリフットプリントを減らしたり、同期を高速化させることができるようになっています。オーバーレイマウントでは、プロファイル全体ではなく、変更が加えられたデータだけが書き出されるというところがミソです。overlayfs モードで実行した場合、psd がデフォルトで使用する同一の復帰機能も有効になります。Overlayfs モードは {{ic|$XDG_CONFIG_HOME/psd/psd.conf}} の {{ic|1=USE_OVERLAYFS="yes"}} という行をアンコメントしてデーモンを再起動することで有効にできます。
191行目: 109行目:
psd のバージョン 6.05 から、overlayfs モードを利用するには {{ic|/usr/bin/psd-overlay-helper}} に (パスワードプロンプトが表示されない) sudo でアクセスできるようにするか、あるいはグローバルな sudo 権限が必要になりました。{{ic|/etc/sudoers}} に以下の行を設定することでユーザーに権限が与えられます。root で {{ic|/usr/bin/visudo}} を実行して追加してください:
psd のバージョン 6.05 から、overlayfs モードを利用するには {{ic|/usr/bin/psd-overlay-helper}} に (パスワードプロンプトが表示されない) sudo でアクセスできるようにするか、あるいはグローバルな sudo 権限が必要になりました。{{ic|/etc/sudoers}} に以下の行を設定することでユーザーに権限が与えられます。root で {{ic|/usr/bin/visudo}} を実行して追加してください:


foo ALL=(ALL) NOPASSWD: /usr/bin/psd-overlay-helper
''username'' ALL=(ALL) NOPASSWD: /usr/bin/psd-overlay-helper


上のプレビューモードのセクションの例を見れば、overlayfs を使うことでどれくらいメモリの使用量が節約できているのかわかります。"overlayfs size" とプロファイルごとの "profile size" の合計を比較してください。プロファイルに書き込まれているデータの量によって数字は変わってきますが、基本的に overlayfs のサイズはプロファイルのサイズより小さくなるはずです。
上のプレビューモードのセクションの例を見れば、overlayfs を使うことでどれくらいメモリの使用量が節約できているのかわかります。"overlayfs size" とプロファイルごとの "profile size" の合計を比較してください。プロファイルに書き込まれているデータの量によって数字は変わってきますが、基本的に overlayfs のサイズはプロファイルのサイズより小さくなるはずです。


{{Warning|''psd'' を overlayfs モードで利用することは (特に,''psd-overlay-helper'') 特権昇格につながる可能性があります。[https://github.com/graysky2/profile-sync-daemon/issues/235][https://github.com/graysky2/profile-sync-daemon/issues/286]}}
=== /run/user/xxxx にプロファイルを乗せるのに大量のメモリが必要です。メモリの割り当てを変えることはできますか? ===
{{ic|/run/user}} の容量は {{ic|/etc/systemd/logind.conf}} の RuntimeDirectorySize ディレクティブによって制御されるのが通常です (詳しくは {{ic|logind.conf}} の man ページを見て下さい)。デフォルトでは、物理メモリの 10% が使われますが、メモリの使用量を増やすことができます。tmpfs は実際に使用する分だけしか消費しません。許容できる最大限のサイズを指定してください。


overlayfs は、プロファイルの読み取り専用のベースコピー (browser-back-ovfs) をマウントし、その上で新しいデータを管理します。読み取り専用ファイルシステムへの再同期を避けるために、代わりにコピーが使用されます。そのため、overlayfs を使用すると、初期同期時間が短縮され、メモリ使用量がホームディレクトリのディスク領域よりも少なくなります。
=== overlayfs を有効にしたときに他のブラウザプロファイルディレクトリ "foo-back-ovfs" が作成されるのはなぜですか? ===
overlayfs は読み取り専用のベースコピー (いわゆる下層ディレクトリ) をプロファイルにマウントして、その上に新しいデータを管理することで機能します。読み取り専用ファイルシステムに再同期しないように、代わりにコピーが使われます。つまり overlayfs を使用することで、同期時間が高速になりメモリの使用量が減るのに対してホームディレクトリのディスク容量が使われるというトレードオフが成立しています。


=== /run/user/xxxx にプロファイルを乗せるのに大量のメモリを割り当てる ===
=== システムがクラッシュして同期がされませんでした。どうすればいいですか? ===


{{ic|/run/user}} の容量は {{ic|/etc/systemd/logind.conf}} の RuntimeDirectorySize ディレクティブによって制御されるのが通常です (詳しくは {{ic|logind.conf}} の man ページを見て下さい)。デフォルトでは、物理メモリの 10% が使われますが、メモリの使用量を増やすことができます。tmpfs は実際に使用する分だけしか消費しません。許容できる最大限のサイズを指定してください。
運が良ければ、ブラウザプロファイルの"最新の問題がない"バックアップがファイルシステムに残っている可能性があります。{{ic|psd}} の再起動時に、プロファイルの tmpfs コピーのシンボリックリンクに問題がないか確認するチェックが行われます。問題がなかった場合、''psd'' は"最新の問題ない"バックアップのスナップショットを作成します。これは ''psd'' によってデータが失われないようにするためのサニティーチェックであり、データが消失した場合、他に原因があります。

=== スナップショット ===


ブラウザプロファイルの "最後の機能する" バックアップは、ファイルシステム上にまだうまく残っている可能性があります。psd を再起動すると (例えば再起動時)、プロファイルの tmpfs コピーへのシンボリックリンクが有効かどうかが確認されます。もしそれが無効であれば、psd はそれを元の場所に戻す前に ”最後の機能する” バックアップをスナップショットします。これは、psd が害を与えず、データの損失が何か他の要因によるものであることを確認するためのものです。
{{Note|必要であれば、{{ic|$XDG_CONFIG_HOME/psd/psd.conf}} で {{ic|USE_BACKUPS}} 変数をアンコメントして 'no' に設定することでスナップショット/バックアップ機能を完全に無効化できます。}}


=== スナップショットはどこにありますか? ===
{{Note|スナップショット/バックアップ機能を完全に無効にするに、{{ic|USE_BACKUPS}} 変数のコメントを解除し、{{ic|"no"}} 設定する必要があります。}}


ブラウザによります。ブラウザプロファイルと同じディレクトリにスナップショットが存在しリカバリ作られた時刻のタイムスタンプが付けられています。例えば、chromium なら {{ic|~/.config/chromium-backup-crashrecovery-20130912_153310}} などになります。もちろん、日付_時間部分は異なっているでしょう
スナップショットはブラウザプロファイルと同じディレクトリにあり回復行われた時間に対応する日付-時間スタンプが含まれています。例えば、chromium の場合は {{ic|~/.config/chromium-backup-crashrecovery-20130912_153310}} なります。-- もちろん、date_time 接尾辞それぞれ異なります


=== スナップショットを復元するにはどうすればいいですか? ===
スナップショットを復元するには:


* {{ic|psd}} を停止してください。
* {{ic|psd}} を停止してください。
* tmpfs のブラウザプロファイルディレクトリのシンボリックリンクがないことを確認してください。存在する場合、''psd'' は何らかの理由で適切に停止していません。
* tmpfs のブラウザプロファイルディレクトリのシンボリックリンクがないことを確認してください。存在する場合、''psd'' は何らかの理由で適切に停止していません。
* プロファイルの"問題がある"コピーをバックアップに移動してください (やみくもに削除するのはやめましょう)
* プロファイルの"問題がある"コピーをバックアップに移動してください (やみくもに削除するのはやめましょう)
* スナップショットディレクトリをブラウザが使用する名前にコピーしてください。
* スナップショットディレクトリをブラウザが使用する名前にコピーしてください。


224行目: 142行目:
Chromium を実行したらコピーしたバックアップスナップショットが使われます。全て問題ないようでしたら、ブラウザを閉じて psd を再起動してください。ここまできたら {{ic|~/.config/chromium-backup-crashrecovery-20130912_153310}} を削除してもかまいません。
Chromium を実行したらコピーしたバックアップスナップショットが使われます。全て問題ないようでしたら、ブラウザを閉じて psd を再起動してください。ここまできたら {{ic|~/.config/chromium-backup-crashrecovery-20130912_153310}} を削除してもかまいません。


=== psd でスナップショットを自動的に削除できまか? ===
==== スナップショットをクリーンアップ ====

"clean" スイッチを付けて psd を実行すればスナップショットが削除されます。
{{ic|psd clean}} を実行すると、蓄積されたすべての回復スナップショットが削除されます。それらを削除することが確実な場合にのみ、これを実行してください。


== サポート ==
== サポート ==


気づいたことやコメントなどは [https://bbs.archlinux.org/viewtopic.php?pid=1026974 議論スレッド] に投稿してください。
気づいたことやコメントなどは [https://bbs.archlinux.org/viewtopic.php?pid=1026974 議論スレッド] に投稿してください。

== 他のディストロで PSD ==

''psd'' は bash スクリプトなので、どんな Linux ディストロでも動作します。それぞれのディストリビューションでパッケージが用意されていたり、ユーザーが自分でインストールできるように方法が用意されています。インストール方法は [https://github.com/graysky2/profile-sync-daemon#installation-from-distro-packages 公式ウェブサイト] を見て下さい。


== 参照 ==
== 参照 ==

2023年12月3日 (日) 21:53時点における最新版

profile-sync-daemon (psd) はブラウザプロファイルを tmpfs で管理して定期的に物理ディスク (HDD/SSD) に同期させる、とても小さな擬似的なデーモンです。rsync でブラウザプロファイルの tmpfs のコピーとメディアのバックアップを同期させるという革新的な利用法によります。さらに、psd にはクラッシュからの復元機能が存在します。

psd の設計目標および利点は以下の通りです。

  1. 透過的に利用できる
  2. 物理ドライブの損耗が減る
  3. 速度

プロファイル、ブラウザキャッシュなどを tmpfs (RAM ディスク) に再配置するため、ブラウザの使用に関連する I/O も物理ドライブから RAM にリダイレクトされ、物理ドライブの消耗を抑え、ブラウザの速度と応答性を大幅に改善します。

ノート
  • Chrome/Chromium、Firefox (v21以降)、Midori などの一部のブラウザでは、キャッシュディレクトリをプロファイルディレクトリとは に管理しています。この動作を変更することは profile-sync-daemon の範囲ではありません。Chromium については Chromium 設定#tmpfs にキャッシュ や、Firefox Ramdisk の記事でいくつかの回避策を参照することをお勧めします。
  • デフォルトの設定ファイル /usr/share/psd/psd.conf は、アップストリームで更新・変更されることがあります。ユーザーコピーの $XDG_CONFIG_HOME/psd/psd.conf はそれに対して diff を取る必要があります。Arch Linux では、pacman はこれを行うようユーザーに通知する必要があります。
  • psd は、ブラウザのキャッシュを RAM にコピーする為 ログイン が遅くなることがあります。

インストール

profile-sync-daemon パッケージを インストール して下さい。

設定

psd を初めて実行したときに、全ての設定が記述された $XDG_CONFIG_HOME/psd/psd.conf が作成されます (以下、このファイルを設定ファイルと呼称します)。

ノート psd を実行している間に設定ファイルを編集した場合、変更が適用されるのは init サービスから psd を再起動したときです。
$ psd
First time running psd so please edit /home/facade/.config/psd/psd.conf to your liking and run again.
  • 任意で overlayfs を利用することで同期を高速化させてメモリの使用量を減らすことができます。USE_OVERLAYFS 変数を設定してください。このオプションを使う場合、/usr/bin/psd-overlay-helper に sudo 権限が必要で、カーネルが overlayfs バージョン22以上に対応していなければなりません。この機能の詳細は下の FAQ を見て下さい。
  • 任意で BROWSERS 行をアンコメントして tmpfs に同期するブラウザを指定することができます。BROWSERS がコメントアウトされている場合 (デフォルト)、サポートしているブラウザ全てのプロファイルが同期されます。
  • 任意でクラッシュしたときに復帰するためのスナップショットを無効化することができます (非推奨) USE_BACKUPS 変数で設定します。
  • オプションで、保持するクラッシュリカバリ用のスナップショットの数を定義します。BACKUP_LIMIT 変数でこれを行います。

例: Chromium、Opera、および Midori がインストールされているが、ユーザーが Midori をバックアップブラウザーとして保持しており、めったに使用されないため、Chromium と Opera のみを tmpfs に同期するとします。

BROWSERS=(chromium opera)

psd のバージョン 5.54 から、overlayfs がネイティブでサポートされるようになりました。この機能を使うには 3.18.0 以上の Linux カーネルが必要です。

サポートしているブラウザ

現在、以下のブラウザを自動で検出して管理します:

使い方

psd.serviceユーザーユニット起動/有効化 さらに、提供された resync-timer は 1 時間ごとに tmpfs からディスクへの再同期を実行します。resync-timer は psd.service で自動的に起動するので、手動でタイマーを起動する必要はありません。

プレビューモード (parse)

$XDG_CONFIG_HOME/psd/psd.conf に基づいて psd が実行する/していることを表示するために psd parse を実行します。また、プロファイルのサイズ、パス、回復スナップショットが作成されているかどうかなど、有用な情報も提供されます。

ヒントとテクニック

もっと頻繁に同期する (任意)

パッケージには一時間ごとに同期を行うタイマーが入っています。任意で、systemd ユニットを編集することでこの挙動を再定義することが可能です。以下の例は10分毎に同期させるようにタイマーを変更します:

~/.config/systemd/user/psd-resync.timer.d/frequency.conf
[Unit]
Description=Timer for Profile-sync-daemon

[Timer]
OnUnitActiveSec=
OnUnitActiveSec=10m

オプションについては systemd.timer(5) を見て下さい。

overlayfs モードとは?

ノート Linux カーネルで利用可能な overlayfs にはいくつかのバージョンがあり、様々なディストリビューションで運用されています。バージョン22以下では、'overlayfs' と呼ばれるモジュールが使用されていますが、新しいバージョン (23以上) では、'overlay' と呼ばれるモジュールが使用されています (新しいバージョンでは、'fs' がないことに注意してください) Psd は、カーネルが利用可能な overlayfs を使用するように設定されていれば、自動的にそれを検出します。

Overlayfs は Linux カーネル 3.18.0 でメインラインに取り込まれたシンプルなユニオンファイルシステムです。psd バージョン 5.54 から、overlayfs を使うことで psd の tmpfs 領域のメモリフットプリントを減らしたり、同期を高速化させることができるようになっています。オーバーレイマウントでは、プロファイル全体ではなく、変更が加えられたデータだけが書き出されるというところがミソです。overlayfs モードで実行した場合、psd がデフォルトで使用する同一の復帰機能も有効になります。Overlayfs モードは $XDG_CONFIG_HOME/psd/psd.confUSE_OVERLAYFS="yes" という行をアンコメントしてデーモンを再起動することで有効にできます。

Linux カーネルで利用できる overlayfs にはディストロによって複数のバージョンが存在します。バージョン 22 以前ではモジュールは 'overlayfs' と呼ばれていましたが、新しいバージョン (23 以上) ではモジュールの名前は 'overlay' になっています ('fs' が取られた)。Psd はあなたの使用しているカーネルで利用できる overlayfs を自動的に検出します。

psd のバージョン 6.05 から、overlayfs モードを利用するには /usr/bin/psd-overlay-helper に (パスワードプロンプトが表示されない) sudo でアクセスできるようにするか、あるいはグローバルな sudo 権限が必要になりました。/etc/sudoers に以下の行を設定することでユーザーに権限が与えられます。root で /usr/bin/visudo を実行して追加してください:

username ALL=(ALL) NOPASSWD: /usr/bin/psd-overlay-helper

上のプレビューモードのセクションの例を見れば、overlayfs を使うことでどれくらいメモリの使用量が節約できているのかわかります。"overlayfs size" とプロファイルごとの "profile size" の合計を比較してください。プロファイルに書き込まれているデータの量によって数字は変わってきますが、基本的に overlayfs のサイズはプロファイルのサイズより小さくなるはずです。

警告 psd を overlayfs モードで利用することは (特に,psd-overlay-helper) 特権昇格につながる可能性があります。[1][2]

overlayfs は、プロファイルの読み取り専用のベースコピー (browser-back-ovfs) をマウントし、その上で新しいデータを管理します。読み取り専用ファイルシステムへの再同期を避けるために、代わりにコピーが使用されます。そのため、overlayfs を使用すると、初期同期時間が短縮され、メモリ使用量がホームディレクトリのディスク領域よりも少なくなります。

/run/user/xxxx にプロファイルを乗せるのに大量のメモリを割り当てる

/run/user の容量は /etc/systemd/logind.conf の RuntimeDirectorySize ディレクティブによって制御されるのが通常です (詳しくは logind.conf の man ページを見て下さい)。デフォルトでは、物理メモリの 10% が使われますが、メモリの使用量を増やすことができます。tmpfs は実際に使用する分だけしか消費しません。許容できる最大限のサイズを指定してください。

スナップショット

ブラウザプロファイルの "最後の機能する" バックアップは、ファイルシステム上にまだうまく残っている可能性があります。psd を再起動すると (例えば再起動時)、プロファイルの tmpfs コピーへのシンボリックリンクが有効かどうかが確認されます。もしそれが無効であれば、psd はそれを元の場所に戻す前に ”最後の機能する” バックアップをスナップショットします。これは、psd が害を与えず、データの損失が何か他の要因によるものであることを確認するためのものです。

ノート スナップショット/バックアップ機能を完全に無効にするには、USE_BACKUPS 変数のコメントを解除し、"no" に設定する必要があります。

スナップショットはブラウザプロファイルと同じディレクトリにあり、回復が行われた時間に対応する日付-時間スタンプが含まれています。例えば、chromium の場合は ~/.config/chromium-backup-crashrecovery-20130912_153310 となります。-- もちろん、date_time の接尾辞はそれぞれ異なります。

スナップショットを復元するには:

  • psd を停止してください。
  • tmpfs のブラウザプロファイルディレクトリのシンボリックリンクがないことを確認してください。存在する場合、psd は何らかの理由で適切に停止していません。
  • プロファイルの"問題がある"コピーをバックアップに移動してください (やみくもに削除するのはやめましょう)
  • スナップショットディレクトリをブラウザが使用する名前にコピーしてください。

Chromium の例:

$ mv ~/.config/chromium ~/.config/chromium-bad
$ cp -a ~/.config/chromium-backup-crashrecovery-20130912_153310 ~/.config/chromium

Chromium を実行したらコピーしたバックアップスナップショットが使われます。全て問題ないようでしたら、ブラウザを閉じて psd を再起動してください。ここまできたら ~/.config/chromium-backup-crashrecovery-20130912_153310 を削除してもかまいません。

スナップショットをクリーンアップする

psd clean を実行すると、蓄積されたすべての回復スナップショットが削除されます。それらを削除することが確実な場合にのみ、これを実行してください。

サポート

気づいたことやコメントなどは 議論スレッド に投稿してください。

参照