ระบบไฟล์“ ดู” อุปกรณ์เก็บข้อมูลเป็นอาร์เรย์ขนาดใหญ่มากหรือไม่?


12

ฉันต้องการทราบว่าระบบไฟล์เขียนและอ่านจากอุปกรณ์เก็บข้อมูลอย่างไร

ฉันคิดว่านี่เป็นวิธีการทำงาน:

ระบบไฟล์ไม่สามารถเข้าถึงอุปกรณ์จัดเก็บข้อมูลได้โดยตรง แต่จะแสดงอุปกรณ์เก็บข้อมูล (โดยไดรเวอร์อุปกรณ์ของอุปกรณ์เก็บข้อมูล) ไปยังระบบไฟล์ในรูปแบบอาร์เรย์ไบต์ (มีขนาดใหญ่มาก)

ตัวอย่างเช่นหากระบบไฟล์ต้องการเข้าถึงฮาร์ดดิสก์ก็จะเข้าถึงอาร์เรย์ไบต์ที่เป็นตัวแทนของฮาร์ดดิสก์

วิธีนี้ระบบไฟล์สามารถทำงานกับอุปกรณ์เก็บข้อมูลชนิดใดก็ได้ (ฮาร์ดดิสก์แบบดั้งเดิม SSD, USB แฟลชไดรฟ์ ฯลฯ ) และมีการเปลี่ยนแปลงเฉพาะไดรเวอร์อุปกรณ์สำหรับอุปกรณ์เก็บข้อมูล

ภาพนี้แสดงสิ่งที่ฉันเพิ่งอธิบาย:

ป้อนคำอธิบายรูปภาพที่นี่

ฉันถูกต้องในการทำความเข้าใจของฉัน?

คำตอบ:


15

บน Linux (และยุค 1980 Unixes) อุปกรณ์เก็บข้อมูล (มักจะเป็นพาร์ติชันดิสก์บนฮาร์ดดิสก์บางตัวหรือในSSDบางตัว) เป็นอุปกรณ์บล็อก(ดูที่นี่ ) ดังนั้นจึงเป็นลำดับย่อยของบล็อก (ซึ่งคือ หน่วยพื้นฐานของทางกายภาพ I / O) ขนาดฟิสิคัลบล็อกขึ้นอยู่กับฮาร์ดแวร์ (ดิสก์ IDE เก่ามีขนาดบล็อก 512 ไบต์ดิสก์SATAขนาดใหญ่ใหม่มีขนาดบล็อก4Kbytes อ่านwikipage ฟอร์แมตขั้นสูง ) และเมื่อคุณสร้างระบบไฟล์ (เช่นmkfsดูmke2fs (8)) คุณสามารถระบุขนาดบล็อกแบบลอจิคัลซึ่งเป็นขนาดเล็ก (มักจะมีขนาดเล็กกำลังสองรวมถึง 1) ขนาดบล็อกแบบฟิสิคัลนั้น อ่านยังเกี่ยวกับบล็อกทางตรรกะ

ในอดีต (คิดว่า Sun3 เวิร์คสเตชั่นของปี 1990) ดิสก์ทำจากภาชนะบรรจุที่มีหัวที่จัดเรียงในส่วน (อ่านCHS wikipage) โดยมีส่วนที่มีบล็อก วันนี้สิ่งเหล่านี้ยังคงอยู่ แต่เป็นสิ่งประดิษฐ์ที่จัดทำโดยตัวควบคุมฮาร์ดดิสก์ (วงจรบนดิสก์ตัวเอง) ในระบบปฏิบัติการบางโปรแกรมควบคุมอุปกรณ์บล็อกเลื่อนและตับแลบคำขอ IO เพื่อลดการเคลื่อนไหวหัวดิสก์และความล่าช้าในการหมุน

วิธีนี้ระบบไฟล์สามารถทำงานกับอุปกรณ์เก็บข้อมูลชนิดใดก็ได้ (ฮาร์ดดิสก์แบบดั้งเดิม SSD, USB แฟลชไดรฟ์ ฯลฯ ) และมีการเปลี่ยนแปลงเฉพาะไดรเวอร์อุปกรณ์สำหรับอุปกรณ์เก็บข้อมูล

ใช่ แต่ความชั่วร้ายอยู่ในรายละเอียด (เช่นอ่านเกี่ยวกับTRIMและWrite Amplificationเฉพาะสำหรับ SSD) และรายละเอียดมีความสำคัญดังนั้นการใช้งานจริงจึงง่ายกว่ารูปของคุณเล็กน้อย อ่านเพิ่มเติมเกี่ยวกับระบบไฟล์ (และคิดถึงระบบไฟล์แบบคลัสเตอร์และระยะไกลรวมถึงSMB & NFSอ่านเกี่ยวกับLogical Volume Manager ด้วย )

อ่านระบบปฏิบัติการ: สามชิ้นง่าย ๆ (และส่วนที่คงอยู่ )

โปรดสังเกตว่าอุปกรณ์บล็อกนั้นหายไปใน FreeBSD (จริง ๆ แล้วจะให้สิ่งที่เป็นนามธรรมร่วมกันสำหรับอุปกรณ์อักขระและบล็อก) ฉันสงสัยว่าแม้ใน Windows ระบบปฏิบัติการรู้เกี่ยวกับพาร์ทิชันขนาดบล็อก ฯลฯ (แต่คุณควรตรวจสอบ)


Windows ยังจัดการกับพาร์ติชันบนดิสก์และแต่ละพาร์ติชันอาจใช้ระบบไฟล์ที่แตกต่างกัน (อาจเป็น FAT-32 ที่หนึ่งและ NTFS ที่อื่น) ระบบไฟล์อาจเข้าถึงพาร์ติชันที่ระดับบล็อกหรือบล็อกสามารถรวมกันเป็น "กลุ่ม" บนพาร์ติชันที่กำหนดขนาดของคลัสเตอร์จะได้รับการแก้ไข
Simon B

ฉันเรียงลำดับของรู้ว่าเพราะ MSDOS ส่วนใหญ่ทำ
Basile Starynkevitch

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

3

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

ระบบไฟล์ทำงานร่วมกับอุปกรณ์ดิบและทำให้พวกเขาไม่เห็นว่าเป็นอาร์เรย์ขนาดใหญ่ของไบต์ แต่เป็นบล็อกขนาดใหญ่ตามที่ BS อธิบาย

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