Як дублювати файл, не копіюючи його дані в btrfs?


14

Я не маю досвіду роботи з btrfs, але він рекламується, щоб мати змогу повторювати файли.

У своєму додатку мені потрібно дублювати цілі дерева каталогів.

З того, що я дізнався, btrfs знімає копії лише у деяких публікаціях сканування, не відразу. Навіть просто використання cp, здається, не викликає дедуплікації (принаймні, dfпоказує збільшене використання диска у розмірі скопійованих файлів).

Чи можу я взагалі уникнути переміщення даних і скажу btrfsбезпосередньо дублювати файл в іншому місці, фактично просто клонуючи його метадані?

По суті, схожий на жорстке посилання, але з незалежними метаданими (дозволи, мод. Разів, ...).


7
cp --reflink=always.
mikeserv

3
Зауважте, що це не що інше, як жорстке посилання. Коли ви cp --reflink=always, результатом з точки зору користувача, будуть два абсолютно незалежні файли у будь-якому відношенні. Факт, що базована файлова система абстрагує це за допомогою копіювання під час запису, - лише деталь реалізації. Ви не отримуєте "жорстке посилання, але з незалежними метаданими". Наскільки мені відомо, btrfs ще не робить автоматичного дедупликації. Я думаю, що це план на майбутнє, але я не позитивний у цьому.
ormaaj

@ormaaj - жорстке посилання не має незалежних метаданих . і Удо запитав детальну інформацію про реалізацію . коли ви робите посилання на файл, ви по суті клонуєте його метадані . це лише тоді, коли посилання незалежно змінюються, що файли розходяться - і ось про що відбувається дедуплікація!
mikeserv

1
@mikeserv Е, я впевнений, що дедуплікація має інший сенс. Дедуплікація - це взяття вже наявних зайвих копій даних та їх повторне об'єднання. COW - це засіб мінімізації дублювання, це не дедуплікація.
ormaaj

@ormaaj - я думаю, що дивна річ сказати: дедуплікація - це не мінімізація дублювання.
mikeserv

Відповіді:


12

Є два варіанти:

  1. cp --reflink=always
  2. cp --reflink=auto

Другий майже завжди кращий перед першим. Використання autoозначає, що це дозволить зробити справжню копію, якщо файлова система не підтримує повторне посилання (наприклад, ext4 або копіювання на загальний доступ до NFS). З першим варіантом я майже впевнений, що він вийде з ладу і перестане копіювати.

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


ти Ерік Естрада?
mikeserv

2
@mikeserv Лол, вип. Мене звати Етан. Це було б смішно; Ерік Естрада: актор вдень, сисадмін вночі. Вірите чи ні, це вперше за останні десятиліття переходу через Інтернет-ручку, eestradaщо хтось коли-небудь мене про це запитував.
eestrada

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