ความแตกต่างระหว่าง rsync กับ remote และ rsync local บน sshfs ที่ติดตั้งอยู่หรือไม่


12

มีความแตกต่างหรือไม่ถ้าฉันเรียกใช้ rsync ด้วยรีโมตโฮสต์ (ssh: //) เป็นต้นทาง / ปลายทางหรือใช้โลคัลพา ธ เพื่อแชร์ไดเร็กทอรีที่เมาท์ผ่าน sshfs?

อาจมีความแตกต่างเกี่ยวกับความปลอดภัยหรือความเร็วในการคัดลอกโดยไม่ต้องใช้สวิตช์ใด ๆ เพียงแค่ใช้โหมดเก็บถาวร rsync และเส้นทางโฮสต์ระยะไกล (ssh) เช่นเดียวกันกับ sshfs mount เพียงแค่กับแหล่งที่มาและปลายทาง (ไม่มีการเปลี่ยนแปลงตัวเลขศูนย์เพียงค่าเริ่มต้น)

คำตอบ:


17

SSHFS มีความสะดวก แต่มันไม่สอดคล้องกับ rsync หรือมากกว่าโดยทั่วไปด้วยเครื่องมือการซิงโครไนซ์

ปัญหาที่ใหญ่ที่สุดคือ SSHFS ส่วนใหญ่ฆ่าประสิทธิภาพการทำงานของ rsync โดยเฉพาะอย่างยิ่งสำหรับไฟล์ขนาดกลางถึงขนาดใหญ่เมื่อ rsync เห็นว่ามีการแก้ไขไฟล์มันจะคำนวณ checksums ของส่วนต่าง ๆ ของไฟล์ในแต่ละด้านเพื่อถ่ายโอนเฉพาะส่วนที่ได้รับการแก้ไข นี่คือการเพิ่มประสิทธิภาพเฉพาะเมื่อแบนด์วิดท์เครือข่ายมีขนาดเล็กกว่าดิสก์แบนด์วิดท์อย่างมีนัยสำคัญซึ่งโดยปกติจะเป็นกรณี แต่ด้วย SSHFS แบนด์วิดท์“ ดิสก์” นั้นแท้จริงแล้วเป็นแบนด์วิดท์เครือข่ายดังนั้น rsync จะต้องอ่านไฟล์ทั้งหมดเพื่อกำหนดว่าจะคัดลอกอะไร ในความเป็นจริงด้วยการคัดลอกโลคัล (ซึ่งเป็นเท่าที่เกี่ยวข้องกับ rsync แม้ว่าหนึ่งในด้านที่อยู่ใน SSHFS) rsync เพียงแค่คัดลอกไฟล์ทั้งหมด

SSHFS เป็นอันตรายต่อประสิทธิภาพหากมีไฟล์ขนาดเล็กจำนวนมาก Rsync ต้องตรวจสอบอย่างน้อยเมทาดาทาของทุกไฟล์เพื่อตรวจสอบว่ามีการปรับเปลี่ยนหรือไม่ ด้วย SSHFS สิ่งนี้ต้องการการเดินทางไปกลับเครือข่ายสำหรับแต่ละไฟล์ ด้วย rsync บน SSH ทั้งสองฝ่ายสามารถทำงานแบบขนานและถ่ายโอนข้อมูลเป็นกลุ่มซึ่งเร็วกว่ามาก

ในแง่ของข้อ จำกัด การเข้าถึง SSHFS ต้องการการเข้าถึง SFTP ในขณะที่ rsync ต้องการความสามารถในการเรียกใช้รหัส (โดยเฉพาะโปรแกรม rsync) ผ่านทางเชลล์ หากผู้ใช้ไม่จำเป็นต้องมีบัญชีเปลือกมันเป็นไปได้และร่วมกันเพื่อให้บัญชีที่มีเปลือกพิเศษที่เพียง แต่ช่วยให้การรันโปรแกรมไม่กี่รวมและsftp-server rsyncเห็นไหมคุณจำเป็นต้องมีเปลือกสำหรับ SCP หรือไม่?

หากคุณเพียงคัดลอกไฟล์ใหม่และไม่มีไฟล์จำนวนมากมากก็ไม่มีความแตกต่างด้านประสิทธิภาพที่มีความหมาย

SSHFS สร้างการเชื่อมต่อ SSH เมื่อระบบไฟล์ติดตั้งและเก็บการเชื่อมต่อนั้นจนกว่าจะถูกถอดออก Rsync สร้างการเชื่อมต่อใหม่ทุกครั้งที่คุณเรียกใช้ แต่คุณสามารถใช้คุณสมบัติมัลติเพล็กซ์และ Piggyback บนการเชื่อมต่อหลักเดียวเพื่อหลีกเลี่ยงการตรวจสอบสิทธิ์ในแต่ละครั้ง

SSHFS เป็นระบบไฟล์ FUSE ดังนั้นจึงรองรับเฉพาะข้อมูลเมตา Unix ดั้งเดิมและ ACL Rsync สามารถถ่ายโอนแอตทริบิวต์เพิ่มเติม (คุณจำเป็นต้องใช้rsync -aAXโปรดทราบว่าธรรมดา-aรักษาข้อมูลเมตาของ Unix แบบดั้งเดิมเท่านั้น)


ตัวอย่างเช่นฉันมีไฟล์บีบอัดเดียวในไดเรกทอรี SSHFS ที่ติดตั้งและไฟล์นั้นจะถูกคัดลอกไปยังไดเรกทอรีท้องถิ่นของฉัน rsync --no-whole-file /mounted/file.tar.gz /home/local/file.tar.gzต่อมาไฟล์ที่มีการปรับปรุงเกี่ยวกับการติดตั้งไดเรกทอรีและฉันต้องการที่จะคัดลอกเฉพาะส่วนการปรับปรุงเพื่อไดเรกทอรีท้องถิ่นของฉันโดยใช้ เมื่อฉันใช้rsyncสำหรับการดำเนินการนี้ในระหว่างการคำนวณเช็คซัมเพื่อถ่ายโอนเฉพาะส่วนที่ได้รับการแก้ไขrsyncควรอ่านไฟล์ทั้งหมดซึ่งจะนำไปสู่ข้อมูลที่สมบูรณ์ที่จะดาวน์โหลดแทนที่จะเป็นเฉพาะส่วนที่ปรับปรุงแล้ว @Gilles
alper

1
@alper เมื่อคุณใช้ rsync บน sshfs, rsync จะต้องอ่านไฟล์ทั้งหมด ไม่สามารถรู้ได้ว่าต้องปรับปรุงอะไรเป็นอย่างอื่น ไม่มีวิธีการปรับให้เหมาะสมโดยการโอนย้าย checksums เท่านั้นเนื่องจากไม่มีวิธีคำนวณ checksums บนเซิร์ฟเวอร์
Gilles 'หยุดชั่วร้าย'

มันจะเหมือนกันหรือไม่หากที่ตั้งเป้าหมายเป็นโฟลเดอร์ที่เมาท์แทนที่จะsshfsเชื่อมต่อ โปรดดู: unix.stackexchange.com/q/544404/198423 @Gilles
alper

4

เพื่อตอบคำถามหลักของคุณ: ใช่มีความแตกต่าง ด้วยsshfsมีการเชื่อมต่อที่มีอยู่เพื่อให้สามารถเข้าถึงไฟล์จากระยะไกลผ่านช่องทางที่ปลอดภัยและมีความ rsync ผ่าน SSH ว่าช่องทางที่ปลอดภัยมีการตั้งค่าที่จะพูดคุยกับอินสแตนซ์ระยะไกล rsync

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

ความปลอดภัยของทั้งสองวิธีคือสมมติว่าการกำหนดค่าที่คล้ายกันของพารามิเตอร์ ssh (ความยาวคีย์อัลกอริทึม) เหมือนกัน สิ่งที่เป็นค่าเริ่มต้นสำหรับระบบต้นทางและปลายทางของคุณขึ้นอยู่กับการรวมกันของการกระจายในระบบเหล่านั้น

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