Profile-sync-daemon (Русский)
profile-sync-daemon (psd) — небольшой псевдо-демон, предназначенный для переноса профилей браузеров в tmpfs (ОЗУ) и синхронизации с постоянным хранилищем (HDD/SSD) используя rsync. Демон автоматически производит резервные копии на случай возникновения сбоев.
/usr/share/psd/psd.conf
вносятся обновления/изменения. Пользовательская копия $XDG_CONFIG_HOME/psd/psd.conf
должна быть обновлена. В Arch Linux pacman должен уведомить пользователя о необходимости сделать это. Пользователям других пакетных менеджеров и/или дистрибутивов придётся проверять необходимость обновления файлов вручную.Преимущества psd
Цели psd:
- Простота в использовании.
- Уменьшение износа жесткого диска.
- Увеличение скорости работы браузера.
Профили, кэш, и прочие пользовательские данные браузера переносятся с помощью psd в tmpfs (ОЗУ), соответственно операции ввода-вывода браузера перенаправляются в оперативную память. Таким образом, уменьшается износ жёсткого диска, повышается отказоустойчивость и скорость работы браузера: время доступа к оперативной памяти составляет порядка наносекунд, в то время как время доступа к обычному жёсткому диску примерно в 1,000,000 раз выше и составляет порядка миллисекунд.
Установка и настройка
Установите пакет 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. Пользователю понадобятся sudo права доступа к
/usr/bin/psd-overlay-helper
для использования этой опции, а также ядро должно поддерживать overlayfs версии 22 или новее. Смотрите #FAQ ниже, чтобы узнать подробности. - Опционально укажите названия веб-браузеров, профили которых необходимо перенести в ОЗУ, посредством массива BROWSERS. Если в этой переменной ничего не указано, по умолчанию перенесутся все найденные профили поддерживаемых браузеров.
- Опционально можете отключить создание резервных копий профиля (не рекомендуется) с помощью переменной USE_BACKUPS.
- Опционально можно указать число хранимых резервных копий с помощью переменной BACKUP_LIMIT.
Пример: допустим, что у вас установлены браузеры Chromium, Opera и Midori, однако вы хотите перенести профили в ОЗУ только для 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)
Начиная с версии 5.54, есть родная поддержка overlayfs. Для неё нужно ядро версии 3.18.0 или новее.
Поддерживаемые браузеры
В настоящее время следующие браузеры поддерживаются:
- Chromium
- chromium-devAUR
- conkeror-gitAUR
- Epiphany
- Firefox (все разновидности — stable, beta и nightly)
- google-chromeAUR
- google-chrome-betaAUR
- google-chrome-devAUR
- версия Aurora от hetfig: браузер для Arch Linux
- icecatAUR
- Luakit
- Midori
- Opera
- Otter Browser
- Qutebrowser
- palemoonAUR / palemoon-binAUR
- seamonkey
- surfAUR
- vivaldi
Использование psd
Проверка конфигурации
Запуск с опцией 'parse' показывает что именно psd будет делать, основываясь на конфигурации в $XDG_CONFIG_HOME/psd/psd.conf
, а также выведет прочую полезную информацию.
$ 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 поддерживают только систему инициализации systemd. Psd предоставляет пользовательскую службу psd.service, через которую выполняются запуск и остановка psd. Также есть resync-timer, который позволяет выполнять копирование данных из памяти на диск каждый час. Таймер запускается автоматически вместе со службой psd.service.
Для пользователей, незнакомых с пользовательским режимом systemd, используйте следующую команду для запуска сервиса psd:
$ systemctl --user [option] psd.service
Доступные опции: start
, stop
,restart
, enable
, disable
и status
.
Поддерживаемые дистрибутивы
psd представляет из себя обычный bash-скрипт и должен работать на любом дистрибутиве Linux. Многие дистрибутивы предоставляют официальные и пользовательские пакеты для установки psd. На официальном сайте доступен список пакетов и инструкции по установке.
Установка частоты синхронизации (опционально)
Предоставленный с пакетом таймер настроен на синхронизацию с интервалом в один час. Пользователь может легко установить другой желаемый интервал, редактируя файл юнита. В примере ниже создаётся drop-in файл, в котором таймер установлен на сихронизацию с интервалом в 10 минут.
~/.config/systemd/user/psd-resync.timer.d/frequency.conf
[Unit] Description=Timer for Profile-sync-daemon [Timer] OnUnitActiveSec= OnUnitActiveSec=10m
Смотрите systemd.timer(5) для получения дополнительной информации о настройке таймеров.
FAQ
Что такое overlayfs и зачем его использовать?
Overlayfs это простая файловая система, включенная в ядро Linux с версии 3.18.0. В psd, начиная с версии 5.54, overlayfs можно использовать, чтобы уменьшить занимаемую демоном psd память в tmpfs и ускорить операции синхронизации с диском. Особенность метода в том, что overlayfs записывает только измененные данные, а не весь профиль. Те же функции восстановления, которые использует psd в своем режиме по умолчанию, также активны при работе в режиме overlayfs. Чтобы включить режим Overlayfs, нужно раскомментировать строку USE_OVERLAYFS="yes" в $XDG_CONFIG_HOME/psd/psd.conf
и затем перезапустить демон.
Начиная с версии psd 6.05, пользователи, желающие использовать этот режим, ДОЛЖНЫ иметь права sudo (без запроса на ввод пароля) для файла /usr/bin/psd-overlay-helper
или же глобально. Следующая строка в файле /etc/sudoers
предоставит пользователю эти права. Добавьте её с помощью visudo:
user ALL=(ALL) NOPASSWD: /usr/bin/psd-overlay-helper
Смотрите пример в разделе #Проверка конфигурации выше, в котором показана система, использующая overlayfs для иллюстрации возможностей экономии памяти. Обратите внимание на строку "overlayfs size" в сравнении со строкой "profile size" для каждого профиля. Имейте в виду, что эти цифры будут меняться в зависимости от объема данных, записываемых в профиль, но при обычном использовании размер overlayfs всегда будет меньше размера профиля.
Overlayfs требует больше памяти для размещения моего профиля/профилей в /run/user/xxxx. Как мне выделить больше?
Стандартный способ контроля размера /run/user это директива RuntimeDirectorySize в logind.conf (подробнее см. man-страницу для logind.conf). По умолчанию используется 10% физической памяти, но можно безопасно ее увеличить. Помните, что tmpfs использует только то, что фактически используется; Указанное здесь число является только максимально допустимым.
Почему у меня есть еще один каталог профиля браузера "foo-back-ovfs", когда я включаю overlayfs?
Принцип работы overlayfs заключается в монтировании базовой копии профиля (так называемого lower dir), доступной только для чтения, и записи новых данных поверх неё. Чтобы избежать повторной синхронизации с файловой системой, доступной только для чтения, вместо неё используется копия. Таким образом, использование overlayfs — это компромисс: более быстрое время начальной синхронизации и меньшее использование памяти по сравнению с дисковым пространством в домашнем каталоге.
Моя система аварийно завершила работу и не была синхронизирована. Что мне делать?
Скорее всего, "последняя целая" резерваная копия of ваших профилей браузеров все ещё в сохранности у вас на жестком диске. При перезапуске psd
(например, при перезагрузке), выполняется проверка, чтобы убедиться, что символическая ссылка на копию в tmpfs вашего профиля недействительна. Если она недействительна, psd снимет "последнюю целую" резервную копию, прежде чем вернуть её на место.
Эта опция больше для проверки, что psd работоспособен и любая потеря данных была по причине чего-то другого.
$XDG_CONFIG_HOME/psd/psd.conf
, если нужно.Где я могу найти снимок?
Это зависит от браузера. Вы найдете моментальный снимок в том же каталоге, что и профиль браузера, и он будет содержать отметку даты и времени, которая соответствует времени, когда был сделан снимок. Например, для chromium это будет ~/.config/chromium-backup-crashrecovery-20130912_153310
-- конечно, отметка времени у вас будет своя.
Как восстановить снимок?
- Остановить
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 удалить снимки автоматически?
Да, запустите psd с ключом "clean" для удаления снимков.
Поддержка
Пишите в тему на форуме (англ.) для комментариев и прочих обсуждений.