มีโซลูชันสำรอง Linux ที่ใช้งานได้ซึ่งใช้ inotify หรือไม่


17

มันใช้เวลาตลอดไปในการสำรองข้อมูล ก่อนที่เราจะเชื่อถือ btrfs หรือ ZFS เพื่อสำรองสแน็ปช็อตที่เพิ่มขึ้นจะดีหรือไม่หากมี daemon ที่ใช้ inotify เพื่อติดตามว่าไฟล์ใดที่มีการเปลี่ยนแปลงจริง ๆ แล้วการสำรองข้อมูลจะทำงานได้เร็วขึ้นหรือไม่ โปรแกรมนี้อยู่ที่ไหน

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


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

@WerkkreW ฉันไม่คิดว่าสิ่งที่เขาพยายามสำรองข้อมูลนั้นสำคัญมาก ฉันสงสัยว่ามีอะไรที่อนุญาตให้สำรองข้อมูลตามเหตุการณ์น่าสนใจที่จะเรียนรู้ คำขอไม่ผิดปกติ OSX มีไทม์แมชชีนซึ่งเป็นไปตามเหตุการณ์
Zoredache

ฉันยังรู้สึกว่าคำถามนั้นต้องการความกระจ่างมากกว่านี้ก่อนจึงจะสามารถตอบได้
WerkkreW

1
@Zoredache แน่นอนสิ่งที่ฉันสำรองเป็นสิ่งสำคัญ! ถ้ามันไม่สำคัญ ... โอ้เดี๋ยวก่อน ;-) ฉันต้องการสำรองข้อมูลไดเรกทอรีบ้านของฉันโดยไม่ต้องใช้เครื่องไม่ได้เป็นเวลา n ชั่วโมงมันจะต้องใช้เวลา rsync ในการรวบรวมข้อมูลทุกสิ่งเมื่อมีสิ่งใหม่เพียงชุด ภาพถ่ายของทารกแรกเกิดของฉัน
joeforker

3
คำถามดูเหมือนชัดเจนสำหรับฉัน: การสำรองข้อมูล Time Machine ของ Mac OS X นั้นรวดเร็วเนื่องจากตรวจสอบ fsevents เพื่อให้รู้ว่าจะดูเมื่อมันทำการสำรองข้อมูล Linux มี inotify สิ่งอำนวยความสะดวกที่คล้ายกันกับ fsevents และยังมีโซลูชันการสำรองข้อมูล Linux ที่พยายามประมาณ Time Machine (เช่น dirvish) ช้าลงอย่างน่าสังเวชเพราะพวกเขาไม่ได้ใช้ประโยชน์จาก inotify มีอะไรบ้าง
bendin

คำตอบ:


11

ฉันตอบคำถามด้วย "yum search inotify" มันถูกเรียกว่าlsyncdและมันถูกโฮสต์บน google code

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

Lsyncd ใช้ rsync เพื่อซิงโครไนซ์ไดเรกทอรีในเครื่องกับเครื่องระยะไกลที่ใช้ rsyncd Lsyncd เฝ้าดูไดเรกทอรีต้นไม้หลายต้นผ่าน inotify ขั้นตอนแรกหลังจากเพิ่มการเฝ้าดูคือการซิงโครไนซ์ไดเรกทอรีทั้งหมดด้วยรีโมตโฮสต์จากนั้นซิงค์ไฟล์เดียวโดยการรวบรวมเหตุการณ์ที่ไม่แจ้งข้อมูล ดังนั้น lsyncd จึงเป็นโซลูชันมิเรอร์ไลฟ์ที่มีน้ำหนักเบาซึ่งควรติดตั้งและใช้งานง่ายในขณะที่ผสมผสานกับระบบของคุณได้ดี ดู lsyncd - ช่วยสำหรับรายละเอียดตัวเลือกบรรทัดคำสั่ง


นั่นคือลิงค์ที่น่าสนใจฉันเคยคิดที่จะนำไปใช้เอง แต่ทำไมมันถึงบอกว่ามันจะส่งไฟล์ขนาดใหญ่สำหรับการเปลี่ยนแปลงแต่ละครั้ง? ฉันคิดว่า rsync นั้นจะหลีกเลี่ยงได้หรือไม่
ฮันโน Fietz

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

3

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


2

คุณสามารถตัดอะไรกับincron

 / path1 IN_CLOSE_WRITE rsync -au $ @ / $ # backuphhost: / path


incron ไม่สามารถดูไดเรกทอรีซ้ำ
joeforker

เอ่อ! ดูเหมือนว่ามันจะมีประโยชน์มาก: -S
hayalci

2

จากการวิจัย (ไม่ใช่การทดสอบ) ดูเหมือนว่า inotify ไม่สามารถจัดการไฟล์จำนวนมากในระบบส่วนใหญ่และ / หรือทำงานช้ามาก หัวข้อที่http://www.pubbs.net/kernel/200905/109416/เป็นประโยชน์มากที่สุดมันชี้ไปที่คุณสมบัติใหม่ของ linux ที่ดูเหมือนว่าจะอยู่ในหรือมุ่งหน้าไปยังการฉีด fsnotify ที่อยู่ใน linux 2.6.31 และหลังจากนั้น.


2

Lsyncd ซิงค์ต้นไม้ที่เฝ้าดูทั้งหมดเมื่อเริ่มต้นเนื่องจาก 99% ของกรณีนี้เป็นสิ่งที่สมเหตุสมผลที่ต้องทำ คุณต้องการไดเรกทอรีในโฮสต์เป้าหมายที่คุณมีในโฮสต์ท้องถิ่นมิฉะนั้นการซิงค์อาจล้มเหลวและคุณต้องการซิงค์สิ่งที่คุณพลาดไปในขณะที่ปิดอยู่ อย่างไรก็ตามหากคุณรู้ว่าคุณกำลังทำอะไรคุณสามารถปิดการซิงค์เริ่มต้นเพียงตั้งค่าการซิงค์ {... , startup = false} ในไฟล์ Lsyncd config

เกี่ยวกับ inotify ไม่ใช่จำนวนของไฟล์ แต่เป็นจำนวนของไดเรกทอรีที่กิน ressources หนึ่งไดเรกทอรีคือหนึ่งการเฝ้าดูไม่ว่าจะมีไฟล์กี่ไฟล์ก็ตาม

การสร้าง fanotify บน fsnotify เช่น inotify ดูมีแนวโน้มมากสำหรับคนที่ดูไดเรกทอรีมากมาย แต่ในปัจจุบันเมื่อ Linux 2.6.37 fanotify ไม่รายงานการเปลี่ยนชื่อเหตุการณ์ (ย้าย) เลยทำให้ไม่สามารถใช้งานได้เช่นนี้ :-(


ไม่ว่าจะเป็นการลบตามด้วยการสร้าง?
joeforker

1
ไม่ได้อยู่ในการทดสอบของฉัน nope :-( fanotify ได้รับการออกแบบโดยมีโล่ไวรัสอยู่ในใจและ IMHO ได้รับการปรับแต่งให้เหมาะสมกับระดับต่ำสุดที่มันต้องการ
axkibe

1

ฉันใช้เวลา 6 เดือนเพื่อหาทางออกที่ดีที่สุดในการทำสิ่งที่คุณกำลังทำอยู่ สำรองข้อมูลอย่างมีประสิทธิภาพไปยัง NAS หลังจากการซิงค์ครั้งแรกสิ่งอื่นทั้งหมดนั้นราบรื่นเหมือนเนย Lsyncd เวอร์ชันล่าสุดทำงานได้ค่อนข้างดี ฉันได้บันทึกสิ่งที่ฉันทำในลิงก์ด้านล่าง เพียงแทนที่ค่าโฟลเดอร์ของคุณ หวังว่านี่จะช่วย:

https://docs.google.com/document/d/1XpqM5h5YMwuQqzdknyDDnjcQVYGjAsyAxfYprqSnhd0/edit


0

มีระบบใหม่ที่ใช้ในเอเชียเรียกว่า sersync ซึ่งจะแทนที่ inotify-tool + rsync resolution http://code.google.com/p/sersync/ มันใช้งานง่ายมาก

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