Có ai đạt được đồng bộ hóa thực sự với rsync trong ESXi chưa?


11

Nói với tôi sau này về việc tôi đang sử dụng bảng điều khiển dịch vụ để làm bất cứ điều gì trong ESXi ...

Tôi đã có một nhị phân rsync hoạt động (v3.0.4) mà tôi có thể sử dụng trong ESXi 4.1U1. Tôi có xu hướng sử dụng rsync trên cp khi sao chép VM hoặc sao lưu từ kho dữ liệu cục bộ này sang kho dữ liệu cục bộ khác. Tôi đã sử dụng rsync để sao chép dữ liệu từ một hộp ESXi sang hộp khác nhưng đó chỉ là cho các tệp nhỏ.

Hiện tại đang cố gắng thực hiện các đồng bộ vi sai thực sự của các bản sao lưu được thực hiện thông qua ghettoVCB giữa máy ESXi chính của tôi và máy phụ. Nhưng ngay cả khi tôi thực hiện việc này cục bộ (một kho dữ liệu này đến kho dữ liệu khác trên cùng một máy ESXi), rsync vẫn xuất hiện để sao chép toàn bộ các tệp. Tôi đã có hai VMDK của hoàn toàn 80GB trong kích thước, và rsync vẫn mất bất cứ nơi nào từ 1 đến 2 tiếng đồng hồ nhưng của VMDK không phát triển nhiều hàng ngày.

Dưới đây là lệnh rsync tôi đang thực thi. Tôi đang sao chép cục bộ vì cuối cùng các tệp này sẽ được sao chép vào kho dữ liệu được tạo từ LUN trên hệ thống từ xa. Đây không phải là một rsync sẽ được phục vụ bởi một daemon rsync trên một hệ thống từ xa.

rsync -avPSI VMBACKUP_2011-06-10_02-27-56/* VMBACKUP_2011-06-01_06-37-11/ --stats --itemize-changes --existing --modify-window=2 --no-whole-file
sending incremental file list
>f..t...... VM-flat.vmdk
 42949672960 100%   15.06MB/s    0:45:20 (xfer#1, to-check=5/6)
>f..t...... VM.vmdk
         556 100%    4.24kB/s    0:00:00 (xfer#2, to-check=4/6)
>f..t...... VM.vmx
        3327 100%   25.19kB/s    0:00:00 (xfer#3, to-check=3/6)
>f..t...... VM_1-flat.vmdk
 42949672960 100%   12.19MB/s    0:56:01 (xfer#4, to-check=2/6)
>f..t...... VM_1.vmdk
         558 100%    2.51kB/s    0:00:00 (xfer#5, to-check=1/6)
>f..t...... STATUS.ok
          30 100%    0.02kB/s    0:00:01 (xfer#6, to-check=0/6)

Number of files: 6
Number of files transferred: 6
Total file size: 85899350391 bytes
Total transferred file size: 85899350391 bytes
Literal data: 2429682778 bytes
Matched data: 83469667613 bytes
File list size: 129
File list generation time: 0.001 seconds
File list transfer time: 0.000 seconds
Total bytes sent: 2432530094
Total bytes received: 5243054

sent 2432530094 bytes  received 5243054 bytes  295648.92 bytes/sec
total size is 85899350391  speedup is 35.24

Có phải vì ESXi đang thực hiện quá nhiều thay đổi đối với VMDK mà theo như rsync có liên quan, toàn bộ tệp phải được truyền lại?

Có ai thực sự đạt được đồng bộ hóa thực tế với ESXi?


rsynce được tăng theo mặc định. Khó tin, nhưng đúng. Tôi tò mò nơi bạn tải xuống cho rsynce hoạt động trên ESXi. Tôi có ESXi 4.1

Câu trả lời:


6

Có vẻ như bạn chỉ chuyển 2GB thay đổi gia tăng. Hãy nhớ rằng rsync vẫn phải đọc trong toàn bộ một tệp và kiểm tra nó để nó phải đọc 80GB dữ liệu. Kiểm tra số liệu thống kê máy chủ của bạn trong rsync. Bạn có bị ràng buộc cpu hoặc IO trong quá trình hoạt động không? Bạn có thể đọc tệp 80GB nhanh như thế nào? Đó sẽ là gần thời gian chuyển tối thiểu tuyệt đối của bạn.

Cũng cần lưu ý rằng rsync tạo một bản sao của tệp trong khi chuyển sau đó di chuyển tệp cuối cùng vào vị trí trong một hoạt động nguyên tử. Bạn có thể thấy điều này bằng cách xem một tên tệp tương tự với hậu tố ngẫu nhiên trong quá trình chuyển trong thư mục đích. Điều này có nghĩa là bạn phải đọc 160 GB dữ liệu (mỗi tệp 80 GB cho mỗi nguồn và đích) và viết ra 80 GB ở phía đích. Bạn đã xem tùy chọn --inplace chưa? Nó có thể có lợi ở đây.

Nói tóm lại, bạn có thể chỉ có 2GB thay đổi nhưng rsync đang thực hiện RẤT NHIỀU công việc. Có lẽ bạn bị ràng buộc bởi vì tất cả những gì đọc và ghi trên cùng một đĩa có thể gây ra nhiều tranh cãi và làm chậm.


Cảm ơn bot403 đã phản hồi của bạn. Tôi đã nhận thấy rằng các byte được chuyển thấp hơn đáng kể, nhưng tôi vẫn đang xem xét thời gian chờ 30-45 + phút. Tôi cũng có thể vừa gửi lại toàn bộ các tập tin. Có thể có một cổ chai IO ở đây nhưng tôi nghĩ đó là trong ESXi và không quá nhiều phần cứng. Tôi sẽ chuyển nó đến LUN và thử nghiệm ở đó. Cảm ơn rất nhiều tất cả.
JuliusPIV

4

Chủ đề này rất cũ, nhưng nó có thể giúp được ai đó.

Vì ESX đang khóa hệ thống tệp trên mỗi lần ghi khối mới, hiệu suất không tốt lắm, với Tùy chọn - trong đó bạn có thể nhận được kết quả tốt hơn, nhưng lưu ý, nếu bạn hủy đồng bộ hóa, tệp sẽ không nhất quán hơn. Về tính nhất quán, rsync của một tệp đang mở có thể không nhất quán theo bất kỳ cách nào -> sử dụng tốt hơn ảnh chụp nhanh trước rsync.

Trân trọng Marc


2

Nhìn bề ngoài, bạn đang thực hiện một bản sao từ địa phương đến địa phương rsync. Trong trường hợp đó, hành vi mặc định của rsynclà tắt thuật toán chuyển delta và thực hiện chuyển "toàn bộ tập tin". Lý do căn bản cho hành vi mặc định này là việc chuyển từ cục bộ sang cục bộ bằng thuật toán delta-xfer thường sẽ chậm hơn so với việc sao chép toàn bộ các tệp, vì thuật toán delta liên quan đến việc xử lý CPU nhiều hơn so với chỉ sao chép toàn bộ tệp.

Nếu bạn cảm thấy rằng một bản sao cục bộ-cục bộ sẽ được hưởng lợi từ việc sử dụng thuật toán delta-xfer, bạn có thể buộc rsyncsử dụng nó bằng cách chỉ định tùy chọn --no-W(hoặc --no-whole-file).


Cảm ơn đã trả lời Steven! Bạn đã đúng: Tôi đang thực hiện một bản sao cục bộ hoàn toàn cho mục đích thử nghiệm (còn gọi là xác nhận nó thực sự sẽ thực hiện đồng bộ hóa vi sai). Cuối cùng, các tệp sẽ được sao chép vào kho dữ liệu cục bộ, một LUN mà tôi đã tiếp xúc nằm trên một máy từ xa. Nó thực sự không phải là một loại đồng bộ hóa rsync-to-rsync. Để biết giá trị của nó, tôi đang sử dụng --no-whole-filetùy chọn này như là một phần của lệnh rsync; Nó vượt ra ngoài tầm nhìn của màn hình.
JuliusPIV

@Julius: Rất tiếc, tôi đã bỏ lỡ thanh cuộn ngang đó! Oh tốt, xin lỗi vì đã lãng phí thời gian của bạn.
Steven Thứ Hai ngày
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.