Я обнаружил, что лучшим вариантом для меня было просто добавить
bind 'set menu-complete-display-prefix on'
по .inputrc
.
Первая вкладка завершит однозначный префикс. На второй вкладке будут перечислены все оставшиеся неоднозначные параметры. Введите свои символы, и третья вкладка завершит вашу команду.
Это должен быть cronjob, который регулярно запускается и выполняет миграцию.
Проверьте /etc/cron.d на наличие записей, которые могут это делать.
Итак, вот что я обнаружил во время периодических балансов:
На хосте запускается следующий процесс:
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%?!?
Вы говорите, что Netgear нашла способ сделать то, что уже позволяет многоуровневое кэширование MergerFS, в удобной для пользователя -и чрезвычайно простой конфигурации :https://github.com/trapexit/mergerfs#tiered-caching
создать 2 пула MergerFS )один со всеми жесткими дисками, включая SSD («POOL», tier0 )и установленный для записи на устройство с наименьшим свободным пространством (, если на нем не осталось X свободного места ). B )второй пул («ПУЛ -АРХИВ», уровень 1 )содержит только жесткие диски.
Ваши пользователи и все приложения используют только путь первого пула.
Ночной скрипт, который копирует все, что не трогали за последние X дней из первого пула во второй (легко, так как диски одинаковые, это приведет только к копированию данных на SSD ). Это единственный элемент, который использует путь второго пула.
Именно так я настроил свой домашний сервер. Все диски отформатированы в BtrFS. Я не (не могу,с этим решением )используйте Raid.
Плюсы:
Минусы:
Я очень люблю MergerFS за ее простоту, но con #2 заставляет меня очень интересоваться тем, как Netgear взломал похожее решение, используя BTRFS.