Sử dụng tar và rsync để sẵn sàng cao


13

Tôi có các máy chủ đám mây Ubuntu đang chạy mà tôi không có quyền truy cập trực tiếp nhưng với ssh. Tôi đang sử dụng 'tar' để sao chép hoặc có tính sẵn sàng cao của máy chủ này. Tôi đã làm theo hướng dẫn từ liên kết [liên kết văn bản] [1]. Tôi đã thử cài đặt một máy chủ mới cùng phiên bản. Khi tôi trích xuất tar (tar -xvpzf ~ / clone.tgz -C /) ở đích (mới), cuối cùng nó kết thúc với đầu ra sau tương tự như dưới (không biết có phải lỗi không).

tar: var/run: time stamp 2010-11-09 17:09:11 is 7335.159880406 s in the future
tar: var/spool/postfix/usr/lib/zoneinfo: time stamp 2010-11-09 17:08:26 is 7290.159730037 s in the future
tar: var/lib: time stamp 2010-11-09 17:27:51 is 8455.159349527 s in the future
tar: usr/bin: time stamp 2010-11-09 17:28:02 is 8466.159254097 s in the future
tar: usr/share/sgml: time stamp 2010-11-09 17:27:47 is 8451.158909506 s in the future
tar: usr/share/man/man7: time stamp 2010-11-09 17:27:50 is 8454.158393583 s in the future
tar: usr/share/man/man1: time stamp 2010-11-09 17:28:02 is 8466.158166556 s in the future
tar: usr/share/man/man8: time stamp 2010-11-09 17:27:51 is 8455.158057701 s in the  future
tar: usr/share/omf/time-admin: time stamp 2010-11-09 17:27:52 is 8456.157830449 s in the future
---------------------------------------------
---------------------------------------------
---------------------------------------------

Tôi đang sử dụng lệnh sau để tạo tệp tar của các thư mục được chỉ định trên hệ thống nguồn.

tar -cvzf ~/clone.tgz --exclude ~/clone.tgz --exclude /etc/hosts --exclude /etc/hostname --exclude /etc/udev/ --exclude /etc/network/interfaces --exclude /etc/resolv.conf  /etc /home /opt /tmp /usr /var /mnt
  • Có bất kỳ biện pháp phòng ngừa trước khi sử dụng tar? (tar là một lần tạo từ đó tôi sẽ sử dụng rsync)
  • Tôi nên bao gồm bất kỳ thư mục nào như bin hoặc lib? - đề nghị tôi
  • Tôi có nên loại trừ bất kỳ thư mục? Giống như tôi gặp sự cố về thiết bị mạng (eth0) (không khởi động được eth0). Vì vậy, trong lệnh trên tôi đã loại trừ "/ etc / udev /" và sau đó tôi cảm thấy điều này ổn. Như thế này, có điều gì tôi phải loại trừ khỏi / etc / hoặc từ bất kỳ thư mục nào tôi đã đưa vào không? - đề nghị tôi.
  • Làm cách nào tôi có thể lên lịch rsync (bkp gia tăng) với kết hợp ssh để đồng bộ hóa các thư mục (được chỉ định trong tar) đến vị trí từ xa (say / mnt / newdir) mà tôi có thể tar và trích xuất nó sau trong trường hợp lỗi hệ thống. Rsync có thể được lên lịch để chạy như người dùng root nhưng ssh sẽ nhắc nhập mật khẩu. FYI, sudo hoàn toàn bị vô hiệu hóa và cũng như đăng nhập ssh trực tiếp vào root cũng bị vô hiệu hóa.

Nếu có cách nào tốt hơn mà không gây hại cho máy chủ để đạt được điều này, có thể đề xuất.

[1]: http://ubuntuforums.org/showthread.php ? t = 525660

Câu trả lời:


9

Tôi sẽ khuyên bạn nên sử dụng rsync thay vào đó, nó sẽ cho phép bạn thực hiện một hệ thống trực tiếp để đồng bộ hóa hệ thống thực sự mà không cần các tệp tạm thời. Nó cũng cung cấp lợi ích của việc thực hiện cập nhật gia tăng khi bạn cần cập nhật bản sao.

Tôi sẽ chỉ loại trừ: / Proc / / sys / dev / tmp / mnt Trên hệ thống nhân bản, bạn sẽ cần đảm bảo / etc / fstab và /boot/grub/grub.cfg được cập nhật với UUID của các phân vùng hệ thống nhân bản.

Nếu bạn có một cơ sở dữ liệu như mysql, bạn sẽ cần phải cẩn thận và dừng DB trước khi thực hiện sao chép.


vâng, cũng được nhắc nhở, tôi nghĩ rằng tôi sẽ phải loại trừ '/ etc / fstab' và '/boot/gru/grub.cfg'. Cái này tốt không?. Vui lòng đặt các lệnh để đồng bộ hóa gia tăng rsync của các thư mục được chỉ định.
dùng3215

Ofcference /boot/grub/grub.cfg hoàn toàn không bao gồm
user3215

Làm cách nào để cập nhật UUID của hệ thống nhân bản.
dùng3215

Bạn sẽ cần thay thế các UUID từ các phân vùng ban đầu trong cấu hình fstab và grub bằng các UUID của các phân vùng của hệ thống nhân bản. Bạn có thể liệt kê các id phân vùng với: blkid.
João Pinto

Bạn muốn nói UUID phải giống nhau trên cả hai hệ thống.
dùng3215

6

Trước hết, nhiều nhà cung cấp đám mây IaaS cung cấp khả năng chụp nhanh mạnh mẽ giải quyết vấn đề này khá dễ dàng.

Trên EC2, nếu bạn chạy một hệ thống dựa trên EBS, bạn có thể chỉ cần chụp ảnh định kỳ. Nếu một cái gì đó khủng khiếp xảy ra với thể hiện nguồn, bạn có thể quay lại ảnh chụp nhanh trước đó trên một cá thể hoàn toàn mới. Nếu bạn muốn lưu trữ một ảnh chụp nhanh, bạn có thể khởi động một phiên bản khác có đính kèm và sử dụng một cái gì đó như tar + s3 mà không ảnh hưởng tiêu cực đến hộp sản xuất.

Có một số vấn đề với cách tiếp cận này có thể không rõ ràng ngay bây giờ.

  1. Bạn đang tự khóa mình vào một công nghệ duy nhất. Nếu bạn làm việc này trên Ubuntu 10.10 và bạn muốn đến 11.04, bạn phải nâng cấp hệ thống nguồn, sau đó chụp lại nó. Tương tự, nếu bạn sử dụng ảnh chụp nhanh EBS của EC2, bạn cần một giải pháp mới nếu bạn truy cập vào đám mây rackspace.
  2. Bạn không có lịch sử thay đổi nếu bạn sử dụng rsync. Nếu bạn sửa đổi một cái gì đó trên hệ thống 1, sau đó một cái gì đó bị hỏng, bạn cũng có thể sẽ phá vỡ hệ thống sao lưu của mình khi bạn rsync.
  3. Rsync có thể có tác động rất cao đến hệ thống sản xuất của bạn.

Những gì bạn thực sự muốn là một hệ thống quản lý cấu hình và dữ liệu sẵn sàng cao.

Tôi khuyên bạn nên chọn một hệ thống quản lý cấu hình, như con rối (chính!), Đầu bếp hoặc cengine. Bắt đầu thực hiện tất cả các cấu hình của bạn trong hệ thống quản lý cấu hình, và sau đó bạn có thể chỉ cần khởi động một hệ thống chung và áp dụng quản lý cấu hình cho nó. Thêm vào 'etckeeper' và bạn có lịch sử.

Đối với dữ liệu có tính sẵn sàng cao, rsync nên hoạt động và đơn giản hơn nhiều vì bạn có thể sao chép dữ liệu bạn muốn. Ngoài ra còn có drbd để có số tiền cho "mạng RAID1". Đây không phải là sự thay thế cho sao lưu dữ liệu, bao gồm các ảnh chụp nhanh lịch sử (cho dù thông qua các ảnh chụp nhanh của thiết bị khối hoặc một cái gì đó như tar) thay vì đồng bộ hóa với máy chủ khôi phục (nếu ai đó xóa tất cả dữ liệu được gắn vào hộp khôi phục, hãy xóa tất cả có quá không?)


2

Các tin nhắn có khả năng gây ra bởi vì đồng hồ máy chủ mới bị chậm trễ so với đồng hồ cũ.

Nếu bạn đang sao chép cấu hình và cơ sở dữ liệu của trình quản lý gói (và bạn là), bạn nên sao chép / bin, / sbin và / lib hoặc hệ thống đích sẽ ở trạng thái không nhất quán. Một cách tiếp cận khác sẽ là loại trừ /etc/dpkg.info / etc / apt / var / lib / apt và / var / lib / dpkg và cài đặt lại tất cả các gói trong hệ thống đích.

Các tệp trong / var / dpkg và / var / apt chứa thông tin về những gì được cài đặt trong hệ thống của bạn. Nếu bạn không loại trừ chúng, trình quản lý gói sẽ tin rằng tất cả các chương trình và phần phụ thuộc trong hệ thống mẹ được cài đặt trong mục tiêu. Nhưng nếu bạn không sao chép / bin, / sbin, v.v ... thì chúng sẽ không. Rất có khả năng một cái gì đó sẽ bị hỏng trong lần cài đặt hoặc cập nhật tiếp theo.

Để giữ sau đó được đồng bộ hóa với rsync, tôi đã luôn sử dụng xác thực dựa trên chứng nhận, không phải mật khẩu. Nó khá dễ cài đặt, tôi nhớ rằng tôi đã làm nó chỉ đọc trang người đàn ông lần đầu tiên. Dưới đây là một hướng dẫn nhanh , nếu bạn muốn biết thêm thông tin tôi tin rằng điều này xứng đáng với một câu hỏi mới.


Số / var không được loại trừ. Trong lệnh trên sau "--exclude /etc/resolv.conf", mọi thứ được bao gồm từ /etc/..../var / mnt. Trên thực tế tôi đã chỉ định hai khoảng trắng giữa độ phân giải và / vv. Ở đây nó không hiển thị.
dùng3215

xin lỗi tôi đã quên phần liên kết
user3215

Ok, vì vậy tôi thậm chí nên bao gồm bin, sbin và lib, ở đây vẫn ổn. Oh .. Tôi phải loại trừ chúng và cài đặt tất cả các gói.
dùng3215

có thực sự cần thiết để loại trừ /etc/dpkg.info / etc / apt / var / lib / apt và / var / lib / dpkg ..?
dùng3215

Trả lời cập nhật.
Javier Rivera
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.