Cài đặt rsnapshot trên CentOS

Rsnapshot là một giải pháp sao lưu gọn nhẹ và cực kỳ đơn giản, nó tạo sự luân phiên backup các thư mục local hoặc điều khiển từ xa. Đây là một bản sao lưu bonus được tạo ra bằng cách sử dụng Hardlinks* để giảm không gian lưu trữ trên host. Cũng như nhiều giải pháp sao lưu khác, rsnapshot là một script được xây dựng trên nền tảng OpenSSH và Rsync – sau này được sử dụng để đồng bộ hóa nội dung thư mục mà không cần sử dụng quá nhiều băng thông. Trước đây nó được dùng để đảm bảo thông tin liên lạc được mã hóa và an toàn.

Nếu bạn đang làm công việc về IT, và cần một giải pháp sao lưu tự động cho máy chủ Linux thì hãy thử với rsnapshot. Bài viết sau chúng tôi sẽ hướng dẫn các bạn cách cài đặt rsnapshot trên CentOS/RHEL. Quá trình này yêu cầu EPEL repository và bạn có thể cài đặt bằng lệnh:

Trên CentOS 4 / RHEL 4:

rpm -Uvh http://download.fedora.redhat.com/pub/epel/4/i386/epel-release-4-10.noarch.rpm

CentOS 5 / RHEL 5

rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm

CentOS 6 / RHEL 6

rpm -Uvh http://download.fedora.redhat.com/pub/epel/6/i386/epel-release-6-5.noarch.rpm

Sau khi tải về bạn chạy lệnh:

yum install package-name

để cài đặt.

Khi sử dụng epel repo chúng tôi khuyên bạn nên dùng YUM priorities. Sau khi cài đặt repo bạn nhập vào lệnh sau với quyền root:

yum install rsnapshot

Điều này sẽ cài đặt Rsnapshot và “kéo” theo các gói phụ thuộc.

Mở tập tin /etc/rsnapshot.conf bằng trình soạn thảo văn bản của bạn (chẳng hạn vi), nhìn vào phần đầu của snapshot_root – đây là nơi rsnapshot lưu trữ các bản sao hệ thống. Theo mặc định chúng nằm trong thư mục root, nhưng có thể thay đổi thành /backup/snapshots/.

# All snapshots will be stored under this root directory. # snapshot_root   /backup/snapshots/

Tiếp theo chúng ta bỏ chú thích cho dòng no_create_root 1, điều này sẽ dừng việc tạo thư mục snapshot_root (có nghĩa là bạn phải tự tạo nó cho chính mình). Lợi ích là trong trường hợp bạn sao lưu vào ổ USB mà quên rằng phải kết nối nó, rsnapshot sẽ không tiến hành sao lưu để trách gây tai nạn cho máy chủ (nếu không có phân vùng chính xác).

# If no_create_root is enabled, rsnapshot will not automatically create the # snapshot_root directory. This is particularly useful if you are backing # up to removable media, such as a FireWire or USB drive. # no_create_root  1

Bởi hệ thống của chúng tôi đang chạy Linux nên sẽ bỏ chú thích tại dòng cmd_cp:

# LINUX USERS:   Be sure to uncomment "cmd_cp". This gives you extra features. # EVERYONE ELSE: Leave "cmd_cp" commented out for compatibility. # # See the README file or the man page for more details. # cmd_cp          /bin/cp

Tiếp theo bỏ chú thích tại dòng cmd_ssh và cung cấp cho nó đường dẫn chính xác tới ssh binary.

# Uncomment this to enable remote ssh backups over rsync. # cmd_ssh        /usr/bin/ssh

Không bỏ chú thích ở tùy chọn du, đây là công cụ nhỏ làm hiển thị kích thước mỗi ảnh chụp snapshot. Nếu bạn chỉ cần làm một du -sh * trong thư mục snapshot, nó sẽ đọc sai do các liên kết cứng.

# Uncomment this to specify the path to "du" for disk usage checks. # If you have an older version of "du", you may also want to check the # "du_args" parameter below. # cmd_du          /usr/bin/du

Điều này đưa chúng ta vào Backup Intervals, như bạn thấy chúng tôi giữ nguyên giá trị mặc định. Do đó rsnapshot sẽ có 6 bản sao dự phòng theo giờ trước khi bắt đầu ghi đè lên cái cũ, 7 bản sao hàng ngày, 4 bản hàng tuần và 3 bản hàng tháng. Đáng chú ý là rsnapshot sẽ không tạo bản sao lưu rsnapshot cho đến khi hourly.5 được tạo trong snapshot_root, tương tự với weekly và monthly.

######################################### #           BACKUP INTERVALS            # # Must be unique and in ascending order # # i.e. hourly, daily, weekly, etc.      # ######################################### interval        hourly  6 interval        daily   7 interval        weekly  4 interval        monthly 3

Tùy chọn tổng quát

Các thiết lập mặc định thường sử dụng tốt, tuy nhiên nếu muốn bạn có thể tinh chỉnh lại hoạt động của hệ thống cho việc sao lưu. Chẳng hạn tôi thay đổi dòng 4 để hiển thị các lệnh trên dòng lệnh như khi bạn nhập vào bằng tay:

# Verbose level, 1 through 5. # 1     Quiet           Print fatal errors only # 2     Default         Print errors and warnings only # 3     Verbose         Show equivalent shell commands being executed # 4     Extra Verbose   Show extra verbose information # 5     Debug mode      Everything # verbose

Không chú thích dòng logfile bởi nó cung cấp các bản ghi có ích trong việc tìm kiếm các lỗi:

# If you enable this, data will be written to the file you specify. The # amount of data written is controlled by the "loglevel" parameter. # logfile /var/log/rsnapshot

Dòng exclude có nghĩa là sau lần chạy sao lưu đầu tiên nó sẽ làm các tập tin ảnh đĩa của VMWare trở nên rõ ràng trong thư mục home, vì vậy chúng ta để như sau:

# The include and exclude parameters, if enabled, simply get passed directly # to rsync. If you have multiple include/exclude patterns, put each one on a # separate line. Please look up the --include and --exclude options in the # rsync man page for more details on how to specify file name patterns. # #include        ??? #include        ??? #exclude        ??? exclude         /home/keith/vmware-disks/

Tiếp theo là cấu hình các điểm backup, những gì cần sao lưu từ máy của mình. Bắt đầu với localhost.

############################### ### BACKUP POINTS / SCRIPTS ### ############################### # LOCALHOST backup  /home/          localhost/ backup  /etc/           localhost/ backup  /usr/local/     localhost/ backup  /var/log/               localhost/ backup  /srv/           localhost/ backup  /boot/          localhost/ backup  /opt/           localhost/

Bây giờ muốn sao lưu máy chủ email the-death-star, do đó cấu hình máy chủ sao lưu để “kéo” dữ liệu thông qua SSH:

backup  root@the-death-star.techspotting.org:/home/		the-death-star/ backup  root@the-death-star.techspotting.org:/etc/		the-death-star/ backup  root@the-death-star.techspotting.org:/usr/local/bin/   the-death-star/

Đây là phần cuối của việc chỉnh sửa tập tin cấu hình. Bây giờ là lúc thử nghiệm với:

rsnapshot configtest

Bạn sẽ nhận được thông báo Syntax OK trừ khi có sai sót ở trên, trong trường hợp này nó sẽ báo dòng xảy ra lỗi để có thể khắc phục.

Các SSH Key

Do chúng ta lấy dữ liệu thông qua SSH nên cần đăng nhập tự động đến các máy chủ từ xa. Ở đây sử dụng đăng nhập root từ xa cho các server, chẳng hạn như sao lưu tập tin trong location /etc/passwd chỉ có root mới đọc được. Vì vậy chúng ta cần thiết lập các SSH key mà không có passphrases – cụm mật khẩu. Nếu không bạn sẽ luôn bị nhắc nhở mỗi khi chạy backup. Sau đây là hướng dẫn tạo một số SSH key chính để xác thực.

Đầu tiên tạo key pair để khởi tạo các key public lẫn private:

ssh-keygen -t rsa

Chấp nhận tất cả các mặc định, chỉ cần nhấn Enter khi được hỏi một passphrase:

Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.

Bây giờ bạn sẽ có một tập hợp các key trong /root/.ssh/. Copy chúng vào máy muốn đăng nhập từ xa, trong trường hợp này là máy the-death-star.techspotting.org:

ssh-copy-id -i ~/.ssh/id_rsa.pub root@the-death-star.techspotting.org

Bạn sẽ được nhắc nhở về mật khẩu cho tài khoản trên máy chủ từ xa, nhập vào và ssh-copy-id sẽ copy key này vào thư mục chính xác và sắp xếp quyền truy cập hệ thống tập tin.

Tiến hành một thử nghiệm để chắc chắn rằng nó hoạt động:

ssh the-death-star.techspotting.org

Kiểm tra trong /etc/cron.d/rsnapshot sẽ thấy như sau:

# This is a sample cron file for rsnapshot. # The values used correspond to the examples in /etc/rsnapshot.conf. # There you can also set the backup points and many other things. # # To activate this cron file you have to uncomment the lines below. # Feel free to adapt it to your needs. # 0 */4         * * *           root    /usr/bin/rsnapshot hourly # 30 3          * * *           root    /usr/bin/rsnapshot daily # 0  3          * * 1           root    /usr/bin/rsnapshot weekly # 30 2          1 * *           root    /usr/bin/rsnapshot monthly

Bạn sẽ hài lòng với cấu hình cron mặc định, chỉ cần loại bỏ các chú thích để trông như sau:

# This is a sample cron file for rsnapshot. # The values used correspond to the examples in /etc/rsnapshot.conf. # There you can also set the backup points and many other things. # # To activate this cron file you have to uncomment the lines below. # Feel free to adapt it to your needs. 0 */4         * * *           root    /usr/bin/rsnapshot hourly 30 3          * * *           root    /usr/bin/rsnapshot daily 0  3          * * 1           root    /usr/bin/rsnapshot weekly 30 2          1 * *           root    /usr/bin/rsnapshot monthly

Bây giờ cron được kích hoạt để sao lưu các tập tin bằng cách sử dụng rsnapshot, hãy chắc chắn là nó sẽ làm việc:

rsnapshot -t hourly

Tiến hành tiếp với daily, weekly, monthly. Tiếp theo là lần sao lưu đầu tiên của bạn:

rsnapshot hourly

Nếu bạn đã thiết lập dòng 4 giống như chúng tôi ở phần đầu tiên của mục “tùy chọn tổng quát”, bạn có thể xem tất cả tập tin sao lưu trên màn hình!

Lần đầu chạy trình backup sẽ phải di chuyển toàn bộ tập tin snapshot_root nên mất một chút thời gian, tùy thuộc vào tốc độ và kết nối của bạn.

Dưới đây là kết quả trong snapshot_root:

/backup/snapshots# ls -l
total 48
drwxr-xr-x 3 root root 4096 2010-03-21 18:19 daily.0
drwxr-xr-x 3 root root 4096 2010-03-21 18:19 daily.1
drwxr-xr-x 3 root root 4096 2010-03-21 18:18 daily.2
drwxr-xr-x 3 root root 4096 2010-03-21 17:57 daily.3
drwxr-xr-x 3 root root 4096 2010-03-21 17:57 daily.4
drwxr-xr-x 3 root root 4096 2010-03-21 17:56 daily.5
drwxr-xr-x 3 root root 4096 2010-03-21 18:20 hourly.0
drwxr-xr-x 3 root root 4096 2010-03-21 18:19 hourly.1
drwxr-xr-x 3 root root 4096 2010-03-21 18:19 hourly.2
drwxr-xr-x 3 root root 4096 2010-03-21 18:19 hourly.3
drwxr-xr-x 3 root root 4096 2010-03-21 18:19 hourly.4
drwxr-xr-x 3 root root 4096 2010-03-21 17:56 weekly.0

Chúc các bạn thành công!

Theo:Quantrimang

Bài viết liên quan