สิ่งที่ไม่จำเป็นต้องมีการจัดเรียงข้อมูล? Linux หรือ ext2 ext3 FS หรือไม่


32

ทำไมคุณไม่ต้องจัดเรียงข้อมูลบนระบบ Linux? เพราะมันใช้ระบบไฟล์ ext2 / ext3 หรือเพราะมันเป็นลีนุกซ์

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

ปัญหาอื่นคือคอนเทนเนอร์ Truecrypt ฉันยังเข้าถึงพวกเขาด้วย Linux และ Windows และพวกเขาเป็น FAT32 พวกมันถูกแยกส่วนโดยลีนุกซ์หรือไม่?


2
คำตอบอื่น ๆ นั้นดี แต่ปล่อยให้บิตที่สำคัญหนึ่งบิต: ระบบไฟล์ทั้งหมด: ext2 / 3/4 และ NTFS จะแยกส่วนไฟล์ค่อนข้างมากเมื่อพื้นที่ดิสก์เหลือน้อย หากคุณต้องการป้องกันการแตกแฟรกเมนต์ไม่อนุญาตให้ระบบไฟล์ของคุณใช้เกิน 90%
Zan Lynx

1
หากคุณใช้ ext4 คุณจะประหลาดใจเมื่อเห็นว่ามีการแตกแฟรกเมนต์เท่าไรเมื่อคุณรันe4defrag -v .ในไดเรคทอรีทรีโดยเฉพาะอย่างยิ่งถ้ามันมีไฟล์พูดที่ดาวน์โหลดด้วยไคลเอนต์ torrent (แม้ว่าบางอันใช้fallocate/ posix_fallocate)
rbrito

แม้ว่าคำถามจะขึ้นอยู่กับความเห็นส่วนตัว แต่ฉันคิดว่ามันต้องอาศัยข้อเท็จจริงที่เกิดขึ้นจริงมากขึ้น
Julie Pelletier

คำตอบ:


27

นี่คือบทความเกี่ยวกับHow To Geekเกี่ยวกับวิธีที่ ext2 / ext3 จัดสรรไฟล์บนดิสก์ และพวกเขายังมีบทความถามว่า " คุณต้องการจัดเรียงข้อมูลจริงๆหรือไม่"


ทำไม FAT ถึงมีการแยกส่วน:

"เมื่อคุณบันทึกไฟล์ลงในระบบไฟล์ FAT [ไฟล์จะถูกบันทึก] ใกล้กับจุดเริ่มต้นของดิสก์มากที่สุดเมื่อคุณบันทึกไฟล์ที่สอง [ไฟล์ถูกบันทึก] หลังจากไฟล์แรก - และอื่น ๆ เมื่อไฟล์ต้นฉบับมีขนาดใหญ่ขึ้นไฟล์เหล่านั้นจะกระจัดกระจายอยู่เสมอไม่มีที่ว่างให้พวกเขาเติบโตได้ "
- วิธีการเกินบรรยาย

และวิกิพีเดียมีข้อมูลเพิ่มเติมเกี่ยวกับการกระจายตัวของ FAT

วิธีการจัดสรรไฟล์ EXT2,3,4:

"ระบบไฟล์ ext2, ext3 และ ext4 [... ] จัดสรรไฟล์ด้วยวิธีที่ชาญฉลาดยิ่งขึ้นแทนที่จะวางไฟล์หลาย ๆ ไฟล์ไว้ใกล้กันบนฮาร์ดดิสก์ระบบไฟล์ Linux จะกระจายไฟล์ที่แตกต่างกันไปทั่วดิสก์ เนื้อที่ว่างระหว่างพวกเขา "
- วิธีการเกินบรรยาย

(และข้อมูลเพิ่มเติมเกี่ยวกับการจัดเรียงข้อมูลบน ext3 จากวิกิพีเดีย )

"ระบบไฟล์ Linux รุ่นใหม่มีการแตกแฟรกเมนต์อย่างน้อยที่สุดโดยเก็บบล็อกทั้งหมดในไฟล์ไว้ด้วยกันแม้ว่าจะไม่สามารถจัดเก็บในส่วนที่ต่อเนื่องกันได้ระบบแฟ้มบางระบบเช่น ext3 จะจัดสรรบล็อกว่างที่ใกล้เคียงที่สุด บล็อกในไฟล์ดังนั้นจึงไม่จำเป็นต้องกังวลเกี่ยวกับการแตกแฟรกเมนต์ในระบบ Linux "
- TLDP


4
คำตอบที่ดี! แต่คุณควรเพิ่มเนื้อหาอีกเล็กน้อย แนวคิดคือคำตอบใด ๆ ใน StackExchange ควรเพียงพอด้วยตัวเอง หากลิงก์คำถามของคุณเสียคำตอบของคุณจะไม่ได้รับความช่วยเหลือใด ๆ ดังนั้นคุณควรให้คำอธิบายที่เพียงพอในโพสต์ของคุณจากนั้นให้ลิงก์สำหรับอ่านเพิ่มเติม
lgeorget

1
ขอบคุณ @lgeorget - ฉันเอาคำตอบออกมาพร้อมกับใบเสนอราคาทิศทางเพื่อให้มีเนื้อหาที่จะอ่าน "ทำไม" เสมอ ฉันขอขอบคุณที่คุณอินพุต / crit ที่สร้างสรรค์ !!
dougBTV

msgstr "เมื่อคุณบันทึกไฟล์ไปยังระบบไฟล์ FAT มันจะบันทึก". ไม่สมเหตุสมผล มันคืออะไร"? FAT เป็นรูปแบบระบบไฟล์ มันอธิบายถึงสถานที่ที่คุณสามารถบันทึกได้ แต่ไม่ได้ จำกัด อยู่ที่เดียว ในความเป็นจริงระบบปฏิบัติการตัดสินใจ แต่มี OS'es ที่แตกต่างกันมากมายซึ่งสามารถเขียนถึง FAT และแต่ละคนตัดสินใจด้วยตัวเอง
MSalters

@MSalters - เห็นด้วย ฉันจะแก้ไขส่วนที่ยกมาเพื่อละเว้นความคลุมเครือนั้น
dougBTV

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

23

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

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

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

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


"สิ่งนี้ถูกย่อให้เล็กสุดโดยใช้ I / O scheduler ที่มีความสามารถ" มีบางอย่างที่ไม่ถูกต้องสำหรับวลีนั้น
Faheem Mitha

ขอบคุณสำหรับการจับที่ ฉันไม่ดีที่จะแก้ไขภาษาของฉันโดยไม่แก้ไขปัญหาใด ๆ ที่ทำให้เกิดการแก้ไขด้วยไวยากรณ์โดยรวมของประโยคในวรรค
Bratchley

นี่เป็นคำตอบที่ดี ฉันจะเพิ่มบางอย่างเกี่ยวกับ CoW (คัดลอกเมื่อเขียน) มันมีความสัมพันธ์ที่ใกล้ชิดกับว่า fs มีการแยกส่วนหรือไม่
Martin Sugioarto

4

ตอบคำถามของคุณทีละคน:

ทำไมคุณไม่ต้องจัดเรียงข้อมูลบนระบบ Linux? เพราะมันใช้ระบบไฟล์ ext2 / ext3 หรือเพราะมันเป็นลีนุกซ์

เนื่องจาก ext2 / 3/4 มีวิธีการที่แตกต่างกันเกี่ยวกับไฟล์และโฟลเดอร์ดังนั้นจึงแทบไม่ได้รับการแยกส่วน มีคนอื่นตอบแล้วเกี่ยวกับเรื่องนี้และคุณสามารถอ่านรายละเอียดเพิ่มเติมได้ที่นี่

นั่นเป็นเรื่องที่เกี่ยวข้องกันเพราะมีระบบบูตคู่ (W7 / Ubuntu) และพาร์ติชันทั่วไป (NTFS) ที่สามารถเข้าถึงได้โดยทั้งสองระบบ ถ้าฉันใช้พาร์ติชั่นนี้กับลีนุกซ์, มันจะมีการแยกส่วนหรือไม่?

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

ปัญหาอื่นคือคอนเทนเนอร์ Truecrypt ฉันยังเข้าถึงพวกเขาด้วย Linux และ Windows และพวกเขาเป็น FAT32 พวกมันถูกแยกส่วนโดยลีนุกซ์หรือไม่?

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

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

เมื่อคุณบันทึกลบคัดลอกย้าย ฯลฯ ไฟล์ภายในคอนเทนเนอร์ระบบปฏิบัติการไม่รู้จักมันเป็นเรื่องเดียวกันกับการเปิดแก้ไขและบันทึกไฟล์อื่น ๆ โดยไม่ต้องเปลี่ยนขนาด

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


3

ในที่สุดมันก็ลงไปที่ไดรเวอร์ระบบไฟล์ภายในระบบปฏิบัติการ

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

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

ในความเป็นจริง ext2 และ FAT นั้นไม่แตกต่างอย่างที่คิด ฉันได้เขียนส่วน ext2 ของ bootloader ที่ด้านบนของรหัส FAT ที่มีอยู่และต้องใช้รหัสพิเศษน้อยกว่า 100 บรรทัด

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