giải pháp sao lưu hỗ trợ btrfs


14

Với việc btrfs đạt sản lượng trong Oracle EL 14 tháng này (cùng với hoạt động fsck và hoạt động từ Linux 3.2), tôi đã nghĩ đến việc thiết kế lại giải pháp sao lưu hiện tại của mình để sử dụng nó. Lưu ý rằng tôi đang suy nghĩ về việc thực hiện nó cho một lượng nhỏ dữ liệu, dưới 10TB, khá tĩnh (ít hơn 1% thay đổi hàng ngày). Trong ngắn hạn, một giải pháp sao lưu SMB / SOHO.

Sao lưu nên làm gì:

  1. thực hiện một ảnh chụp nhanh LVM của máy lẻ [234] / XFS / JFS trên máy chủ sản xuất
  2. rsync/ chuyển dữ liệu đã thay đổi sang btrfs trên máy chủ dự phòng
  3. chụp nhanh hệ thống tập tin btrfs
  4. thả ảnh chụp nhanh cũ khi không gian trống sắp hết

Ưu điểm:

  • Tất cả các tệp dễ dàng có sẵn, không cần giải nén hoặc gắn vòng lặp
  • Ảnh chụp nhanh trong quá khứ cũng dễ dàng có sẵn ...
  • ... vì vậy tôi có thể chia sẻ chúng dưới dạng cổ phiếu Samba chỉ đọc (có hỗ trợ sao chép bóng)
  • Ảnh chụp nhanh chiếm dung lượng tối thiểu nhờ sao chép khi ghi (ảnh chụp nhanh mà không thay đổi sẽ mất vài KiB trên đĩa)
  • Tính nhất quán sao lưu cao: tổng kiểm tra trên các tệp, kiểm tra tất cả dữ liệu và dự phòng tích hợp

Câu hỏi:

  • Có một số giải pháp sao lưu (dưới dạng Bacula, BackupPC, v.v.), hoặc có thể dễ dàng thực hiện, nhận biết về hệ thống tệp sao chép trên ghi?
  • Hoặc tôi sẽ cần sử dụng rsyncgiải pháp tại nhà ?
  • Những người có hộp ZFS dành riêng để sao lưu làm gì để sao lưu máy Linux của họ?

Không thể nhìn thấy cons! Một trong số đó là các ảnh chụp nhanh Btrfs chỉ tương đương với các bản sao lưu gia tăng (không có bản sao vật lý trên mỗi bản sao lưu tệp của bạn trên đĩa). Mà có thể có tầm quan trọng khi phải đối mặt với các vấn đề bề mặt đĩa. Lưu ý rằng bạn có thể buộc một bản sao với hỗ trợ RAID1 gốc có trong Btrfs.
vaab

1
@vaab: đó là một pro- nhiều hơn hai bản sao không thực sự cần thiết nếu bạn có tổng kiểm tra và chủ động chà rửa FS, ba bản có thể sẽ đi kèm với hỗ trợ RAID6. Như tôi đã nói, đó là một thiết lập cho hệ thống sao lưu chuyên dụng, không phải là bản sao "dự phòng" bên trong FS trên một máy tính. Đó sẽ là "RAID không được sao lưu" và "ảnh chụp nhanh không được sao lưu". cp -arsynclà vì điều đó ...
Hubert Kario

Tôi cũng đang xem xét sao lưu lên btrfs, nhưng tôi chỉ nghĩ đến rsync -a --delete /home/user /mnt/butterfs/backups/ && snapper create- ngoài việc tạo ảnh chụp nhanh sau khi sao lưu, bạn có ý nghĩa gì khi nhận biết COW?
unhammer

1
@unhammer: sử dụng rsyncmà không cần --inplacebạn sẽ nhận được nhiều bản sao của cùng một dữ liệu trong hệ thống tệp từ xa. (rsync thường sao chép dữ liệu vào một tệp bị ẩn tạm thời và sau đó di chuyển nó qua tệp cũ, với hệ thống tệp Copy-On-Write, bạn nhận được hai bản sao trên dữ liệu không thay đổi theo cách này)
Hubert Kario

Câu trả lời:


5

Tôi đã thực hiện một số tìm kiếm mở rộng trong tuần trước cho một cái gì đó tương tự. Tôi đã tìm thấy không có giải pháp để làm tất cả 4 bước. Có rất nhiều blog từ những người dùng gia đình đã thử các bản sao lưu ' rsync đến btrfs ' và tất cả các wiki Btrfs chính bao gồm cách thực hiện các ảnh chụp nhanh Btrfs.

Cũng có khá nhiều người đang thử các cách chụp ảnh chụp nhanh Btrfs khác nhau . Tuy nhiên, bạn là người đầu tiên tôi thấy muốn xoay ảnh chụp nhanh dựa trên dung lượng đĩa. Tôi đang chơi với btrfs-snap bản thân mình để tạo ra một bộ ảnh chụp nhanh hàng giờ, hàng tuần và hàng tháng, và nó thật hay và đơn giản.

Các Dirvish dự án dường như để đáp ứng nhiều yêu cầu của bạn. Một số nhà phát triển đang cố gắng tích hợp Dirvish với Btrfs . Tuy nhiên, dự án Dirvish có vẻ hơi bị đình trệ .

Tại thời điểm này, bạn đang ở phía trước của đường cong.


Chà, tôi chỉ muốn một giải pháp sao lưu không đau như BackupPC: khi dung lượng ổ đĩa thấp, nó chỉ xóa dữ liệu cũ (ảnh chụp nhanh cũ). Mặc dù tôi sợ rằng tôi đi trước đường cong, nhưng không phải ZFS đã ở với chúng tôi trong vài năm qua ...
Hubert Kario

3

Theo Avi Miller (bài nói chuyện của anh ấy trong LinuxConf.AU), một btrfs gửi / nhận đang được thực hiện. Nó sẽ nhanh hơn rsync vì không cần phải duyệt qua các thư mục để tìm các thay đổi trong tệp .. Tôi không biết liệu có ngày phát hành dự kiến ​​chưa.

Tuy nhiên, có một tiện ích được tích hợp trong btrfs-pross liệt kê mọi tệp đã thay đổi giữa các snapshot / etc .. btrfs subvolume find-new


2
Tôi muốn sao lưu vào btrfs, không phải từ ...
Hubert Kario

2

Tôi đang làm việc trên một hệ thống sao lưu hệ điều hành tương tự như BackupPC. Tôi đã nghĩ về điều này. Điều đã ngăn tôi thực sự triển khai đó là bạn không thể liên kết cứng giữa các subvolume. Bạn cũng chỉ có thể tạo ảnh chụp nhanh của subvolume -> Một subvolume cho mỗi máy khách dự phòng. Do đó, tính năng sao chép cấp độ tệp không thể cùng tồn tại với phương pháp này. Và sự trùng lặp cấp độ tập tin đó thường tiết kiệm rất nhiều không gian. Bạn có muốn sao lưu chỉ một máy chủ không?

Nếu btrfs có sự trùng lặp ở cấp độ khối thì vấn đề này có thể tránh được, nhưng điều đó thường chậm một cách khó tin ...

Sau đó, một cách tiếp cận như vậy tất nhiên sẽ đòi hỏi một sự tích hợp chặt chẽ với một hệ thống tập tin (btrfs), vì vậy đây sẽ là một tính năng tùy chọn.

Tôi đang hỏi bởi vì tôi đang suy nghĩ về việc thêm một tính năng con bò như vậy, nhưng không biết liệu tôi có nên vì những hạn chế được liệt kê ở trên không.

Chỉnh sửa: UrBackup hỗ trợ sao lưu như đã giải thích trong câu hỏi với các nhân Linux> = 3.6 (có hỗ trợ phản xạ âm lượng chéo). Xem cách thiết lập nó.


1
bản sao phản xạ chéo subvolume (một bán cứng được thực hiện bởi cp --reflink) hoặc đã được triển khai hoặc sẽ được thực hiện trong tương lai gần. Sao chép trực tuyến trong FS là chậm (lessfs) hoặc cần dung lượng RAM lớn (ZFS), do đó tùy thuộc vào nó sẽ thực sự là một tính năng xấu trong phần mềm sao lưu. Dù bằng cách nào, phần mềm sao lưu định hướng btrfs sẽ có một lượng lớn khán giả, sau tất cả, nó được coi là ext3 tiếp theo.
Hubert Kario

Một điều nữa: bạn có thể giải quyết vấn đề này bằng cách giữ tất cả các máy chủ trong một subvolume - bạn có thể phản xạ sao chép giữa chúng (để khấu trừ) trong khi duy trì khả năng chụp nhanh. Bạn chỉ cần chụp nhanh sau khi bạn khấu trừ, bạn vẫn có thể chụp nhanh sau khi chỉ sao lưu một máy chủ! Các bản sao lưu sẽ không tốn nhiều dung lượng hơn nếu bạn thực hiện sao lưu một lần. Ngoài ra, bạn có thể sao lưu tất cả các máy chủ, khấu trừ và chỉ sau đó chụp nhanh. Bằng cách này bạn có thể sao lưu vài máy chủ cùng một lúc.
Hubert Kario

Bạn đúng. Không nghĩ về điều đó. Để thuận tiện, sau đó bạn có thể liên kết với các ảnh chụp nhanh bên phải trong một tập khác. Tôi cũng đã thấy một bản vá cho liên kết cứng khối lượng lớn (hoặc --reflink) nhưng nó không giống như nó đã làm cho nó / hoặc sẽ làm cho nó thành đường chính. Tôi sẽ thực sự xem xét điều đó! Bây giờ bạn có thể làm bản sao lưu của bạn trên ssh. Dự án của tôi là chuyên về mạng cục bộ ... (khám phá tự động, v.v.)
UrOni

Vâng, bản vá vẫn còn sống và đang hoạt động, tiếc là không có trong dòng chính, tôi không biết tại sao. Tôi đang cố gắng để lỗi Chris Mason về nó. Đối với dự án của bạn, vui lòng gửi cho tôi một dòng, tôi sẵn sàng thử nghiệm bản beta (cho phép thời gian). Nó chắc chắn âm thanh thú vị.
Hubert Kario

Cuối cùng, bản vá đó đã hạ cánh trong nhân Linux chính tuyến 3.6. Với hệ thống phản xạ chéo thiết bị, nó thực sự không hoạt động nhiều. Tôi đã viết ở đây về nó: urbackup.org/blog/?p=83 Mã nằm trong nhánh "tiếp theo" trong kho git. Tôi hiện đang thử nghiệm nó.
UrOni

1

Trang wiki btrfs " Use Case " liệt kê một số công cụ: SnapBtr , Snapper, btrfs-time-machine, UrBackup.

Có một đề xuất cho một công cụ tích hợp có tên là autosnap :

Sử dụng tính năng tự động lưu, bạn có thể định cấu hình btrfs để chụp ảnh nhanh thường xuyên hoặc dựa trên sự kiện và tự động quản lý các ảnh chụp nhanh.

Autosnap không chỉ là chụp ảnh nhanh, mà còn quản lý các ảnh chụp nhanh đã tạo, vì bây giờ bạn có thể định cấu hình tự động lưu để xóa các ảnh chụp nhanh dựa trên không gian sử dụng hệ thống tệp.

Tuy nhiên, kể từ tháng 10 năm 2013, wiki tuyên bố rằng "Chức năng tự động lưu hiện không được bao gồm trong phiên bản ngược dòng của btrfs."


1

Tôi đã có những thất vọng tương tự, vì vậy cuối cùng tôi đã tạo ra một vài kịch bản mà tôi gọi là snazzer . Họ cùng nhau cung cấp snapshaping, cắt tỉa, đo lường và vận chuyển qua ssh (nhưng cho đến ngày hôm nay cũng có thể gửi / nhận đến / từ các hệ thống tập tin cục bộ). Các phép đo chỉ là báo cáo của chữ ký sha512sum và PGP của đường dẫn ảnh chụp nhanh. Nó chưa hoàn toàn sẵn sàng để phát hành nhưng tôi rất thích nghe phản hồi nếu có ai có thời gian để xem xét nó ở giai đoạn đầu này.

CLI chỉ vào thời điểm này, nhưng tôi đã thực hiện một số thời gian để làm cho nó dễ dàng để sử dụng trên các hệ thống với nhiều btrfs subvolumes - thường tôi có subvolumes riêng cho /var/cache, /homevv mà có thể cần phải được loại trừ khỏi snapshotting hoặc có nhiều / ít lịch trình cắt tỉa tích cực.

Tôi sợ thuật toán cắt tỉa hoàn toàn đưa ra quyết định về sự hiện diện của bộ ảnh chụp nhanh và ngày của chúng, không có gì để tiếp tục cắt tỉa cho đến khi gặp phải hạn chế sử dụng đĩa - bạn sẽ xóa cái nào trước? Giảm số giờ đầu tiên, hay ngày? Có lẽ thả người già nhất, vd. tuổi thọ? Các triển khai khác nhau sẽ có các ưu tiên khác nhau; và tôi không thể biết liệu đây có phải là tầng dự phòng duy nhất không (trong trường hợp đó bạn không nên bỏ các bản sao lưu cũ nhất trong trường hợp có nghĩa vụ pháp lý / bảo hiểm), hoặc chỉ là một lớp trung gian (trong trường hợp đó bạn có thể lưu trữ những năm đó ở đâu đó an toàn nơi khác).

Tôi sẽ thêm hỗ trợ ZFS và / hoặc khả năng tương tác tại một số điểm; nó được viết chủ yếu bằng vỏ posix-ish và perl do mong muốn mạnh mẽ về sự phụ thuộc "không" vào lúc này, tôi hy vọng sẽ có một triển khai thay thế trăn sạch hơn được duy trì song song tại một số điểm.


trừ khi FS của bạn có số lượng rất lớn và thường thay đổi, có rất ít sự khác biệt giữa việc giữ ảnh chụp nhanh từ một tháng trước và chỉ 1 mỗi ngày so với tuần trước so với một lần mỗi ngày trong cả tháng - btrfs sẽ cần lưu trữ sự khác biệt giữa Dù sao thì tình trạng hiện tại và tình trạng từ tháng trước dù sao - tôi chỉ giữ những tờ nhật báo, nhưng vì nó bị nén và khác đi nên tôi có thể giữ chúng trong nửa năm một cách dễ dàng - sau đó thả những bảo đảm cũ nhất để giải phóng ít nhất một khoảng trống
Hubert Kario

Chà, tôi có một số lượng máy ảo không đáng kể để theo dõi - một số máy có tệp tạm thời lớn (tức là ảnh chụp nhanh với mức độ duy nhất) mà như bạn đã đề xuất có thể hưởng lợi từ việc cắt xén các ảnh chụp nhanh trung gian. Vì vậy, trong khi sự thật là việc cắt tỉa các sản phẩm trung gian không giải phóng nhiều đĩa như cũ nhất, tôi có thể nói gì ... chỉ giữ số lượng ảnh chụp tối thiểu xung quanh và làm như vậy với hệ thống tệp COW như btrfs có vẻ hiệu quả như nó được, nhưng tôi nhận ra có nhiều cách để chọn một giải pháp thích hợp hơn thế :)
csirac2

@ csirac2 bạn có phải là snazzer không? Tôi đang tìm loại giải pháp này. Tôi quan tâm đến snazzer nếu nó đang được duy trì tích cực. GitHub dường như không hiển thị hoạt động gần đây ...
MountainX-for-Monica

@MaxX Khi tôi không nhận được nhiều phản hồi ban đầu về snazzer, tôi đã mất đi sự nhiệt tình .. Khi tôi bắt đầu viết nó, thực sự chỉ có snapper của OpenSUSE và một số tập lệnh shell / python nổi xung quanh để tự động hóa btrfs. Vào thời điểm tôi chia sẻ nó với thế giới, rất nhiều lựa chọn khác đã xuất hiện và tôi nói rằng btrbk dường như có rất nhiều động lực (thiếu kiểm tra tự động [có thể đã được sửa bây giờ?] Mặc dù vậy). Nếu tôi phải làm lại tất cả, có lẽ tôi đã hợp tác với tác giả sanoid để thêm khả năng tương thích btrfs ở đó. Quan tâm để nghe suy nghĩ của bạn.
csirac2
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.