Назад | Перейти на главную страницу

Воссоздание информации о квотах проекта XFS

Мы воссоздали файловый сервер с файловой системой XFS, используя квоты проекта, находящиеся в SAN. К сожалению, мы забыли сделать резервную копию / etc / projects и / etc / projid на сервере перед переустановкой. Сама файловая система XFS и хранящаяся в ней информация о квотах - это нормально AFAICS. Есть ли способ узнать идентификаторы проектов для каталогов на диске, чтобы мы могли воссоздать / etc / {projects, projid}?

Чтобы уточнить, скажем, файловая система XFS смонтирована в / export / xfs и содержит каталоги / export / xfs / foo и / export / xfs / bar. Итак, нам нужны следующие записи в / etc / projects

NN:/export/xfs/foo
MM:/export/xfs/bar

и следующие записи в / etc / projid

foo:NN
bar:MM

Итак, как нам получить значения NN и MM, которые хранятся на диске?

Ну, так как никто не знал ответа, мне пришлось кое-что придумать. Кажется, работает следующее:

Сделайте предположение (NN) для идентификатора проекта для одного из каталогов проектов. Тогда беги

xfs_quota -x -c "project -c -p /export/xfs/projdir -d 0 NN"

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

Checking project NN (path /export/xfs/projdir)...

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

/export/xfs/projdir - project identifier is not set (inode=MM, tree=NN)

где NN - ваше предположение, а правильный идентификатор проекта - MM. Исходя из этого, вы можете заполнить / etc / projects и / etc / projid для этого каталога проекта. Затем повторите для всех каталогов проекта в файловой системе (сценарий для автоматизации оставлен в качестве упражнения для читателя).