3

Этот вопрос немного странный, я постараюсь быть максимально подробным.

Я переназначаю старый компьютер в качестве решения для резервного копирования в домашних условиях. Последним местом отдыха для данных является внешний G-Drive, подключенный через USB 2.0 (я говорил вам, что это старый компьютер). Я хотел бы выяснить, как использовать место на новом блестящем SSD-диске компьютера для буферизации записи на внешний диск. Я использую OpenSUSE Leap 15, с установкой сервера.

До сих пор я нашел bcache, который я мог установить в режим обратной записи и получить что-то похожее на то, что я ищу. Проблема в том, что раздел, который я буду буферизовать, использует btrfs (прозрачное сжатие), и были проблемы, сообщенные при их использовании вместе. Arch wiki говорит, что это было исправлено в 3.9, но я не нахожу это нигде в связанном источнике.

Там также lvmcache. Единственная ссылка на обратную запись, которую я вижу, - это краткое сообщение на странице руководства, без каких-либо дополнительных объяснений. Я также уже использую lvm для разделения SSD на различные разделы с тонкими пулами, поэтому я был бы обеспокоен тем, что использование lvmcache потребует от меня либо создания нового выделенного lvm-vg на двух дисках, чтобы предотвратить тонкие пулы распространяясь на внешний. Кроме того, в вики BTRFS есть примечания, что использование BTRFS поверх всего, что связано с уровнем блоков, может вызвать проблемы.

DM-Cache - это еще одна возможность настройки, которую я все еще изучаю. Поскольку он работает на уровне блоков, все еще возможно, что он может конфликтовать с btrfs.

Последний вариант - установка ZIL на основе SLOG с помощью zfs. Этот источник говорит, что при соединении 1 Гбит / с самый большой SLOG должен быть 0,625 ГБ, потому что он будет сбрасываться каждые 5 секунд. Тем не менее, исходя из всестороннего тестирования, самая высокая поддерживаемая скорость записи, которую я могу получить на этом диске, составляет 30 МБ / с. Это будет означать, что потребуется 20 секунд, чтобы сбросить 0,625 ГБ памяти на диск ZFS. (Обновление: на основе этого источника и этого источника устройство SLOG не предназначено для повышения пропускной способности, просто для уменьшения задержки.) (Обновление к обновлению: в комментариях Дэн уточнил, что это означает. Вполне вероятно, что ЗИЛ может быть использован в этом сценарии.)

Я знаю, что большие записи неизбежно будут ограничены внешним подключением. Я полагаю, что все, что составляет порядка десятков ГБ, будет иметь скорость 30 МБ / с. Моя цель не решить эту проблему. Скорее всего, я буду использовать rsync для отправки данных на внешние устройства, поэтому я бы хотел ускорить большинство операций передачи менее 10 ГБ.

Мне в основном любопытно, сделал ли кто-то еще что-то похожее на это, и есть ли у него рекомендации, или он может указать на конкретный вариант, который лучше других. В настоящий момент я считаю вариант ZFS/SLOG лучшим вариантом с использованием слог-накопителя 10 ГБ, но я не представляю, как этот большой диск будет играть с 5-секундным сбросом.

tl; dr: Каков наилучший способ (хотя я знаю, что не все это точно рекомендуется) для буферизации данных объемом около 10 ГБ на внутреннем диске, который затем будет перенесен на внешний диск?

1 ответ1

2

Я считаю, что любое из упомянутых вами решений будет работать нормально (за исключением взаимодействий между bcache / LVM и BtrFS - я не знаю больше, чем вы там). Выбор, вероятно, сводится к тому, что вам проще всего понять, настроить и поддерживать.

Лично я бы выбрал ZFS, потому что:

  1. У меня большой опыт с этим.
  2. Он предоставляет решение «все в одном» для этого варианта использования (сжатие плюс использование SSD для кэширования операций чтения и / или записи).
  3. Он предоставляет множество других интересных функций (снимки и клоны, дедупликацию, RAID-Z, репликацию с zfs send , шифрование, сжатый кэш ОЗУ и т.д.), Которые могут оказаться полезными в будущем, даже если вы их не используете сейчас. Есть также здоровое сообщество с открытым исходным кодом, которое постоянно добавляет новые функции.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .