「Profile-sync-daemon」の版間の差分
編集の要約なし |
関連記事のリンクを同期 |
||
| (8人の利用者による、間の42版が非表示) | |||
| 1行目: | 1行目: | ||
[[Category:ウェブブラウザ]] |
[[Category:ウェブブラウザ]] |
||
[[Category:スクリプト]] |
|||
[[en:Profile-sync-daemon]] |
[[en:Profile-sync-daemon]] |
||
[[ru:Profile-sync-daemon]] |
[[ru:Profile-sync-daemon]] |
||
{{Related articles start}} |
{{Related articles start}} |
||
{{Related|Anything-sync-daemon}} |
{{Related|Anything-sync-daemon}} |
||
{{ |
{{Related|Firefox}} |
||
{{ |
{{Related|Chromium}} |
||
{{Related2|Opera|Opera}} |
|||
{{Related|Pdnsd}} |
{{Related|Pdnsd}} |
||
{{Related|ソリッドステートドライブ}} |
|||
{{Related2|Solid State Drives|SSD}} |
|||
{{Related articles end}} |
{{Related articles end}} |
||
{{ |
{{pkg|profile-sync-daemon}} (psd) はブラウザプロファイルを tmpfs で管理して定期的に物理ディスク (HDD/SSD) に同期させる、とても小さな擬似的なデーモンです。rsync でブラウザプロファイルの tmpfs のコピーとメディアのバックアップを同期させるという革新的な利用法によります。さらに、psd にはクラッシュからの復元機能が存在します。 |
||
psd の設計目標および利点は以下の通りです。 |
|||
== psd のメリット == |
|||
# 透過的に利用できる |
|||
このデーモンを動かすのが有益だという理由は2つあります: |
|||
#物理ドライブの損耗が減る |
# 物理ドライブの損耗が減る |
||
#速度 |
# 速度 |
||
プロファイル |
プロファイル、ブラウザキャッシュなどを [[tmpfs]] (RAM ディスク) に再配置するため、ブラウザの使用に関連する I/O も物理ドライブから RAM にリダイレクトされ、物理ドライブの消耗を抑え、ブラウザの速度と応答性を大幅に改善します。 |
||
{{Note| |
|||
{{Note|Chrome/Chromium, Firefox (v21 以上), Midori, Rekonq などのブラウザはプロファイルのディレクトリとは別個にキャッシュディレクトリを保存しています。この挙動を変更するのは profile-sync-daemon の射程外です。Chromium の [[Chromium 設定#tmpfs にキャッシュ]] セクションや [[Firefox_Ramdisk]] 記事を参照して対処することが推奨されます。楽な修正はブラウザのキャッシュディレクトリ (例: {{ic|/home/$USER/.cache/<browser>/<profile>/}}) をデフォルトの場所から適当なプロファイルディレクトリ (例: {{ic|/home/$USER/.mozilla/firefox/<profile>/cache}}) に移動して、新しいキャッシュフォルダから元の場所にシンボリックリンクを作成することです。これによって、profile-sync-daemon は自動的にキャッシュフォルダも扱うようになります。}} |
|||
* 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/ ログイン] が遅くなることがあります。}} |
|||
== |
== インストール == |
||
{{ |
{{pkg|profile-sync-daemon}} パッケージを [[インストール]] して下さい。 |
||
== 設定 == |
|||
=== /etc/psd.conf の編集 === |
|||
ユーザーによる設定は全て {{ic|/etc/psd.conf}} に含まれます。 |
|||
psd を初めて実行したときに、全ての設定が記述された {{ic|$XDG_CONFIG_HOME/psd/psd.conf}} が作成されます (以下、このファイルを設定ファイルと呼称します)。 |
|||
{{Note|psd を実行している間に設定ファイルを編集した場合、変更が適用されるのは init サービスから psd を再起動したときです。}} |
|||
* 最低でも、どのユーザーが ''psd'' によって管理するプロファイルを持っているのか定義してください。少なくとも一人のユーザーを定義する必要があります。 |
|||
$ psd |
|||
First time running psd so please edit /home/facade/.config/psd/psd.conf to your liking and run again. |
|||
* 任意で overlayfs を利用することで同期を高速化させてメモリの使用量を減らすことができます。USE_OVERLAYFS 変数を設定してください。このオプションを使う場合、{{ic|/usr/bin/psd-overlay-helper}} に sudo 権限が必要で、カーネルが overlayfs バージョン22以上に対応していなければなりません。この機能の詳細は下の FAQ を見て下さい。 |
|||
* 任意で BROWSERS 行をアンコメントして tmpfs に同期するブラウザを指定することができます。BROWSERS がコメントアウトされている場合 (デフォルト)、サポートしているブラウザ全てのプロファイルが同期されます。 |
* 任意で BROWSERS 行をアンコメントして tmpfs に同期するブラウザを指定することができます。BROWSERS がコメントアウトされている場合 (デフォルト)、サポートしているブラウザ全てのプロファイルが同期されます。 |
||
* 任意でクラッシュしたときに復帰するためのスナップショットを無効化することができます (非推奨) USE_BACKUPS 変数で設定します。 |
|||
* 任意で overlayfs を利用することで同期を高速化させてメモリの使用量を減らすことができます。このオプションを使う場合、'overlay' (Arch のデフォルト) または 'overlayfs' (Ubuntu <15.05) カーネルモジュールを利用するようにカーネルが設定されている必要があります。この機能の詳細は下の FAQ を見て下さい。 |
|||
* |
* オプションで、保持するクラッシュリカバリ用のスナップショットの数を定義します。{{ic|BACKUP_LIMIT}} 変数でこれを行います。 |
||
例: |
例: Chromium、Opera、および 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. |
|||
# |
|||
# Possible values: |
|||
# chromium |
|||
# chromium-dev |
|||
# conkeror.mozdev.org |
|||
# epiphany |
|||
# firefox |
|||
# firefox-trunk |
|||
# google-chrome |
|||
# google-chrome-beta |
|||
# google-chrome-unstable |
|||
# heftig-aurora |
|||
# icecat |
|||
# luakit |
|||
# midori |
|||
# opera |
|||
# opera-developer |
|||
# opera-beta |
|||
# qupzilla |
|||
# palemoon |
|||
# rekonq |
|||
# seamonkey |
|||
# vivaldi |
|||
# |
|||
# If the following is commented out (default), then all available/supported |
|||
# browsers will be sync'ed, separated by comma |
|||
BROWSERS="chromium opera" |
|||
psd のバージョン 5.54 から、overlayfs がネイティブでサポートされるようになりました。 |
psd のバージョン 5.54 から、overlayfs がネイティブでサポートされるようになりました。この機能を使うには 3.18.0 以上の Linux カーネルが必要です。 |
||
=== サポートしているブラウザ === |
|||
{{Note|この機能を使うには 3.18.0 以上の Linux カーネルが必要です。}} |
|||
現在、以下のブラウザを自動で検出して管理します: |
|||
== サポートしているブラウザ == |
|||
現在、以下のブラウザを自動で検出して管理します: |
|||
* [[Chromium]] |
* [[Chromium]] |
||
* |
* {{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}} |
||
| 90行目: | 67行目: | ||
* [[Midori]] |
* [[Midori]] |
||
* [[Opera]] |
* [[Opera]] |
||
* [[Otter Browser]] |
|||
* Qupzilla |
|||
* {{ |
* {{AUR|palemoon}} |
||
* [[Qutebrowser]] |
|||
* {{Pkg|seamonkey}} |
* {{Pkg|seamonkey}} |
||
* {{AUR| |
* {{AUR|surf}} |
||
* {{Pkg|vivaldi}} |
|||
== |
== 使い方 == |
||
{{ic|psd.service}} を [[systemd/ユーザー|ユーザーユニット]] で [[起動/有効化]] さらに、提供された resync-timer は 1 時間ごとに tmpfs からディスクへの再同期を実行します。resync-timer は {{ic|psd.service}} で自動的に起動するので、手動でタイマーを起動する必要はありません。 |
|||
=== プレビューモード (parse) === |
=== プレビューモード (parse) === |
||
{{ic|$XDG_CONFIG_HOME/psd/psd.conf}} に基づいて psd が実行する/していることを表示するために {{ic|psd parse}} を実行します。また、プロファイルのサイズ、パス、回復スナップショットが作成されているかどうかなど、有用な情報も提供されます。 |
|||
$ profile-sync-daemon parse |
|||
Profile-sync-daemon v5.65 on Arch Linux. |
|||
Systemd service is currently active. |
|||
Systemd resync service is currently active. |
|||
Overlayfs v23 is currently active. |
|||
Psd will manage the following per /etc/psd.conf settings: |
|||
browser/psname: chromium/chromium |
|||
owner/group: facade/100 |
|||
sync target: /home/facade/.config/chromium |
|||
tmpfs dir: /tmp/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: facade/100 |
|||
sync target: /mnt/data/docs/facade/mozilla/firefox/f8cv8bfu.default |
|||
tmpfs dir: /tmp/facade-firefox-f8cv8bfu.default |
|||
Permissions are 755 on this profile. |
|||
Recommend a setting of 700 for increased privacy! |
|||
profile size: 145M |
|||
overlayfs size: 13M |
|||
recovery dirs: none |
|||
browser/psname: firefox/firefox |
|||
owner/group: facade/105 |
|||
sync target: /mnt/data/docs/facade/mozilla/firefox/obg67zqQ.proxy |
|||
tmpfs dir: /tmp/facade-firefox-obg67zqQ.proxy |
|||
profile size: 17M |
|||
overlayfs size: 28M |
|||
recovery dirs: none |
|||
== ヒントとテクニック == |
|||
上記の通り、特定のブラウザが BROWSERS 行に設定されていない場合、''psd'' は指定されたユーザーのサポートされているプロファイル全てを同期します。 |
|||
=== クリーンモード === |
|||
クリーンモードを使うと保存されているスナップショットを全て削除します。削除しても問題ない場合にのみ実行してください。 |
|||
$ psd c |
|||
Profile-sync-daemon v5.65 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 を実行してプロファイルを管理 === |
|||
同期したり同期を解除するのに {{ic|/usr/bin/profile-sync-daemon}} を直接実行してはいけません。代わりにサービスファイルを使って下さい。 |
|||
[[systemd]] の[[デーモン|サービス]]ファイルとタイマーが両方入っており、これらを使って ''psd'' を制御することができます。タイマーの役割は tmpfs をディスクにコピーバックさせることで、一時間に一度実行されます。タイマーは {{ic|psd.service}} によって勝手に起動します。 |
|||
起動時・シャットダウン時に実行するには {{ic|psd.service}} を[[systemd#ユニットを使う|起動・有効化]]してください ('''強く推奨''')。 |
|||
=== もっと頻繁に同期する (任意) === |
=== もっと頻繁に同期する (任意) === |
||
| 162行目: | 88行目: | ||
パッケージには一時間ごとに同期を行うタイマーが入っています。任意で、[[Systemd#ユニットファイルの編集|systemd ユニットを編集]]することでこの挙動を再定義することが可能です。以下の例は10分毎に同期させるようにタイマーを変更します: |
パッケージには一時間ごとに同期を行うタイマーが入っています。任意で、[[Systemd#ユニットファイルの編集|systemd ユニットを編集]]することでこの挙動を再定義することが可能です。以下の例は10分毎に同期させるようにタイマーを変更します: |
||
{{hc|/ |
{{hc|~/.config/systemd/user/psd-resync.timer.d/frequency.conf|<nowiki> |
||
[Unit] |
[Unit] |
||
Description=Timer for Profile-sync-daemon |
Description=Timer for Profile-sync-daemon |
||
[Timer] |
[Timer] |
||
# Empty value resets the list of timers |
|||
OnUnitActiveSec= |
OnUnitActiveSec= |
||
OnUnitActiveSec= |
OnUnitActiveSec=10m |
||
</nowiki>}} |
</nowiki>}} |
||
オプションについては {{ |
オプションについては {{man|5|systemd.timer}} を見て下さい。 |
||
=== overlayfs モードとは? === |
|||
== Firefox と Heftig の Aurora での注意事項 == |
|||
{{Note|Linux カーネルで利用可能な overlayfs にはいくつかのバージョンがあり、様々なディストリビューションで運用されています。バージョン22以下では、'overlayfs' と呼ばれるモジュールが使用されていますが、新しいバージョン (23以上) では、'overlay' と呼ばれるモジュールが使用されています (新しいバージョンでは、'fs' がないことに注意してください) Psd は、カーネルが利用可能な overlayfs を使用するように設定されていれば、自動的にそれを検出します。}} |
|||
''psd'' でブラウザプロファイルを記録して同期を行うには、各ユーザーの {{ic|$HOME/.mozilla/''browser''/profiles.ini}} ファイルで、使用するディレクトリに一意な名前を付ける必要があります。''psd'' が実行されるとファイルが確認され、このルールが守られていない場合は同期が行われません。以下は良くないプロファイルの例で、テストに失敗します。フルパスは一意になっていますが、どちらも同じ名前で終わっているところに注意してください。''psd'' を使うためには {{ic|profiles.ini}} を修正して適当なディレクトリを設定する必要があります。 |
|||
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"}} という行をアンコメントしてデーモンを再起動することで有効にできます。 |
|||
{{hc|~/.mozilla/firefox/profiles.ini| |
|||
[General] |
|||
StartWithLastProfile=1 |
|||
Linux カーネルで利用できる overlayfs にはディストロによって複数のバージョンが存在します。バージョン 22 以前ではモジュールは 'overlayfs' と呼ばれていましたが、新しいバージョン (23 以上) ではモジュールの名前は 'overlay' になっています ('fs' が取られた)。Psd はあなたの使用しているカーネルで利用できる overlayfs を自動的に検出します。 |
|||
[Profile0 for user facade] |
|||
Name=normal |
|||
IsRelative=0 |
|||
Path=/mnt/data/docs/'''facade'''/mozilla/firefox/'''myprofile.abc''' |
|||
Default=1 |
|||
psd のバージョン 6.05 から、overlayfs モードを利用するには {{ic|/usr/bin/psd-overlay-helper}} に (パスワードプロンプトが表示されない) sudo でアクセスできるようにするか、あるいはグローバルな sudo 権限が必要になりました。{{ic|/etc/sudoers}} に以下の行を設定することでユーザーに権限が与えられます。root で {{ic|/usr/bin/visudo}} を実行して追加してください: |
|||
[Profile1 for user debbie] |
|||
Name=proxy |
|||
IsRelative=0 |
|||
Path=/mnt/data/docs/'''debbie'''/mozilla/firefox/'''myprofile.abc''' |
|||
}} |
|||
''username'' ALL=(ALL) NOPASSWD: /usr/bin/psd-overlay-helper |
|||
== FAQ == |
|||
上のプレビューモードのセクションの例を見れば、overlayfs を使うことでどれくらいメモリの使用量が節約できているのかわかります。"overlayfs size" とプロファイルごとの "profile size" の合計を比較してください。プロファイルに書き込まれているデータの量によって数字は変わってきますが、基本的に overlayfs のサイズはプロファイルのサイズより小さくなるはずです。 |
|||
=== 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]}} |
|||
Overlayfs は Linux カーネル 3.18.0 でメインラインに取り込まれたシンプルなユニオンファイルシステムです。psd バージョン 5.54 から、overlayfs を使うことで psd の tmpfs 領域のメモリフットプリントを減らしたり、同期を高速化させることができるようになっています。オーバーレイマウントでは、プロファイル全体ではなく、変更が加えられたデータだけが書き出されるというところがミソです。overlayfs モードで実行した場合、psd がデフォルトで使用する同一の復帰機能も有効になります。Overlayfs モードは {{ic|/etc/psd.conf}} の {{ic|1=USE_OVERLAYFS="yes"}} という行をアンコメントしてデーモンを再起動することで有効にできます。 |
|||
overlayfs は、プロファイルの読み取り専用のベースコピー (browser-back-ovfs) をマウントし、その上で新しいデータを管理します。読み取り専用ファイルシステムへの再同期を避けるために、代わりにコピーが使用されます。そのため、overlayfs を使用すると、初期同期時間が短縮され、メモリ使用量がホームディレクトリのディスク領域よりも少なくなります。 |
|||
Linux カーネルで利用できる overlayfs にはディストロによって複数のバージョンが存在します。バージョン 22 以前ではモジュールは 'overlayfs' と呼ばれていましたが、新しいバージョン (23 以上) ではモジュールの名前は 'overlay' になっています ('fs' が取られた)。Psd はあなたの使用しているカーネルで利用できる overlayfs を自動的に検出します。 |
|||
=== /run/user/xxxx にプロファイルを乗せるのに大量のメモリを割り当てる === |
|||
=== overlay や overlayfs モジュールはどうやってロードすればいいか? === |
|||
{{ic|/run/user}} の容量は {{ic|/etc/systemd/logind.conf}} の RuntimeDirectorySize ディレクティブによって制御されるのが通常です (詳しくは {{ic|logind.conf}} の man ページを見て下さい)。デフォルトでは、物理メモリの 10% が使われますが、メモリの使用量を増やすことができます。tmpfs は実際に使用する分だけしか消費しません。許容できる最大限のサイズを指定してください。 |
|||
(root で) {{ic|/usr/bin/modprobe}} を使ってモジュールをロードすることができます。先に、'overlay' をロードしてみて、modprobe が失敗するようでしたら、'overlayfs' を使って下さい。modprobe を使ってモジュールをロードしても、次の起動時にはモジュールはロードされないので注意してください。起動時に自動的にモジュールをロードしたい場合、{{ic|/etc/modules-load.d/load_me.conf}} にモジュールを記述する[[カーネルモジュール#ロード|方法]]が推奨です (ファイルにはロードするモジュールの名前だけを書きます)。 |
|||
=== スナップショット === |
|||
=== システムがクラッシュして同期がされませんでした。どうすればいいですか? === |
|||
ブラウザプロファイルの "最後の機能する" バックアップは、ファイルシステム上にまだうまく残っている可能性があります。psd を再起動すると (例えば再起動時)、プロファイルの tmpfs コピーへのシンボリックリンクが有効かどうかが確認されます。もしそれが無効であれば、psd はそれを元の場所に戻す前に ”最後の機能する” バックアップをスナップショットします。これは、psd が害を与えず、データの損失が何か他の要因によるものであることを確認するためのものです。 |
|||
{{Note| |
{{Note|スナップショット/バックアップ機能を完全に無効にするには、{{ic|USE_BACKUPS}} 変数のコメントを解除し、{{ic|"no"}} に設定する必要があります。}} |
||
スナップショットはブラウザプロファイルと同じディレクトリにあり、回復が行われた時間に対応する日付-時間スタンプが含まれています。例えば、chromium の場合は {{ic|~/.config/chromium-backup-crashrecovery-20130912_153310}} となります。-- もちろん、date_time の接尾辞はそれぞれ異なります。 |
|||
=== スナップショットはどこにありますか? === |
|||
スナップショットを復元するには: |
|||
ブラウザによります。ブラウザプロファイルと同じディレクトリにスナップショットが存在し、リカバリが作られた時刻のタイムスタンプが付けられています。例えば、chromium なら {{ic|~/.config/chromium-backup-crashrecovery-20130912_153310}} などになります。もちろん、日付_時間の部分は異なっているでしょう。 |
|||
=== スナップショットを復元するにはどうすればいいですか? === |
|||
* {{ic|psd}} を停止してください。 |
* {{ic|psd}} を停止してください。 |
||
* tmpfs のブラウザプロファイルディレクトリのシンボリックリンクがないことを確認してください。存在する場合、''psd'' は何らかの理由で適切に停止していません。 |
* tmpfs のブラウザプロファイルディレクトリのシンボリックリンクがないことを確認してください。存在する場合、''psd'' は何らかの理由で適切に停止していません。 |
||
* プロファイルの"問題がある"コピーをバックアップに移動してください (やみくもに削除するのはやめましょう) |
* プロファイルの"問題がある"コピーをバックアップに移動してください (やみくもに削除するのはやめましょう) |
||
* スナップショットディレクトリをブラウザが使用する名前にコピーしてください。 |
* スナップショットディレクトリをブラウザが使用する名前にコピーしてください。 |
||
| 229行目: | 142行目: | ||
Chromium を実行したらコピーしたバックアップスナップショットが使われます。全て問題ないようでしたら、ブラウザを閉じて psd を再起動してください。ここまできたら {{ic|~/.config/chromium-backup-crashrecovery-20130912_153310}} を削除してもかまいません。 |
Chromium を実行したらコピーしたバックアップスナップショットが使われます。全て問題ないようでしたら、ブラウザを閉じて psd を再起動してください。ここまできたら {{ic|~/.config/chromium-backup-crashrecovery-20130912_153310}} を削除してもかまいません。 |
||
=== |
==== スナップショットをクリーンアップする ==== |
||
"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 の設計目標および利点は以下の通りです。
- 透過的に利用できる
- 物理ドライブの損耗が減る
- 速度
プロファイル、ブラウザキャッシュなどを 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 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 カーネルが必要です。
サポートしているブラウザ
現在、以下のブラウザを自動で検出して管理します:
- Chromium
- chromium-devAUR
- conkeror-gitAUR
- Epiphany
- falkon
- Firefox (安定版、ベータ版、Aurora 版など全てをサポート)
- google-chromeAUR
- google-chrome-betaAUR
- google-chrome-devAUR
- heftig バージョンの Aurora: Arch Linux 専用ブラウザ
- icecatAUR
- Luakit
- Midori
- Opera
- Otter Browser
- palemoonAUR
- Qutebrowser
- seamonkey
- surfAUR
- vivaldi
使い方
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 モードとは?
Overlayfs は Linux カーネル 3.18.0 でメインラインに取り込まれたシンプルなユニオンファイルシステムです。psd バージョン 5.54 から、overlayfs を使うことで psd の tmpfs 領域のメモリフットプリントを減らしたり、同期を高速化させることができるようになっています。オーバーレイマウントでは、プロファイル全体ではなく、変更が加えられたデータだけが書き出されるというところがミソです。overlayfs モードで実行した場合、psd がデフォルトで使用する同一の復帰機能も有効になります。Overlayfs モードは $XDG_CONFIG_HOME/psd/psd.conf の USE_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 のサイズはプロファイルのサイズより小さくなるはずです。
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 を実行すると、蓄積されたすべての回復スナップショットが削除されます。それらを削除することが確実な場合にのみ、これを実行してください。
サポート
気づいたことやコメントなどは 議論スレッド に投稿してください。