พาร์ทิชัน "จัดเรียง" หมายความว่าอะไร?


15

ฉันคุ้นเคยกับพาร์ติชันอะไร แต่ฉันเห็นคำถามเกี่ยวกับพาร์ติชันที่จัดตำแหน่งบน Ask Ubuntuและรู้ว่าฉันไม่ทราบว่า "พาร์ทิชันที่จัดชิด" คืออะไร

ดังนั้นการ "จัดเรียง" พาร์ติชันหมายความว่าอย่างไร สิ่งที่เป็นประโยชน์และข้อเสียคืออะไร?

คำตอบ:


15

การจัดแนวพาร์ติชันหมายถึงการจัดแนวให้ตรงกับโครงสร้างบล็อกที่แท้จริง

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

บน SSD ขนาดบล็อกที่แท้จริงอาจเป็น 128 KB บนอาเรย์ RAID อาจเป็น 64 KB ในฟอร์แมตไดรฟ์ขั้นสูงจะมีขนาด 4 KB

เพื่อความเข้ากันได้ย้อนหลังไดรฟ์ยังคงทำงานกับบล็อก 512 ไบต์ แต่สำหรับเหตุผลด้านประสิทธิภาพระบบของคุณควรรู้ขนาดบล็อกจริง

ในการปรับแต่งประสิทธิภาพที่ง่ายที่สุดที่จะทำคือการจัดพาร์ทิชันไดรฟ์กับขนาดบล็อกจริงเพื่อให้เมื่อระบบปฏิบัติการของคุณเขียน 4 KB หรือ 64 KB หรือ 128 KB มันเขียนบล็อกเต็ม

หากพาร์ติชันไม่ได้จัดแนวผลลัพธ์จะเป็นการเขียน 512 ไบต์ไปยังบล็อกแรกและ 4K - 512 ไบต์ไปยังบล็อกที่สองบังคับให้ดิสก์ / SSD / RAID ทำรอบการอ่าน - แก้ไข - เขียนสองรอบแทนการเขียนหนึ่งครั้ง


คุณมีข้อเสนอแนะใด ๆ เกี่ยวกับunix.stackexchange.com/questions/248939/ หรือไม่
AnkurTank

@ AnkurTank: ไม่คำถามดูเหมือนจะครอบคลุมดี
Zan Lynx

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

3

พาร์ติชันคือลำดับของบล็อกและตามแบบแผนอันยาวนานบล็อกหนึ่งคือ 512 ไบต์

ดังนั้นพาร์ติชันอาจเริ่มต้นที่หลาย ๆ 512 ไบต์ภายในดิสก์ "เห็น" เป็นสตริงที่ยาวมาก

แม้ว่าฮาร์ดแวร์ดิสก์พื้นฐานซึ่งแต่เดิมมีขนาดเซกเตอร์ 512 ไบต์เหมือนกันตอนนี้ใช้ขนาดที่ใหญ่ขึ้นเพื่อประสิทธิภาพ สมมุติว่ามันคือ 4096 ไบต์

ด้วยเหตุผลด้านความเข้ากันได้เฟิร์มแวร์ที่อยู่ระหว่างระบบปฏิบัติการและฮาร์ดแวร์ยังคงเป็น "การเจรจาในส่วน" ดังนั้นคุณจะถามเซกเตอร์แรกและฮาร์ดแวร์จะดึงบล็อกแรก (4096 ไบต์) และเฟิร์มแวร์จะแยกและส่งชิ้นส่วนที่เหมาะสม คุณถามบล็อกที่สองและบล็อกอาจถูกดึงออกมาจากแคช

จนถึงขนาดเซกเตอร์ไม่ตรงกันไม่มีข้อเสีย

แต่ระบบปฏิบัติการยังใช้บล็อก (โดยปกติจะเรียกว่ากลุ่ม ) เพื่อประสิทธิภาพและจะจัดเรียงไว้ในพาร์ติชัน ดังนั้นคลัสเตอร์ 4 เซกเตอร์จะประกอบด้วยเซกเตอร์ 5, 6, 7 และ 8

เมื่อระบบปฏิบัติการร้องขอคลัสเตอร์ระบบไฟล์ # 2 เฟิร์มแวร์จะได้รับการร้องขอสำหรับโลจิคัลเซ็กเตอร์ 5, 6, 7 และ 8 หากอยู่ในบล็อกดิสก์เดียวกันแสดงว่าดิสก์นั้นมีการอ่านเพียงครั้งเดียว

แต่ถ้าพาร์ติชันเริ่มต้นที่เซคเตอร์ "ผิด" คลัสเตอร์แรกในระบบไฟล์จะสิ้นสุดลงทำให้ง่ายขึ้นที่เซกเตอร์ 2, 3, 4 และ 5 และพวกเขาอาจจะครึ่งหนึ่งในบล็อกดิสก์แรก (1) -2-3-4) ครึ่งหนึ่งในสอง (5-6-7-8)

ตอนนี้คุณต้องอ่านเพิ่มอีกหนึ่งรายการ สำหรับอัตราส่วน OS-to-disk ที่ 1: 1 จะเหมือนกับการอ่านเป็นสองเท่า หากอัตราส่วน OS-to-disk คือ 2: 1 คลัสเตอร์คือบล็อกดิสก์ฮาร์ดแวร์สองบล็อกคุณจะต้องอ่าน 2 + 1 = 3 ค่าปรับ 50%:

OS   |--- cluster  12 ---|--- cluster  13 ---|--- cluster  14...
     |                   |                   |
HDD  --|----|----|----|-a--|--b-|-c--|-d--|-e--|----|---        BAD
     |                   |                   |
HDD  |----|----|----|----|-a--|--b-|-c--|-d--|----|----|---     GOOD

ด้านบนคลัสเตอร์คือฮาร์ดแวร์ 4 บล็อก (อัตราส่วน 4: 1) 2 ส่วน การจัดแนวที่เซกเตอร์ "คู่" หมายความว่าการอ่านคลัสเตอร์ที่ภาค 8 นั้นอ่านแปลเป็น 4 บล็อกอ่าน การจัดแนวเซกเตอร์แบบคี่หมายความว่าการอ่านเซกเตอร์ 8 รายการเดียวกันนั้นต้องมีการอ่านบล็อก 4 + 1 = 5 ซึ่งมีโทษประสิทธิภาพ 25% (คุณเพิ่มหนึ่งการอ่านทุก ๆ สี่)

หากคุณมีดิสก์ที่มีการจัดแนวไม่ถูกต้องด้วยอัตราส่วน 4: 1 การจัดแนวดิสก์จะทำให้เร็วขึ้น 20% (คุณบันทึกการอ่านทุก ๆ 5)

ในการสร้างพาร์ติชัน "จัดตำแหน่ง" คุณสามารถย้าย / ตั้งค่าออฟเซ็ตจากจุดเริ่มต้นของดิสก์ไปยังหลายภาคส่วนที่เหมาะสมของ 512b- ภาคหรือ (ขึ้นอยู่กับเครื่องมือ) คุณสามารถแทรกพาร์ติชันขนาดเล็กที่จุดเริ่มต้นของดิสก์ ด้วยขนาดที่พาร์ติชันถัดไปเริ่มต้นตรงกับขอบเขตของดิสก์ ในกรณีที่สองนี้ในทางทฤษฎีคุณจำเป็นต้องใช้ในภาค N-1 ส่วนใหญ่เช่นในจำนวนน้อยมากในทางปฏิบัติคุณอาจจำเป็นต้องสูญเสียหลายร้อยกิโลไบต์อาจเป็นเมกะไบต์ทั้งหมดเพื่อบีบการแสดงมากที่สุดจากคุณ ฮาร์ดไดรฟ์หลายกิกะไบต์

(คุณอาจกู้คืนพื้นที่นั้นและอีกมากมายโดยเลือกขนาดของคลัสเตอร์ OS อย่างเหมาะสม)


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

1
นอกจากนี้ไม่จำเป็นต้องสร้างพาร์ติชันพิเศษไม่มีกฎใด ๆ ที่ต้องใช้พื้นที่ทั้งหมดบนดิสก์เพื่อแยกพาร์ติชัน
plugwash

2

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

จนกระทั่งกลางยุค 2000 มีการจัดพาร์ทิชันตามแนวเดิมกับขอบเขต "ทรงกระบอก" ด้วยเหตุผลทางประวัติศาสตร์ "กระบอกสูบ" เป็นปกติ 63 ภาค เซกเตอร์ 0 ประกอบด้วยบูตเซกเตอร์และตารางการแบ่งส่วน ภาคต่อมาในรูปทรงกระบอก 0 บางครั้งข้อมูลเพิ่มเติมต่อไปสำหรับ bootloader โดยทั่วไปพาร์ติชันแรกเริ่มต้นที่จุดเริ่มต้นของทรงกระบอก 1

ระบบไฟล์ส่วนใหญ่จัดกลุ่มเซกเตอร์ลงในบล็อกที่ใหญ่กว่า (บางครั้งเรียกว่า "กลุ่ม") โดยทั่วไปจะมีขนาด 4KiB

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

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

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

การปฏิบัติตามปกติในปัจจุบันคือการจัดพาร์ทิชันให้สอดคล้องกับขอบเขต 1MiB ซึ่งมีขนาดใหญ่พอที่สองคือขนาดของบล็อกทั่วไป


1

ส่วนใหญ่แล้วพวกเขาจะอ้างถึงฮาร์ดไดรฟ์รูปแบบขั้นสูงใหม่

บทความการจัดตำแหน่งที่นี่

http://consumer.media.seagate.com/2010/03/the-digital-den/4k-sector-hard-drive-primer/

อีกคนหนึ่งที่นี่ http://notepad.patheticcockroach.com/900/dealing-with-wd-advanced-format-hard-drives-on-linux-windows-and-mac-os-part-1/


0

Dunno ถ้ามันมีประโยชน์ แต่ความเข้าใจของฉันคือการจัดเรียงพาร์ติชั่นคือเมื่อคุณจัดพาร์ติชันที่กำหนดด้วย RAID สตริปพื้นฐาน

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

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

ฉันอาจจะออกนอกทางและสิ่งนี้จะไม่มีอะไรเกี่ยวข้องกับ RAID;)

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