ฮาร์ดไดรฟ์มีจุดรายงานขนาดเซกเตอร์กายภาพอย่างไร


13

ฉันมี SSD ที่สามารถกำหนดค่าให้รายงานขนาดเซกเตอร์กายภาพของระบบปฏิบัติการได้สองวิธี:

ตัวเลือกที่ 1: Logical = 512 Bytes, Physical = 512 Bytes

ตัวเลือกที่ 2: Logical = 512 Bytes, Physical = 4096 Bytes (4K)

ระบบปฏิบัติการได้ประโยชน์อะไรบ้างจากการตระหนักถึงขนาดเซกเตอร์กายภาพขนาด 4K โดยพิจารณาจาก:

  • ระบบปฏิบัติการจะต้องพูดคุยกับไดรฟ์ในภาค 512 ไบต์โดยไม่คำนึงถึง

  • ระบบปฏิบัติการที่ทันสมัยทั้งหมดสอดคล้องกับ 4K และใช้ 4K หรือทวีคูณของ 4K I / O โดยไม่คำนึงถึง

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

ตัวอย่างเช่น Windows 7 จัดพาร์ติชันเป็น 1MB (หลาย 4K) ขนาดคลัสเตอร์ NTFS คือ 4K หรือหลายเท่าและ I / O ทั้งหมดจะทำใน 4K หรือหลาย ๆ Windows ไม่ได้ให้สิ่งที่คุณมีกับฮาร์ดไดรฟ์มันจะใช้พฤติกรรมดังกล่าวในทุกกรณี

อย่างไรก็ตาม ... SSD ของฉันมีการตั้งค่า "ขนาดเซกเตอร์กายภาพ" และดังนั้นจึงต้องอยู่ที่นั่นด้วยเหตุผลที่ดีบางอย่าง ... นี่คือเหตุผลสำหรับสิ่งนี้ที่ฉันกำลังมองหา

BTW สำหรับสิ่งที่คุ้มค่าไดรฟ์เป็นIntel SSD DC S3510 แผ่นข้อมูลของไดรฟ์กล่าวสิ่งนี้ (หน้า 27):

โดยใช้คำสั่ง SCT 0xD801 กับ State = 0, Option = 1, ID Word 106 สามารถเปลี่ยนจาก 0x6003 เป็น 0x4000 (ขนาดเซกเตอร์กายภาพ 4KB เป็น 512B เปลี่ยนขนาดเซกเตอร์สนับสนุนภาคกายภาพ)


1
4096 Bytes เป็นฮาร์ดไดรฟ์ฟอร์แมตฟอร์แมตขั้นสูงสามารถทำได้ขึ้นอยู่กับระบบปฏิบัติการหากฮาร์ดไดรฟ์จะเลียนแบบ 512K
Moab

2
อินเทอร์เฟซการเก็บข้อมูลเป็นขุมทรัพย์ของการตัดสินใจแบบดั้งเดิม ... "ขนาดเซกเตอร์กายภาพ 4 KB" ไม่เป็นความจริงเช่นกัน แฟลชมีขนาดเซกเตอร์กายภาพซึ่งโดยปกติจะเกิน 256 kB ขนาดของเซกเตอร์ที่รายงานทั้งหมดเป็น (il) โลจิคัล
MSalters

คำตอบ:


16

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

เมื่อระบบปฏิบัติการแบบดั้งเดิมพยายามเขียนลงดิสก์รูปแบบขั้นสูงปัญหาด้านประสิทธิภาพอาจเกิดขึ้นได้เนื่องจากเซกเตอร์ตรรกะที่เขียนอาจไม่ตรงกับเซกเตอร์กายภาพ

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

[... ] ฮาร์ดไดรฟ์ต้องอ่านภาค 4K ทั้งหมดที่มีตำแหน่งเป้าหมายของคำขอเขียนโฮสต์รวมข้อมูลที่มีอยู่ด้วยข้อมูลใหม่แล้วเขียนภาค 4K ทั้งหมดใหม่:

อ่าน - แก้ไข - เขียนรอบ

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

พาร์ติชันดิสก์ที่ไม่จัดแนวกับขอบเขต 4K อาจทำให้ประสิทธิภาพลดลงเช่นกัน

  • โดยปกติแล้วพาร์ติชันแรกบนฮาร์ดดิสก์เริ่มต้นที่เซกเตอร์ 63 Windows XP และระบบปฏิบัติการรุ่นเก่าที่แบ่งพาร์ติชันดิสก์ด้วยวิธีนี้ Windows รุ่นใหม่กว่าจะสร้างพาร์ติชันบนขอบเขต 1 MB เพื่อให้แน่ใจว่ามีการจัดตำแหน่งที่เหมาะสมกับเซกเตอร์กายภาพ นี้เรียกว่าการจัดข้อความ 0

    • หมายเลขคี่นี้เป็นสิ่งประดิษฐ์ของการกำหนดแอดเดรสของcylinder-head-head (CHS) ที่ใช้ในINT 13hซึ่งเป็นAPI ของ BIOSดั้งเดิมที่ใช้สำหรับการเข้าถึงดิสก์ บนระบบดั้งเดิมและ bootloaders ที่ใช้ INT 13h API พาร์ติชันทั้งหมดจะต้องเริ่มต้นและสิ้นสุดตามขอบเขตกระบอกสูบ แม้ว่าจะมีการแนะนำการบล็อกแบบลอจิคัลบล็อก (LBA)ค่า CHS ปลอม (ซึ่งไม่สอดคล้องกับรูปทรงเรขาคณิตของดิสก์จริง) ก็ถูกใช้เพื่อรักษาความเข้ากันได้กับ API ดั้งเดิม ตั้งแต่ CHS addressing สนับสนุนเดิมสูงสุด 63 ภาคต่อกระบอก, พาร์ทิชันแรกจะเริ่มในภาค 63. Windows XP (ก่อน Service Pack 3) และ Windows รุ่นก่อนหน้าจะไม่บูตถ้าระบบเสียงไม่ได้อยู่ในเขตแดนกระบอก
  • เนื่องจาก LBA 63 ไม่ได้เป็นหลายส่วนของ 8 (แปดเซกเตอร์ 512 ไบต์แบบแปดพอดีกับเซ็กเตอร์ 4K) ดิสก์รูปแบบขั้นสูงซึ่งจัดรูปแบบในลักษณะเก่าจะมีกลุ่ม (หน่วยที่เล็กที่สุดของการจัดสรรข้อมูลระบบไฟล์โดยทั่วไปคือ 4K ขนาด ) ที่ไม่สอดคล้องกับภาคกายภาพบนดิสก์ 4K, สภาพที่เรียกว่าการจัด 1 ด้วยเหตุนี้การดำเนินงาน I / O ที่เกี่ยวข้องกับข้อมูล 4K จะครอบคลุมสองส่วนที่นำไปสู่การดำเนินการอ่าน - แก้ไข - เขียนที่ลดประสิทธิภาพลง

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

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

SSD ของคุณให้ความสามารถในการเปลี่ยนขนาดเซกเตอร์กายภาพที่รายงานเนื่องจากจำเป็นสำหรับความเข้ากันได้กับอาร์เรย์จัดเก็บข้อมูลบางอย่าง

  • ศูนย์ข้อมูลมักจะมีอาร์เรย์หน่วยเก็บข้อมูลที่ประกอบด้วยไดรฟ์ 512n ดั้งเดิม ไดรฟ์ 4K แม้กระทั่งไดรฟ์ที่เลียนแบบ 512 ไบต์อาจเข้ากันไม่ได้กับอาร์เรย์ดังกล่าวดังนั้นคุณสมบัตินี้จึงจำเป็นสำหรับความเข้ากันได้ ดูกระทู้ในฟอรั่มนี้ :

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

    โปรดทราบว่าประสิทธิภาพที่ดีขึ้นจะได้รับในระบบที่ทันสมัยหากมีการกำหนดค่าไดรฟ์ให้ใช้งานภาค 4K


ประชดคือ OS 'ที่ไม่ทราบวิธีการจัดตำแหน่งอย่างถูกต้องจะไม่สามารถสอบถามฮาร์ดไดรฟ์สำหรับ "ขนาดเซกเตอร์กายภาพ" ระบบปฏิบัติการ 'ที่รู้วิธีจัดแนวอย่างถูกต้องไม่จำเป็นต้องค้นหาฮาร์ดไดรฟ์สำหรับ "ขนาดเซกเตอร์กายภาพ" เพราะจะจัดเรียงตามค่าเริ่มต้น เช่น Windows จัดชิด 1MB
misha256

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

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

3
ในขณะที่เกี่ยวข้องกับฮาร์ดไดรฟ์คำตอบนี้ไม่เกี่ยวข้องกับ SSD ขนาดบล็อกเขียน / ลบ SSD มีขนาดหลายเมกะไบต์ดังนั้นแม้ "4K" จริง "ก็ไม่ใกล้เคียงกับขนาดเซกเตอร์จริง
qasdfdsaq

1
@qasdfdsaq ขนาดการเขียนไม่จำเป็นต้องเหมือนกับขนาดการลบ 4K จะเป็นส่วนย่อยของการติดตามบล็อก "ที่ใช้งานอยู่" ในขณะเดียวกันฉันเชื่อว่าส่วนสุดท้ายของคำตอบนี้เกี่ยวกับ ZFS คือคำตอบที่ถูกต้อง: utcc.utoronto.ca/~cks/space/blog/tech/…
pjc50

5

ระบบปฏิบัติการได้ประโยชน์อะไรจากการรับรู้ถึงขนาดเซกเตอร์กายภาพเมื่อคำนึงถึงระบบปฏิบัติการจะต้องพูดคุยกับไดรฟ์ในเซกเตอร์ 512 ไบต์

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

ขนาดฟิสิคัลเป็นขนาดที่เหมาะสมที่สุดในการถ่ายโอนข้อมูลและสะท้อนขนาดของการดำเนินการอ่านและเขียนจริงที่ระดับคอนโทรลเลอร์ / ไดรฟ์

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

เมื่อคอมพิวเตอร์แม่ข่ายขอเขียนเซกเตอร์ตรรกะขนาดของเซกเตอร์กายภาพมีความสำคัญ
เมื่อขนาดเซกเตอร์ตรรกะเท่ากับขนาดเซกเตอร์กายภาพการดำเนินการเขียนนั้นง่ายและสามารถดำเนินการโดยตรง เงื่อนไขของเนื้อหาก่อนหน้าของภาคจะไม่ส่งผลกระทบต่อการดำเนินการเขียน

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

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

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

การช่วงชิง "ไม่มีข้อยกเว้น" ของคุณไม่ถูกต้อง
ชุดคำสั่ง ATAPI ซึ่งนำมาใช้กับ IDE HDD มีความสามารถในการดำเนินการอ่านและเขียนด้วยsector countพารามิเตอร์เสมอ นี่เป็นเพียงส่วนขยายของอินเทอร์เฟซของดิสก์และตัวควบคุมฟลอปปีดิสก์ที่มีความสามารถในการดำเนินการอ่าน / เขียนหลายเซกเตอร์ (ตราบเท่าที่เซกเตอร์อยู่ในแทร็กเดียวกัน)


นี่อาจเป็นคำตอบที่ถูกต้อง ... แต่ฉันก็ยังไม่มั่นใจ ระบบปฏิบัติการที่ทันสมัยทำงานด้วยระบบไฟล์และขนาดบล็อก I / O 4K และทวีคูณ 4K พวกเขาได้รับการปรับให้เหมาะสมสำหรับการใช้งานกับฮาร์ดไดรฟ์ที่มีภาคกายภาพ 4K นอกจากนี้ขนาดบล็อก I / O ที่ใช้ยังคงเป็น4K และทวีคูณของ 4K แม้ในฮาร์ดไดรฟ์ทางกายภาพ 512b สิ่งที่ช่วยให้?!
misha256

บิงโก! sector countพารามิเตอร์ที่คุณพูดถึง ... แม้โบราณ Windows XP อ่าน / เขียนในบล็อกขนาด I / O ของ8ภาคดังกล่าวหรือ multiples มันได้รับการปรับแต่งอย่างเต็มที่แล้ว! นั่นเป็นเหตุผลที่ XP ทำงานได้ดีมากกับ SSD ตราบใดที่พาร์ติชันอยู่ในแนวเดียวกัน เป็นมิตรกับ 4K อย่างยิ่ง ดังนั้นคำถามนี้ยังคงไม่ได้รับคำตอบ ระบบปฏิบัติการสามารถทำอะไรได้มากกว่าการรู้ขนาดเซกเตอร์ทางกายภาพคือ 4K จำไว้ว่าระบบปฏิบัติการนั้นได้รับการปรับให้เหมาะสมสำหรับ 4K I / O
misha256

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

2
@ misha256 ไม่มันไม่ง่ายอย่างนั้น "Windows XP, Windows Server 2003 และ Windows Server 2003 R2 ไม่รองรับสื่อ 512e หรือ 4Kn ในขณะที่ระบบอาจบู๊ตและสามารถใช้งานได้เพียงเล็กน้อยอาจมีสถานการณ์ที่ไม่ทราบสาเหตุของฟังก์ชันการทำงานข้อมูลสูญหายหรือไม่เหมาะสม ประสิทธิภาพดังนั้น Microsoft จึงขอเตือนไม่ให้ใช้สื่อ 512e กับ Windows XP ... " msdn.microsoft.com/en-us/library/windows/desktop/?hl=th
รอสส์ริดจ์

2
@ misha256 - คุณเป็นคนเก็บผลเชอร์รี่แล้วประกาศว่าในทุกสถานการณ์ว่าข้อมูลนี้ไม่มีประโยชน์ ไม่ใช่ทุกคนที่จะใช้ SSD กับ Windows และ NTFS และ> 4k clusters "NTFS ไม่รองรับแม้แต่น้อยกว่า 4K I / O" - ไม่จริง ขนาดคลัสเตอร์ที่มีขนาด 512, 1024 และ 2048 ไบต์ยังคงเป็นตัวเลือกในสำเนา Win7 สำหรับ NTFS ของฉัน (ล่าสุด) . .
ขี้เลื่อย

3

หากระบบปฏิบัติการรู้ขนาดเซกเตอร์ฟิสิคัลพื้นฐานระบบสามารถปรับเคียวรีให้เหมาะสมเพื่อให้มีการดำเนินการทางกายภาพน้อยที่สุด โดยเฉพาะอย่างยิ่งกับ SSD ขีด จำกัด การดำเนินการทางกายภาพ (ขีด จำกัด 4KB IOPS) มักเป็นขีด จำกัด สูงสุดของความเร็วอุปกรณ์ดังนั้นการใช้ความสามารถนี้ให้ได้อย่างดีที่สุดจึงเป็นสิ่งสำคัญ


ใช่แล้วมันไม่ถูกต้อง โมเดิร์น OS' จะเนื้อแท้ที่ดีที่สุด พวกเขาทั้งหมดใช้ระบบไฟล์ที่มีขนาด "บล็อก" (กลุ่ม aka) ที่มี 2 ^ n ไบต์เริ่มต้นที่ 2 ^ 12 (เช่น 4K คิดว่า NTFS เป็นค่าเริ่มต้น) หลังจากนี้การดำเนินการ I / O ทั้งหมดจะกลายเป็น 4K หลายอย่าง ไม่ว่าจะเป็นดิสก์ร่างกาย 512 ไบต์หรือ 4K ไม่ควรสร้างความแตกต่าง คุณไม่สามารถเพิ่มประสิทธิภาพได้มากกว่านี้ใช่ไหม
misha256

เกิดอะไรขึ้นถ้าระบบปฏิบัติการไม่ได้รับการจัดตำแหน่งที่ถูกต้องและการดำเนินงานของ I / O จะขยายขอบเขตไปถึงสองส่วนทางกายภาพ คุณจะได้รับประสิทธิภาพที่ลดลง
bwDraco

1
@ misha256 ไม่มีความเข้ากันไม่ได้ระหว่างสิ่งที่คุณพูดกับสิ่งที่ฉันพูด มันเป็นความจริงที่ว่าการจัดตำแหน่งให้ถูกต้องระบบไฟล์ส่วนใหญ่จะไม่ได้รับประโยชน์มากนักจากการรู้ขนาดเซกเตอร์กายภาพ ฐานข้อมูลบางอย่างทำ
David Schwartz

@DavidSchwartz ใช่แล้วดังนั้นนี่อาจเป็นประโยชน์สำหรับระบบปฏิบัติการลับหรือระบบไฟล์ที่ใช้ในดาต้าเซ็นเตอร์หรือสิ่งอื่น ๆ อาร์เรย์ RAID แฟนซีบางอย่างอาจจะ?
misha256

ดูเหมือนว่าเกี่ยวกับตัวควบคุม OS และ RAID ที่ไม่ใช่ของ windows ("esoteric")
pjc50

1

มีสองวิธีที่แตกต่างกันในการเข้าถึงตำแหน่งภายในไดรฟ์หนึ่งคือโครงการ CHS และอื่น ๆ คือโครงการ LBA

CHS ย่อมาจาก Cylinder, Head, Sector และเป็นวิธีการระดับต่ำที่สุดในการกำหนดว่าจะอ่านหรือเขียนจากไดรฟ์ คุณบอกให้ใช้ cylinder x, head y และภาค z และอ่านหรือเขียนเนื้อหาของตำแหน่งนั้นไปยังหรือจากที่อยู่ในหน่วยความจำ (บัฟเฟอร์) มันมาจากส่วนประกอบทางกายภาพของฮาร์ดไดรฟ์แบบดั้งเดิม (แบบสนิมหมุน) ซึ่งคุณมีกระบอกสูบทางกายภาพและหัวอ่าน เซกเตอร์เป็นหน่วยที่เล็กที่สุดที่กำหนดแอดเดรสได้และได้รับการแก้ไขแบบดั้งเดิมที่ 512 ไบต์

LBA เป็นโลจิคัลแอดเดรสไบต์ที่ไดรฟ์อ่านและเขียนไปยังที่อยู่ของเซกเตอร์โดยออฟเซ็ตตัวอย่างเช่นอ่านเซกเตอร์ 123837 บนดิสก์หรือเขียนสิ่งนี้ลงในเซกเตอร์ 123734 บนดิสก์ (เริ่มต้นจากศูนย์)

ปัญหา? แต่ละค่าเหล่านี้ถูก จำกัด ในช่วง ในความเป็นจริงเนื่องจาก CHS มีข้อ จำกัด ที่รุนแรงเพียงใด LBA จึงต้องถูกนำเสนอ สำหรับ CHS ค่าที่เป็นไปได้สำหรับ C (ทรงกระบอก) คือ 1023 ในขณะที่ H (หัว) สามารถสูงสุด 255 และ S (ภาค) สามารถขึ้นไป 63 เท่านั้นซึ่งหมายความว่าคุณสามารถมีได้สูงสุด 1024 กระบอก x 255 หัว x 64 ภาค x 512 ไบต์ถูกแมปในรูปแบบ CHS แบบดั้งเดิม, ให้คุณรวมทั้งหมดที่ต่ำกว่า 8 GiB! เมื่อใช้ CHS จะไม่สามารถเข้าถึงดิสก์ที่มีขนาดใหญ่กว่า 8 GiB ได้!

ดังนั้น LBA จึงถูกนำเสนอด้วยขีด จำกัด แบบ 32 บิตที่ให้คุณมีขนาด 2 ^ 32 x 512 ไบต์หรือขีด จำกัด ของ 2 TiB กับขนาดดิสก์นี่คือเหตุผลที่ดิสก์ MBR ไม่สามารถเกิน 2TiB ได้เนื่องจากใช้ CHS และ LBA เพื่อระบุขนาดพาร์ติชัน สนับสนุนอะไรก็ได้มากกว่า 2TiB

ใหม่กว่ามีตัวเลือกที่ดีกว่าเช่น GPT partitioning scheme ซึ่งขยาย LBA เป็น 64 บิตทำให้คุณมีความต้องการมากกว่าที่คุณต้องการที่ 2 ^ 64 x 512 ไบต์ - แต่ก็มีสิ่งที่น่าสนใจมากมาย ฮาร์ดแวร์และระบบปฏิบัติการรุ่นเก่าและการใช้งาน BIOS รุ่นเก่าและไดรเวอร์รุ่นเก่าไม่รองรับ UEFI หรือ GPT และผู้คนจำนวนมากต้องการมีสิ่งที่สามารถอัปเกรดได้ง่ายขึ้นผ่านขีด จำกัด 2TiB โดยไม่ต้องเขียนสแต็กทั้งหมดใหม่ ตั้งแต่เริ่มต้น และในที่สุดเราก็มีขนาดของภาคธุรกิจถึง 4096 ราย

ดูข้อ จำกัด ทั้งหมดที่กล่าวถึงข้างต้นสิ่งหนึ่งเป็นข้อสันนิษฐานที่แน่นอนนั่นคือขนาดเซกเตอร์ ตั้งแต่วันแรกมันมีขนาด 512 ไบต์และนับตั้งแต่นั้นมา แต่เมื่อเร็ว ๆ นี้ผู้ผลิตฮาร์ดไดรฟ์ตระหนักว่ามีโอกาสที่จะใช้เวทมนตร์: ใช้ CHS แบบดั้งเดิมหรือ LBA แบบ 32 บิตและเปลี่ยนขนาดเซกเตอร์ด้วย 4096 (4k) แทน 512 ไบต์ เมื่อระบบปฏิบัติการบอกว่า "ให้เซกเตอร์ที่ 2 บนดิสก์" โดยการร้องขอ LBA 1 (เพราะ LBA 0 เป็นครั้งแรก) เราจะไม่ให้ไบต์ 512 - 1023 แต่แทน 4096 - 8191

ทันใดนั้นขีด จำกัด 2TiB ของเราได้รับการอัปเกรดเป็น 2 ^ 32 x 4096 ไบต์หรือ 16 TiB โดยไม่ต้องทิ้ง MBR เปลี่ยนเป็น UEFI หรือ GPT หรืออะไรก็ได้!

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

ดังนั้นไบออสในตอนนี้ (บางครั้ง) จึงมีตัวเลือกให้คุณระบุว่าควรใช้ขนาดเซกเตอร์ 512 ไบต์แทนขนาดเซกเตอร์ 4096 ไบต์ดั้งเดิมที่ดิสก์รุ่นใหม่ใช้อยู่ - โดยข้อแม้ที่คุณไม่สามารถใช้งานได้มากกว่า 2TiB ของดิสก์บนระบบ MBR เหมือนกับใน "วันเก่า ๆ " แต่ระบบปฏิบัติการที่ทันสมัยที่ 4k ทราบสามารถใช้ประโยชน์จากสิ่งนี้เพื่อใช้เวทมนตร์นี้ในการอ่านและเขียนในชิ้น 4096- ไบต์ไบต์และvoilà!

(ข้อได้เปรียบเพิ่มเติมคือสิ่งต่าง ๆ นั้นเร็วกว่ามากเพราะถ้าคุณกำลังอ่านและเขียน 4096 ไบต์ในแต่ละครั้งมันจะมีการดำเนินการน้อยลงในการอ่านหรือเขียนพูด 4GiB ของข้อมูล)


2
สิ่งนี้ไม่ได้ตอบคำถาม การอธิบาย CHS และ LBT นั้นไม่เกี่ยวข้อง สิ่งนี้อ่านเหมือนการทิ้งในสมองของสิ่งที่คุณรู้เกี่ยวกับ "ส่วน" "ตั้งแต่วันแรกมันมีขนาด 512 ไบต์ ... " - นั่นเป็นความจริงสำหรับพีซี IBM เท่านั้น
ขี้เลื่อย

1
@Sawdust ฉันไม่เห็นด้วย - แม้แต่การเพิกเฉยต่อพื้นหลัง (สำคัญของ imho) เกี่ยวกับ CHS และ LBA คำตอบสั้น ๆ สำหรับคำถามของคุณอยู่ในย่อหน้าสุดท้ายที่สอง "แต่ระบบปฏิบัติการสมัยใหม่ที่ 4k ทราบสามารถใช้ประโยชน์จากทั้งหมดนี้เพื่อใช้เวทย์มนตร์นี้ อ่านและเขียนใน 4096- ไบต์ไบต์และvoilà! " - เช่นข้อสันนิษฐานในคำถาม - ว่าระบบปฏิบัติการต้องพูดคุยกับ 512 ไบต์ - ผิด
davidgo

@davidgo ที่ระดับไดรเวอร์ OS จะพูดถึงไดรฟ์เป็นnกลุ่มขนาด 512 ไบต์ nเป็นตัวเลขซึ่งจาก Windows XP เป็นไม่น้อยกว่า 8 และเสมอหลาย 8. ซึ่งหมายความว่าทุก OS จาก XP เป็นต้นไปและผมเชื่อว่า distros ลินุกซ์ที่ทันสมัยเกินไปจะดีที่สุดแล้วสำหรับ 4K ไดรฟ์ I / O ที่เล็กที่สุดคือ 4K และขนาดของ I / O อื่น ๆ ทั้งหมดคือทวีคูณของมัน
misha256

ฉันคิดว่าฉันทำให้มันชัดเจนมากว่าแม้ว่าคุณจะจัดกลุ่มเซ็กเตอร์ไว้ในการดำเนินการครั้งเดียวคุณยังคงบอกให้ดิสก์ค้นหาดิสก์ขนาด 512 ไบต์ซึ่งหมายความว่าคุณมีข้อ จำกัด ในการค้นหา ภาค 4096 แก้ปัญหาการแสวงหา ฉันยังชี้แจงด้วยว่าความรู้เกี่ยวกับระบบปฏิบัติการของขนาดบล็อกมีความจำเป็นมิฉะนั้น 512 ไบต์จะถูกเก็บไว้ใน 4096 ชิ้น!
Mahmoud Al-Qudsi

นอกจากนี้ฉันคิดว่าคุณสับสนเกี่ยวกับตรรกะเทียบกับทางกายภาพ ฟิสิคัลจะเป็น 512 หรือ 4096 เสมอหากขนาดโลจิคัลคือ 4096 แต่ระบบปฏิบัติการสมมติว่าเป็น 512 คุณจะพบปัญหาที่ฉันอธิบายไว้ พวกเขาจะต้องตรงกับ
Mahmoud Al-Qudsi

1

512/4096 = ระบบปฏิบัติการที่รับผิดชอบในการจัดตำแหน่ง / การปรับให้เหมาะสม

512/512 = ขับรับผิดชอบเรื่องนี้

ดูเพิ่มเติมที่: http://support.microsoft.com/en-us/kb/2510009


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

0

เพียงแค่ต้องการแจ้งให้คุณทราบถึงสถานการณ์ที่ภาค 4K เป็นปัญหาสำหรับระบบปฏิบัติการที่ทันสมัย

ตัวเขียน VSS ของ Microsoft (Shadow Copy) ทำงานได้ไม่ดีกับภาค 4K ในการสำรองข้อมูลโฟลเดอร์แชร์การจำลองแบบ DFS ซอฟต์แวร์สำรองข้อมูลของเรา "Backup Exec" จำเป็นต้องสร้าง Shadow Copy ของโฟลเดอร์ DFS Replicated งานล้มเหลวหากโฟลเดอร์การจำลองแบบ DFS อยู่ในไดรฟ์ที่มีเซ็กเตอร์ 4K เนื่องจาก VSS ทำงานไม่ถูกต้องกับเซกเตอร์ 4K

จิม


3
ฉันไม่แน่ใจว่าทั้งหมดนี้ตอบคำถามที่เสนอมาหรือไม่ตอบคำถามไม่ใช่เพียงคำถามที่ผู้แต่งถาม
Ramhound

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

-3

ทางกายภาพหมายถึงของไดรฟ์ที่เกิดขึ้นจริงในขณะที่ตรรกะเป็นของหน่วยงานที่กำหนดไว้ภายใน จากLogical vs Physical ของ PC Mag:

ในพีซี Windows Windows ฮาร์ดไดรฟ์ทางกายภาพเดียวคือไดรฟ์ 0 อย่างไรก็ตามอาจแบ่งพาร์ติชันเป็นไดรฟ์แบบลอจิคัลหลายตัวเช่น C :, D: และ E:

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

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

โดยทั่วไปแล้วฮาร์ดดิสก์ไดรฟ์พยายามที่จะ "ทำการแมปใหม่" ข้อมูลในเซกเตอร์กายภาพที่ล้มเหลวในการเซกเตอร์กายภาพสำรองโดย "พูลเซกเตอร์สำรอง" ของไดรฟ์ (เรียกอีกอย่างว่า "พูลสำรอง"), [41] ในขณะที่พึ่งพา ECC กู้คืนข้อมูลที่เก็บไว้ในขณะที่จำนวนข้อผิดพลาดในเซกเตอร์เสียยังคงต่ำพอ คุณลักษณะ SMART (การตรวจสอบตนเองการวิเคราะห์และการรายงาน) นับจำนวนข้อผิดพลาดทั้งหมดใน HDD ทั้งหมดที่แก้ไขโดย ECC (แม้ว่าจะไม่ได้อยู่ในฮาร์ดไดรฟ์ทั้งหมดเนื่องจากคุณลักษณะ SMART ที่เกี่ยวข้อง "ฮาร์ดแวร์ ECC ที่กู้คืน" และ "Soft ECC Correction") ไม่ได้รับการสนับสนุนอย่างสม่ำเสมอ) และจำนวนการปรับใช้เซกเตอร์ที่ดำเนินการทั้งหมดเนื่องจากการเกิดข้อผิดพลาดดังกล่าวจำนวนมากอาจทำนายถึงความล้มเหลวของ HDD

เช่นเดียวกับที่คุณไม่สามารถมีแอปเปิ้ลเป็นชิ้น ๆ หากไม่มีแอปเปิ้ลเองคุณจะไม่สามารถมีตรรกะได้หากไม่มีการให้บริการทางกายภาพเป็นฐาน


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

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

1
@sawdust แต่ระบบปฏิบัติการไม่สามารถใช้ขนาดการถ่ายโอนที่เหมาะสมที่สุดที่คุณกำลังพูดถึงเพราะไดรฟ์นั้นใช้สายแบบแข็งไปยังเซกเตอร์ตรรกะแบบ 512 ไบต์ ไดรฟ์ Native 4K นั้นแตกต่างกันพวกเขามี 4K logical sector และ OS ที่รองรับ (เช่น Win 8.1) ถูกบังคับให้อ่านและเขียนใน 4K logical sector แต่ไดรฟ์ของฉันไม่ใช่ไดรฟ์แบบลอจิคัล 4K เป็นไดรฟ์ลอจิคัลขนาด 512 ไบต์
misha256

@ misha256 - ฉันโพสต์คำตอบของฉันเอง
ขี้เลื่อย

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