W tym miesiącu btrfs osiągnął produkcję w Oracle EL 14 (wraz z działającym fsck i scrubbingiem z Linuksa 3.2). Myślałem o przeprojektowaniu mojego obecnego rozwiązania do tworzenia kopii zapasowych, aby go wykorzystać. Zauważ, że myślę o zrobieniu tego dla niewielkich ilości danych, mniejszych niż 10 TB, co jest dość statyczne (mniej niż 1% zmieniane codziennie). W skrócie rozwiązanie do tworzenia kopii zapasowych SMB / SOHO.
Co powinna zrobić kopia zapasowa:
- wykonaj migawkę LVM ext [234] / XFS / JFS na serwerze produkcyjnym
rsync
/ przenieś zmienione dane do btrfs na serwerze backupu- migawka systemu plików btrfs
- upuść stare migawki, gdy kończy się wolne miejsce
Plusy:
- Wszystkie pliki są łatwo dostępne, nie wymaga dekompresji ani montażu w pętli
- Wcześniejsze migawki są również łatwo dostępne ...
- ... więc mogę udostępnić je jako udziały Samba tylko do odczytu (z obsługą kopiowania w tle)
- Migawki zajmują minimalną ilość miejsca dzięki kopiowaniu przy zapisie (migawka bez zmian zajmuje dosłownie kilka KiB na dysku)
- Wysoka spójność kopii zapasowych: sumy kontrolne plików, czyszczenie wszystkich danych i wbudowana redundancja
Pytania:
- Czy istnieje jakieś rozwiązanie do tworzenia kopii zapasowych (w postaci Bacula, BackupPC itp.), Które jest lub może być łatwo wykonane, wiedząc o systemie plików kopiowania przy zapisie?
- Czy będę musiał użyć
rsync
rozwiązania domowego ? - Co robią ludzie z urządzeniami ZFS dedykowanymi do tworzenia kopii zapasowych, aby wykonać kopię zapasową swoich komputerów z systemem Linux?
cons
! Jednym z nich byłoby to, że migawki Btrfs są równoważne tylko przyrostowym kopiom zapasowym (brak fizycznej kopii na kopię pliku na dysku). Co może mieć znaczenie w przypadku problemów z powierzchnią dysku. Pamiętaj, że możesz wymusić jedną duplikację dzięki natywnej obsłudze RAID1 zawartej w Btrfs.pro
- więcej niż dwie kopie nie są tak naprawdę potrzebne, jeśli masz sumy kontrolne i aktywnie szorujesz FS, trzy prawdopodobnie będą miały obsługę RAID6. Jak powiedziałem, jest to konfiguracja dedykowanego systemu tworzenia kopii zapasowych, a nie „kopii zapasowych” kopii w FS na pojedynczym komputerze. To byłoby „RAID nie jest kopią zapasową”, a „migawki nie są kopią zapasową”.cp -a
irsync
są za to ...rsync -a --delete /home/user /mnt/butterfs/backups/ && snapper create
- oprócz tworzenia migawki po utworzeniu kopii zapasowej, co masz na myśli przez opcję COW?rsync
bez--inplace
dostaniesz wiele kopii tych samych danych w zdalnym systemie plików. (rsync normalnie kopiuje dane do tymczasowego ukrytego pliku, a następnie przenosi go nad starym pliku w systemie plików kopiowanie przy zapisie masz dwie kopie danych niezmienionych ten sposób)Odpowiedzi:
W zeszłym tygodniu przeprowadziłem obszerne poszukiwania czegoś podobnego. Nie znalazłem rozwiązania dla wykonania wszystkich 4 kroków. Istnieje wiele blogów od użytkowników domowych, którzy wypróbowują kopie zapasowe typu „ rsync to btrfs ”, a wszystkie główne strony wiki Btrfs opisują sposób wykonywania migawek Btrfs.
Jest też sporo osób, które próbują różnych sposobów obracania migawek Btrfs . Jednak jesteś pierwszą osobą, którą widziałem, która chce obracać migawki na podstawie miejsca na dysku. Sam gram z btrfs-snap, który tworzy zestaw migawek co godzinę, co tydzień i co miesiąc, i jest ładny i prosty.
Projekt Dirvish wydaje się spełniać wiele twoich wymagań. Niektórzy programiści próbują zintegrować Dirvish z Btrfs . Jednak projekt Dirvish wydaje się nieco wstrzymane .
W tym momencie wyprzedzasz zakręt.
źródło
Według Aviego Millera (jego przemówienie podczas LinuxConf.AU) trwają prace nad wysyłaniem / odbieraniem btrfs. Będzie szybszy niż rsync, ponieważ nie musi przeglądać katalogów, aby znaleźć zmiany w plikach. Nie wiem jednak, czy jest jeszcze przewidywana data wydania.
Istnieje jednak narzędzie wbudowane w btrfs-progs, które wyświetla listę wszystkich plików, które zmieniły się między migawkami / etc .. subvolume btrfs find-new
źródło
Pracuję na systemie kopii zapasowych systemu operacyjnego podobnym do BackupPC. Myślałem o tym. To, co powstrzymało mnie przed faktycznym wdrożeniem, to to, że nie można na stałe połączyć między podwoluminami. Można również tworzyć migawki podwoluminów -> Jedna objętość cząstkowa na klienta kopii zapasowej. Dlatego funkcja deduplikacji na poziomie plików nie może współistnieć z tym podejściem. A deduplikacja na poziomie plików zwykle oszczędza dużo miejsca. Czy chcesz wykonać kopię zapasową tylko jednego serwera?
Jeśli btrfs miał deduplikację na poziomie bloku, problemu tego można prawdopodobnie uniknąć, ale zwykle jest to również niewyobrażalnie powolne ...
Takie podejście wymagałoby oczywiście ścisłej integracji z jednym systemem plików (btrfs), więc powinna to być funkcja opcjonalna.
Pytam, bo myślę o dodaniu takiej cechy krowy, ale nie wiem, czy powinienem z powodu wymienionych wyżej wad.
Edycja: UrBackup obsługuje kopie zapasowe, jak opisano w pytaniu teraz z jądrem Linux> = 3.6 (z obsługą reflink między woluminami). Zobacz, jak to skonfigurować.
źródło
cp --reflink
) jest już zaimplementowana lub zostanie wdrożona w najbliższej przyszłości. Online duplikacja w FS jest albo powolna (mniej), albo wymaga ogromnej ilości pamięci RAM (ZFS), więc w zależności od tego byłaby naprawdę zła funkcja w oprogramowaniu do tworzenia kopii zapasowych. Tak czy inaczej, oprogramowanie do tworzenia kopii zapasowych zorientowane na btrfs będzie miało dużą publiczność, w końcu ma to być następny ext3.Strona wiki btrfs „ Use Cases ” wymienia niektóre narzędzia: SnapBtr , Snapper, btrfs-time-machine, UrBackup.
Istnieje propozycja wbudowanego narzędzia o nazwie autosnap :
Jednak od października 2013 r. Wiki stwierdza, że „funkcja autosnap nie jest obecnie uwzględniona w poprzedniej wersji btrfs”.
źródło
Miałem podobne frustracje, więc ostatecznie stworzyłem kilka skryptów, które nazywam snazzer . Razem oferują migawkę, przycinanie, pomiar i transport przez ssh (ale na dzień dzisiejszy mogą również wysyłać / odbierać do / z lokalnych systemów plików). Pomiary są tylko raportami podpisów sha512sum i PGP ścieżek migawek. Nie jest jeszcze całkiem gotowy do wydania, ale chciałbym usłyszeć opinie, jeśli ktoś ma czas na jego przejrzenie na tym wczesnym etapie.
W tym momencie tylko CLI, ale poświęciłem trochę czasu, aby ułatwić korzystanie z niego w systemach z wieloma podobjętościami btrfs - zazwyczaj mam osobne podobjętości dla
/var/cache
,/home
itp, które mogą być potrzebne, aby wykluczyć z snapshotting lub mają więcej / mniej agresywne harmonogramy przycinania.Obawiam się, że algorytm przycinania podejmuje wyłącznie decyzje dotyczące obecności zestawu migawek i ich dat, nic nie stoi na przeszkodzie, aby utrzymać się do czasu spełnienia ograniczenia użycia dysku - które usuniesz jako pierwsze? Najpierw zmniejszyć liczbę godzin lub dziennych? Być może upuść najstarszy, np. roczniki? Różne wdrożenia będą miały różne priorytety; i nie wiem, czy jest to jedyna warstwa zapasowa (w takim przypadku nie należy upuszczać najstarszych kopii zapasowych w przypadku zobowiązań prawnych / ubezpieczeniowych), czy tylko pośrednia (w którym to przypadku prawdopodobnie masz te archiwa w bezpiecznym miejscu gdzie indziej).
W pewnym momencie dodam obsługę ZFS i / lub interoperacyjność; jest napisany głównie w powłoce posix-ish i perl ze względu na silne pragnienie „zerowych” zależności w tej chwili, mam nadzieję, że w pewnym momencie utrzymam równolegle czystszą alternatywną implementację Pythona.
źródło