Как я получаю прозрачное, эффективное создание снимков файловой системы или управление версиями на ext3/4?

если бы пользователь не может войти в систему из-за полномочий, пользователь получил бы "разрешение, отклоненное" на его экране, и будет в / ничто не входит в журнал, но его видимое пользователю

11
задан 20 March 2010 в 20:55
6 ответов

Если Вы переносите свои файловые системы с помощью LVM, то можно создать объем снимка с помощью базового слоя логического тома. Это - довольно простой процесс и удивительно эффективный для стандарта "snapshotty" вещи, такие как резервное копирование и отмена rm -fr oopsies.

7
ответ дан 2 December 2019 в 21:48
  • 1
    Спасибо за ответ. К сожалению, I' m поиск чего-то, что может быть применено на существующую файловую систему. –  Dale Forester 21 March 2010 в 01:17

Попробуйте rsnapshot - я не использовал его сам, но я наткнулся на него при взгляде системы дедупликации уровня файла.

0
ответ дан 2 December 2019 в 21:48
  • 1
    That' s интересный. Я определенно изучу его. Мое беспокойство - то, что его загрузка io вызовет заикание в моей системе (я didn' t что-то похожее с rsync только что и прекратил использовать его из-за поведения помех/заикания в других консолях, когда это работало). –  Dale Forester 21 March 2010 в 02:54
  • 2
    Я смотрел на rsnapshot, и мне нравится его идея, но it' s очень, очень неудачный, что это требует дубликата любого it' s создание снимков. К сожалению, и по необходимости, I' m работающий с дисками в их пределе и я хочу создать снимки содержание, которое вполне немного больше, чем оставленное свободное пространство. –  Dale Forester 21 March 2010 в 07:03
  • 3
    Трудность находится в Ваших требованиях. помимо чего-то как rsnapshot, или LVM, ext2/ext3 doesn' t встроили средство создания снимков. Вы указываете на ext3cow, но you' d должны изменить базовую файловую систему. Обратите внимание, что похоже, что можно использовать rsnapshot и хранить данные на ДРУГОЙ машина, я не знаю, какое пространство разговор о, но может иметь смысл сохранять снимками на другой машине? Также имейте в виду, что снимки любого вида потребуют дискового пространства. Если Ваши диски являются близкой способностью, сколько пространства Вы имеете уехавшими снимки? –  Jason 21 March 2010 в 14:07

Смотрите на Горячую Копию с R1Soft.

http://www.r1soft.com/tools/linux-hot-copy/

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

Также см.: http://www.r1soft.com/tools/linux-hot-copy/hcp-tips/

0
ответ дан 2 December 2019 в 21:48

bup выглядит многообещающим.

Более старое обсуждение его здесь: http://lwn.net/Articles/380983/

2
ответ дан 2 December 2019 в 21:48

После 8 лет поиска я нашел SVNFS от Marco R. Gazzetta (который отличается от старого проекта с то же имя от Джона Мэддена [который делает разные вещи]). Эта SVNFS прозрачно использует svn в операциях чтения / записи:

Вместо создания файловой системы, которая выполняет собственное управление версиями, я использовал существующий инструмент управления версиями, Subversion, и сделал ее использовать прозрачный. Преимущество этой файловой системы в том, что вам не нужно изучать новый инструмент, если вы знаете subversion

. Она написана на Python и использует FUSE:

Теперь вы запускаете файловую систему управления версиями, вызывая прикрепленный скрипт:

python svnfs.py -o svnroot=/home/marco/svnfiles /home/marco/myfiles

Когда все в порядке, вы сможете получить список обоих каталогов и убедиться, что их содержимое одинаково.

Теперь, если вы создадите (почти) любой файл в любом каталоге, он появится по другую сторону забора, как хорошо. Большая разница в том, что если вы создаете файл в каталоге myfiles, он автоматически будет помещен в систему контроля версий (обратное неверно).

В примере SVNFS использует отдельный каталог для репо. . Хотя не тестировал. Для моих нужд я хотел бы иметь репозиторий прямо в моем рабочем каталоге.


Я также нашел ссылку на возможности управления версиями Reiser4 4 года назад:

См. Reiser 4. Файлы - это каталоги .

например: diff -u main.C main.C / r / 123

Или для доступа к свойствам

cat main.C/p/svn-eolstyle

echo "foobar" > main.C/p/my-property 

Кажется, было бы лучше следовать этой модели, файловая система уже идет по этому пути.

-Paul Querna

Но я тоже не проверял.


Два года назад я продолжил поиск, нашел проект FiST для создания стекируемых файловых систем и связался с проф. Эрез Садок из Университета Стоуни-Брук , который давным-давно был советником / наставником проекта versionfs . Цитата:

http://www.fsl.cs.sunysb.edu/docs/versionfs-fast04/

http://www.fsl.cs.sunysb.edu/docs/versionfs-msthesis/versionfs. pdf

позволяет пользователям легко и эффективно управлять своими версиями. Versionfs обеспечивает эту функциональность с накладными расходами не более 4% для типичных пользовательских рабочих нагрузок. Versionfs позволяет пользователям выбирать как версии, так и способы их хранения, с помощью политик хранения и политик хранения соответственно. Пользователи могут выбрать компромисс между пространством и производительностью, который лучше всего соответствует их индивидуальным потребностям: полные копии, сжатые копии или дельты блоков. Хотя пользователи могут управлять своими версиями, администратор может устанавливать минимальные и максимальные значения и предоставлять пользователям разумные значения по умолчанию.

Кроме того, с помощью libversionfs немодифицированные приложения могут проверять версии, управлять ими и восстанавливать их. Пользователи могут просто запускать знакомые инструменты для доступа к предыдущим версиям файлов, вместо того, чтобы требовать от пользователей изучения отдельных команд или просить системного администратора перемонтировать файловую систему. Без libversionfs предыдущие версии полностью скрыты от пользователей.

Наконец, Versionfs выходит за рамки простого копирования при записи, использовавшегося в прошлых системах: мы реализуем копирование при изменении. Хотя сначала мы ожидали, что сравнение старых и новых страниц будет слишком дорогостоящим, мы обнаружили, что увеличение системного времени более чем компенсируется сокращением времени ввода-вывода и процессорного времени, связанного с записью неизмененных блоков. Когда используются более дорогие политики хранения (например, сжатие), копирование при изменении становится еще более полезным.

Мне это показалось очень интересным, но общение с ребятами, работавшими над проектом, показало, что это неизвестное место. исходный код. Сам профессор заявил по почте:

Код Versionfs сейчас очень старый, и он работал только в ядре 2.4. Если вам по-прежнему нужен стекируемый f / s для управления версиями, то придется написать его с нуля - возможно, на основе wrapfs (см. Wrapfs.filesystems.org/).

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

6
ответ дан 2 December 2019 в 21:48

Вы можете проверить gitfs . Это файловая система FUSE, основанная на git, довольно стабильная и очень простая в использовании.

По сути, это наложение поверх git. Всякий раз, когда вы обновляете файл или каталог, он создает фиксацию с этим изменением (знает, что нужно обработать коммиты, поэтому вы не получите 100 коммитов при распаковке архива). Также знает, как синхронизировать ваш пульт и объединить конфликты, используя стратегию «всегда принимать мой».

Когда вы монтируете его, он открывает вам два каталога: текущий и история . ├── текущий │ ├── test1.md │ ├── test2.md │ ├── test3.md -> current / test2.md │ ├── test4.md │ └── test_directory └── история ├── 23.11.2014 │ ├── 20-00-21-d71d1579a7 │ │ └── testing.md │ └── 20-42-32-7d09611d83 │ ├── test2.md │ └── testing.md ├── 08.12.2014 │ ├── 16-38-30-6d6e71fe47 │ │ ├── test2.md │ │ └── test1.md

Дополнительную информацию можно найти на этой странице .

3
ответ дан 2 December 2019 в 21:48

Теги

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