Многоуровневое хранилище с BTRFS -как это делается?

Я обнаружил, что лучшим вариантом для меня было просто добавить

bind 'set menu-complete-display-prefix on'

с

по .inputrc.

Первая вкладка завершит однозначный префикс. На второй вкладке будут перечислены все оставшиеся неоднозначные параметры. Введите свои символы, и третья вкладка завершит вашу команду.

5
08.12.2020, 17:03
3 ответа

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

Проверьте /etc/cron.d на наличие записей, которые могут это делать.

1
18.03.2021, 22:44

Итак, вот что я обнаружил во время периодических балансов:

На хосте запускается следующий процесс:

btrfs balance start -dsweep lt:/dev/md127:7 /data LANG=en_US.UTF-8 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin DBUS_SESSION_BUS_ADDRESS=unix:path=/var/netatalk/spotlight.ipc TRACKER_USE_CONFIG_FILES=1 TRACKER_USE_LOG_FILES=1 XDG_DATA_HOME=/apps/.xdg/local/share XDG_CONFIG_HOME=/apps/.xdg/config XDG_CACHE_HOME=/apps/.xdg/cache

где /data — мой многоуровневый том данных -, /dev/md127 — массив SSD, используемый в качестве буфера/кэша.

Этот процесс выполняется до тех пор, пока данные с уровня SSD не будут почти полностью перемещены на уровень жестких дисков -, например. где-то по пути я вижу:

btrfs fi sh /data
Label: '0a44c6bc:data'  uuid: ed150b8f-c986-46d0-ada8-45ee219acbac
    Total devices 2 FS bytes used 393.14GiB
    devid    1 size 7.12TiB used 359.00GiB path /dev/md126
    devid    2 size 114.68GiB used 42.06GiB path /dev/md127

, а затем снижается до тех пор, пока использование уровня SSD не снизится почти до нуля. Странно то, что до сих пор мне не удалось запустить эту команду вручную.

Я до сих пор не могу разобраться с фильтром баланса 'sweep'.

Вот что показывает справка -:

# btrfs balance start --help
usage: btrfs balance start [options] <path>

    Balance chunks across the devices

    Balance and/or convert (change allocation profile of) chunks that
    passed all filters in a comma-separated list of filters for a
    particular chunk type.  If filter list is not given balance all
    chunks of that type.  In case none of the -d, -m or -s options is
    given balance all chunks in a filesystem. This is potentially
    long operation and the user is warned before this start, with
    a delay to stop it.

    -d[filters]    act on data chunks
    -m[filters]    act on metadata chunks
    -s[filters]    act on system chunks (only under -f)
    -v             be verbose
    -f             force reducing of metadata integrity
    --full-balance do not print warning and do not delay start
    --background|--bg
                   run the balance as a background process

но это не объясняет, как это отображается на " lt:/dev/md127:7" часть команды, которая выполняется периодически:

btrfs balance start -dsweep lt:/dev/md127:7 /data

В чем здесь смысл :Запускать до тех пор, пока использование данных /dev/md127 не упадет ниже 7%?!?

2
18.03.2021, 22:44

Вы говорите, что Netgear нашла способ сделать то, что уже позволяет многоуровневое кэширование MergerFS, в удобной для пользователя -и чрезвычайно простой конфигурации :https://github.com/trapexit/mergerfs#tiered-caching

  1. создать 2 пула MergerFS )один со всеми жесткими дисками, включая SSD («POOL», tier0 )и установленный для записи на устройство с наименьшим свободным пространством (, если на нем не осталось X свободного места ). B )второй пул («ПУЛ -АРХИВ», уровень 1 )содержит только жесткие диски.

  2. Ваши пользователи и все приложения используют только путь первого пула.

  3. Ночной скрипт, который копирует все, что не трогали за последние X дней из первого пула во второй (легко, так как диски одинаковые, это приведет только к копированию данных на SSD ). Это единственный элемент, который использует путь второго пула.

Именно так я настроил свой домашний сервер. Все диски отформатированы в BtrFS. Я не (не могу,с этим решением )используйте Raid.

Плюсы:

  1. Когда диск выходит из строя, вы теряете только данные на этом диске (, и я смягчаю это, используя SnapRAID в качестве первой системы резервного копирования ). Вы не теряете весь пул, как с BtrFS -RAID0.
  2. Это очень легко настроить. 2 монтирования в вашем /etc/fstab. БАМ, многоуровневое кэширование!
  3. Вы всегда используете SSD первым (, если только на нем не осталось X свободного места ). Дает вам максимальную скорость.

Минусы:

  1. Вы не можете использовать подтома BtrFS (, распространяющиеся на диски )в вашем пуле MergerFS, поскольку MergerFS работает поверх файловых систем в пользовательском пространстве.
  2. Это также означает, что вы не можете делать моментальные снимки подтомов в своем пуле. Мне бы хотелось, чтобы в моем пуле была машина времени, такая как моментальные снимки папок с данными пользователя -.

Я очень люблю MergerFS за ее простоту, но con #2 заставляет меня очень интересоваться тем, как Netgear взломал похожее решение, используя BTRFS.

2
18.03.2021, 22:44

Теги

Похожие вопросы