Cafemmo Club
← Quay lại danh sách

Thảo luận: Tôi backup 5TB dữ liệu thế nào?

xmenvn251025/06/20205967 lượt xem29 bình luận
Xin chào tất cả anh em! Đêm đã khuya, hà nội tuy đẹp nhưng nóng như cái lò tôn. Bất chợt một cơn mưa rào về đêm làm lòng tôi xao xuyến. Sau khi vừa giải quyết nỗi buồn (đi ẻ) và chát cùng cu @Nai , chắc cu ấy giờ này đã ngủ rồi. Men tôi quyết định lên forum chém gió, tuy nhiên cũng chẳng được mấy mống online. Chắc anh em chưa vợ còn đang lang thang tìm tình yêu vẫy gọi. Anh em đã vợ giờ chắc cũng đang thăng hoa. Anh em thiếu tiền như tôi thì đang cày đêm. Hehe. Lòng vòng vậy thôi, giờ xin phép đi vào chủ đề chính. Tôi backup 5TB dữ liệu thế nào? Tôi có 5TB dữ liệu: chủ yếu gồm file dạng (hình ảnh, mini clip, some file lung tung apk android), nó đang lưu tại 1 máy chủ chạy chính cũng khá êm. Nó cung cấp dữ liệu tĩnh cho các trang web khác của tôi. Nó mà sập hoặc cụ đi, là dàn site theo nó cũng mất. Sau nhiều ngày suy nghĩ, tôi quyết định đặt mua 1 máy chủ dự phòng. Backup toàn bộ dữ liệu qua đó. Để tránh điều xấu nhất khi máy chủ lỗi hoặc nặng là hỏng ổ cứng. Và quan trọng nhất là nó phải backup tự động chứ? Tất nhiên rồi. Tự động nhé. Có 2 cái tên anh em cần nhớ rõ là máy chủ chínhmáy chủ dự phòng nhé. Tránh nhầm lẫn khi đọc tiếp. Post lên diễn đàn để thảo luận cùng anh em, biết đâu mọi người có giải pháp còn hay hơn. Các bước quan trọng cần xác định như sau: 1. Đặt mua máy chủ dự phòng với dung lượng ổ đĩa cứng lớn hơn hoặc bằng ổ đĩa máy chủ chính ban đầu. (cái này a em tự hiểu nha) 2. Clone toàn bộ dữ liệu qua máy chủ dự phòng. - Ở bước này mình suy nghĩ 2 vấn đề. Backup realtime hay chỉ backup sau 1 vài giờ. Realtime: cơ chế đồng bộ tức thời giữa hai máy chủ, có thể delay 1 vài giây. 2.1. Backup: master to master. (là kiểu backup dữ liệu mà mọi thay đổi từ hai máy chủ đều được cập nhật như nhau) 2.2 . Backup : master to slave (là kiểu backup dữ liệu mà mọi thay đổi từ máy chủ ban đầu đều được cập nhật vào máy chủ dự phòng) Tôi quyết định chọn cơ chế master to slave và backup sau 1 vài giờ chỉ định theo ý muốn, vì tôi chỉ cần vậy thôi. 3. Tiến hành chi tiết. Mình thường dùng HĐH centos, giờ thì bắt đầu. Cài đặt các công cụ cần thiết. 3.1 Rsync – Công cụ đồng bộ dữ liệu hiệu quả. Rsync được cài đặt dễ dàng với một dòng lệnh:
yum install rsync -y
3.2 SSH Keys - Tạo SSH Keys copy dữ liệu giữa 2 máy chủ không cần mật khẩu root. (không cần mật khẩu đăng nhập) SSH Keys là một phương thức xác thực đăng nhập với máy chủ qua SSH bằng việc đối chiếu giữa một cặp keys, bao gồm một khóa riêng tư (private key) và khóa công khai (public key) tương ứng. SSH Keys sử dụng giao thức xác thực challenge-response mà trong đó một bên trình bày một câu hỏi – challenge và một bên khác phải cung cấp một câu trả lời hợp lệ – response để được chứng thực. Thông thường, bạn đăng nhập VPS thông qua username root và password tự động sinh ra do nhà phát hành cung cấp. Bạn có thể mất quyền truy cập VPS nếu để lộ mật khẩu hay bị dò tìm mật khẩu qua Brute Force Attack. Do đó, việc sử dụng SSH Keys sẽ bảo mật hơn rất nhiều so với phương pháp đăng nhập dùng mật khẩu truyền thống. Có thể hiểu, Private Key là chìa khóa còn Public Key là ổ khóa. Thực hiện bước này trên cả hai máy chủ. Lưu ý: khi được hỏi passphrase, nên nhấn phím Enter để trống, tránh phải nhập thêm mật khẩu một lần nữa khi sử dụng key. Đại khái enter 3 lần.

ssh-keygen -t rsa -b 2048
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): #nơi lưu key
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): #mật khẩu cho private key
Enter same passphrase again: #xác nhận lại mật khẩu cho private key
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.

# mkdir ~/.ssh/
# nano ~/.ssh/authorized_keys
Copy toàn bộ nội dung Public key (dạng ssh-rsa AAAA...) chèn thêm phía cuối file. Nhấn Ctrl+O để lưu lại nội dung và Ctrl+X để thoát khỏi editor. Bật chế độ đăng nhập bằng SSH Keys: kích hoạt (uncomment) các tham số sau trong SSH Config tại /etc/ssh/sshd_config

PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
Sau đó, khởi động lại SSH Service # service sshd restart 3.3 Copy public key qua máy chủ dự phòng. Quan trọng nhất là bước này vì chỉ làm 1 lần nhưng cần lưu ý. Tại máy chủ chính:

ssh-copy-id -i /root/.ssh/id_rsa.pub root@ip-máy-chủ-dự-phòng "-p 22"
Bạn chọn yes, gõ chữ yes theo đúng yêu cầu nhé. Nhập mật khẩu root của máy chủ dự phòng là xong. Chú ý: -p 22 là port ssh thông thường, mình thì lại để port khác để tránh scan Brute Force Attack. Nếu anh em đổi thì thay bằng port đó nhé. 3.4. Cài đặt linux screen.

yum install screen -y
Tại sao phải cài nó? Đơn giản vì, Screen Linux là chương trình giúp lập trình viên:
  • Mở nhiều cửa sổ shell từ một terminal command để thực thi nhiều lệnh cùng lúc: chạy lệnh đa nhiệm.
  • Giữ Shell hoạt động kể cả khi ngắt kết nối (mất điện, rớt mạng, hoặc giữ một chương trình chạy trong thời gian dài).
  • Khôi phục lại kết nối nhưng vẫn giữ phiên làm việc của shell từ bất kỳ máy nào.
3.5 Copy dữ liệu bắt đầu. Mình có thư mục dữ liệu là datamedia (/home/datamedia), giờ mình sẽ copy qua máy chủ dự phòng. [B]Tại máy chủ chính. [/B]

screen -S name1

rsync -avh   /home/datamedia  root@ip-máy-chủ-dự-phòng:/home/  -e "ssh -p 22"  --info=progress2
Nhấn Ctrl + A +D để thoát khỏi màn hình screen, cho nó chạy tự động thôi. --info=progress2; Hiển thị chi tiết nội dung đang copy. Tìm hiểu chi tiết về rsync, mình sẽ không nói ở đây. Anh em cần thì cùng thảo luận nhé. Chà chà, nó bắt đầu chạy, do dữ liệu khá lớn nên khi chạy lần đầu tiên mình mất đến 36h do Ổ cứng HDD, khi sử dụng hai máy chủ ssd thì thời gian chỉ còn 5h. Băng thông máy chủ là không giới hạn nên cứ thoải mái. Quá trình copy nhanh hay chậm phụ thuộc vào nhiều yếu tố, cổng mạng, ổ đĩa SSD hay HDD, CPU và RAM nhàn rỗi. Hoàn thành backup. Mình muốn backup định kỳ 1h/1 lần và chỉ cập nhật file mới thì như sau.

screen -S name1

while true; do rsync --ignore-existing -avh   /home/datamedia  root@ip-máy-chủ-dự-phòng:/home/  -e "ssh -p 22"  --info=progress2; sleep 3600; done
Nhấn Ctrl + A +D để thoát khỏi màn hình screen. Nó sẽ tự động backup khi có dữ liệu mới sau 3600s = 1h. Cập nhật dữ liệu mới thì nhanh hơn rất nhiều so với lúc copy dữ liệu lần đầu tiên, thường chỉ mất 15p - 20p, nó sẽ sleep và sau 3600s lại tiếp tục. Bạn có thể thay đổi giá trị này tùy thích, để 1s cũng được. Bài viết trên sử dụng khá nhiều kiến thức nếu bạn mới tìm hiểu về linux, các từ khóa cần tìm hiểu trên google tham khảo cho bạn, hướng dẫn về rsync, hướng dẫn về screen linux, SSH Keys là gì, copy dữ liệu giữa hai máy chủ không cần mật khẩu.... Bài viết xin được kết thúc. Xin mời anh em thảo luận và chém gió. Bài viết trên thuộc bản quyền cafemmo. Anh em copy đi đâu thì nhớ nhé. Chúc anh em nhiều điều tốt lành.

Bình luận

Đang tải...

Đang kiểm tra đăng nhập...

Thảo luận: Tôi backup 5TB dữ liệu thế nào? · Cafemmo Club