Рейтинг:0

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

флаг cn

В настоящее время я управляю службой резервного копирования для нескольких удаленных серверов. Резервные копии записываются через rsync, каждая резервная копия имеет свой собственный файловый контейнер, смонтированный как петлевое устройство. Основной резервный раздел имеет формат xfs 8T, а петлевые устройства имеют размер от 100G до 600G, формат ext2 или ext4. Итак, это упрощенное матрешковое решение:

дф-ть
> /dev/vdb1 xfs 8,0T /mnt/backups
> /dev/loop1 ext2 100G /mnt/srv1
> /dev/loop2 ext2 200G /mnt/srv2

устанавливать
> /dev/vdb1 в /mnt/backups
> /mnt/backups/srv1.ext2 на /mnt/srv1
> /mnt/backups/srv2.ext2 на /mnt/srv2

ls -R /mnt/резервные копии
> /mnt/резервные копии
> ââ/mnt/backups/srv1.ext2
> ââ/mnt/backups/srv2.ext2

Основная проблема - скорость чтения/записи, они очень медленные.Кроме того, иногда все зависает и съедает весь мой процессор и оперативную память. Я вижу, что петлевые устройства вызывают это.

В последнее время я начал переключать контейнеры с ext4 на ext2, потому что думал, что мне не нужно ведение журнала, надеясь, что это улучшит скорость. Я также переключался с разреженных файлов на неразреженные файлы, надеясь, что это снизит использование процессора / оперативной памяти. Но проблема осталась, иногда система не отвечает.

Поэтому я ищу лучшее решение с более высокой скоростью чтения/записи. Кроме того, важно быстро увидеть дисковое пространство, используемое каждым профилем (я могу просто использовать дф пока что, дю будет слишком медленно). Разделение, которое дают петлевые устройства, хорошо с точки зрения безопасности, но также может быть решено с использованием вместо этого rsync поверх ssh, поэтому это не является обязательным требованием.

Я думал об уменьшении основного раздела xfs и превращении файловых контейнеров в настоящие разделы ext4, но это привело бы к огромным простоям, когда необходимо изменить размер первого раздела. Я думал об использовании virt-make-fs или же сквошфс, потому что я мог бы просто получить размер файла, чтобы получить использование диска, но у меня нет опыта с этим.

У кого-нибудь есть идеи, есть ли лучшее решение для этого?

Рейтинг:0
флаг cn

Отвечая на мой собственный вопрос, возможно, полезно для других.

Я обнаружил, что xfs имеет xfs_quota утилита, в которой вы можете настроить проекты, которые отслеживают использование диска для любой заданной папки.

Во-первых, раздел xfs должен быть (пере)монтирован с квота флаг включен: mount -o prjquota /dev/vdb1 /mnt/backups. Опционально этот флаг можно добавить в /etc/fstab чтобы убедиться, что он правильно смонтирован при перезагрузке.

Затем настраиваем проект:

эхо "srv1:50" > /etc/projid
echo "50:/mnt/backups/srv1" > /etc/projects

mkdir/mnt/резервные копии/srv1
xfs_quota -x -c 'проект -s srv1' /mnt/backups
xfs_quota -x -c 'limit -p bsoft=100G bhard=110G srv1' /mnt/backups

Это устанавливает проект «srv1» с идентификатором «50», создает /mnt/резервное копирование/СРВ где живет проект, и дает ему мягкое ограничение «100G» и жесткое ограничение «110G». С этого момента xfs будет отслеживать все файлы, добавленные в эту папку, и измерять их использование.

Чтобы увидеть использование, используйте:

xfs_quota -x -c отчет
xfs_quota -x -c 'отчет -h'

Скорость чтения/записи выглядит так же, как запись в обычную папку без настройки xfs_quota.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.