ZFS Sync ผ่าน WAN ที่ไม่น่าเชื่อถือและช้า การจำลองแบบ ZFS หรือ rsync?


10

ฉันได้รับมอบหมายให้ทำการสำรองข้อมูลนอกสถานที่บน WAN กล่องเก็บข้อมูลทั้งสองนั้นเป็นกล่อง NAS แบบ FreeBSD ที่ใช้ ZFS

หนึ่งหรือสองครั้งต่อสัปดาห์ข้อมูลการถ่ายภาพ 15-60 gigs จะถูกนำไปทิ้งไว้ที่สำนักงาน NAS งานของฉันคือหาวิธีที่จะทำให้ข้อมูลนี้นอกไซต์น่าเชื่อถือมากที่สุดโดยใช้การเชื่อมต่อ VERY SLOW DSL (อัปโหลดที่ ~ 700Kb / s) กล่องรับสัญญาณอยู่ในสภาพดีขึ้นมากที่ 30Mb / s ลง 5Mb / s ขึ้น

ฉันรู้ว่าการพกพาฮาร์ดไดรฟ์นอกสถานที่จะย้ายข้อมูลเร็วกว่ามาก แต่นี่ไม่ใช่ตัวเลือกในกรณีนี้

ตัวเลือกของฉันดูเหมือนจะเป็นอย่างใดอย่างหนึ่ง:

  • ZFS ส่งแบบเพิ่มหน่วย
  • rsync

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

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

ฉันกังวลเกี่ยวกับประสิทธิภาพการจำลองแบบ ZFS [1] (แม้ว่าบทความนั้นจะมีอายุหนึ่งปี) ฉันยังกังวลเกี่ยวกับความสามารถในการเริ่มการถ่ายโอนอีกครั้งหากมีบางอย่างผิดพลาด - ความสามารถในการจับภาพรวมดูเหมือนจะไม่รวมถึงสิ่งนั้น ระบบทั้งหมดจะต้องถูกคัดออกอย่างสมบูรณ์

[1] http://wikitech-static.wikimedia.org/articles/z/f/s/Zfs_replication.html

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

ดังนั้น ... ฉันกำลังคิดเรื่องนี้อยู่ ฉันพลาดตัวเลือกที่ดีบ้างไหม? มีใครอื่นที่คล้ายกันบ้างไหม?


พิจารณาความพร้อมเพรียงกัน
sampablokuper

คำตอบ:


8
  1. หากคุณสามารถถ่ายโอนสูงสุด 6GB ต่อวัน (สมมติว่ามีค่าใช้จ่ายเป็นศูนย์และไม่มีทราฟฟิกที่แข่งขัน) และคุณต้องการย้าย "15-60 gigs" ที่ความถี่ "หนึ่งหรือสองครั้งต่อสัปดาห์" ซึ่งทำงานได้ถึง 15-120 GB ต่อสัปดาห์หรือที่ใดก็ได้จาก 2-17 GB ต่อวัน เพราะมันเป็นสิ่งที่จำเป็นในการวางแผนสำหรับความต้องการสูงสุดและ 17 GB อยู่ไกลเกินกว่าแม้คุณทฤษฎีสูงสุด 6 GB ก็มีโอกาสที่คุณมีปัญหาแบนด์วิดธ์ที่ร้ายแรงมาก จะต้องใช้อะไรบ้างในการอัพเกรดการเชื่อมต่อ หากการอัพเกรดการเชื่อมต่อเป็นไปไม่ได้โปรดพิจารณาตัวเลือกในการส่งสื่อทางกายภาพตามกำหนดเวลา (เช่นรายสัปดาห์)

  2. สมมติว่าคุณสามารถรับคณิตศาสตร์แบนด์วิดธ์เพื่อให้เข้าใจเพิ่มเติมเล็กน้อยrsyncน่าจะเป็นตัวเลือกที่ดีที่สุด การรับรู้การซ้ำซ้อนจะมีประโยชน์อย่างมากเมื่อทำซ้ำข้อมูลที่มีความซ้ำซ้อนสูง (เช่นรูปภาพเครื่องเสมือน) แต่ควรมีประโยชน์เพียงเล็กน้อยหรือไม่มีประโยชน์เมื่อมากับเนื้อหาดิจิทัลที่ไม่ซ้ำใคร (เสียง, วิดีโอ, ภาพถ่าย) ... เว้นแต่แน่นอนว่าผู้ใช้ จัดเก็บสำเนาไฟล์ที่เหมือนกันโดยไม่ตั้งใจ


ฉันคิดว่าฉันสามารถใช้แบนด์วิดท์ที่มีอยู่ได้และข้อมูลส่วนใหญ่ที่ทิ้งไว้มักจะมีขนาดเล็ก ในทางปฏิบัติมันจะอยู่ที่ประมาณ 2-3 กิ๊กต่อวันโดยพิจารณาจากเดือนที่ผ่านมาของข้อมูล ฉันไม่ต้องการการจำลองแบบทันที
Paul McMillan

และใช่การส่งเมลสื่อฟิสิคัลนั้นดีกว่า ... ฉันหวังว่ามันจะเป็นตัวเลือก
Paul McMillan

จุดที่ดีเกี่ยวกับการ dedup สิ่งที่ได้รับการคัดลอกส่วนใหญ่จะไม่ซ้ำกัน - ผู้ใช้ยังไม่หนาแน่น
Paul McMillan

1
สิ่งเดียวที่ฉันจะเพิ่มอาจจะไม่ได้ใช้ rsync ฉันมีประสบการณ์ความเชื่องช้าของ rsync เช่นกันเพราะฉันใช้มันเป็นกระบวนการถ่ายโอนไม่ใช่ซิงค์กระบวนการ จากนั้นฉันก็พบว่าข้อมูลที่มีอยู่ส่วนใหญ่ของฉันไม่เปลี่ยนแปลงและมีเพียงข้อมูลใหม่ที่จำเป็นต้องคัดลอกสำหรับฉันฉันใช้ cp เฉพาะไฟล์ใหม่และมันก็เร็วขึ้นมาก หากฉันมีไฟล์ที่เปลี่ยนแปลง (หรือบางส่วนของไฟล์) ดังนั้นฉันจะใช้ rsync ดังนั้นฉันขอแนะนำให้แยกไฟล์ใหม่ออกและเลือกวิธีการถ่ายโอนต่อ นอกจากนี้การบีบอัดจะเป็น CPU & RAM / แบนด์วิดท์ที่เสียไป (ที่ปลายทั้งสอง)
Scott McClenning

อืม ... ฉันได้อ่านแล้วว่าการกำหนดค่าที่เหมาะสมทำให้ rsync สามารถทำงานได้อย่างรวดเร็ว คุณพยายามเพิ่มประสิทธิภาพเท่าใด
Paul McMillan

13

หลังจากทำวิจัยฉันเชื่อว่าคุณมีสิทธิ์เกี่ยวกับการส่งภาพรวม ZFS SENDและRECEIVEคำสั่งสามารถไพพ์ลงใน bzip2 จากนั้นไฟล์นั้นสามารถ rsync-ed ไปยังเครื่องอื่น

นี่คือแหล่งข้อมูลที่ฉันใช้:

ผมไม่ได้พบการโพสต์ใด ๆ กับการจำลองแบบสคริปต์โพสต์ แต่ฉันไม่พบว่ามีคนโพสต์ของพวกเขาสคริปต์สำรอง ที่กล่าวว่าฉันไม่เข้าใจดังนั้นจึงอาจเป็นขยะ

เว็บไซต์จำนวนมากพูดคุยเกี่ยวกับการตั้งค่างาน cron เพื่อทำสิ่งนี้บ่อยครั้ง หากเป็นกรณีนี้คุณสามารถทำซ้ำ / สำรองข้อมูลโดยส่งผลกระทบต่อแบนด์วิดท์และผู้ใช้น้อยกว่าและเป็นคุณลักษณะการกู้คืนความเสียหายที่ดีเนื่องจากข้อมูลนอกสถานที่มีความทันสมัย (นั่นคือหลังจากข้อมูลเริ่มต้นเมื่อเริ่มต้น)

อีกครั้งผมคิดว่าคุณมีความคิดที่ถูกส่งภาพรวมดูเหมือนว่าจะมีประโยชน์มากกับการใช้/SENDRECEIVE

แก้ไข:เพิ่งดูวิดีโอ 1 วิดีโอ 2ที่อาจช่วยสนับสนุนการใช้SEND/ RECEIVEและพูดคุยเกี่ยวกับ rsync (เริ่มที่ 3m49s) เบน Rockwood เป็นลำโพงและนี่คือการเชื่อมโยงไปยังเขาบล็อก


1
ฉันเดาว่าการใช้ rsync นั้น จำกัด อยู่ที่ฟังก์ชันหยุดชั่วคราว / เล่นต่อแทนที่จะเป็นไฟล์จริง สิ่งนี้สมเหตุสมผลเนื่องจากระบบไฟล์เอง (และไฟล์การเปลี่ยนแปลงที่สร้างขึ้น) รู้ดีกว่า rsync ว่าเกิดอะไรขึ้น
Paul McMillan

ในฐานะที่เป็นหมายเหตุเพิ่มเติม: ZSTD การแทนที่ที่เร็วกว่าในปัจจุบันสำหรับ gzip และ bzip รองรับหลายเธรดและมากกว่า 20 ระดับการบีบอัด นอกจากนี้ยังมีฟีเจอร์เสริมที่เรียกว่า 'การบีบอัดแบบปรับตัว' ด้วยโหมดนี้ระดับการบีบอัดจะถูกปรับขึ้นและลงโดยอัตโนมัติตามที่จำเป็นเพื่อให้ท่อเครือข่ายเต็มในขณะที่ทำการบีบอัดมากที่สุดเท่าที่จะทำได้เพื่อประหยัดเวลา สิ่งนี้จะป้องกันไม่ให้คุณทำการบีบอัดมากจนกลายเป็นปัญหาคอขวดหรือขาดหายไปจากการบีบอัดที่คุณอาจทำเพราะเครือข่ายช้าเกินไป
อัลลันจูด

2

วัตถุประสงค์ของการสำรองข้อมูลคืออะไรและจะต้องมีการเข้าถึงได้อย่างไร

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

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

ด้วย rsync คุณสามารถใช้แฟล็ก --backup เพื่อรักษาการสำรองข้อมูลของไฟล์ที่มีการเปลี่ยนแปลงและด้วย --suffix flag คุณสามารถควบคุมวิธีการเปลี่ยนชื่อไฟล์เวอร์ชันเก่า สิ่งนี้ทำให้ง่ายต่อการสร้างการสำรองข้อมูลที่คุณอาจมีไฟล์รุ่นเก่าเช่น

file_1.jpg
file_1.jpg.20101012
file_1.jpg.20101008
etc.

คุณสามารถรวมสิ่งนี้กับ cronjob ที่มีคำสั่ง find เพื่อกำจัดไฟล์เก่า ๆ ตามต้องการ

โซลูชันทั้งสองควรจะสามารถเก็บรักษาข้อมูล metainformation ที่เพียงพอเกี่ยวกับไฟล์เพื่อใช้เป็นข้อมูลสำรองได้ (rsync มี --perms, --owner flag ฯลฯ ) ฉันใช้ rsync เพื่อสำรองข้อมูลจำนวนมากระหว่างดาต้าเซ็นเตอร์และฉันมีความสุขมากกับการตั้งค่า


2

ZFS ควรได้รับคุณลักษณะ 'ส่งต่อที่ทำงานต่อได้' ซึ่งจะช่วยให้การจำลองแบบถูกขัดจังหวะต่อไปได้ประมาณช่วงเดือนมีนาคมของปีนี้ คุณลักษณะนี้เสร็จสมบูรณ์โดย Matt Ahrens และคนอื่น ๆ และควรอัปสตรีมในไม่ช้า


เพียงแค่ทราบว่า 'การส่งต่อที่ส่งกลับ' นั้นอยู่ใน OpenZFS (บน FreeBSD, Linux, MacOS และอื่น ๆ ) เป็นระยะเวลาพอสมควรแล้ว นอกจากนี้ยังมีคุณสมบัติ 'บีบอัดส่ง' ซึ่งข้อมูลจะยังคงถูกบีบอัดเหมือนอยู่บนดิสก์ซึ่งเป็นส่วนหนึ่งของสตรีมการจำลองแบบ
อัลลันจูด

0

บางทีอุปกรณ์บีบอัด WAN อาจเป็นทางออก ... ? เราใช้ Riverbed และเรามีความสุขมากกับพวกเขา (เช่น NetApp SnapMirror กำลังถูกบีบอัดได้ดีมากถึงมากถึง 80-90%)

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