Profile-sync-daemon (Русский)

From ArchWiki
Состояние перевода: На этой странице представлен перевод статьи Profile-sync-daemon. Дата последней синхронизации: 24 января 2022. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

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:

  1. Простота в использовании.
  2. Уменьшение износа жесткого диска.
  3. Увеличение скорости работы браузера.

Профили, кэш, и прочие пользовательские данные браузера переносятся с помощью psd в tmpfs (ОЗУ), соответственно операции ввода-вывода браузера перенаправляются в оперативную память. Таким образом, уменьшается износ жёсткого диска, повышается отказоустойчивость и скорость работы браузера: время доступа к оперативной памяти составляет порядка наносекунд, в то время как время доступа к обычному жёсткому диску примерно в 1,000,000 раз выше и составляет порядка миллисекунд.

Примечание: Некоторые браузеры (например, Chromium, Firefox и Midori) хранят файлы кеша в отдельном от профиля каталоге. Изменение этого поведения программы не входит в задачи profile-sync-daemon. Пользователям рекомендуется обратиться к разделу Chromium tweaks#Cache in tmpfs для Chromium и к статье Firefox (Русский)/Profile on RAM (Русский) для Firefox, где описаны возможные решения проблемы.

Установка и настройка

Установите пакет profile-sync-daemon.

Изменение файла конфигурации

Произведите первый запуск psd, это создаст файл $XDG_CONFIG_HOME/psd/psd.conf, который содержит все опции.

Примечание: Любые изменения, произведённые в этом файле, вступят в силу только после перезапуска psd посредством пользовательской службы systemd.
$ 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 или новее.

Поддерживаемые браузеры

В настоящее время следующие браузеры поддерживаются:

Использование 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 в различных дистрибутивах. В версиях 22 и ниже есть модуль под названием 'overlayfs', а в более новых версиях (23 и выше) есть модуль под названием 'overlay' — обратите внимание на отсутствие 'fs' в новой версии. Psd автоматически обнаружит 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 всегда будет меньше размера профиля.

Важно: Использование psd в режиме overlayfs (в частности, psd-overlay-helper) может привести к повышению привилегий. [1]

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 работоспособен и любая потеря данных была по причине чего-то другого.

Примечание: Пользователи могут полностью отключить функцию моментального снимка/резервного копирования, раскомментировав и установив переменную USE_BACKUPS в значение 'no' в $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" для удаления снимков.

Поддержка

Пишите в тему на форуме (англ.) для комментариев и прочих обсуждений.

Смотрите также