ทางเลือกในการ robocopy / MIR


2

เราเรียกใช้เว็บแอปจำนวนมากที่เก็บข้อมูลในเครื่องจำนวนมากในไฟล์ xml ขนาดเล็ก ส่วนหนึ่งของกลยุทธ์การสำรองข้อมูล / การกู้คืนของเราคือการสร้างมิเรอร์โลคัลของระบบไฟล์ผ่าน VPN ไปยังศูนย์การโฮสต์

การเชื่อมต่อ VPN ทำได้เพียงผ่าน 12Mbps ADSL และในขณะที่มีไฟล์และไดเรกทอรีจำนวนมากจำนวนไฟล์จริงที่เปลี่ยนแปลงมีขนาดค่อนข้างเล็ก

แม้ว่าแบนด์วิดท์อาจเป็นปัญหา แต่ฉันเห็นผลลัพธ์เช่นผลลัพธ์ด้านล่าง robocopy / MIR ใช้เวลา 5 ชั่วโมงในการทำงาน แต่เพียง 30 นาทีเพื่อทำการคัดลอกจริง

ไม่มีใครมีข้อเสนอแนะใด ๆ เกี่ยวกับวิธีการปรับปรุงนี้ 5 ชั่วโมงตอนนี้มีพรมแดนติดช้าเกินไปและหากเราไม่สามารถหาทางเร่งความเร็วได้เราก็จะต้องหาวิธีแก้ปัญหาที่แตกต่างออกไปโดยสิ้นเชิง

            Total    Copied   Skipped  Mismatch    FAILED    Extras
 Dirs :     17625      6618     11007         0         0         0
Files :   1112430      1223   1111207         0         0         0
Bytes :  57.451 g  192.25 m  57.263 g         0         0         0
Times :   5:01:23   0:35:55                       0:00:00   4:25:27

Speed :               93509 Bytes/sec.
Speed :               5.350 MegaBytes/min.

Ended : Fri Apr 16 05:54:23 2010

คำตอบ:


3

Robocopy จะต้องแจกแจงไฟล์โลคัลและรีโมตทั้งหมดก่อนเพื่อพิจารณาว่าไฟล์ใดที่ต้องถูกถ่ายโอน นี่น่าจะเป็นสิ่งที่ต้องใช้เวลา

ถ้าคุณรีเซ็ตแอตทริบิวต์ไฟล์เก็บถาวรหลังจากทำสำเนาสำรองสำเร็จ

attrib -a /s *

จากนั้นทุกครั้งที่มีการเขียนไฟล์ลงในไฟล์เก็บถาวรบิตจะถูกตั้งค่าโดยอัตโนมัติ ครั้งต่อไปคุณสามารถบอก Robocopy ให้เก็บไฟล์ด้วยชุดแฟล็ก A เท่านั้น:

robocopy source destination /mir /a

ฉันไม่ได้ทำการทดสอบนี้ แต่ฉันเชื่อว่ามันน่าจะเร็วกว่าเพราะ Robocopy จะมีไฟล์ประมวลผลน้อยกว่ามาก

แนวคิดอื่นคือการเรียกใช้งานที่กำหนดเวลาไว้บนเซิร์ฟเวอร์ระยะไกล (ถ้าเป็นไปได้) เพื่อบีบโครงสร้างไดเรกทอรีทั้งหมดและจากนั้นก็คัดลอกไฟล์ zip ที่เกิดขึ้นบน VPN XML จะบีบอัดได้ดีและการคัดลอกไฟล์เดียวจะมีประสิทธิภาพมากขึ้นผ่านลิงก์เวลาแฝงสูง


เพิ่งทราบว่าเมื่อทำการดำเนินการเดียวกันกับไฟล์ขนาดเล็กจำนวนมากในเครือข่าย 2Mb ฉันสังเกตเห็นว่ามันเร็วกว่าอย่างชัดเจนโดยไม่มีสวิตช์ / z
John Gardeniers

สมมติว่าคุณไม่มีขั้นตอนการสำรองข้อมูลที่ยุ่งกับแอตทริบิวต์การเก็บถาวรฉันจะใช้ตัวเลือก "/ M / MIR" เพื่อเลือกเฉพาะไฟล์เก็บถาวรจากนั้นตั้งค่าบิตในแต่ละสำเนาที่สำเร็จ
Doug Luxem

4

ฉันใช้ rsync สำหรับ Windows เพื่อคัดลอกผ่านการเชื่อมต่อบรอดแบนด์ มันควรจะเป็นระบบคัดลอกเดลต้าที่คัดลอกเฉพาะการเปลี่ยนแปลงของแต่ละไฟล์ในขณะที่ robocopy คัดลอกไฟล์ทั้งหมดหากมีการเปลี่ยนแปลงหนึ่งบิต (tbh ฉันสงสัยบางครั้งว่ามันทำจริง)

คุณสามารถใช้สวิตช์ robocopy / mon: x และให้มันทำงานอย่างถาวร สิ่งนี้จะทำงานเมื่อ robocopy เห็นการเปลี่ยนแปลง x ในระบบไฟล์ หากมีการเรียกใช้บ่อยมากจะมีการเปลี่ยนแปลงเพียงเล็กน้อยเท่านั้น

คุณสามารถใช้คุณสมบัติการจำลองแบบไฟล์ใน Windows Server ใช้เส้นทาง DFS ไปยังแต่ละโฟลเดอร์และตั้งค่าโฟลเดอร์ภายในและระยะไกลเป็นเป้าหมาย


2

ฉันแนะนำ Charles Gargent เป็นครั้งที่สองสำหรับ rsync ฉันใช้ rsync ผ่าน SSH กับ Cygwin ถ้าฉันจำได้อย่างถูกต้องมีปฏิบัติการที่ไม่ใช่ cygwin ขึ้นอยู่กับที่ใช้ได้

ข้อดีอย่างหนึ่งที่ rsync มีมากกว่า robocopy ก็คือตัวแทน rsync จะเกิดที่ด้านไกลเพื่อทำการประมวลผลที่ปลาย รีโมตเอเจนต์สามารถตรวจสอบระบบไฟล์รีโมตโดยไม่ต้องนำรายละเอียดไฟล์ทั้งหมดกลับไปยังเครื่องโลคัลของคุณเพื่อประมวลผล นี่เร็วกว่า robocopy มากและอาจเป็นสิ่งที่ล่าช้ากว่า 5 ชั่วโมงของคุณ

นอกจากนี้คุณยังสามารถใช้การบีบอัดด้วย rsync บน ssh ซึ่งสามารถเพิ่มความเร็วให้มากขึ้น

อย่างไรก็ตามระวังว่า Cygwin ACLs ของระบบไฟล์และ Windows ACL ไม่สามารถเล่นด้วยกันได้ หากคุณต้องการสำเนา ACL ที่สมบูรณ์แบบ rsync อาจไม่เหมาะกับคุณ ฉันต้องเขียนสคริปต์เพื่อเรียกใช้ xcacls เพื่ออนุญาต "ล้าง" ไฟล์ของฉันหลังจากคัดลอก


0

เพียงแค่บันทึกบางอย่างเกี่ยวกับการใช้ attrib -a / s เพื่อแก้ไขข้อบกพร่องของ robocopy หากคุณกำลังจะใช้โซลูชันนี้ให้รันก่อนที่คุณจะทำการสำรองข้อมูลเต็มรูปแบบ กล่าวคือ โดยทั่วไปการสำรองข้อมูลเต็มรูปแบบจะใช้เวลานานและไฟล์บางไฟล์อาจมีการเปลี่ยนแปลงระหว่างเมื่อทำการสำรองข้อมูลและเมื่อคุณใช้งาน Attrib หลังจากนั้นอาจหมายถึงการเปลี่ยนแปลงเหล่านั้นขาดหายไปในการคัดลอกในภายหลัง

หมายเหตุที่สองเกี่ยวกับโซลูชันนี้คือใช้งานได้ดีถ้าคุณคัดลอกจะไม่ถูกกรอง หากคุณกรองกระบวนการสำรองข้อมูลหรือ robocopy ของคุณเพื่อหลีกเลี่ยงไฟล์ชั่วคราวและขยะที่คล้ายกันดังนั้นจึงไม่มีวิธีที่ง่ายที่จะตรวจสอบให้แน่ใจว่า Attrib ดูเฉพาะไฟล์ที่กระบวนการคัดลอกดู นั่นคือ; คุณกำลังเปลี่ยน attrib บนไฟล์ที่คุณไม่ได้คัดลอกจริง ๆ - และนั่นก็ไม่ใช่ความคิดที่ดี

ที่น่าสนใจว่า robocopy ดูเหมือนจะไม่สามารถสร้างการสำรองข้อมูลเต็มรูปแบบแบบดั้งเดิม ... หรือไม่ใช่ในการรันครั้งเดียว คุณสามารถทำได้โดยรันสองครั้ง หนึ่งครั้งเพื่อคัดลอกทุกอย่างจากนั้นอีกครั้งด้วย / M เพื่อคัดลอกและคราวนี้รีเซ็ตบิตเก็บถาวรจริง ๆ PITA คืออะไร


0

ความคิดเห็นของ XYZ เกี่ยวกับข้อเสียของการใช้ ATTRIB นั้นมีประโยชน์ แต่ก็ไม่เพียงพอเพียงแค่ทำตามคำสั่ง robocopy / MIR ด้วยคำสั่ง robocopy / COPY / M เพื่อรีเซ็ตบิตเก็บถาวรที่เลือกไว้ Robocopy จะไม่รีเซ็ตบิตเว้นแต่ว่ามันจะทำการคัดลอกไฟล์จริงและ (โดยค่าเริ่มต้น) มันจะไม่ทำการคัดลอกไฟล์ 'Same' ดังนั้น,

ปลายทางต้นทาง / MIR ของ ROBOCOPY

ROBOCOPY ต้นทางปลายทาง / COPY / M

จะปล่อยให้บิตเก็บถาวรของไฟล์จำนวนมากในแหล่งที่ไม่เปลี่ยนแปลง (ฉันหวังว่ามันจะไม่เป็นจริง)

ไม่น่าเป็นไปได้ที่ซอร์สโค้ดของ Robocopy จะถูกปรับแต่งเพิ่มเติม แต่ฉันหวังว่าผู้เขียนจะให้ 'this' สำหรับ / MIR เพื่อรีเซ็ตบิตเก็บถาวรในครั้งเดียว (เช่น / MIR: A) นี่เป็นสิ่งสำคัญที่สุดสำหรับการเริ่มการสำรองข้อมูลในระบบใหม่ แต่ในกรณีใด ๆ นี้แสดงให้เห็นว่า robocopy / MIR ไม่ใช่โซลูชันการสำรองข้อมูลแบบเต็ม

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