Sao lưu ngoại vi chỉ thêm vào tiết kiệm với restic và Wasabi trên Debian 10

theanh

Administrator
Nhân viên
Hướng dẫn này chỉ cách cài đặt và cấu hình phần mềm sao lưu miễn phí restic trên Debian Buster để lưu trữ các bản sao lưu ngoài trang web tại công ty lưu trữ đám mây Wasabi. Ưu điểm chính của hướng dẫn này là nó cung cấp các bản sao lưu chỉ thêm bắt buộc. Điều này có nghĩa là sau khi đã tạo bản sao lưu, bản sao lưu đó sẽ an toàn theo nghĩa là không thể ghi đè hoặc xóa khỏi hệ thống mà bản sao lưu được tạo ra. Điều này có nghĩa là các kho lưu trữ sao lưu được bảo vệ khỏi cả thiên tai tại máy chủ gốc (ví dụ như hỏa hoạn) cũng như các tai nạn do con người gây ra (chẳng hạn như lỗi tại dấu nhắc shell gốc). Các bản sao lưu cũng được bảo vệ theo nghĩa là chúng được lưu trữ dưới dạng mã hóa, nghĩa là chỉ người hoặc hệ thống có mật khẩu để sao lưu mới có thể đọc được.

Xin lưu ý rằng hướng dẫn này được cung cấp theo nguyên trạng mà không có bất kỳ bảo hành nào. Phần mềm sao lưu restic vẫn chưa đạt đến phiên bản 1.0 và do đó, bạn không bao giờ nên sử dụng nó làm giải pháp sao lưu duy nhất của mình. Để được bảo vệ trước những sự cố bất ngờ, vui lòng đảm bảo sao lưu hệ thống mà bạn định sử dụng cho mục đích của hướng dẫn này trước khi bắt đầu. Ngoài ra, hãy đảm bảo kiểm tra xem bản sao lưu bạn đã thực hiện có thực sự hoạt động thông qua khôi phục thử nghiệm hay không.

Hướng dẫn này dựa trên và được thử nghiệm trên Debian Buster (Debian 10). Các phiên bản Debian cũ hơn nằm ngoài phạm vi của hướng dẫn này, nhưng nếu bạn muốn tự mình thử nghiệm, bạn có thể thêm kho lưu trữ gói apt Debian Buster để cài đặt các phiên bản gần đây của restic, tinyproxy và rclone cũng trên Debian Jessie hoặc Stretch.

Hướng dẫn này được cấu trúc thành năm phần:

Trong phần đầu tiên, chúng ta sẽ chuẩn bị một tài khoản tại kho lưu trữ Wasabi cloud nơi chúng ta sẽ lưu trữ các bản sao lưu sau này. Wasabi cung cấp bản dùng thử miễn phí 30 ngày cho mục đích thử nghiệm.

Thứ hai, chúng tôi sẽ cài đặt và cấu hình rclone, một mặt cung cấp quyền truy cập vào bộ lưu trữ tại Wasabi và mặt khác cung cấp giao diện truy cập cho restic hướng tới bộ lưu trữ.

Thứ ba, tinyproxy - một máy chủ proxy đơn giản - sẽ được chuẩn bị, vì nó cần thiết như một phương tiện trung gian để làm cho bộ lưu trữ hoạt động theo cách chỉ thêm vào cùng với restic.

Thứ tư, chúng tôi sẽ thiết lập chương trình sao lưu restic.

Như Bước cuối cùng chúng ta sẽ kiểm tra cả việc sao lưu và khôi phục một phần.

1 Chuẩn bị một tài khoản tại Wasabi cloud storage​

1.1 Mở một tài khoản Wasabi​

Wasabi có bản dùng thử miễn phí 30 ngày mà bạn có thể tìm thấy tại đây:

https://wasabi.com/sign-up/

Sau khi điền vào biểu mẫu tại trang web ở trên, bạn sẽ nhận được dữ liệu truy cập của mình vào giao diện web của Wasabi. Sử dụng dữ liệu truy cập của bạn để đăng nhập tại trang này:

https://console.wasabisys.com/

1.2 Tạo một bucket cho dữ liệu và một bucket khác để khóa​

Bây giờ chúng ta sẽ tạo hai cái gọi là "Bucket". Bucket là một container lưu trữ mà bạn lưu trữ dữ liệu.

Tạo bucket đầu tiên bằng cách nhấp vào biểu tượng màu đỏ có tên Create Bucket mà bạn tìm thấy ở góc trên bên phải của trang web. Bucket đầu tiên sẽ là nơi lưu trữ tất cả dữ liệu sao lưu, mà chúng ta sẽ gọi sau là DATABUCKET. Bạn biết cần phải chọn tên bucket. Ví dụ, bạn có thể sử dụng định dạng sau làm mẫu cho tên bucket:
Mã:
[B][I]yourdomain.com[/I][/b]-restic-data
Vui lòng thay yourdomain.com trong tên mẫu ở trên bằng tên miền của máy tính mà bạn muốn sao lưu. Sau khi đặt tên DATABUCKET, vui lòng viết tên đó ra. Bạn sẽ cần tên đó sau để thay thế văn bản giữ chỗ DATABUCKET trong các mẫu sẽ theo sau trong hướng dẫn này.

Sau đó, chọn vùng mà bạn muốn bucket nằm trong đó. Để có hiệu suất tối ưu, tốt nhất là chọn vùng/lục địa của máy chủ mà bạn muốn sao lưu. Vì vậy, trong trường hợp máy chủ của bạn ở Châu Âu, bạn có thể chọn:
Mã:
eu-central-1
Sau đó nhấn Next.

Trên trang tiếp theo, hai lựa chọn được hiển thị: cho Bucket VersioningBucket Logging. Bạn có thể để các lựa chọn này ở giá trị mặc định, tức là Suspend VersioningSuspend Logging. Sau đó, nhấp vào Next và nhấp vào Create Bucket.

Bây giờ, hãy lặp lại quy trình tương tự và tạo một bucket khác. Bucket thứ hai này sẽ chỉ được sử dụng để lưu trữ thông tin khóa của restic. Sau này chúng ta sẽ gọi nó là LOCKBUCKET. Nhấp vào nút Create Bucket một lần nữa và bây giờ hãy chọn tên cho bucket thứ hai này, ví dụ sử dụng định dạng này:
Mã:
[B][I]yourdomain.com[/I][/b]-restic-locks
Vui lòng thay yourdomain.com trong mẫu ở trên bằng tên miền của máy tính cần sao lưu. Sau khi đặt tên LOCKBUCKET, vui lòng ghi lại. Bạn sẽ cần nó sau này để thay thế LOCKBUCKET trong các mẫu sẽ theo sau trong hướng dẫn này.

(Restic sử dụng khóa để đảm bảo rằng chỉ có một máy khách tại một thời điểm thực hiện sao lưu hoặc khôi phục. Lý do chúng ta cần một thùng riêng cho thông tin khóa là vì restic cần có khả năng thêm và xóa khóa, do đó chúng ta cần một thùng cho phép xóa.)

1.3 Tạo người dùng​

Nhấp vào biểu tượng IAM ở hàng biểu tượng trên cùng. Bây giờ bạn đã vào Quản lý danh tính & quyền truy cập. Nhấp vào Người dùng ở cột bên trái. Sau đó, nhấp vào biểu tượng màu đỏ có tên + Tạo người dùng và chọn tên người dùng hợp lý, chẳng hạn như tên miền của máy chủ bạn muốn sao lưu. Ví dụ: tên người dùng có thể là system1.example.com. Sau khi đặt tên người dùng, vui lòng ghi lại để bạn có thể thay thế USERNAME trong các mẫu sẽ theo sau trong hướng dẫn này bằng giá trị của bạn.

Trong phần Access trong hộp thoại, hãy đánh dấu vào hộp kiểm có tên Programmatic (create API key). Sau đó, nhấp vào Next. Tạo một nhóm cho người dùng. Nếu tất cả máy chủ của bạn nằm trong một miền chính, thì miền chính này có thể là tên nhóm phù hợp. Bây giờ, hãy nhấp vào Next. Trên trang tiếp theo (tạo chính sách), chỉ cần nhấp vào Next. Cuối cùng, hãy nhấp vào nút Create user.

Bên phải của văn bản Secret Key về phía cuối cửa sổ hộp thoại, bạn sẽ thấy một liên kết nhỏ có tên Show, bạn nên nhấp vào đó. Lưu cả ACCESS KEYSECRET KEY vào một tệp văn bản. Bạn sẽ cần thông tin này sau khi chúng ta cấu hình quyền truy cập vào Wasabi từ máy tính khách mà bạn sẽ sao lưu.

1.4 Tạo chính sách​

Để người dùng chúng ta đã tạo được phép truy cập vào hai thùng, chúng ta cần tạo chính sách truy cập.

Nhấp vào Chính sách ở cột bên trái của giao diện web Wasabi. Sau đó, nhấp vào nút màu đỏ Tạo chính sách. Bạn có thể chọn tên miền của máy tính mà bạn muốn sao lưu cho tên chính sách, ví dụ system1.example.com. Viết tên chính sách vào trường trên cùng bên trái.

Dưới đây là mẫu mà bạn sẽ sử dụng làm cơ sở cho chính sách thực tế. Sao chép mẫu vào trình soạn thảo văn bản, sau đó thay thế hai lần xuất hiện của DATABUCKET trong tệp văn bản bằng tên bạn đã đặt cho thùng đầu tiên và hai lần xuất hiện của LOCKBUCKET bằng tên bạn đã chọn cho thùng thứ hai.
Mã:
{
"Phiên bản": "17-10-2012",
"Câu lệnh": [
{
"Hiệu ứng": "Cho phép",
"Hành động": "s3:ListAllMyBuckets",
"Tài nguyên": "arn:aws:s3:::*"
},
{
"Hiệu ứng": "Cho phép",
"Hành động": "s3:*",
"Tài nguyên": [
"arn:aws:s3:::[I][B]DATABUCKET[/b][/I]",
"arn:aws:s3:::[I][B]DATABUCKET[/b][/I]/*",
"arn:aws:s3:::[I][B]LOCKBUCKET[/b][/I]",
"arn:aws:s3:::[I][B]LOCKBUCKET[/b][/I]/*"
]
}
]
}
Sao chép chính sách bạn đã tạo từ trình soạn thảo văn bản và dán vào trường chính lớn của cửa sổ hộp thoại trang web Wasabi. Sau đó nhấp vào Lưu.

1.5 Áp dụng chính sách​

Bây giờ chính sách cần được áp dụng cho người dùng. Nhấp vào Người dùng ở bên trái rồi nhấp vào người dùng bạn đã tạo. Bây giờ hãy nhấp vào tab Quyền (bên phải trong menu ngang màu xám). Sau đó, bắt đầu nhập các chữ cái đầu tiên của tên chính sách mà bạn đã chọn khi tạo chính sách vào trường văn bản bên dưới Bắt đầu nhập để tìm chính sách cho người dùng. Nhấp vào tên chính sách của bạn. Bây giờ bạn đã áp dụng chính sách cho người dùng.

1.6 Đặt thùng dữ liệu thành không thể thay đổi (chỉ thêm vào)​

Vì lý do bảo mật, chúng tôi muốn không thể ghi đè lên các bản sao lưu đã tạo từ máy khách (máy tính mà các bản sao lưu được tạo ra). Để thực hiện điều này, chúng tôi sử dụng tính năng bất biến Wasabi. Trong giao diện web của Wasabi, hãy nhấp vào Lưu trữ (ở thanh trên cùng). Sau đó, hãy nhấp vào DATABUCKET (có thể là cái kết thúc bằng restic-data). Nhấp vào bánh răng màu trắng cho Cài đặt (ở phía trên bên phải). Sau đó, hãy nhấp vào Tuân thủ ở thanh trên cùng màu trắng. Nhấp vào thanh trượt ở bên phải của Chế độ tuân thủ để kích hoạt chế độ này. Nếu muốn, bạn có thể kích hoạt Xóa sau khi lưu giữ nhưng bạn phải đảm bảo đặt một giá trị lớn vào Thời gian lưu giữ, đây là thời gian tối thiểu mà mọi tệp được lưu giữ sau khi máy khách cố gắng xóa tệp đó. Ví dụ, nhập 100 năm ở đây. (Có vẻ như bạn không thể để trống trường này trong thời gian lưu giữ vô hạn.) Điều này có nghĩa là dữ liệu sẽ an toàn trong 100 năm, trong thời gian đó, dữ liệu không thể bị xóa hoặc sửa đổi. Nhấn Lưu để lưu cài đặt của bạn.

1.7 Tạo thư mục khóa​

Trong giao diện web của Wasabi, hãy nhấp vào Lưu trữ (ở thanh trên cùng). Sau đó, hãy nhấp vào LOCKBUCKET (thư mục kết thúc bằng restic-locks).

Bây giờ, hãy nhấn vào nút màu xanh lá cây có tên Tạo thư mục. Đặt tên cho thư mục là khóa để có thể sử dụng cho các tệp khóa restic sau này.

Bây giờ chúng ta đã hoàn tất cấu hình trong giao diện web Wasabi. Trong phần tiếp theo, chúng ta sẽ bắt đầu làm việc tại terminal của máy tính mà chúng ta muốn sao lưu.

2 Cài đặt và cấu hình rclone​

2.1 Trước tiên, hãy sao lưu thông qua hệ thống hiện tại của bạn​

Bây giờ là lúc truy cập vào máy tính mà các bản sao lưu sẽ được thực hiện.

Vui lòng nhớ sao lưu máy tính này bằng hệ thống hiện tại! Ngoài ra, hãy kiểm tra xem bản sao lưu có hoạt động thông qua khôi phục thử nghiệm hay không trước khi bạn tiếp tục. Trong trường hợp có điều gì đó không hoạt động như mong đợi, điều quan trọng là phải có thể khôi phục lại trạng thái hoạt động.

2.2 Cài đặt rclone​

Tất cả các dòng hiển thị bên dưới phải được nhập vào terminal theo sau là Enter.

Kết nối với terminal của máy tính mà bạn muốn sao lưu, ví dụ qua SSH. Sau đó, hãy đưa ra lệnh này để trở thành root:
Mã:
su -
theo sau là Enter và mật khẩu root. Cần có quyền truy cập root vì chúng ta sẽ cài đặt các chương trình mới từ kho lưu trữ Debian.

Bây giờ hãy cài đặt rclone:
Mã:
apt install rclone

2.3 Cấu hình rclone để kết nối với Wasabi​

Sau đó, để cấu hình rclone, hãy nhập lệnh này:
Mã:
rclone config
Sau đó, hãy nhập:
Mã:
n
Bây giờ là lúc chọn tên cho cấu hình. Xin lưu ý rằng. (dấu chấm) không được phép trong tên, nhưng ngược lại - (dấu gạch ngang) được phép. Để đặt tên cho cấu hình rclone của bạn, hãy sử dụng mẫu này, nhưng trước tiên hãy thay yourdomain-com bằng tên miền của riêng bạn, trước tiên hãy thay thế. (dấu chấm) trong tên miền có - (dấu gạch nối):

wasabi-yourdomain-com-restic

Lưu tên bạn đặt cho cấu hình rclone, vì sau này bạn sẽ thay thế chỗ giữ chỗ RCLONECONFIG bằng tên.

Sau đó in 4 cho Nhà cung cấp lưu trữ tuân thủ Amazon S3 và Enter

Sau đó in 7 cho Wasabi Object Storage và Enter

Sau đó in 1 cho Nhập thông tin xác thực AWS trong bước tiếp theo và Enter

Sao chép KHÓA TRUY CẬP mà bạn đã lưu trước đó trong tệp và dán vào đó, sau đó nhấn Enter

Sau đó sao chép và dán KHÓA BÍ MẬT mà bạn cũng đã lưu trong cùng tệp trước đó, theo sau bằng Enter

In vùng bạn chọn cho các thùng của mình. Bạn có thể tìm thấy vùng đó nếu nhấp vào Lưu trữ ở hàng trên cùng của giao diện web Wasabi. Ví dụ, nhập vùng này cho Châu Âu rồi Enter:

eu-central-1

Đối với Điểm cuối cho API S3, nhập lệnh này nếu thùng nằm trong vùng EU rồi Enter:
Mã:
s3.eu-central-1.wasabisys.com
Nếu thùng của bạn nằm ở Hoa Kỳ, vui lòng tìm tên điểm cuối của bạn trong tài liệu này:

https://wasabi-support.zendesk.com/hc/en-us/articles/360015106031-What-are-the-service-URLs-for-Wasabi-s-different-regions-

Rời khỏi Ràng buộc vị trítrống và nhấn Enter

Nhấn 1 để Chủ sở hữu có FULL_CONTROL rồi Enter

Nhấn y để Chỉnh sửa cấu hình nâng cao rồi Enter

Nhấn Enter để biết giá trị mặc định cho kích thước khối


Nhấn Enter để biết giá trị mặc định cho vô hiệu hóa tổng kiểm tra


Nhấn Enter để biết giá trị mặc định cho mã thông báo phiên

Nhập 16 cho Tải lên đồng thời rồi Enter

Nhấn Enter để biết giá trị mặc định cho force_path_style

Nhấn Enter để biết giá trị mặc định cho v2_auth rồi Enter

Nhấn y để biết Đúng rồi, đây là OK và Enter

Nhấn q để thoát config.

Bây giờ cấu hình cho rclone đã hoàn tất.

2.4 Kiểm tra xem rclone có hoạt động với Wasabi không​

Bây giờ hãy tạo một tệp kiểm tra thông qua lệnh này:

echo test >> /tmp/test.txt

Chuyển tệp kiểm tra thông qua lệnh bên dưới. Tuy nhiên, trước tiên bạn cần thay đổi RCLONECONFIG thành giá trị của bạn và cũng thay đổi DATABUCKET thành giá trị của bạn cho tham số này. Mọi thứ đều nằm trên một dòng:
Mã:
rclone -v sync /tmp/test.txt [B]RCLONECONFIG[/b]:[B]DATABUCKET[/b]/
Nếu mọi thứ hoạt động, bây giờ bạn sẽ thấy tệp test.txt trong giao diện web Wasabi cho DATABUCKET. Xin lưu ý rằng đôi khi có thể mất tới khoảng 1 phút cho đến khi tệp được hiển thị. Ngoài ra, hãy thử chuyển giao với bucket khác, bucket có kết thúc bằng restic-locks:
Mã:
rclone -v sync /tmp/test.txt [B] RCLONECONFIG[/b]:[B]LOCKBUCKET[/b]/
Bây giờ hãy kiểm tra lại giao diện web Wasabi để tìm tệp văn bản cần có trong LOCKBUCKET.

2.5 Thiết lập rclone để phục vụ restic qua systemd

Rclone có tính năng tích hợp là sử dụng không gian lưu trữ đám mây (trong trường hợp của chúng tôi là Wasabi) và phục vụ nó cho restic theo cách tương thích. Cách chạy rclone này được thực hiện thông qua lệnh rclone serve restic hoạt động như một quy trình máy chủ. Chúng ta sẽ cần hai trong số các quy trình máy chủ này: một quy trình chính cho hầu hết mọi thứ và một quy trình thứ hai chỉ xử lý các tệp khóa restic.

Đầu tiên, tạo một người dùng restic:
Mã:
adduser restic
Sao chép cấu hình rclone từ người dùng root sang người dùng restic:
Mã:
su restic
mkdir -p /home/restic/.config/rclone
exit
cp -a /root/.config/rclone/rclone.conf /home/restic/.config/rclone/
chown restic.restic /home/restic/.config/rclone/rclone.conf
Tạo một tệp điều khiển systemd, ví dụ thông qua trình soạn thảo nano:
Mã:
nano /etc/systemd/system/restic-data.service
Tệp này phải chứa dữ liệu bên dưới. Xin lưu ý rằng như trước đây, bạn cần thay đổi giá trị RCLONECONFIG cũng như giá trị DATABUCKET thành cài đặt của bạn.
Mã:
[Unit] 
Description=Rclone serve restic data on wasabi
After=network.target 
 
[Service] 
Type=simple 
User=restic 
Group=restic 
ExecStart=/usr/bin/rclone serve restic [I][B]RCLONECONFIG[/b][/I]:[I][B]DATABUCKET[/b][/I] --addr=127.0.0.1:8001 --append-only --retries 10 --transfers 20 --s3-upload-concurrency 8 --s3-chunk-size 16M
Restart=always 
RestartSec=5 
StartLimitInterval=0 
 
[Cài đặt] 
WantedBy=multi-user.target
Lưu tệp. Mục đích của nó là để rclone cung cấp giao diện restic cho thùng lưu trữ đám mây Wasabi. Dịch vụ systemd mà chúng ta vừa tạo sẽ tự động khởi động khi khởi động tiếp theo, nhưng trước tiên chúng ta cần kích hoạt nó thông qua các lệnh sau:
Mã:
systemctl daemon-reload
systemctl enable restic-data
systemctl start restic-data
Sau đó, chúng ta kiểm tra xem dịch vụ đã khởi động chưa:
Mã:
systemctl status restic-data
Bây giờ bạn sẽ thấy Active: active (running) nếu mọi thứ hoạt động bình thường. Nhấn q để thoát khỏi màn hình hiển thị trạng thái.

Bây giờ chúng ta đã cài đặt dịch vụ rclone serve restic trên cổng 8001 kết nối với một bucket chỉ có chức năng append-only và sẽ lưu trữ các bản sao lưu.

Tiếp theo, chúng ta cần một dịch vụ khác trên cổng 8002 cho hệ thống khóa restic, được kết nối với bucket thứ hai có chức năng read+write. Do đó, chúng ta sẽ lặp lại các bước vừa thực hiện một lần nữa với những sửa đổi nhỏ.

Tạo tệp điều khiển systemd:
Mã:
nano /etc/systemd/system/restic-locks.service
Tệp phải chứa dữ liệu bên dưới. Dòng bắt đầu bằng ExecStart= là một dòng dài duy nhất được chia thành ba dòng bên dưới. Vui lòng thay đổi giá trị RCLONECONFIG cũng như giá trị LOCKBUCKET thành cài đặt của bạn.
Mã:
[Unit] 
Description=Rclone serve restic locks on wasabi
After=network.target 
 
[Service] 
Type=simple 
User=restic 
Group=restic 
ExecStart=/usr/bin/rclone serve restic [B][I]RCLONECONFIG[/I][/b]:[I][B]LOCKBUCKET[/b][/I] --addr=127.0.0.1:8002 
Restart=always 
RestartSec=5 
StartLimitInterval=0 

[Install] 
WantedBy=multi-user.target
Lưu tệp và kích hoạt tệp thông qua:
Mã:
systemctl daemon-reload
systemctl enable restic-locks
systemctl start restic-locks
Kiểm tra xem dịch vụ đã bắt đầu chưa:
Mã:
systemctl status restic-locks
Bây giờ bạn sẽ thấy Active: active (running).

Nhấn q để thoát.

Bây giờ chúng ta đã tạo cả hai rclone phục vụ các dịch vụ restic systemd, đầu tiên trên cổng 8001 cho dịch vụ chính ở chế độ chỉ thêm vào và sau đó trên cổng 8002 cho dịch vụ khóa ở chế độ đọc + ghi.

3 Chuẩn bị tinyproxy​

Tinyproxy sẽ hợp nhất hai dịch vụ thành một mặt trận thống nhất được trình bày cho restic. Nó được cài đặt trong một thiết bị đầu cuối gốc của máy tính mà bạn muốn sao lưu:
Mã:
apt install tinyproxy
Sau đó tạo bản sao lưu của tệp cấu hình tinyproxy:
Mã:
cp -a /etc/tinyproxy/tinyproxy.conf /etc/tinyproxy/tinyproxy.conf.bak
Nếu không tìm thấy tệp ở đây, thường thì bạn có thể tìm thấy tệp tại /etc/tinyproxy.conf.

Bây giờ, hãy chỉnh sửa tệp cấu hình:
Mã:
nano /etc/tinyproxy/tinyproxy.conf
Bạn nên thực hiện một số thay đổi đối với các tệp sẽ được trình bày chi tiết. Đầu tiên, hãy chú thích số cổng được cài đặt sẵn và đặt số cổng mới:
Mã:
#Port 8888
Port 8000
Thứ hai, điều quan trọng là chỉ cho phép kết nối từ máy chủ cục bộ, do đó hãy thêm một dòng Listen:
Mã:
#Listen 192.168.0.1
Listen 127.0.0.1
Thứ ba, thay đổi giá trị thời gian chờ thành một giờ:
Mã:
#Timeout 600
Timeout 3600
Thứ tư, kết nối tinyproxy với hai dịch vụ rclone serve restic systemd. Chúng phải được viết theo thứ tự hiển thị bên dưới: quy tắc chung trước và quy tắc cụ thể sau, vì quy tắc cuối cùng trong tinyproxy luôn thắng trong trường hợp hòa.
Mã:
ReversePath "/" "http://127.0.0.1:8001/"
ReversePath "/locks" "http://127.0.0.1:8002/locks"
Cuối cùng, hãy để tinyproxy hoạt động độc quyền ở chế độ chỉ đảo ngược:
Mã:
#ReverseOnly Yes
ReverseOnly Yes
Bây giờ, tất cả các chỉnh sửa cần thiết đã được thực hiện. Vui lòng lưu tệp cấu hình, trong nano, bạn thực hiện việc này bằng cách nhấn Ctrl+O, sau đó thoát nano bằng Ctrl+X để quay lại terminal.

Để kích hoạt tinyproxy, bây giờ chúng ta sẽ khởi động lại nó:
Mã:
systemctl stop tinyproxy
systemctl start tinyproxy
Cuối cùng, vui lòng kiểm tra xem tinyproxy có chạy đúng không:
Mã:
systemctl status tinyproxy
Nhấn q để thoát. Bây giờ, tinyproxy đã được cấu hình để restic sử dụng. Trong phần tiếp theo, chúng ta sẽ thiết lập restic trong chính nó.

4 Thiết lập chương trình sao lưu restic​

Cuối cùng, chúng ta sẽ thực hiện bước cuối cùng của cấu hình, đó là thiết lập chương trình sao lưu restic. Trước tiên, hãy cài đặt restic:
Mã:
apt install restic
Sau đó, chúng ta cần khởi tạo các biến môi trường cho restic. Trước tiên, chúng ta chỉ định vị trí kho lưu trữ restic bằng cách nhập lệnh này vào terminal:
Mã:
export RESTIC_REPOSITORY='rest:http://127.0.0.1:8000/'
Bây giờ, hãy quyết định một mật khẩu mạnh cho các bản sao lưu của bạn. Điều quan trọng là bạn phải lưu trữ mật khẩu ở một nơi an toàn. Mật khẩu là bắt buộc để có thể truy cập các bản sao lưu vì chúng được mã hóa hoàn toàn. Thay thế PASSPHRASE bên dưới bằng mật khẩu bạn đã chọn rồi nhập lệnh vào terminal:
Mã:
export RESTIC_PASSWORD='[B]PASSPHRASE[/b]'
Bây giờ chúng ta hãy tạo kho lưu trữ restic:
Mã:
restic init
Hãy kiểm tra xem restic có hoạt động bình thường không. Chúng ta đã lưu trữ mật khẩu trong biến môi trường RESTIC_PASSWORD, do đó chúng ta có thể truy cập kho lưu trữ để liệt kê các ảnh chụp nhanh:
Mã:
restic snapshots
Nếu mọi thứ diễn ra bình thường, chúng ta sẽ nhận được danh sách trống (vì chúng ta chưa sao lưu bất kỳ bản nào) và văn bản 0 snapshots.

Bây giờ chúng ta đã chuẩn bị mọi thứ để lưu trữ các bản sao lưu và có thể chuyển sang các bước cuối cùng là thực hiện sao lưu và khôi phục.

5 Kiểm tra cả bản sao lưu và bản khôi phục một phần​

Trong bước cuối cùng của hướng dẫn này, chúng ta sẽ sao lưu toàn bộ hệ thống, sau đó kiểm tra bản khôi phục một phần. Với mục đích này, hai tập lệnh shell sẽ được tạo (một để sao lưu và một để khôi phục).

5.1 Chuẩn bị tập lệnh sao lưu​

Trước tiên, bạn cần có một tập lệnh sao lưu có thể chạy qua cron theo khoảng thời gian phù hợp, ví dụ, một lần mỗi ngày. Ví dụ, tập lệnh sao lưu có thể được tạo dưới dạng tệp mà chỉ root mới có quyền truy cập và sau đó chỉnh sửa bằng nano:
Mã:
touch /usr/local/bin/backup-restic.sh 
chown root.root /usr/local/bin/backup-restic.sh
chmod 700 /usr/local/bin/backup-restic.sh
nano /usr/local/bin/backup-restic.sh
Dưới đây là ví dụ về nội dung của tập lệnh sao lưu, trong đó bạn cần thay đổi MẬT KHẨU thành cụm mật khẩu bạn đã chọn trước đó.
Mã:
#!/bin/sh
export RESTIC_REPOSITORY='rest:http://127.0.0.1:8000/'
export RESTIC_PASSWORD='[I][B]MẬT KHẨU[/b][/I]' 
restic backup / --exclude=/dev --exclude=/proc --exclude=/sys --exclude=/run --exclude=/tmp --exclude=/mnt --exclude=/root/.cache
Vui lòng tuân thủ các loại trừ được nêu ở trên – bạn có thể muốn thay đổi các thư mục bị loại trừ khỏi bản sao lưu.

5.2 Chạy tập lệnh sao lưu​

Lưu tệp và chạy tệp đó thông qua thiết bị đầu cuối:

/usr/local/bin/backup-restic.sh

Sau một vài giây, bạn sẽ thấy restic duyệt các tệp của mình như thế nào và cũng ước tính tỷ lệ phần trăm về lượng bản sao lưu đã hoàn tất. ETA là ước tính sơ bộ về thời gian còn lại cho đến khi hoàn tất tính bằng phút và giây. Bản sao lưu đầu tiên mất khá nhiều thời gian, nhưng các bản sao lưu tiếp theo diễn ra nhanh chóng vì chỉ những tệp đã thay đổi hoặc được tạo kể từ lần sao lưu cuối cùng mới cần được chuyển.

Để bản sao lưu chạy thường xuyên, hãy thêm một dòng vào crontab. Đầu tiên, hãy chỉnh sửa /etc/crontab bằng:
Mã:
nano /etc/crontab
Sau đó, thêm lịch trình sao lưu. Ví dụ: nếu bản sao lưu phải chạy lúc 02:00 sáng sớm mỗi ngày, hãy thêm dòng này vào /etc/crontab:
Mã:
00 02 * * * root /usr/local/bin/backup-restic.sh
(Xin lưu ý rằng cron hoạt động theo định dạng mm:hh – tức là vài phút trước giờ.)

5.3 Kiểm tra xem khôi phục có hoạt động không​

Một hệ thống sao lưu sẽ không bao giờ hoàn thiện cho đến khi người ta kiểm tra xem khôi phục có hoạt động tốt không. Chúng tôi sẽ sử dụng fuse mount của restic để duyệt qua bản sao lưu mới nhất. Nhập lệnh này vào terminal, đổi PASSPHRASE thành mật khẩu restic mà bạn đã chọn trước đó:
Mã:
mkdir /mnt/restic
export RESTIC_REPOSITORY='rest:http://127.0.0.1:8000/'
export RESTIC_PASSWORD='[B]PASSPHRASE[/b]'
restic mount /mnt/restic &
cd /mnt/restic
cd snapshots
cd latest
ls
Bây giờ bạn sẽ có thể xem bản chụp nhanh cuối cùng (bản sao lưu cuối cùng được tạo). Bạn có thể so sánh với diff để biết rằng một tệp đã được sao lưu chính xác, ví dụ đối với /etc/fstab :
Mã:
diff /mnt/restic/snapshots/latest/etc/fstab /etc/fstab
Nếu bạn không nhận được kết quả nào từ diff, thì hai tệp này giống hệt nhau và bản sao lưu đã hoạt động đối với tệp đó. Mặt khác, nếu bạn đã thay đổi tệp kể từ lần sao lưu cuối cùng, bạn sẽ thấy những dòng nào trong tệp khác nhau.


Cuối cùng, chúng ta sẽ hủy gắn kết cầu chì restic:
Mã:
cd ~
umount /mnt/restic/

5.4 Nhận xét cuối cùng​

Xin chúc mừng, nếu mọi thứ diễn ra tốt đẹp, bạn đã hoàn thành việc thiết lập hệ thống sao lưu thứ cấp có một số tính năng mạnh mẽ:

Hệ thống sao lưu ngoài trang web, nghĩa là nó bảo vệ dữ liệu khỏi các sự cố có thể xảy ra với máy tính mà bản sao lưu được thực hiện.

Nó cũng chỉ thêm vào, nghĩa là không có vi-rút hoặc sự cố nào trên máy tính mà bản sao lưu được thực hiện có thể ghi đè lên bản sao lưu đã thực hiện trước đó. Cách duy nhất để xóa bản sao lưu là thông qua đăng nhập qua giao diện web Wasabi và do đó, bạn nên bảo vệ dữ liệu đăng nhập của mình vào giao diện web Wasabi. Tốt nhất là bạn có thể bật 2FA (xác thực hai yếu tố) để bảo mật cao hơn.

Nếu bạn bật cron job, hệ thống sao lưu cũng sẽ tự động. Tuy nhiên, hãy luôn nhớ kiểm tra khôi phục thường xuyên để bạn có thể xác minh rằng bản sao lưu hoạt động.

So với nhiều dịch vụ lưu trữ đám mây trực tuyến khác, Wasabi có lợi thế là truyền dữ liệu nhanh với mức giá cạnh tranh.

Hệ thống này hoạt động tốt cho các bản sao lưu thứ cấp, như một biện pháp bảo hiểm bổ sung trong trường hợp hệ thống sao lưu đầu tiên bị lỗi vì bất kỳ lý do gì. Cuối cùng, một lợi thế quan trọng là nó có thể mở rộng đến bất kỳ kích thước nào bạn cần - bạn chỉ cần trả tiền cho mỗi GB lưu trữ (mặc dù bạn luôn phải trả tiền cho tối thiểu 1 TB) và thực tế là không có ngưỡng nào cho không gian lưu trữ tối đa.
 
Back
Bên trên