LVM snapshots กับ snapshot ของระบบไฟล์


32

เท่าที่ฉันทราบ LVM ทำให้สามารถถ่ายภาพสแน็ปช็อตของโวลุ่มได้ นอกจากนี้ยังมีระบบไฟล์จำนวนมาก (ZFS, Btrfs, reiserfs, ... ) ซึ่งรองรับสแน็ปช็อต

อย่างไรก็ตามฉันไม่เคยเข้าใจความแตกต่างระหว่างสแน็ปช็อต LVM และสแน็ปช็อตระบบไฟล์ หากเป็นไปได้ที่จะถ่ายภาพด้วย LVM ทำไมบางคนถึงใช้เวลาในการปรับใช้มันในระบบไฟล์

แก้ไข: ใด ๆ ของพวกเขาที่ต้องการในบางสถานการณ์? ทำไม?

คำตอบ:


25

สแน็ปช็อตเหล่านี้ส่วนใหญ่เป็นสแน็ปช็อตการคัดลอกตามการเขียนซึ่งรวดเร็วและราคาถูก (ระบบจัดเก็บข้อมูลที่ฉลาด) ในระบบที่ไม่ค่อยมีการอัพเดท LVM snapshots คือ COW snapshots, ZFS / BTRFS ทั้งสองมี COW-mode สำหรับ snapshot, reiserfs ไม่มี snapshots โดยกำเนิด, ระบบไฟล์ NSS ของ Novell ยังเป็น COW, เช่นเดียวกับ Volume Shadow Copy สำหรับ Windows NTFS

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

ZFS และ (ในที่สุดหากไม่ได้อยู่ที่นั่น) BTRFS มีความสามารถเต็มรูปแบบสแนปชอตซึ่งมีประโยชน์สำหรับการจัดวางลงบนสื่อแยกต่างหากซึ่งจะเป็นประโยชน์อย่างมากสำหรับระบบสำรองข้อมูลแบบแอบแฝง ZFS ไม่ได้เรียกสิ่งนี้ว่า "สแน็ปช็อต" แต่มันใช้ประโยชน์จากความสามารถของ ZFS ในการใช้zfs sendและzfs recvเพื่อคัดลอกไดรฟ์และสแน็ปช็อตผ่านเครือข่ายไปยังโฮสต์ระยะไกล (หรืออาร์เรย์ภายในเครื่อง)

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

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

ภาพถ่ายสแนปช็อตเต็มรูปแบบนั้นดีหากนำไปใช้กับสื่อที่ถอดออกได้หรือสื่อระยะไกลบางชนิด หากคุณมีที่เก็บข้อมูลเครือข่ายเป้าหมายอาจเป็นอาร์เรย์ iSCSI หรือ Fibre Channel ที่แตกต่างจากที่จัดเก็บข้อมูลหลักซึ่งโฮสต์อยู่สิ่งนี้จะช่วยให้คุณมีการป้องกันแบบ off-array สำหรับข้อบกพร่องบางประเภท หากใช้สื่อแบบถอดได้เช่นไดรฟ์ 3TB ESATA คุณยังสามารถใช้เป็นระบบแบ็คอัพไปยังดิสก์ได้อย่างง่ายดาย ภาพรวมเหล่านี้สามารถอยู่บนฮาร์ดแวร์ที่แตกต่างจากพี่น้อง COW ของพวกเขาดังนั้นจึงมีประโยชน์สำหรับความยืดหยุ่น


บนภาพรวม vs COW

คำว่า 'สแนปชอต' มีการเปลี่ยนแปลงเล็กน้อยในช่วงหลายปีที่ผ่านมา ปีนี้ฉันค่อนข้างแน่ใจว่ามันหมายถึง "สำเนาคัดลอก - เขียน - เขียนข้อมูลต้นฉบับโดยใช้การย้ายบล็อก" ตามคำจำกัดความนี้สแนปชอต "เต็ม" ที่นำเสนอด้านบนไม่ใช่สแนปชอตจริงๆ แต่เป็นการจำลองแบบ ผู้ขายหน่วยเก็บข้อมูลบางรายใช้คำจำกัดความที่แตกต่างกันของ 'ภาพรวม' ในอดีตเพื่ออธิบายการดำเนินการระดับบล็อกต่างๆที่ดำเนินการ จุดที่ทำให้เกิดความสับสนคือระบบที่ใช้สแน็ปช็อตเป็นส่วนหนึ่งของกระบวนการจำลองข้อมูล


«สแนปช็อตระดับระบบไฟล์เป็นสิ่งที่ดีกว่าหนึ่งผ่านทาง LVM สำหรับความจริงง่ายๆที่ระบบไฟล์รู้วิธีที่จะทำให้ตัวเองสอดคล้องกันในระหว่างกระบวนการสแน็ปช็อตซึ่ง LVM สามารถ '» - จริง ๆ แล้วมันกลายเป็นจริง ลองดูสิ: serverfault.com/questions/300961/ …
poige

1
« ZFS และ (ในที่สุดหากไม่ได้อยู่ที่นั่น) BTRFS มีความสามารถในการจับภาพเต็มรูปแบบ» - คุณควรอธิบายว่าคุณหมายถึงอะไรด้วยสแนปชอต "เต็ม" AFAIK ไม่มีตัวเลือก "COW / full" สำหรับภาพรวมด้วย ZFS สแน็ปช็อตทั้งหมดเป็น COW แต่อย่างไรก็ตามสามารถบันทึกได้ในภายหลังในสื่อแยกต่างหากในรูปของระบบไฟล์หรือโวลุ่มทั้งหมด
jlliagre

5

LVM ต้องมีการวางแผนล่วงหน้า ฉันมักจะไม่ใช้เพราะมันเป็นอีกชั้นหนึ่งของสิ่งที่เป็นนามธรรมและไม่ค่อยพร้อมเมื่อฉันต้องการมัน มีตัวเลือกอื่น ๆ ในการโคลนที่ระดับระบบไฟล์ (ใน Linux) โดยไม่มี LVM คุณสามารถใช้Hot Copy จาก R1Softเพื่อทำสิ่งนี้ มันเป็นโมดูลเคอร์เนล แต่ช่วยให้คุณสามารถเพิ่มความสามารถนี้ได้ทันที


3

ปัญหาที่ชัดเจนมาก: สแนปชอตของ LVM ไม่รับประกันว่าจะมี FS jue ที่สอดคล้องกันเนื่องจากLVM "รู้" ไม่เกี่ยวกับ FS ที่กำลังโหลดด้วย

แก้ไข (ดูความคิดเห็น): - จริงเว้นแต่ FS ได้รับการสนับสนุน.freeze_fsไม่เช่นนั้น FS ก็ควรได้รับการจัดการอย่างงดงาม


2
false; LVM prods ระบบไฟล์เพื่อซิงค์ตัวเองก่อนที่จะถ่ายภาพ
womble

1
@ womble: แม้หลังจากsyncนั้น snapshot จะเป็นสำเนาที่แน่นอนของระบบไฟล์ที่เมาท์อยู่แล้ว ดังนั้นเมื่อคุณติดตั้งมันจะปรากฏเป็น 'ไม่ถอนติดตั้งอย่างสมบูรณ์' (เพราะไม่ได้ถูกถอดออก) และต้องทำการแก้ไขบางอย่างก่อนที่มันจะสอดคล้องกัน แน่นอนว่าโดยทั่วไปเป็นเพียงการเล่นซ้ำของสมุดบันทึกและหลังจากsyncนั้นควรเป็นการเล่นซ้ำที่ว่างเปล่า ดังนั้นจึงไม่มีอันตรายจากการสูญเสียข้อมูล
Javier

1
@ womble, 1) การซิงค์ไม่เพียงพอเนื่องจากจะมีหน้าต่างสำหรับคำขอ I / O ใหม่ระหว่างการซิงค์และการจัดการสแน็ปช็อตของ LVM มันต้องมีการปิดกั้น 2) XFS มีคุณสมบัติพิเศษที่เรียกว่า "freeze" ( xfs_freeze is intended to be used with volume managers and hardware RAID devices that support the creation of snapshots.) - สิ่งพิเศษสำหรับสแนปชอต LVM-2 รู้หรือไม่และใช้งานแล้ว? 3) บอกฉันว่าอยู่ที่ไหนในพื้นที่ผู้ใช้ ( แหล่งที่มา. edhat.com/cgi-bin/cvsweb.cgi/LVM2/?cvsroot=lvm2 ) หรือในแหล่งที่มาของเคอร์เนลฉันสามารถพิสูจน์ได้ว่าคุณกำลังบอกเราว่า LVM prods FS เป็น ซิงค์.
poige

9
ตกลงฉันได้ทำบ้านของฉันและตอนนี้สามารถตอบส่วนที่ 3 ของคำถามของฉัน - จริง LVM ใช้ freeze_bdev เคอร์เนล () lock a filesystem and force it into a consistent stateซึ่งเป็นกล่าวในชื่อของมันคือการ อย่างน้อยฉันก็บอกได้ว่าฉันอาจผิดที่พูดว่า "ไม่รับประกันว่าจะมี FS ที่สอดคล้องกัน" เนื่องจากเป็นเรื่องของการสนับสนุน freeze_fs 'method' ในการติดตั้ง FS - FSes บางตัวมีการสนับสนุนอย่างแน่นอน (EXT3, Reiser3, XFS) และบางอย่างไม่ (EXT2 สำหรับเช่น) นอกจากนี้ยังตอบคำถามข้อที่ 2 - การแช่แข็งของ XFS นั้นค่อนข้างจะถูกจัดการโดยอัตโนมัติด้วย LVM
poige

1

เป็นส่วนเติมเต็มให้กับคำตอบอื่น ๆ ในภาพรวม FS คุณสามารถใช้ประโยชน์จากฟีเจอร์ FS เช่นการบีบอัดและการลดความซ้ำซ้อนของภาพรวมทั้งหมด

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