Thứ hai, 13/04/2015 | 00:00 GMT+7

Cách backup server CentOS 7 bằng Bacula

Hướng dẫn này sẽ chỉ cho bạn cách cài đặt Bacula để tạo bản backup của server CentOS 7 từ xa, qua kết nối mạng. Điều này liên quan đến việc cài đặt và cấu hình phần mềm Bacula Client trên server từ xa và thực hiện một số bổ sung cho cấu hình của Bacula Server hiện có (được đề cập trong yêu cầu ).

Nếu bạn đang cố gắng tạo bản backup của server Ubuntu 14.04, hãy làm theo liên kết sau: Cách backup server Ubuntu 14.04 bằng Bacula .

Yêu cầu

Hướng dẫn này giả định bạn có một server đang chạy các thành phần Server Bacula, như được mô tả trong liên kết này:Cách Cài đặt Server Bacula trên CentOS 7 .

Ta cũng giả định bạn đang sử dụng các network interface riêng cho các giao tiếp server -máy khách dự phòng. Ta sẽ đề cập đến FQDN riêng của các server (FQDN trỏ đến địa chỉ IP riêng). Nếu bạn đang sử dụng địa chỉ IP, chỉ cần thay thế thông tin kết nối nếu thích hợp.

Đối với phần còn lại của hướng dẫn này, ta sẽ gọi Server Bacula là “BaculaServer”, “Bacula Server” hoặc “Backup Server”. Ta sẽ đề cập đến server từ xa, đang được backup , là “ClientHost”, “ Server của Máy khách” hoặc “Máy khách”.

Hãy bắt đầu bằng cách thực hiện một số thay đổi nhanh chóng đối với cấu hình Server Bacula.

Tổ chức cấu hình giám đốc Bacula ( Server )

Trên Server Bacula của bạn, thực hiện phần này một lần.

Khi cài đặt Server Bacula, bạn có thể nhận thấy rằng các file cấu hình quá dài. Ta sẽ thử và sắp xếp cấu hình Bacula Director một chút, vì vậy nó sử dụng các file riêng biệt để thêm cấu hình mới như công việc, tập hợp file và group .

Hãy tạo một folder để giúp tổ chức các file cấu hình Bacula:

  • sudo mkdir /etc/bacula/conf.d

Sau đó, mở file cấu hình Bacula Director:

  • sudo vi /etc/bacula/bacula-dir.conf

Ở cuối file thêm, dòng này:

bacula-dir.conf - Thêm vào cuối file
@|"find /etc/bacula/conf.d -name '*.conf' -type f -exec echo @{} \;" 

Lưu và thoát. Dòng này làm cho Giám đốc tìm kiếm trong folder /etc/bacula/conf.d để biết thêm các file cấu hình bổ sung. Tức là, các file .conf nào được thêm vào đó sẽ được tải như một phần của cấu hình.

Thêm group từ xa

Ta muốn thêm một Pool bổ sung vào cấu hình Bacula Director, ta sẽ sử dụng cấu hình này để cấu hình các công việc backup từ xa của bạn .

Mở file conf.d/pools.conf :

  • sudo vi /etc/bacula/conf.d/pools.conf

Thêm tài nguyên Group sau:

conf.d / pool.conf - Thêm tài nguyên Pool
Pool {   Name = RemoteFile   Pool Type = Backup   Label Format = Remote-   Recycle = yes                       # Bacula can automatically recycle Volumes   AutoPrune = yes                     # Prune expired volumes   Volume Retention = 365 days         # one year     Maximum Volume Bytes = 50G          # Limit Volume size to something reasonable   Maximum Volumes = 100               # Limit number of Volumes in Pool } 

Lưu và thoát. Điều này xác định một group “RemoteFile”, mà ta sẽ sử dụng cho công việc backup mà ta sẽ tạo sau này. Vui lòng thay đổi bất kỳ thông số nào để đáp ứng nhu cầu của bạn .

Ta chưa cần khởi động lại Bacula Director, nhưng hãy xác minh cấu hình của nó không có bất kỳ lỗi nào trong đó:

  • sudo bacula-dir -tc /etc/bacula/bacula-dir.conf

Nếu không có lỗi, bạn đã sẵn sàng để tiếp tục cài đặt Bacula Client.

Cài đặt và cấu hình ứng dụng client Bacula

Thực hiện phần này trên bất kỳ Server Khách hàng nào mà bạn đang thêm vào cài đặt Bacula của bạn .

Sau đó cài đặt gói bacula-client :

  • sudo yum install bacula-client

Thao tác này sẽ cài đặt Bacula File Daemon (FD), thường được gọi là “Bacula client”.

Cấu hình khách hàng

Trước khi cấu hình File Daemon client , bạn cần tra cứu thông tin sau, thông tin này sẽ được sử dụng trong suốt phần còn lại của hướng dẫn này:

  • Tên client :: Ví dụ của ta sẽ sử dụng “ClientHost”
  • Client Private FQDN: Ta sẽ gọi đây là “client_private_FQDN”, có thể trông giống như clienthost.private.example.com
  • Tên server Bacula Server: Ví dụ của ta sẽ sử dụng “BackupServer”

Cài đặt thực tế của bạn sẽ khác với ví dụ, vì vậy hãy đảm bảo thực hiện các thay thế nếu thích hợp.

Ta cần đặt một password để cho phép Bacula Director kết nối, trong cấu hình File Daemon. Hãy tạo một password ngẫu nhiên ngay bây giờ (hoặc bạn có thể bỏ qua bước này và tạo password của riêng mình):

date +%s | sha256sum | base64 | head -c 33 ; echo 

Bạn cần sao chép kết quả , vì bạn sẽ sử dụng nó trong bước tiếp theo.

Mở cấu hình File Daemon:

  • sudo vi /etc/bacula/bacula-fd.conf

Ta cần thay đổi một số mục và lưu một số thông tin mà ta cần cho cấu hình server của bạn .

Bắt đầu bằng cách tìm tài nguyên Giám đốc có tên là “ClientHost-dir”. Vì Bacula Director mà ta muốn kiểm soát Máy khách này nằm trên Server Bacula, hãy thay đổi thông số “Name” thành tên server của server dự phòng của bạn, sau đó là “-dir”. Ngoài ra, hãy thay thế password hiện có bằng password bạn đã tạo ở bước trước. Nó sẽ trông giống như thế này sau khi được cập nhật:

bacula-fd.conf - Cập nhật tên và password giám đốc
Director {   Name = BackupServer-dir   Password = "Y2Q5ODUyMWM0YTFhYjA3NTcwYmU5OTA4Y" } 

Đảm bảo giữ password thuận tiện. Nó sẽ được sử dụng trong cấu hình Giám đốc của Server Dự phòng, mà ta sẽ cài đặt trong bước sắp tới, để kết nối với Daemon Tệp của Máy khách của bạn.

Tiếp theo, ta cần điều chỉnh một tham số trong tài nguyên FileDaemon. Ta sẽ thay đổi tham số FDAddress để phù hợp với FQDN riêng của client của ta . Tham số Name phải được điền đúng với tên daemon của file khách hàng. Tài nguyên sẽ trông giống như thế này (thay thế FQDN hoặc địa chỉ IP thực):

bacula-fd.conf - Cập nhật tên và thêm FDAddress
FileDaemon {                          # this is me   Name = ClientHost-fd   FDAddress = client_private_ip   FDport = 9102                  # where we listen for the director   WorkingDirectory = /var/spool/bacula   Pid Directory = /var/run   Maximum Concurrent Jobs = 20 } 

Ta cũng cần cấu hình daemon này để chuyển các thông báo log của nó tới Server dự phòng. Tìm tài nguyên Tin nhắn và thay đổi tham số director để trùng với tên server của server dự phòng của bạn với hậu tố “-dir”. Nó trông giống như sau :

bacula-fd.conf - Giám đốc cập nhật
Messages {   Name = Standard   director =  BackupServer-dir = all, !skipped, !restored } 

Lưu file và thoát. File Daemon (Bacula Client) của bạn hiện đã được cấu hình để lắng nghe các kết nối qua mạng riêng.

Kiểm tra xem file cấu hình của bạn có đúng cú pháp hay không bằng lệnh sau:

  • sudo bacula-fd -tc /etc/bacula/bacula-fd.conf

Nếu lệnh không trả về kết quả , file cấu hình có cú pháp hợp lệ. Khởi động lại daemon file để sử dụng cài đặt mới:

  • sudo systemctl restart bacula-fd

Sau đó chạy lệnh sau để khởi động Bacula File Daemon tự động khi khởi động:

sudo systemctl enable bacula-fd 

Hãy cài đặt một folder mà Server Bacula có thể khôi phục các file . Tạo cấu trúc file và khóa quyền và quyền sở hữu để bảo mật bằng các lệnh sau:

  • sudo mkdir -p /bacula/restore
  • sudo chown -R bacula:bacula /bacula
  • sudo chmod -R 700 /bacula

Máy khách hiện đã được cấu hình chính xác. Tiếp theo, ta sẽ cấu hình Server dự phòng để có thể kết nối với Máy khách Bacula.

Thêm FileSets ( Server )

Bacula FileSet xác định một tập hợp các file hoặc folder để bao gồm hoặc loại trừ các file khỏi lựa chọn backup và được sử dụng bởi các công việc backup trên Server Bacula.

Nếu bạn đã làm theo hướng dẫn yêu cầu , cài đặt các thành phần Server Bacula, bạn đã có FileSet được gọi là “Full Set”. Nếu bạn muốn chạy công việc Backup bao gồm hầu hết mọi file trên Ứng dụng khách backup của bạn , bạn có thể sử dụng File đó trong công việc của bạn . Tuy nhiên, bạn có thể thấy rằng bạn thường không muốn hoặc không cần backup mọi thứ trên server và chỉ cần một tập hợp con dữ liệu là đủ.

Lựa chọn nhiều hơn trong đó các file được đưa vào FileSet sẽ làm giảm dung lượng ổ đĩa và thời gian mà Server backup của bạn yêu cầu, để chạy công việc backup . Nó cũng có thể làm cho việc khôi phục trở nên đơn giản hơn, vì bạn sẽ không cần phải sàng lọc qua “Toàn bộ” để tìm file nào bạn muốn khôi phục.

Ta sẽ hướng dẫn bạn cách tạo tài nguyên FileSet mới để bạn có thể lựa chọn nhiều hơn trong những gì bạn backup .

Trên Server Bacula của bạn, mở một file có tên filesets.conf , trong folder cấu hình Bacula Director mà ta đã tạo trước đó:

  • sudo vi /etc/bacula/conf.d/filesets.conf

Tạo tài nguyên FileSet cho từng group file cụ thể mà bạn muốn sử dụng trong các công việc backup của bạn . Trong ví dụ này, ta sẽ tạo một FileSet chỉ bao gồm các folder home và etc:

filesets.conf - Thêm Trang chủ và vv FileSet
FileSet {   Name = "Home and Etc"   Include {     Options {       signature = MD5       compression = GZIP     }     File = /home     File = /etc   }   Exclude {     File = /home/bacula/not_important   } } 

Có rất nhiều thứ đang diễn ra trong file này, nhưng đây là một số chi tiết cần lưu ý:

  • Tên FileSet phải là duy nhất
  • Bao gồm các file hoặc phân vùng nào mà bạn muốn backup
  • Loại trừ các file nào bạn không muốn backup nhưng đã được chọn do tồn tại trong file được bao gồm

Bạn có thể tạo nhiều FileSets nếu muốn. Lưu và thoát khi bạn hoàn tất.

Bây giờ ta đã sẵn sàng để tạo công việc backup sẽ sử dụng FileSet mới của ta .

Thêm ứng dụng client và công việc backup vào server Bacula

Bây giờ ta đã sẵn sàng để thêm Khách hàng của bạn vào Server Bacula. Để làm được điều này, ta phải cấu hình Bacula Director với các tài nguyên Khách hàng và Công việc mới.

Mở file conf.d/clients.conf :

  • sudo vi /etc/bacula/conf.d/clients.conf

Thêm tài nguyên khách hàng

Tài nguyên Khách hàng cấu hình Giám đốc với thông tin cần thiết để kết nối với Server Khách hàng. Điều này bao gồm tên, địa chỉ và password của Daemon Tệp của Máy khách.

Dán định nghĩa tài nguyên Máy khách này vào file . Đảm bảo thay thế bằng tên client , FQDN riêng và password của bạn (từ bacula-fd.conf của Máy khách), nơi được đánh dấu:

conf.d / client.conf - Thêm tài nguyên Khách hàng
Client {   Name = ClientHost-fd   Address = client_private_FQDN   FDPort = 9102    Catalog = MyCatalog   Password = "Y2Q5ODUyMWM0YTFhYjA3NTcwYmU5OTA4Y"          # password for Remote FileDaemon   File Retention = 30 days            # 30 days   Job Retention = 6 months            # six months   AutoPrune = yes                     # Prune expired Jobs/Files } 

Bạn chỉ cần thực hiện việc này một lần cho mỗi Khách hàng.

Tạo một công việc dự phòng:

Công việc Backup , phải có một tên duy nhất, xác định chi tiết về Khách hàng nào và dữ liệu nào nên được backup .

Tiếp theo, dán công việc backup này vào file , thay thế tên client cho văn bản được đánh dấu:

conf.d / client.conf - Thêm tài nguyên công việc backup
Job {   Name = "BackupClientHost"   JobDefs = "DefaultJob"   Client = ClientHost-fd   Pool = RemoteFile   FileSet="Home and Etc" } 

Điều này tạo ra một công việc backup được gọi là “BackupClientHost”, nó sẽ backup các folder chính và v.v. của Server khách hàng, như được định nghĩa trong FileSet “Home and Etc”. Nó sẽ sử dụng các cài đặt được chỉ định trong tài nguyên JobDefs “DefaultJob” và “RemoteFile”, cả hai đều được xác định trong bacula-dir.conf . Theo mặc định, các công việc chỉ định JobDefs = "DefaultJob" sẽ chạy hàng tuần.

Lưu và thoát khi bạn hoàn tất.

Xác minh cấu hình giám đốc

Hãy xác minh không có lỗi cú pháp nào trong file cấu hình Director của bạn:

  • sudo bacula-dir /etc/bacula/bacula-dir.conf

Nếu bạn được quay lại dấu nhắc shell, không có lỗi cú pháp nào trong các file cấu hình Bacula Director của bạn.

Khởi động lại Bacula Director

Để các thay đổi cấu hình bạn đã thực hiện có hiệu lực, hãy khởi động lại Bacula Director:

  • sudo systemctl restart bacula-dir

Bây giờ Máy khách của bạn, hoặc server từ xa, được cấu hình để được backup bởi Server Bacula của bạn.

Kiểm tra kết nối client

Ta nên xác minh Giám đốc Bacula có thể kết nối với Khách hàng Bacula.

Trên Server Bacula của bạn, nhập Control panel Bacula:

  • sudo bconsole
  • status client
Select Client resource: ClientHost-fd
The defined Client resources are: 1: BackupServer-fd 2: ClientHost-fd Select Client (File daemon) resource (1-2): 2

Trạng thái File Daemon của Máy khách sẽ trở lại ngay lập tức. Nếu không, và có lỗi kết nối, có điều gì đó sai với cấu hình của Server Bacula hoặc Daemon file của Máy khách.

Kiểm tra công việc backup

Hãy chạy công việc backup đảm bảo nó hoạt động.

Trên Server Bacula , khi vẫn ở trong Control panel , hãy sử dụng lệnh sau:

  • run

Bạn sẽ được yêu cầu chọn Công việc sẽ chạy. Chọn cái mà ta đã tạo trước đó, ví dụ: “4. BackupClientHost ”:

Select Job resource: BackupClientHost
The defined Job resources are: 1: BackupLocalFiles 2: BackupCatalog 3: RestoreLocalFiles 4: BackupClientHost Select Job resource (1-4): 4

Tại dấu nhắc xác nhận, nhập “yes” :

Confirmation prompt: OK to run? (yes/mod/no): yes 

Kiểm tra tin nhắn và trạng thái

Sau khi thực hiện một công việc, Bacula sẽ cho bạn biết rằng bạn có tin nhắn. Các thông báo được tạo ra bởi các công việc đang chạy.

Kiểm tra tin nhắn bằng lệnh :

  • messages

Các thông báo sẽ cho biết “Không tìm thấy bản ghi công việc backup đầy đủ trước” và công việc backup đã bắt đầu. Nếu có bất kỳ lỗi nào, điều gì đó không ổn, và họ sẽ cung cấp cho bạn một gợi ý về lý do tại sao công việc không chạy.

Một cách khác để xem tình trạng công việc là kiểm tra trạng thái của Giám đốc. Để thực hiện việc này, hãy nhập lệnh này tại dấu nhắc bconsole:

  • status director

Nếu mọi thứ hoạt động bình thường, bạn sẽ thấy rằng công việc của bạn đang chạy hoặc kết thúc với trạng thái “OK”.

Thực hiện khôi phục

Lần đầu tiên cài đặt Ứng dụng khách Bacula mới, bạn nên kiểm tra xem khôi phục có hoạt động bình thường không.

Nếu bạn muốn thực hiện khôi phục, hãy sử dụng lệnh restore trong Control panel Bacula:

  • restore all

Một menu lựa chọn sẽ xuất hiện với nhiều tùy chọn khác nhau, được sử dụng để xác định bộ backup nào cần khôi phục. Vì ta chỉ có một bản backup duy nhất, hãy “Chọn bản backup mới nhất ” —chọn tùy chọn 5:

Select item (1-13):
5

Sau đó, bạn phải chỉ định Máy khách nào cần khôi phục. Ta muốn khôi phục server từ xa mà ta vừa cài đặt , ví dụ: "ClientHost-fd":

Select the Client: ClientHost-fd
Defined Clients: 1: BackupServer-fd 2: ClientHost-fd Select the Client (1-2): 2

Thao tác này sẽ đưa bạn vào một cây file ảo với toàn bộ cấu trúc folder mà bạn đã backup . Giao diện giống như shell này cho phép các lệnh đơn giản để đánh dấu và bỏ đánh dấu các file được khôi phục.

Vì ta chỉ định rằng ta muốn "khôi phục tất cả", mọi file đã backup đều đã được đánh dấu để khôi phục. Các file được đánh dấu được ký hiệu bằng ký tự * đứng đầu.

Nếu bạn muốn tinh chỉnh lựa chọn của bạn , bạn có thể chuyển và liệt kê các file bằng lệnh “ls” và “cd”, đánh dấu file để khôi phục bằng “đánh dấu” và bỏ đánh dấu file bằng “bỏ đánh dấu”. Danh sách đầy đủ các lệnh có sẵn bằng lệnh “help” vào console .

Khi bạn hoàn tất việc lựa chọn khôi phục, hãy tiếp tục bằng lệnh :

  • done

Xác nhận bạn muốn chạy công việc khôi phục:

OK to run? (yes/mod/no):
yes

Kiểm tra tin nhắn và trạng thái

Như với các công việc backup , bạn nên kiểm tra các thông báo và trạng thái Giám đốc sau khi chạy công việc khôi phục.

Kiểm tra tin nhắn bằng lệnh :

  • messages

Sẽ có một thông báo cho biết công việc khôi phục đã bắt đầu hoặc đã kết thúc với trạng thái “Khôi phục OK”. Nếu có bất kỳ lỗi nào, điều gì đó không ổn, và họ sẽ cung cấp cho bạn một gợi ý về lý do tại sao công việc không chạy.

, kiểm tra trạng thái Giám đốc là một cách tốt để xem trạng thái của công việc khôi phục:

  • status director

Khi bạn hoàn tất quá trình khôi phục, hãy nhập exit để rời khỏi Bacula Console:

  • exit

Nếu mọi thứ hoạt động bình thường, các file được khôi phục của bạn sẽ nằm trên server Khách hàng của bạn, trong folder /bacula/restore . Nếu bạn chỉ đơn giản là thử nghiệm quá trình khôi phục, bạn nên xóa nội dung của folder đó.

Kết luận

Đến đây bạn có Server Bacula đang backup các file từ Máy khách Bacula từ xa. Đảm bảo xem xét và sửa đổi cấu hình của bạn cho đến khi bạn chắc chắn rằng bạn đang backup các FileSets chính xác, theo lịch trình đáp ứng nhu cầu của bạn. Nếu bạn đang cố gắng tạo bản backup của server Ubuntu 14.04, hãy làm theo liên kết sau: Cách backup server Ubuntu 14.04 bằng Bacula .

Điều tiếp theo bạn nên làm là lặp lại các phần có liên quan của hướng dẫn này cho bất kỳ server CentOS 7 bổ sung nào mà bạn muốn backup .


Tags:

Các tin liên quan

Cách sử dụng MariaDB với Ứng dụng Django của bạn trên CentOS 7
2015-03-25
Cách thiết lập LEPP hai node trên CentOS 7
2015-03-19
Cách cài đặt Ruby on Rails với rbenv trên CentOS 7
2015-03-16
Cách cài đặt MediaWiki trên CentOS 7
2015-03-12
Cách cài đặt Elasticsearch, Logstash và Kibana (ELK Stack) trên CentOS 7
2015-03-10
Cách cài đặt Elasticsearch, Logstash và Kibana (ELK Stack) trên CentOS 7
2015-03-10
Cách chạy một mạng xã hội phân tán nguồn mở với Diaspora trên CentOS 7
2015-03-04
Cách lưu giữ log lịch sử hiệu quả với Graphite, carbon và sưu tập trên CentOS 7
2015-02-23
Cách cài đặt và cấu hình truy cập từ xa VNC cho GNOME Desktop trên CentOS 7
2014-11-25
Cách ghi lại mạng của bạn bằng Netdot trên CentOS 7
2014-11-24