มีใครประสบความสำเร็จในการซิงค์ที่แตกต่างอย่างแท้จริงกับ rsync ใน ESXi หรือไม่?


11

Berate ฉันในภายหลังในความจริงที่ว่าฉันใช้คอนโซลบริการเพื่อทำอะไรใน ESXi ...

ฉันได้รับ rsync binary (v3.0.4) ที่ใช้งานได้ใน ESXi 4.1U1 ฉันมักจะใช้ rsync ผ่าน cp เมื่อทำการคัดลอก VM หรือสำเนาสำรองจากที่เก็บข้อมูลในเครื่องไปยังที่เก็บข้อมูลอื่นในเครื่อง ฉันใช้ rsync เพื่อคัดลอกข้อมูลจากกล่อง ESXi หนึ่งไปยังอีกกล่อง แต่นั่นเป็นเพียงไฟล์ขนาดเล็ก

ในตอนนี้พยายามที่จะทำการซิงค์ที่แตกต่างอย่างแท้จริงของการสำรองข้อมูลที่ถ่ายผ่านghettoVCBระหว่างเครื่อง ESXi หลักของฉันและเครื่องรอง แต่แม้เมื่อฉันทำสิ่งนี้ภายในเครื่อง (หนึ่งที่เก็บข้อมูลไปยังอีกที่เก็บข้อมูลในเครื่อง ESXi เครื่องเดียวกัน) rsync จะปรากฏขึ้นเพื่อคัดลอกไฟล์ทั้งหมด ฉันมีสอง VMDK ของทั้งหมด 80GB ในขนาดและ rsync ยังคงใช้เวลาใดก็ได้ระหว่าง 1 และ 2 ชั่วโมง แต่เป็นของ VMDK จะไม่เจริญเติบโตที่มากในชีวิตประจำวัน

ด้านล่างนี้เป็นคำสั่ง rsync ที่ฉันกำลังดำเนินการ ฉันกำลังคัดลอกในเครื่องเพราะไฟล์เหล่านี้จะถูกคัดลอกไปยังที่เก็บข้อมูลที่สร้างจาก LUN บนระบบรีโมต ไม่ใช่ rsync ที่จะให้บริการโดย rsync daemon บนระบบรีโมต

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

นี่เป็นเพราะ ESXi เองทำการเปลี่ยนแปลงมากมายของ VMDK ที่เกี่ยวข้องกับ rsync เท่านี้ไฟล์ทั้งหมดจะต้องถูกส่งใหม่?

มีใครประสบความสำเร็จในการซิงค์จริงกับ ESXi หรือไม่


rsynce จะเพิ่มขึ้นตามค่าเริ่มต้น ยากที่จะเชื่อ แต่เป็นเรื่องจริง ฉันอยากรู้ว่าคุณจะดาวน์โหลดสำหรับ rsynce ที่ทำงานบน ESXi ได้อย่างไร ฉันมี ESXi 4.1

คำตอบ:


6

ดูเหมือนว่าคุณจะโอนการเปลี่ยนแปลงที่เพิ่มขึ้น 2GB เท่านั้น โปรดจำไว้ว่า rsync ยังคงต้องอ่านในไฟล์เดียวทั้งหมดและตรวจสอบมันดังนั้นจึงต้องอ่าน 80GB ของข้อมูล ตรวจสอบสถานะเซิร์ฟเวอร์ของคุณระหว่าง rsync คุณใช้ cpu หรือ IO ระหว่างการทำงานหรือไม่? คุณสามารถอ่านไฟล์ 80GB จากดิสก์ได้เร็วแค่ไหน? นั่นจะใกล้เวลาโอนขั้นต่ำของคุณ

สิ่งที่ควรทราบก็คือ rsync จะทำสำเนาของไฟล์ในขณะที่ถ่ายโอนจากนั้นย้ายไฟล์สุดท้ายเข้าที่ในการดำเนินการปรมาณู คุณสามารถดูได้โดยดูชื่อไฟล์ที่คล้ายกันพร้อมคำต่อท้ายแบบสุ่มระหว่างการถ่ายโอนในไดเรกทอรีปลายทาง ซึ่งหมายความว่าคุณต้องอ่านข้อมูล 160GB (80GB สำหรับแต่ละแหล่งข้อมูลและปลายทาง) และเขียนออก 80GB ทางด้านปลายทาง คุณเคยดูที่ --inplace option หรือไม่? มันอาจจะเป็นประโยชน์ที่นี่

ในระยะสั้นคุณอาจมีการเปลี่ยนแปลงเพียง 2GB แต่ rsync กำลังทำงานมาก คุณอาจ IO ถูกผูกไว้กับสิ่งที่การอ่านและการเขียนบนดิสก์เดียวกันอาจทำให้เกิดความขัดแย้งและการชะลอตัว


ขอบคุณ bot403 สำหรับการตอบกลับของคุณ ฉันสังเกตเห็นว่าไบต์ที่ถ่ายโอนลดลงอย่างมีนัยสำคัญ แต่ฉันก็ยังดูเวลารอ 30-45 + นาที ฉันเช่นกันอาจเพิ่งส่งไฟล์ใหม่ทั้งหมด อาจมีคอขวด IO อยู่ที่นี่ แต่ฉันคิดว่ามันอยู่ใน ESXi และฮาร์ดแวร์ไม่มาก ฉันจะย้ายไปที่ LUN และทดสอบที่นั่น ขอบคุณมาก ๆ
JuliusPIV

4

หัวข้อนี้เก่ามาก แต่อาจช่วยได้ใครซักคน

เนื่องจาก ESX ​​กำลังล็อคระบบไฟล์ในการเขียนบล็อกใหม่ทุกครั้งประสิทธิภาพจึงไม่ดีนักเมื่อใช้ตัวเลือก - แทนตำแหน่งที่คุณอาจได้ผลลัพธ์ที่ดีกว่า แต่ระวังหากคุณยกเลิกการซิงค์ไฟล์จะไม่สอดคล้องกัน มากกว่า. เกี่ยวกับความสอดคล้อง rsync ของไฟล์ที่เปิดอาจไม่สอดคล้องกัน -> ใช้ snapshot ก่อนดีกว่าก่อน>

ขอแสดงความนับถือ Marc


2

rsyncโดยลักษณะของมันที่คุณกำลังทำสำเนาไปยังประเทศที่มี ในกรณีนั้นพฤติกรรมเริ่มต้นของrsyncคือการปิดอัลกอริทึมการถ่ายโอนเดลต้าและทำการถ่ายโอน "ทั้งไฟล์" เหตุผลสำหรับพฤติกรรมเริ่มต้นนี้คือการถ่ายโอนแบบโลคอลไปยังโลคัลโดยใช้อัลกอริทึม delta-xfer จะช้ากว่าการคัดลอกไฟล์ทั้งหมดเนื่องจากอัลกอริทึมเดลต้าเกี่ยวข้องกับ CPU crunching มากกว่าการคัดลอกทั้งไฟล์

หากคุณรู้สึกว่าสำเนาโลคอลเป็นแบบโลคอลจะได้รับประโยชน์จากการใช้อัลกอริทึม delta-xfer คุณสามารถบังคับrsyncให้ใช้มันได้โดยการระบุตัวเลือก--no-W(หรือ--no-whole-file)


ขอบคุณสำหรับการตอบสนองของสตีเว่น! คุณถูกต้อง: ฉันกำลังทำสำเนาโลคัลสำหรับวัตถุประสงค์ในการทดสอบเท่านั้น (aka เพื่อยืนยันว่าจริง ๆ แล้วจะเป็นการซิงค์แบบต่างกัน) ในที่สุดไฟล์จะถูกคัดลอกไปยังที่เก็บข้อมูลในเครื่อง LUN ที่ฉันเคยเห็นซึ่งอยู่ในเครื่องระยะไกล มันจะไม่เป็นชนิดของการซิงค์ rsync-to-rsync สำหรับสิ่งที่คุ้มค่าฉันกำลังใช้--no-whole-fileตัวเลือกเป็นส่วนหนึ่งของคำสั่ง rsync มันเกินกว่ามุมมองของหน้าจอ
JuliusPIV

@ Julius: โอ้โหฉันพลาดแถบเลื่อนแนวนอนนั่น! ขอโทษด้วยที่ทำให้คุณเสียเวลา
Steven จันทร์
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.