ฉันไม่เห็นด้วยอย่างยิ่งว่านี่เป็นข้อกังวลอย่างมากกับปริมาณงานส่วนใหญ่เนื่องจากการแคช นโยบาย readahead และตัวยกดิสก์ที่คุณสามารถใช้ได้ แต่สิ่งนี้เกิดขึ้นได้ด้วยคำเตือน
วิธีที่ดีที่สุดในการแก้ไขปัญหานี้คือการแบ่งสื่อที่คุณต้องการจัดสรรออกเป็น 'ส่วน' โดยพิจารณาจากส่วนท้ายของดิสก์ที่คุณต้องการแยก
อะไรแบบนี้
จำนวน เริ่มต้น ขนาดสิ้นสุด ประเภท ระบบไฟล์ แฟล็ก
1 1049kB 1075MB 1074MB หลัก ext4 บูต
2 1075MB 4TB 4TB lvm หลัก # พาร์ติชันที่รวดเร็วของฉัน
3 lvm หลัก 4TB 8TB 4TB # พาร์ติชันช้าของฉัน
จากนั้น สร้างกลุ่มวอลุ่ม ในตัวอย่างนี้ ฉันใช้กลุ่มวอลุ่มเดียว แต่การใช้ VG แบบ 'ช้า' และ VG แบบ 'เร็ว' อาจง่ายกว่า..
#pvcreate /dev/sda2
#pvcreate /dev/sda3
# vgcreate vg /dev/sda2 /dev/sda3
จากนั้นจัดสรร LV ของคุณจากฟิสิคัลวอลุ่มดังกล่าว..
# lvcreate -n myFastLV -L1TB vg /dev/sda2
# lvcreate -n mySlowLV -L1TB vg /dev/sda3
คำเตือน ณ ที่นี้ เซกเตอร์เสียสามารถถูกแทนที่อย่างเงียบ ๆ โดยตัวควบคุมดิสก์โดยที่ 'สำรอง' มักอยู่ที่อื่น (ซึ่งไม่ขึ้นกับผู้ผลิตทั้งหมด) นอกจากนี้ ดิสก์นักเล่นบางตัวอาจทำการแมปเซกเตอร์ใหม่ภายในซึ่งสอดคล้องกับการอ้างสิทธิ์ที่เสนออย่างมีเหตุผล แต่ไม่ได้อยู่ในตำแหน่งที่คุณคาดว่าจะเป็น
ประการสุดท้าย ภาระงานของปัญหาที่คุณแนะนำ (การวางท่อไฟล์ขนาดใหญ่) เป็นปัญหาภาระงานที่ต่อเนื่องมากซึ่งจะได้รับประโยชน์มากขึ้นจากการใช้เทคนิคการจัดสรรล่วงหน้าในไฟล์ที่เขียน (เพื่อให้ต่อเนื่องกันและไม่แยกส่วน)
จากนั้นตั้งค่านโยบาย readahead ที่ก้าวร้าวเพื่ออ่านเซกเตอร์ที่อยู่ติดกัน/กำลังจะมาถึงทั้งหมด ซึ่งมักจะอยู่ติดกับไฟล์ที่คุณกำลังอ่าน
วิธีการที่ละเอียดยิ่งขึ้นสามารถทำได้โดยใช้ dmตั้งค่า
เพื่อแมปเซกเตอร์ทางกายภาพให้เป็นลำดับและรูปแบบที่คุณต้องการ แต่สิ่งนี้จะไม่พกพาเกินไปและอาจใช้ความพยายามมากกว่าที่คุ้มค่าในระยะยาว (เช่น คุณต้องมีสคริปต์เพื่อสร้างการแมปใหม่เมื่อบู๊ต)