คัดลอกไฟล์ระยะไกลบน nfs โดยไม่ต้องไปกลับ


10

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

ดูเหมือนว่าcp files* subdirจะทำสิ่งที่ไร้เดียงสาและอ่านข้อมูลทั้งหมดลงในหน่วยความจำแล้วเขียนกลับ มันเป็นเรื่องจริงเหรอ? มีคำสั่งพิเศษที่ทำการคัดลอกจริงทั้งหมดบนเซิร์ฟเวอร์ที่ดิสก์เชื่อมต่ออยู่หรือไม่?


คุณหมายถึง copy (as in cp) หรือ move (as in mv)? หากคุณย้ายไฟล์ฉันไม่เห็นสาเหตุที่ควรมีการปัดเศษ
Kusalananda

ฉันหมายถึงสำเนาที่ถูกต้อง (cp)
jdm

คำตอบ:


13

ดูเหมือนว่าไฟล์ cp * subdir ทำสิ่งที่ไร้เดียงสาและอ่านข้อมูลทั้งหมดลงในหน่วยความจำแล้วเขียนกลับ มันเป็นเรื่องจริงเหรอ?

ใช่.

มีคำสั่งพิเศษที่ทำการคัดลอกจริงทั้งหมดบนเซิร์ฟเวอร์ที่ดิสก์เชื่อมต่ออยู่หรือไม่?

ไม่เว้นแต่คุณจะสามารถลงชื่อเข้าใช้เครื่องระยะไกลด้วย ssh และทำการคัดลอกที่นั่น

แก้ไขมีงานบางอย่างเกิดขึ้นเพื่อเพิ่ม "สำเนาฝั่งเซิร์ฟเวอร์" ให้กับโปรโตคอล NFS รุ่น 4.2 (ปัจจุบันคือ 4.1) ดูเช่นhttp://www.usenix.org/events/fast11/posters_files/Lentini.pdf โปรดทราบว่าการใช้คุณสมบัตินี้จะต้องมี) ไคลเอ็นต์ NFS และเซิร์ฟเวอร์ที่สนับสนุน b) syscall ใหม่สำหรับไคลเอ็นต์ระบบปฏิบัติการ (อาจเป็นreflinkหรือ copyfile ()?) c) สนับสนุนการใช้ syscall ใหม่ในยูทิลิตี้ปกติ (cp, rsync ฯลฯ ) ฉันเดาว่ามันจะเป็นเวลาอย่างน้อยหลายปีก่อนที่สิ่งนี้จะเห็นแสงสว่างของวัน


เลวร้ายเกินไป. ฉันคิดว่า AFS รองรับสิ่งนี้และดูเหมือนว่ามีคนนำ patch มาใช้กับ NFS เพื่อรวมไว้ด้วย: lsub.org/who/nemo/nfscp.html
jdm

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