Thứ tư, 06/11/2013 | 00:00 GMT+7

Cách chọn chiến lược backup hiệu quả cho VPS của bạn

Một cân nhắc quan trọng khi lưu trữ công việc và dữ liệu trong môi trường kỹ thuật số là làm thế nào đảm bảo rằng thông tin của bạn sẽ luôn sẵn sàng trong trường hợp có sự cố. Điều này có thể có nhiều ý nghĩa khác nhau tùy thuộc vào ứng dụng bạn đang sử dụng, tầm quan trọng của việc chuyển đổi dự phòng ngay lập tức và loại vấn đề bạn đang dự đoán.


Trong hướng dẫn này, ta sẽ thảo luận về một số cách tiếp cận khác nhau để cung cấp bản backup và dự phòng dữ liệu. Bởi vì các trường hợp sử dụng khác nhau yêu cầu các giải pháp khác nhau, ta sẽ không thể cung cấp cho bạn câu trả lời chung cho tất cả, nhưng bạn sẽ tìm hiểu điều gì là quan trọng trong các tình huống khác nhau và cách triển khai (hoặc triển khai) nào phù hợp nhất cho hoạt động của bạn .

Trong phần đầu tiên của hướng dẫn này, ta sẽ thảo luận về các giải pháp backup khác nhau mà bạn có thể sử dụng. Ta sẽ thảo luận về giá trị tương đối của từng loại để bạn có thể chọn kế hoạch phù hợp với môi trường của bạn . Trong phần hai, ta sẽ thảo luận về các tùy chọn dự phòng.

Sự khác biệt giữa dự phòng và dự phòng là gì?


Định nghĩa của các thuật ngữ dự phòngdự phòng thường chồng chéo và trong nhiều trường hợp, bị nhầm lẫn. Đây là hai khái niệm riêng biệt có liên quan, nhưng khác nhau. Một số giải pháp cung cấp cả hai.


Dữ liệu dự phòng nghĩa là có sự chuyển đổi dự phòng ngay lập tức trong trường hợp hệ thống có sự cố. Chuyển đổi dự phòng nghĩa là nếu một bộ dữ liệu không khả dụng, một bản sao hoàn hảo khác sẽ ngay lập tức được chuyển sang production để thế chỗ. Điều này dẫn đến hầu như không có thời gian nghỉ và ứng dụng hoặc trang web có thể tiếp tục cung cấp các yêu cầu như thể không có gì xảy ra. Trong thời gian chờ đợi, administrator hệ thống (trong trường hợp này là bạn) có cơ hội khắc phục sự cố và đưa hệ thống trở lại trạng thái hoạt động hoàn toàn.

Mặc dù điều này có vẻ giống như một giải pháp dự phòng tuyệt vời, nhưng đây là một sai lầm nguy hiểm. Dự phòng không cung cấp khả năng bảo vệ khỏi sự cố ảnh hưởng đến toàn bộ máy hoặc hệ thống. Ví dụ: nếu bạn đã cấu hình RAID được sao chép (chẳng hạn như RAID 1), dữ liệu sẽ dư thừa trong đó nếu một ổ bị lỗi, ổ kia sẽ vẫn có sẵn. Tuy nhiên, nếu máy bị lỗi, tất cả dữ liệu có thể bị mất.

Một nhược điểm khác của kiểu cài đặt này là mọi hoạt động được thực hiện trên tất cả các bản sao của dữ liệu. Điều này bao gồm các hoạt động độc hại hoặc ngẫu nhiên. Một giải pháp backup thực sự sẽ cho phép bạn khôi phục từ điểm trước đó mà dữ liệu được cho là tốt.

Backup


Như ta đã đề cập, bạn bắt buộc phải duy trì các bản backup chức năng cho dữ liệu quan trọng của bạn . Tùy thuộc vào tình huống của bạn, điều này có thể nghĩa là backup ứng dụng hoặc dữ liệu user , hoặc toàn bộ trang web hoặc máy. Ý tưởng đằng sau các bản backup là trong trường hợp hệ thống, máy móc hoặc mất dữ liệu, bạn có thể khôi phục, triển khai lại hoặc truy cập dữ liệu của bạn . Khôi phục từ bản backup có thể yêu cầu thời gian chết, nhưng nó có thể nghĩa là sự khác biệt giữa việc bắt đầu từ một ngày trước và bắt đầu lại từ đầu.Theo định nghĩa, bất cứ thứ gì bạn không thể để mất đều nên được backup .

Về phương pháp, có khá nhiều cấp độ backup khác nhau. Chúng có thể được phân lớp khi cần thiết để giải thích các loại vấn đề khác nhau. Ví dụ: bạn có thể backup một file cấu hình trước khi sửa đổi nó để bạn có thể dễ dàng hoàn nguyên về cài đặt cũ của bạn nếu có vấn đề phát sinh. Điều này là lý tưởng cho những thay đổi nhỏ mà bạn đang tích cực theo dõi. Tuy nhiên, cài đặt này sẽ thất bại thảm hại trong trường hợp đĩa bị lỗi hoặc bất cứ điều gì phức tạp hơn. Bạn cũng nên backup thường xuyên, tự động đến một vị trí từ xa.

Bản thân các bản backup không cung cấp chuyển đổi dự phòng tự động. Điều này nghĩa là bạn thất bại có thể không làm bạn mất bất kỳ dữ liệu nào (giả sử các bản backup của bạn được cập nhật 100%), nhưng chúng có thể khiến bạn mất thời gian hoạt động. Đây là một lý do tại sao dự phòng và backup thường được sử dụng song song, thay vì loại trừ nhau.

Backup cấp file


Một trong những hình thức backup quen thuộc nhất là backup cấp file . Loại backup này sử dụng các công cụ sao chép cấp hệ thống file thông thường để chuyển file đến một vị trí hoặc thiết bị khác.

Cách sử dụng lệnh cp


Hình thức đơn giản nhất để backup một máy Linux, như VPS của bạn, là bằng lệnh cp . Điều này chỉ đơn giản là sao chép các file từ vị trí local này sang vị trí local khác. Trên máy tính local , bạn có thể gắn ổ đĩa di động, sau đó sao chép file vào đó:

<pre>
mount / dev / <span class = “highlight”> sdc </span> / mnt / <span class = “highlight”> my-backup </span>
cp -a / etc / * / mnt / <span class = “highlight”> my-backup </span>
umount / dev / <span class = “highlight”> sdc </span>
</pre>

Ví dụ này gắn một đĩa di động và sau đó sao chép folder /etc vào đĩa. Sau đó, nó sẽ ngắt kết nối ổ đĩa, có thể được lưu trữ ở một nơi khác.

Cách sử dụng Rsync


Một thay thế tốt hơn cho cp là lệnh rsync , được dùng để thực hiện backup local với tính linh hoạt cao hơn. Ta có thể thực hiện thao tác tương tự như trên bằng cách sử dụng rsync với các lệnh sau:

<pre>
mount / dev / <span class = “highlight”> sdc </span> / mnt / <span class = “highlight”> my-backup </span>
rsync -azvP / etc / * / mnt / <span class = “highlight”> my-backup </span>
umount / dev / <span class = “highlight”> sdc </span>
</pre>

Mặc dù điều này đơn giản nhưng đến mức bạn sẽ nhanh chóng nhận ra rằng các bản backup trên hệ thống file local rất cồng kềnh và có vấn đề. Bạn phải gắn và tháo ổ đĩa backup và vận chuyển nó đi nơi khác nếu muốn bảo quản dữ liệu trong trường hợp bị đánh cắp hoặc hỏa hoạn. Bạn có thể đạt được nhiều lợi ích tương tự bằng cách sử dụng các bản backup nối mạng.

Rsync có thể thực hiện backup từ xa dễ dàng như nó có thể hoàn thành backup local . Bạn chỉ cần sử dụng một cú pháp thay thế. Điều này sẽ hoạt động trên bất kỳ server nào mà bạn có thể SSH vào, miễn là rsync được cài đặt ở cả hai đầu:

<pre>
rsync -azvP / etc / * <span class = “highlight”> tên user </span> @ <span class = “highlight”> remote_host </span>: / backup /
</pre>

Thao tác này sẽ backup folder /etc của máy local vào một folder trên remote_host đặt tại /backup . Điều này sẽ thành công nếu bạn có quyền ghi vào folder này và có dung lượng trống.

Để biết thêm thông tin về cách sử dụng rsync để backup , hãy nhấp vào đây.

Cách sử dụng các công cụ backup khác


Mặc dù cprsync rất đơn giản và được dùng dễ dàng, nhưng chúng không phải lúc nào cũng là giải pháp lý tưởng.Để tự động hóa các bản backup , bạn cần viết kịch bản các tiện ích đó và viết bất kỳ mã nào cần thiết để xoay vòng và các tiện ích khác.

May mắn là có một số tiện ích thực hiện các quy trình backup phức tạp hơn một cách dễ dàng.

Bacula

Bacula là một giải pháp phức tạp, linh hoạt, sử dụng mô hình server khách để các server dự phòng. Bacula phân tách ý tưởng của khách hàng, vị trí backup và giám đốc (thành phần điều phối backup thực tế). Nó cũng cấu hình mỗi tác vụ backup thành một đơn vị gọi là “công việc”.

Điều này cho phép cấu hình cực kỳ chi tiết và linh hoạt. Bạn có thể backup nhiều client vào một thiết bị lưu trữ, một client vào nhiều thiết bị lưu trữ và sửa đổi sơ đồ backup nhanh chóng và dễ dàng bằng cách thêm các node hoặc điều chỉnh chi tiết của chúng. Nó hoạt động tốt trên môi trường nối mạng và có thể mở rộng và theo module , điều này làm cho nó trở nên tuyệt vời để backup một trang web hoặc ứng dụng trên nhiều máy.

Để tìm hiểu thêm về cách cấu hình server backup Baculacách backup hệ thống từ xa bằng Bacula , hãy truy cập các liên kết này.

BackupPC

Một giải pháp phổ biến khác là BackupPC. BackupPC được dùng để backup hệ thống Linux và Windows một cách dễ dàng. Nó được cài đặt trên một máy hoặc VPS sẽ hoạt động như một server dự phòng. Sau đó server này “lấy” dữ liệu từ các client của nó bằng các phương pháp truyền file thông thường.

Cài đặt này mang lại lợi thế khi cài đặt tất cả các gói có liên quan trên một máy tập trung. Cấu hình phía client cần thiết duy nhất là cho phép truy cập SSH của server dự phòng. Điều này có thể được cấu hình dễ dàng và với DigitalOcean, bạn có thể nhúng Khóa SSH của server BackupPC vào các client khi bạn triển khai . Điều này sẽ cho phép bạn cấu hình các bản backup từ server backup một cách dễ dàng và triển khai môi trường production của bạn một cách sạch sẽ mà không cần phần mềm bổ sung.

Để tìm hiểu cách cài đặt và sử dụng BackupPC trên server , hãy nhấp vào đây.

Sự trùng lặp

Sự trùng lặp là một sự thay thế tuyệt vời khác cho các công cụ truyền thống. Điểm khác biệt chính của Duplicity là nó sử dụng mã hóa GPG để truyền và lưu trữ dữ liệu. Điều này có một số lợi thế đáng chú ý.

Lợi ích rõ ràng của việc sử dụng mã hóa GPG để backup file là dữ liệu không được lưu trữ dưới dạng văn bản thuần túy. Chỉ chủ sở hữu của khóa GPG mới có thể giải mã dữ liệu. Điều này cung cấp một số mức độ bảo mật để bù đắp cho các biện pháp bảo mật cần thiết khi dữ liệu được lưu trữ ở nhiều vị trí.

Lợi ích khác có thể không rõ ràng ngay lập tức đối với những người không sử dụng GPG thường xuyên là mỗi giao dịch đều được xác minh là hoàn toàn chính xác. GPG thực thi kiểm tra băm nghiêm ngặt đảm bảo rằng không có mất mát dữ liệu trong quá trình chuyển. Điều này nghĩa là khi đến lúc khôi phục dữ liệu từ bản backup , bạn sẽ ít gặp phải các vấn đề về lỗi file hơn đáng kể.

Để tìm hiểu cách kích hoạt backup được mã hóa GPG với tính năng Song song , hãy nhấp vào liên kết này.

Backup cấp khối


Một phương pháp thay thế ít phổ biến hơn một chút nhưng quan trọng đối với backup cấp file là backup cấp khối. Phong cách backup này còn gọi là “hình ảnh” vì nó được dùng để sao chép và khôi phục toàn bộ thiết bị. Backup cấp khối cho phép bạn sao chép ở cấp độ sâu hơn một file . Mặc dù bản backup dựa trên file có thể sao chép file 1, file 2 và file 3 vào vị trí backup , hệ thống backup dựa trên khối sẽ sao chép toàn bộ “khối” mà các file đó nằm trên đó. Một cách khác để giải thích khái niệm tương tự là nói rằng các bản backup cấp khối sao chép thông tin từng chút một. Họ không quan tâm đến các file trừu tượng có thể được đại diện bởi các byte đó (nhưng các file sẽ được chuyển nguyên vẹn trong quá trình này).

Một lợi thế của các bản backup cấp khối là chúng thường nhanh hơn. Mặc dù backup dựa trên file thường bắt đầu quá trình chuyển mới cho từng file riêng biệt, bản backup dựa trên khối sẽ chuyển các khối, thường lớn hơn, nghĩa là cần ít lần chuyển hơn để hoàn tất việc sao chép.

Sử dụng dd để thực hiện backup cấp khối


Cách đơn giản nhất để thực hiện backup cấp khối có lẽ là với tiện ích dd . Phần mềm này rất linh hoạt, nhưng nó cho phép ta sao chép thông tin từng chút một đến một vị trí mới. Điều này nghĩa là ta có thể backup một phân vùng hoặc đĩa vào một file duy nhất hoặc một thiết bị thô mà không cần bất kỳ bước sơ bộ nào.

Cách cơ bản nhất để backup phân vùng hoặc đĩa là sử dụng dd như sau:

<pre>
dd if = <span class = “highlight”> / path / of / original / device </span> of = <span class = “highlight”> / path / to / place / backup </span>
</pre>

Trong trường hợp này, if= chỉ định thiết bị đầu vào hoặc vị trí. Dấu of= cho biết file kết quả hoặc vị trí. Điều rất quan trọng cần nhớ là sự phân biệt này, bởi vì việc xóa toàn bộ ổ đĩa nếu chúng bị đảo ngược là điều rất quan trọng.

Nếu bạn muốn backup phân containers tài liệu của bạn , được đặt tại /dev/sda3 , bạn có thể tạo một file hình ảnh như sau:

dd if=/dev/sda3 of=~/documents.img 

Có một số giải pháp backup cấp khối khác có sẵn cho các máy Linux, nhưng ta sẽ không thảo luận ở đây.

Backup version


Một trong những lý do chính để backup dữ liệu là có thể khôi phục version trước của file hoặc các group file trong trường hợp có sự thay đổi hoặc xóa không mong muốn. Mặc dù tất cả các cơ chế backup được đề cập cho đến nay đều cung cấp điều này ở một mức độ nào đó, nhưng bạn có thể triển khai một hệ thống mạnh mẽ hơn bằng cách sử dụng một số công cụ bổ sung.

Cách thủ công để hoàn thành việc này là tạo một file backup trước khi chỉnh sửa, như sau:

cp file1 file1.bak nano file1 

Bạn thậm chí có thể tự động hóa quá trình này bằng cách tạo các file ẩn có dấu thời gian mỗi khi bạn sửa đổi file bằng editor của bạn . Ví dụ: bạn có thể đặt cái này trong file ~/.bashrc :

nano() { cp $1 .${1}.`date +%y-%m-%d_%H.%M.%S`.bak; /usr/bin/nano $1; } 

Bây giờ khi bạn gọi lệnh “nano”, nó sẽ tự động tạo các bản backup .

Điều này sẽ cung cấp một số mức backup , nhưng rất mỏng manh và có thể nhanh chóng làm đầy đĩa nếu bạn thường xuyên chỉnh sửa file . Nó không phải là một giải pháp tuyệt vời và có thể sẽ tệ hơn nhiều so với việc sao chép thủ công các file bạn định chỉnh sửa.

Một giải pháp thay thế giải quyết nhiều vấn đề cố hữu trong thiết kế này là sử dụng git , cụ thể là hệ thống kiểm soát version . Mặc dù nó có thể không rõ ràng, bạn có thể sử dụng git để kiểm soát hầu hết mọi loại file .

Bạn có thể tạo một repository git trong folder chính của bạn ngay lập tức, chỉ bằng lệnh vào:

cd ~ git init 

Bạn có thể cần phải điều chỉnh cài đặt ở đây để loại trừ một số file nhất định, nhưng nói chung, nó tạo ra version phức tạp ngay lập tức. Sau đó, bạn có thể thêm nội dung của folder của bạn và commit các file với điều này:

git add . git commit -m "Initializing home directory" 

Bạn cũng có thể dễ dàng đẩy đến một vị trí từ xa bằng cách sử dụng hệ thống tích hợp sẵn của git:

<pre>
git từ xa thêm server backup git: // <span class = “highlight”> backup server / path / to / project </span>
git push backup_server master
</pre>

Đây không phải là một hệ thống tuyệt vời để tự backup , nhưng kết hợp với một hệ thống backup khác, loại kiểm soát version này có thể cung cấp khả năng kiểm soát rất chi tiết các thay đổi bạn thực hiện.

Để tìm hiểu thêm về cách sử dụng gitcách sử dụng git để version các file bình thường , hãy xem các liên kết này.

Backup cấp VPS


Mặc dù điều quan trọng là phải tự mình quản lý các bản backup , DigitalOcean cũng cung cấp một số cơ chế để bổ sung các bản backup của bạn .

Ta có chức năng backup , thường xuyên thực hiện backup tự động cho các server đã kích hoạt dịch vụ này. Bạn có thể bật tính năng này trong quá trình tạo server bằng cách chọn hộp kiểm “ Backup ”:

Bản  backup  DigitalOcean

Thao tác này sẽ backup toàn bộ hình ảnh VPS của bạn. Điều này nghĩa là bạn có thể dễ dàng triển khai lại từ bản backup hoặc sử dụng nó làm cơ sở cho các server mới.

Để chụp ảnh hệ thống một lần, bạn cũng có thể tạo ảnh chụp nhanh. Chúng hoạt động theo cách tương tự như backup , nhưng không tự động. Mặc dù có thể chụp nhanh một hệ thống đang chạy, nhưng thông thường bạn nên tắt nguồn đảm bảo rằng hệ thống file ở trạng thái nhất quán. Bắt đầu từ tháng 10 năm 2016, các ảnh chụp nhanh có giá 0,05 đô la mỗi gigabyte mỗi tháng, dựa trên dung lượng được sử dụng trong hệ thống file . Bạn có thể tạo chúng bằng cách đi tới server của bạn và chọn “Ảnh chụp nhanh” từ menu bên trái:

Ảnh chụp nhanh DigitalOcean

Để tìm hiểu thêm về các bản backup và ảnh chụp nhanh DigitalOcean , hãy nhấp vào đây.

Tiếp tục


Trong bài viết này, ta chủ yếu thảo luận về các khái niệm và giải pháp backup khác nhau. Trong phần 2 , ta sẽ xem xét một số tùy chọn để kích hoạt tính năng dự phòng.

<div class = “author”> Bởi Justin Ellingwood </div>


Tags:

Các tin liên quan