Backup một máy chủ thì đôi khi chỉ cần một vài dòng cron đã đủ. Backup vài chục, vài trăm máy mà vẫn biết chắc bản nào còn, bản nào hỏng, khôi phục về mốc nào, đó là bài toán khác hẳn.
Bareos là một trong các giải pháp trong hệ thống sao lưu của Cloudzone. Chuỗi bài Bareos từ cài đặt tới vận hành chia sẻ những gì đội kỹ thuật học được khi vận hành nó, từ kiến trúc, cấu hình tới những cái bẫy mà tài liệu chính thức của Bareos không nói rõ.
Khi script backup không còn đủ
Hầu hết hệ thống bắt đầu với một script: tar hoặc rsync chạy lúc nửa đêm, nén lại, đẩy sang máy khác. Cách đó ổn với hệ thống nhỏ, từ vài tới vài chục máy chủ. Khi số máy lên năm, bảy chục rồi hàng trăm, sẽ có người hỏi những câu mà script không trả lời được:
- Đêm qua máy nào backup lỗi? Máy nào không hề chạy mà không ai biết?
- File
config.phpcủa ngày 12 nằm trong bản nào, trên đĩa nào? - Giữ bản đầy đủ 30 ngày, bản thay đổi 14 ngày thì kịch bản dọn bản cũ, dọn lúc nào?
- Nhiều máy chủ cùng backup lúc 1 giờ sáng thì đĩa và mạng có chịu nổi không?
Một hệ thống sao lưu tập trung trả lời các câu đó bằng ba thứ: một nơi điều phối lịch và trạng thái mọi job, một kho cùng sổ ghi chép biết file nào nằm ở bản nào, và chính sách lưu giữ áp dụng tự động. Bareos có cả ba.
Bareos là gì
Bareos (Backup Archiving REcovery Open Sourced) là phần mềm sao lưu và khôi phục mã nguồn mở, tách nhánh từ Bacula năm 2010. Dự án phát hành theo giấy phép AGPLv3; công ty Bareos GmbH & Co. KG (Đức) dẫn dắt phát triển và bán gói hỗ trợ thương mại, còn phần mềm thì không thu phí bản quyền, không tính tiền theo số máy hay dung lượng. Gói cài sẵn ở kho cộng đồng download.bareos.org là bản dựng không kèm hỗ trợ (ghi rõ UNSUPPORTED); bản vá liên tục và hỗ trợ kỹ thuật nằm trong gói thuê bao.
Vì chung gốc với Bacula, ai từng dùng Bacula sẽ thấy quen: cùng mô hình Director, Storage, Client, cùng cú pháp cấu hình dạng khối. Sau hơn một thập kỷ tách nhánh, Bareos đã đi theo hướng riêng:
- WebUI đi kèm để theo dõi job, xem log, chạy job và khôi phục file qua trình duyệt.
- Plugin viết bằng Python để mở rộng nguồn backup: cơ sở dữ liệu, LDAP, kho đối tượng S3…
- Mã hoá kênh truyền TLS bật sẵn giữa các thành phần.
- Always Incremental và Virtual Full: ghép bản đầy đủ mới từ các bản cũ ngay trên máy backup, không phải đọc lại toàn bộ máy nguồn.
- Ghi được ra nhiều loại kho: đĩa, băng từ, kho đối tượng S3.
Bốn thành phần của Bareos
Bareos không phải một chương trình mà là bốn dịch vụ nói chuyện với nhau qua môi trường mạng. Hiểu vai trò từng thành phần là hiểu phần lớn cách Bareos vận hành.

| Thành phần | Chạy ở đâu | Vai trò |
|---|---|---|
Director (bareos-dir) | Máy chủ backup | Bộ não: đọc cấu hình, giữ lịch, quyết định khi nào backup máy nào, ra lệnh cho hai daemon còn lại. Bản thân nó không chạm vào dữ liệu |
File Daemon (bareos-fd) | Từng máy cần backup | Đọc file, nén, mã hoá nếu bật, gửi đi. Lúc restore thì nhận dữ liệu về và ghi lại |
Storage Daemon (bareos-sd) | Máy có kho lưu trữ | Nhận dữ liệu từ File Daemon, ghi vào các volume trên đĩa, băng từ hoặc S3 |
| Catalog (PostgreSQL) | Thường cùng máy Director | Sổ ghi chép: job nào chạy lúc nào, gồm những file gì, nằm trên volume nào |
Người quản trị nói chuyện với Director qua bconsole (dòng lệnh) hoặc WebUI (trình duyệt). Ba điểm đáng chú ý:
- Dữ liệu không đi qua Director. File Daemon gửi thẳng sang Storage Daemon, nên Director có thể chạy trên máy nhỏ, còn Storage Daemon cần đĩa và mạng tốt.
- Catalog quan trọng ngang dữ liệu. Mất catalog thì vẫn còn dữ liệu trên đĩa, nhưng không còn biết cái gì nằm ở đâu. Bài 8 của chuỗi nói riêng về việc bảo vệ catalog.
- Ba cổng cần mở: 9101 (Director), 9102 (File Daemon), 9103 (Storage Daemon). Không cổng nào nên mở ra Internet.
Một job backup chạy thế nào
Theo chân một job backup máy chủ web lúc 21:00 sẽ thấy rõ bốn thành phần phối hợp ra sao:
- 21:00: Director thức dậy. Resource
Schedulenói tối nay có jobbackup-web01, level Incremental. - Director tra catalog xem lần backup thành công gần nhất là khi nào, làm mốc để Incremental biết lấy file nào. Nếu chưa từng có bản Full, nó tự nâng job lên Full.
- Director gọi Storage Daemon, bảo chuẩn bị một volume trong pool đã cấu hình để ghi.
- Director gọi File Daemon trên
web01, gửi danh sách thư mục cần lấy (resourceFileSet) và địa chỉ Storage Daemon. - File Daemon đọc file đã thay đổi từ mốc trước, nén rồi gửi thẳng sang Storage Daemon.
- Storage Daemon ghi xuống volume; tên file và vị trí của chúng được ghi vào catalog.
- Job kết thúc, Director ghi trạng thái (thành công, cảnh báo hay lỗi), dung lượng, thời gian vào catalog và gửi báo cáo qua resource
Messages(ví dụ qua email).
Khi restore, luồng đảo ngược: người quản trị chọn file và thời điểm, Director tra catalog xem cần những volume nào, Storage Daemon đọc ra và File Daemon ghi lại lên máy đích. Nhờ catalog, có thể tìm một file của ba tuần trước mà không phải mở từng bản backup ra xem.
Một vài từ sẽ gặp lại suốt chuỗi bài:
| Khái niệm | Nghĩa |
|---|---|
| Job | Một việc backup (hoặc restore) cụ thể: lấy cái gì, từ đâu, ghi vào đâu |
| FileSet | Danh sách thư mục/file cần lấy và loại trừ, kèm tuỳ chọn nén, mã hoá |
| Schedule | Lịch chạy: ngày nào, giờ nào, level nào |
| Level | Full (đầy đủ), Incremental (thay đổi từ lần gần nhất), Differential (thay đổi từ bản Full gần nhất) |
| Pool | Nhóm volume dùng chung một chính sách lưu giữ |
| Volume | Đơn vị lưu trữ vật lý: một file trên đĩa hoặc một cuộn băng |
| Retention | Thời gian giữ trước khi Bareos được phép dùng lại chỗ đó |
Bareos đứng ở đâu so với các lựa chọn khác
Không có công cụ backup tốt nhất, chỉ có công cụ hợp với quy mô và đội ngũ. Bảng dưới so theo những điểm quyết định lựa chọn:
Script tar/rsync | restic, BorgBackup | Bareos | Phần mềm thương mại | |
|---|---|---|---|---|
| Mô hình | Tự viết trên từng máy | Công cụ chạy trên từng máy | Máy chủ trung tâm điều phối mọi máy | Máy chủ trung tâm |
| Lịch + trạng thái tập trung | Không | Không (mỗi máy tự lo) | Có | Có |
| Tra cứu “file X nằm ở bản nào” | Không | Theo từng kho | Catalog tập trung | Có |
| Khử trùng lặp (dedup) | Không | Có, rất tốt | Không có sẵn | Thường có |
| Băng từ | Khó | Không | Có | Có |
| Chi phí bản quyền | 0 | 0 | 0 (hỗ trợ trả phí tuỳ chọn) | Theo máy hoặc dung lượng |
| Độ khó cài đặt | Thấp | Thấp | Cao | Trung bình |
Nên chọn Bareos khi:
- Có từ vài chục máy trở lên và cần một nơi trả lời “đêm qua backup ra sao”.
- Cần chính sách lưu giữ rõ ràng (Full giữ 30 ngày, Incremental 14 ngày…) áp dụng tự động.
- Muốn tự chủ, không phụ thuộc giấy phép theo số máy hay dung lượng.
- Cần ghi ra băng từ hoặc nhiều loại kho khác nhau.
Chưa nên chọn Bareos khi:
- Chỉ có vài máy: restic hoặc Borg đơn giản hơn nhiều, lại có khử trùng lặp.
- Đội ngũ không quen Linux và file cấu hình: Bareos cấu hình chủ yếu bằng file text, WebUI không tạo hay sửa được job.
- Cần khử trùng lặp mạnh để tiết kiệm dung lượng: Bareos không có sẵn, phải dựa vào tầng lưu trữ bên dưới.
Chuyện WebUI không sửa được cấu hình là giới hạn lớn nhất khi số máy tăng lên. Chặng cuối của chuỗi sẽ kể cách xây một lớp quản trị riêng để vượt qua nó.
Cần sao lưu tập trung cho nhiều máy chủ mà không muốn tự dựng và trực một hệ thống như Bareos thì có thể dùng dịch vụ Backup as a Service của Cloudzone. Cần tư vấn cấu hình, mời Quý khách hàng chat với Cloudzone.
Tóm tắt
- Bareos là phần mềm backup mã nguồn mở (AGPLv3), tách từ Bacula, không thu phí bản quyền theo số máy.
- Bốn thành phần: Director điều phối, File Daemon đọc dữ liệu, Storage Daemon ghi dữ liệu, Catalog ghi chép mọi thứ.
- Dữ liệu đi thẳng từ File Daemon sang Storage Daemon, không qua Director.
- Bareos hợp với hệ thống từ vài chục máy trở lên cần quản lý tập trung; vài máy thì restic hoặc Borg gọn hơn.
Bài sau: Dựng Bareos + PostgreSQL + WebUI trên Ubuntu 24.04, và 3 bẫy cài đặt: cài một hệ thống chạy được trên Ubuntu 24.04, kèm ba lỗi hay gặp mà tài liệu cài đặt không nhắc tới.
Chuỗi Bareos từ cài đặt tới vận hành:
- Bareos là gì (bài này)
- Cài đặt trên Ubuntu 24.04
- Cấu hình Job, FileSet, Schedule, Pool
- Full, Incremental hay Differential
- Retention
- Tính dung lượng
- Nén và chạy song song
- Catalog
- Diễn tập khôi phục
- Tự động hoá bconsole
- Lớp quản trị sinh cấu hình
- Giám sát nhiều Director
Bài viết thuộc chuỗi “Bareos từ cài đặt tới vận hành” của đội kỹ thuật Cloudzone.