Nie mam doświadczenia z btrfs, ale reklamowane jest, aby móc duplikować pliki.
W mojej aplikacji musiałbym powielić całe drzewa katalogów.
Z tego, czego się nauczyłem, btrfs usuwa duplikaty tylko w niektórych skanach postowych, a nie natychmiast. Nawet samo użycie cp
nie wydaje się wyzwalać żadnego usuwania duplikatów (przynajmniej df
pokazuje zwiększone użycie dysku w rozmiarze skopiowanych plików).
Czy mogę uniknąć przenoszenia danych w ogóle i nakazać btrfs
bezpośrednie skopiowanie pliku w innym miejscu, zasadniczo klonując jego metadane?
Zasadniczo, podobnie jak hardlink, ale z niezależnymi metadanymi (uprawnienia, czasy modyfikacji, ...).
cp
file-copy
btrfs
deduplication
Udo G.
źródło
źródło
cp --reflink=always
.cp --reflink=always
, wynik z perspektywy użytkownika będzie dwoma całkowicie niezależnymi plikami pod każdym względem. Fakt, że bazowy system plików wyodrębnia to poprzez kopiowanie przy zapisie, jest jedynie szczegółem implementacji. Nie dostajesz „twardego linku, ale z niezależnymi metadanymi”. Według mojej wiedzy btrfs nie wykonuje jeszcze żadnej automatycznej deduplikacji. Myślę, że to plan na przyszłość, ale nie jestem tego pozytywny.Odpowiedzi:
Istnieją dwie opcje:
cp --reflink=always
cp --reflink=auto
Drugi jest prawie zawsze lepszy niż pierwszy. Użycie
auto
oznacza powrót do robienia prawdziwej kopii, jeśli system plików nie obsługuje reflinkowania (na przykład ext4 lub kopiowania do udziału NFS). Jeśli chodzi o pierwszą opcję, jestem prawie pewien, że całkowicie zawiedzie i przestanie kopiować.Jeśli używasz tego jako części skryptu, który musi być solidny w obliczu nieidealnych warunków,
auto
będzie ci lepiej.źródło
eestrada
który ktoś mnie kiedykolwiek pytał.