Câu hỏi Sử dụng tar và rsync để có tính sẵn sàng cao


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 [văn bản liên kết] [1]. Tôi đã thử cài đặt một máy chủ mới của cùng một phiên bản. Khi tôi trích xuất tar (tar -xvpzf ~ / clone.tgz -C /) trên đích (mới), ở cuối nó kết thúc với đầu ra sau tương tự như dưới đây (không biết nếu nó là lỗi).

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 một tập tin 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ó biện pháp phòng ngừa nào trước khi sử dụng tar không? (tar là một thời gian tạo ra từ sau đó tôi sẽ sử dụng rsync)
  • Tôi có nên đưa thêm bất kỳ thư mục nào như bin hoặc lib không? - đề nghị tôi
  • Tôi có nên loại trừ bất kỳ thư mục nào không? Giống như tôi gặp vấn đề 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 này tôi cảm thấy điều này là tốt. Như thế này, có bất kỳ điều tôi đã loại trừ từ / etc / hoặc từ bất kỳ thư mục mà tôi đã bao gồm? - đề nghị tôi.
  • Làm thế nào tôi có thể lên lịch rsync (bkp gia tăng) với kết hợp ssh để đồng bộ các thư mục (được chỉ định bằng tar) đến vị trí từ xa (nói / mnt / newdir) mà tôi có thể tar và giải nén sau này trong trường hợp lỗi hệ thống. Rsync có thể được lên lịch để chạy với tư cách người dùng root nhưng ssh sẽ nhắc mật khẩu. FYI, sudo là hoàn toàn vô hiệu hóa và cũng như đăng nhập trực tiếp ssh để root cũng bị vô hiệu hóa.

Nếu có bất kỳ 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ể đề nghị.

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


13
2017-11-10 12:02


gốc




Các câu trả lời:


Tôi 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 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 cập nhật gia tăng khi bạn cần cập nhật bản sao.

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

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.


9
2017-11-10 16:14



có, cũng 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 lệnh cho đồng bộ hóa gia tăng rsync của các thư mục được chỉ định. - user3215
Ofcourse /boot/grub/grub.cfg không được bao gồm - user3215
Làm cách nào để cập nhật UUID của hệ thống bản sao. - user3215
Bạn sẽ cần phải thay thế UUID từ phân vùng gốc trong cấu hình fstab và grub bằng UUID của phân vùng của hệ thống bản sao. Bạn có thể liệt kê các id phân vùng với: blkid. - João Pinto
Bạn có nghĩa là để nói rằng UUIDs nên giống nhau trên cả hai hệ thống. - user3215


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ể định kỳ chụp nhanh nó. Nếu có điều gì đó khủng khiếp xảy ra với cá thể nguồn, bạn có thể quay lại ảnh chụp nhanh trước đó trên một phiên bản 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 thể hiện khác với nó kèm theo 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 phương pháp này có thể không rõ ràng ngay bây giờ.

  1. Bạn đang tự nhốt mình vào một công nghệ duy nhất. Nếu bạn nhận được điều này làm việc trên Ubuntu 10,10, và bạn muốn đi đến 11,04, bạn phải nâng cấp hệ thống nguồn, sau đó chụp lại nó một lần nữa. Tương tự như vậy, nếu bạn sử dụng ảnh chụp 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 không gian rack.
  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ì đó phá vỡ, bạn sẽ có khả năng phá vỡ hệ thống sao lưu của bạn quá khi bạn rsync.
  3. Rsync có thể 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 (trong chính!), Đầu bếp hoặc cfengine. 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 chỉ có thể 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 sẵn có cao, rsync sẽ hoạt động, và được nhiều hơn nữa thẳng về phía trước như bạn chỉ có thể sao chép dữ liệu bạn muốn. Ngoài ra còn có drbd để có những gì số tiền cho một "mạng RAID1". Đây không phải là các thay thế cho các bản sao lưu dữ liệu, bao gồm các snapshot lịch sử (cho dù thông qua các snapshot của thiết bị khối hay thứ gì đó như tar) thay vì đồng bộ với một máy chủ phục hồi (nếu ai đó xóa tất cả dữ liệu được kết nối với hộp khôi phục, xóa tất cả có chứ?)


6
2017-11-26 07:10





Các tin nhắn có khả năng gây ra bởi vì đồng hồ máy chủ mới là phía sau trong thời gian hơn so với cũ hơn.

Nếu bạn nhân bản cấu hình và cơ sở dữ liệu của trình quản lý gói (và bạn), bạn nên sao chép / bin, / sbin và / lib hoặc hệ thống đích sẽ ở trong trạng thái không nhất quán. Một cách tiếp cận khác 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 tin 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ụ thuộc trong hệ thống cha mẹ được cài đặt trong đích. Nhưng nếu bạn không sao chép / bin, / sbin, vv ... họ sẽ không. Rất có khả năng một điều gì đó sẽ xảy ra trong lần cài đặt hoặc cập nhật tiếp theo.

Để tiếp tụ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 chỉ chứ không phải mật khẩu. Nó khá dễ dàng để thiết lập, tôi nhớ rằng tôi đã làm nó chỉ cần đọc trang người đàn ông lần đầu tiên. Đây là một cách nhanh chóng hướng dẫn, 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 là một câu hỏi mới.


2
2017-11-10 12:20



Số / var không bị loại trừ. Trong lệnh trên sau "--exclude /etc/resolv.conf" mọi thứ được bao gồm trong /etc/..../var / mnt. Thực ra tôi đã chỉ định hai khoảng trống giữa resolv.conf và / etc. Ở đây nó không được hiển thị. - user3215
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, nó là tốt ở đây. Oh .. Tôi phải loại trừ những người và cài đặt tất cả các gói. - user3215
là nó thực sự cần thiết để loại trừ /etc/dpkg.info / etc / apt / var / lib / apt và / var / lib / dpkg ..? - user3215
Đã cập nhật câu trả lời. - Javier Rivera