คุณสูญเสียทุกสิ่งทุกอย่างเมื่อคุณมีความล้มเหลวของฮาร์ดดิสก์ใน LVM ของฮาร์ดดิสก์หลายตัวที่ไม่ใช้ RAID หรือไม่?


16

ฉันกำลังถกเถียงกันเกี่ยวกับการใช้ LVM สำหรับเซิร์ฟเวอร์สื่อ / ไฟล์เพราะฉันต้องการรวมฟิสิคัลฮาร์ดดิสก์หลายตัวไว้ในโวลุ่มเดียว ฉันไม่ต้องการใช้ RAID ใน LVM ของฉันดังนั้นคำถามของฉันคือ:

หากหนึ่งในหลาย ๆ ฮาร์ดดิสก์ในโวลุ่มของฉันลงไปฉันจะสูญเสียข้อมูลทั้งหมดของฉันหรือฉันจะสูญเสียข้อมูลที่เก็บไว้ในดิสก์แต่ละแผ่นหรือไม่

นอกจากนี้หากฉันเพิ่งสูญเสียข้อมูลในดิสก์แต่ละแผ่นมันจะง่ายพอ ๆ กับการแทนที่ดิสก์นั้นและกู้คืนสิ่งที่อยู่ในข้อมูลสำรองเพื่อกู้คืนหรือไม่

คำตอบ:


11

หากหนึ่งในหลาย ๆ ฮาร์ดดิสก์ในโวลุ่มของฉันลงไปฉันจะสูญเสียข้อมูลทั้งหมดของฉันหรือฉันจะสูญเสียข้อมูลที่เก็บไว้ในดิสก์แต่ละแผ่นหรือไม่

ไม่คุณจะสูญเสียข้อมูลที่เก็บไว้ใน LVM ทั้งหมด

นอกจากนี้หากฉันเพิ่งสูญเสียข้อมูลในดิสก์แต่ละแผ่นมันจะง่ายพอ ๆ กับการแทนที่ดิสก์นั้นและกู้คืนสิ่งที่อยู่ในข้อมูลสำรองเพื่อกู้คืนหรือไม่

ไม่มันไม่ง่ายอย่างนั้น

คุณสามารถอ่านคำถามที่คล้ายกันที่นี่LVM และการกู้คืนระบบ


7

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

mhddfs /dir1,/dir2[,/path/to/dir3] /path/to/mount [-o options]

หรือใน /etc/fstab

 mhddfs#/path/to/dir1,/path/to/dir2 /mnt/point fuse defaults 0 0

ที่ซับซ้อนและมีประสิทธิภาพ: คุณต้องการunionfs
ในขณะที่ mhddfs นั้นดีและเรียบง่ายมากฉันมีปัญหาเกี่ยวกับการอนุญาตไฟล์เมื่ออนุญาตให้ผู้อื่นเข้าถึงผ่าน SSH ฉันไม่พบวิธีแก้ปัญหาใด ๆ แต่พบ unionfs
Unionfs ยังอนุญาตให้คุณเมานต์หลาย ๆ โฟลเดอร์ข้ามระบบไฟล์ที่แตกต่างกันในที่เดียว แต่มันวิเศษในการอนุญาต คุณสามารถรวมหลายโฟลเดอร์แบบอ่านอย่างเดียวและหนึ่งโฟลเดอร์ที่เขียนได้เข้าด้วยกันดังนั้นจึงปรากฏเป็นโฟลเดอร์เดียว คนที่คุณแชร์โฟลเดอร์ที่ถูกผสานด้วยจะสามารถเขียนไปยังโฟลเดอร์แบบอ่านอย่างเดียว - ตามที่ปรากฏกับพวกเขา - แต่ไฟล์จะสิ้นสุดลงในโฟลเดอร์ที่เขียนได้ครั้งเดียว ลินุกซ์บูตซีดีทำงานเช่นนี้ดิสก์ที่เขียนได้คือ ramdisk ผู้คนสามารถลบไฟล์ในโฟลเดอร์แบบอ่านอย่างเดียวซึ่งไม่ได้ลบไฟล์จริงๆ แต่สร้างไฟล์รายการที่อนุญาตที่ซ่อนอยู่ในไดเรกทอรีเขียนของพวกเขา หากคุณตรวจจับตัวเลือกทั้งหมดคุณสามารถใช้ระบบไฟล์ของคุณเป็น SVN ที่ไม่ดีได้
หากคุณใช้ตัวเลือกที่คล้ายกับ SVN มากเกินไปคุณอาจพลาดข้อมูลที่มีอยู่สองครั้ง (ไม่น่าเป็นไปได้ในสถานการณ์ของคุณ แต่เป็นไปได้) ในขณะที่โฟลเดอร์ที่เขียนได้ของคุณเต็มไปด้วยไฟล์ที่ปลอดภัย นอกจากนั้นยังช่วยให้ดิสก์ของคุณสะอาดและสามารถใช้งานได้เป็นรายบุคคล จะเกิดอะไรขึ้นถ้าไฟล์มีขนาดใหญ่เกินไปสำหรับดิสก์ฉันยังไม่รู้
การใช้งาน:

 unionfs-fuse -o cow,max_files=32768 \
                 -o allow_other,use_ino,suid,dev,nonempty \
                 /path/to/dir1=rw:/path/to/dir2=ro:/dir3
                 /u/union/etc

ที่=rwทำให้โฟลเดอร์อ่านและเขียนได้และ=roทำให้อ่านได้อย่างเดียวแม้ว่าสิทธิ์จะระบุเป็นอย่างอื่น ในที่etc/fstabนี้ก็คือ

unionfs-fuse#/path/to/dir1=rw:/path/to/dir2=ro:dir3 /path/to/mount fuse cow,allow_other 0 0

วิธีจัดการกับดิสก์แบบถอดได้เหล่านี้ไม่ได้เสียบอยู่
endolith

@endolith mhddfs บนดิสก์แบบถอดได้นั้นหมายถึงการไม่รู้ว่าอะไรจะเกิดขึ้นในท้ายที่สุด unionfs ก็สมเหตุสมผลดี แต่ก็ต้องเล่าให้แตกต่างกันขึ้นอยู่กับความพร้อมใช้งานของอุปกรณ์แบบถอดได้
DennisH

ฉันไม่เข้าใจความคิดเห็นของคุณ หากคุณรวมไดรฟ์ USB 3 ตัวโดยใช้ mhddfs และวางไฟล์ไว้บนไดรฟ์แล้วลบออกหนึ่งรายการจะมีสิ่งใดเกิดขึ้นอย่างถาวรหรือไม่ หากคุณเสียบกลับเข้าไปมันจะกลับไปเหมือนเดิมหรือไม่?
endolith

3
@endolith การถอดปลั๊กระหว่างเขียนไม่ดี หากคุณถอดปลั๊กออกหลังจากเขียนไดรฟ์ USB จะทำงานแยกกันทุกรายการไม่เป็นปัญหา คุณสามารถถอดปลั๊กไดรฟ์เสียบเข้ากับ PC2 ใช้แล้วเสียบกลับเข้าไปใน PC1 และนับใหม่เพื่อใช้งานต่อได้เหมือนเดิม ในระหว่างจุดเมานท์บนพีซีปกติของคุณจำเป็นต้องได้รับแจ้งว่าคุณใช้ไดรฟ์ (ติดตั้งใหม่) แต่สมมติว่าคุณแชร์ไฟล์ 2 ไฟล์กับ PC2 คุณไม่สามารถบอกได้ว่าไดรฟ์ตัวใดของ mhddfs ที่เมาท์นั้นจะสิ้นสุดลงหรือว่ามันเป็นไดรฟ์เดียวกัน ไดรฟ์ยังสามารถเข้าถึงได้แบบเอกเทศเพื่อตรวจสอบ / รับรองตำแหน่ง แต่ไม่เกี่ยวข้องกับ mhddf อีกต่อไป
DennisH

4

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

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

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


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

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

4
@ user72630: คุณมีความเข้าใจผิดที่ร้ายแรงเกี่ยวกับวิธีการทำงานของ RAID ก่อนอื่นมีระดับ RAID ที่แตกต่างกันซึ่งส่วนใหญ่ได้รับการออกแบบมาเพื่อหลีกเลี่ยงการสูญเสียข้อมูลในกรณีที่ดิสก์ทำงานล้มเหลว จากนั้นคุณสามารถกำหนดค่า RAID ให้มีระบบไฟล์เดียวในหลายดิสก์เช่นเดียวกับที่คุณวางแผนด้วย LVM โปรดอ่านen.wikipedia.org/wiki/RAID
สเวน

สิ่งที่คนอื่นพูด จุดทั้งหมดของการมี RAID คือการรักษาความพร้อมใช้งาน ... นั่นคือไดรฟ์ล้มเหลวข้อมูลยังคงสามารถเข้าถึงได้ ด้วยเกียร์ที่เหมาะสมคุณสามารถ hot-swap ไดรฟ์ที่ล้มเหลวและไม่ต้องกังวลเกี่ยวกับการหยุดทำงานที่ทั้งหมด
Bart Silverstrim

3

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

และการกู้คืนไฟล์ของดิสก์ที่เสียหายจะไม่ทำงานด้วยเหตุผลเดียวกัน


2

ฉันคิดว่าเส้นทางที่ง่ายกว่านี้มากคือการกำหนดค่า mdadm สำหรับพาร์ติชันสื่อของคุณ หากคุณไม่มีฮาร์ดแวร์สำหรับ "RAID จริง" ที่ไปตามเส้นทาง mdadm จะง่ายกว่ามากและดูเหมือนจะตอบสนองความต้องการของคุณสำหรับความซ้ำซ้อนและการเปลี่ยนดิสก์อย่างง่าย

# Format your drives first
# Create your MD
mdadm --create /dev/md1 --level=5 --raid-devices=3 /dev/sda2 /dev/sdb2 /dev/sdc2

# In the event that a drive fails do the following
mdadm /dev/md1 --fail /dev/sda1
# Format the new drive
mdadm --add /dev/md1 /dev/sda1

สำหรับข้อมูลเพิ่มเติม: http://en.wikipedia.org/wiki/Mdadm

หากหนึ่งในหลาย ๆ ฮาร์ดดิสก์ในโวลุ่มของฉันลงไปฉันจะสูญเสียข้อมูลทั้งหมดของฉันหรือฉันจะสูญเสียข้อมูลที่เก็บไว้ในดิสก์แต่ละแผ่นหรือไม่

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


1

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


0

Btrfs เป็นตัวเลือกที่ดีที่นี่; คุณสามารถให้เมทาดาทามีความยืดหยุ่นต่อการสูญเสียหนึ่งดิสก์ (โปรไฟล์ chunk "raid1"); ข้อมูลในดิสก์อื่นจะยังคงสามารถเข้าถึงได้ (เพื่อให้ชัดเจนเราแปลว่าไฟล์ที่เต็มไปด้วยหลุมทุกที่ที่มีการอ้างอิงดิสก์ที่หายไป) สิ่งนี้ทำได้โดยการรันbtrfs balance ด้วยตัวกรอง :

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