Чи існує спосіб створити копію каталогу, що записується під час запису?


14

Я думаю про ситуацію, коли я мав би щось, що створює копію каталогу, перетворює кілька файлів, а потім виконує деяку обробку результату. Це можна робити досить часто, можливо, кілька десятків разів на день. (Точний випадок використання - це тестування подань патчу; обробляйте код, виправляйте його, будуйте / випробовуйте / доповідайте тощо).

Що я шукаю, можна зробити, створивши нову структуру каталогів і заповнивши її жорсткими посиланнями з оригонального. Однак це працює лише в тому випадку, якщо всі інструменти, якими ви користуєтесь, видаляєте та відтворюєте файли, а не редагуєте їх на місці.

Чи є спосіб, щоб файлова система копіювала-записувала для файлу?


Примітка. Я знаю, що багато FS використовують COW на рівні блоку (усі оновлення здійснюються за допомогою запису в нові блоки), але це не те, що я хочу.


Це не підтримується, але, можливо, boklm.eu/copyfs
Zoredache

Отже, ви хочете робити копіювати при записі через файлову систему, але ви не хочете, щоб файлова система використовувала копіювати при записі? Я збентежений.
Каміль Кісієль

1
@Kamil Kisiel: Я хочу, щоб КР на рівні файлів не була КР на рівні блоків. Файл COW на рівні файлів призводить cpі lnробить майже те саме. Блок рівня COW - хитрість мінімізувати інтервал, коли метадані FS невірні: en.wikipedia.org/wiki/ZFS#Copy-on-write_transactional_model
BCS

Яка система передбачається використовувати цю систему?
Джон Гарденєр

Досить спекулятивно, що, якщо ви не знаєте способу зробити це для певного налаштування (у такому випадку просто опублікуйте його), я б не хотів, щоб люди спалювали час, з'ясовуючи, як це зробити (якщо вони не роблять це заради забави :)
BCS

Відповіді:


7

Якщо у вас є вибір платформи для вашого файлового сервера, я б пішов з недавньою збіркою OpenSolaris і використовував функцію дедуплікації ZFS. Таким чином копії файлів не займатимуть додаткового місця, і навіть загальні сегменти між файлами не будуть реплікуватися.

Ви можете прочитати все про дедуплікацію ZFS в цій публікації в блозі Джеффа Бонвіка .


1
ZFS дивовижний; це змінить те, як ви думаєте про зберігання
tegbains

Акуратно, якщо тільки не є сторона, щоб увімкнути його на весь привід.
BCS

Я додав посилання на допис у блозі, який містить більше технічних деталей. Ви можете бачити, чи це вам там потрібно.
Каміль Кісієль

Нова адреса для публікації Джеффа Бонвіка
Матьє

0

Більшість рішень для віртуалізації Linux пропонують COW на рівні файлів серед віртуалізованих ОС (скопійованих з WP):

  • ТАК:
    • Docker, Linux-VServer, lmctfy, LXC, сингулярність, Virtuozzo, Sandboxie, systemd-nspawn, Solaris Containers (ZFS), тюрма FreeBSD (ZFS), OpenVZ
  • НІ:
    • chroot, sysjail, WPARs, iCore Virtual Accounts, Turbo

Хоча це посилання може відповісти на питання, краще включити сюди суттєві частини відповіді та надати посилання для довідки. Відповіді лише на посилання можуть стати недійсними, якщо пов’язана сторінка зміниться
Ромео Нінов

-2

Може бути SVN чи інший інструмент для версії (git, cvs)?


Це ще гірше, оскільки він створює дві копії кожного файлу і висмоктує їх через сокет.
BCS
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.