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

profile-sync-daemon (psd) — небольшой псевдо-демон, предназначенный для переноса профилей браузеров в tmpfs (ОЗУ) и их периодической синхронизации с постоянным хранилищем (HDD/SSD). Это достигается с помощью использования rsync для поддержания синхронизации между копией в tmpfs и резервными копиями в постоянном хранилище. Кроме того, в psd реализованы некоторые функции восстановления после сбоев.

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

Цели и преимущества 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, где описаны возможные решения.
  • Иногда в файл конфигурации по умолчанию /usr/share/psd/psd.conf вносятся обновления/изменения. Пользовательская копия $XDG_CONFIG_HOME/psd/psd.conf должна быть обновлена. В Arch Linux pacman должен уведомить пользователя о необходимости сделать это.
  • psd может замедлить вход в систему, так как он копирует кэш браузера в память.

Установка

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

Настройка

При первом запуске psd создаст файл настроек . Можно просто выполнить команду без использования службы , чтобы создать этот файл без немедленного запуска синхронизации.

Примечание: Любые изменения, произведённые в этом файле, вступят в силу только после перезапуска psd посредством пользовательской службы systemd.
  • Опционально включите использование overlayfs для улучшения скорости синхронизации и уменьшения количества необходимой памяти. Для этого используйте переменную . Пользователю понадобятся sudo права доступа к /usr/bin/psd-overlay-helper для использования этой опции, а также ядро должно поддерживать overlayfs версии 22 или новее. Смотрите раздел #Режим overlayfs ниже, чтобы узнать подробности.
  • Опционально укажите названия веб-браузеров, профили которых необходимо перенести в ОЗУ, в массиве . Если в этой переменной ничего не указано, по умолчанию перенесутся все найденные профили поддерживаемых браузеров.
  • Опционально можете отключить создание резервных копий профиля (не рекомендуется) с помощью переменной .
  • Опционально можно указать число хранимых резервных копий с помощью переменной .

Пример: допустим, что у вас установлены браузеры Chromium, Opera и Midori, однако вы хотите перенести профили в ОЗУ только для Chromium и Opera:

BROWSERS=(chromium opera)

Начиная с версии 5.54, есть родная поддержка overlayfs. Для её использования требуется ядро версии 3.18.0 или новее.

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

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

Использование

Запустите/включите пользовательскую службу . Также есть systemd-таймер, который запускает копирование данных из памяти на диск каждый час. Таймер запускается автоматически вместе со службой , так что запускать его вручную не нужно.

Проверка конфигурации

Команда покажет, что именно psd будет делать, основываясь на конфигурации в , а также выведет прочую полезную информацию.

Советы и рекомендации

Установка частоты синхронизации

По умолчанию таймер настроен на синхронизацию с интервалом в один час. Пользователь может легко установить другой желаемый интервал, отредактировав файл юнита. В примере ниже создаётся drop-in файл, в котором таймер установлен на синхронизацию с интервалом в 10 минут (строка с пустым значением используется для удаления старого значения перед добавлением нового ):

Смотрите для получения дополнительной информации о настройке таймеров.

Режим overlayfs

Overlayfs — это простая файловая система, которая доступна в ядре Linux с версии 3.18.0. Начиная с версии 5.54, psd может использовать overlayfs, чтобы уменьшить потребление памяти в tmpfs и ускорить операции синхронизации с диском. Особенность метода в том, что overlayfs записывает только изменённые данные, а не весь профиль. Те же функции восстановления, которые использует psd в своём режиме по умолчанию, также активны при работе в режиме overlayfs. Чтобы включить режим overlayfs, раскомментируйте строку USE_OVERLAYFS="yes" в файле и затем перезапустите демон.

Начиная с версии psd 6.05, пользователи, желающие использовать этот режим, ДОЛЖНЫ иметь права sudo (без запроса на ввод пароля) для файла /usr/bin/psd-overlay-helper или же глобально. Следующая строка в файле предоставит пользователю эти права. Добавьте её с помощью visudo:

пользователь ALL=(ALL) NOPASSWD: /usr/bin/psd-overlay-helper

Смотрите пример в разделе #Проверка конфигурации выше, в котором показана система, использующая overlayfs для иллюстрации возможностей экономии памяти. Обратите внимание на строку "overlayfs size" в сравнении со строкой "profile size" для каждого профиля. Имейте в виду, что эти цифры будут меняться в зависимости от объема данных, записываемых в профиль, но при обычном использовании размер overlayfs всегда будет меньше размера профиля.

Принцип работы overlayfs заключается в монтировании базовой копии профиля (browser-back-ovfs), доступной только для чтения, и записи новых данных поверх неё. Чтобы избежать повторной синхронизации с файловой системой, доступной только для чтения, вместо неё используется копия. Таким образом, использование overlayfs — это компромисс: более быстрое время начальной синхронизации и меньшее использование памяти по сравнению с дисковым пространством в домашнем каталоге.

Добавление памяти для размещения профилей в /run/user/xxxx

Стандартный способ контроля размера — это директива RuntimeDirectorySize в /etc/systemd/logind.conf (смотрите для подробностей). По умолчанию используется 10% физической памяти, но можно её увеличить. Помните, что tmpfs занимает только ту память, которая реально используется файлами; указываемое здесь число просто ограничивает максимальный размер.

Снимки

Если случился сбой системы — скорее всего, "последняя целая" резервная копия профилей браузеров всё ещё в сохранности в файловой системе. При перезапуске psd (например, при перезагрузке системы) он выполняет проверку, действительна ли символическая ссылка вашего профиля на копию в tmpfs. Если она недействительна, psd создаст снимок "последней целой" резервной копии, прежде чем вернуть её на место. Эта опция больше для проверки, что psd работоспособен и любая потеря данных была по причине чего-то другого.

Найти снимок можно в том же каталоге, что и профиль браузера, и он будет содержать отметку даты и времени, которая соответствует времени, когда был сделан снимок. Например, для chromium это будет — конечно, отметка времени у вас будет своя.

Чтобы восстановить данные из снимка:

  • Остановите пользовательскую службу .
  • Убедитесь, что нет символической ссылки на каталог профиля браузера в tmpfs. Если есть, значит psd не был завершён корректно по другим причинам.
  • Переместите "плохую" копию профиля куда-нибудь (не удаляйте ничего просто так).
  • Скопируйте каталог снимка на место профиля браузера.

Пример для браузера Chromium:

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

Теперь вы можете запустить Chromium, который будет использовать скопированный резервный снимок. Если все в порядке, закройте браузер и перезапустите psd. На этом этапе вы можете безопасно удалить .

Удаление всех снимков с помощью режима чистки

Команда удалит ВСЕ резервные копии. Запускайте этот режим, только если вы уверены, что собранные резервные копии больше не понадобятся.

Поддержка

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

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

gollark: There are 200 things in that.
gollark: https://killedbygoogle.com/
gollark: * spies on you all the time and randomly has things be cancelled
gollark: ÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆ
gollark: That's a BAD thing.
This article is issued from Archlinux. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.