ฉันจะจัดตารางพาร์ติชันของฉันอย่างถูกต้องได้อย่างไร


19

ฉันกำลังอยู่ระหว่างการสร้างอาร์เรย์ RAID5 เครื่องแรกของฉัน ฉันใช้ mdadm เพื่อสร้างการตั้งค่าต่อไปนี้:

root@bondigas:~# mdadm --detail /dev/md1
/dev/md1:
        Version : 00.90
  Creation Time : Wed Oct 20 20:00:41 2010
     Raid Level : raid5
     Array Size : 5860543488 (5589.05 GiB 6001.20 GB)
  Used Dev Size : 1953514496 (1863.02 GiB 2000.40 GB)
   Raid Devices : 4
  Total Devices : 4
Preferred Minor : 1
    Persistence : Superblock is persistent

    Update Time : Wed Oct 20 20:13:48 2010
          State : clean, degraded, recovering
 Active Devices : 3
Working Devices : 4
 Failed Devices : 0
  Spare Devices : 1

         Layout : left-symmetric
     Chunk Size : 64K

 Rebuild Status : 1% complete

           UUID : f6dc829e:aa29b476:edd1ef19:85032322 (local to host bondigas)
         Events : 0.12

    Number   Major   Minor   RaidDevice State
       0       8       16        0      active sync   /dev/sdb
       1       8       32        1      active sync   /dev/sdc
       2       8       48        2      active sync   /dev/sdd
       4       8       64        3      spare rebuilding   /dev/sde

ในขณะที่ฉันกำลังตัดสินใจจัดรูปแบบสัตว์ด้วยคำสั่งต่อไปนี้:

root@bondigas:~# mkfs.ext4 /dev/md1p1 
mke2fs 1.41.11 (14-Mar-2010)
/dev/md1p1 alignment is offset by 63488 bytes.
This may result in very poor performance, (re)-partitioning suggested.
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=16 blocks, Stripe width=48 blocks
97853440 inodes, 391394047 blocks
19569702 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=0
11945 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
        4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 
        102400000, 214990848

Writing inode tables: ^C 27/11945
root@bondigas:~# ^C

ฉันไม่แน่ใจว่าจะทำอย่างไรกับการจัดแนว "/ dev / md1p1 จะถูกชดเชยด้วย 63488 ไบต์" และวิธีการแบ่งพาร์ติชันดิสก์ให้เหมาะสมเพื่อให้ฉันสามารถฟอร์แมตได้อย่างถูกต้อง

คำตอบ:


17

ตั้งแต่การจัดตำแหน่งปรากฏขึ้นในหลายสถานที่ -

  • ฮาร์ดไดรฟ์ "ฟอร์แมตฟอร์แมต" พร้อมบล็อก 4k
  • SSDs
  • RAID
  • LVM

- ฉันจะขยายคำถามเล็กน้อย

การจัดแนวพาร์ติชัน

"Linux บนดิสก์ 4kB-sector" (IBM developerWorks) เดินผ่านขั้นตอนต่างๆด้วย fdisk, parted และ GPT fdisk

ด้วย fdisk:

sudo fdisk /dev/XXX 
c # turn off DOS compatibility
u # switch to sector units
p # print current partitions, check that start sectors are multiples of 8

# for a new partition:
n # new partition
<select primary/secondary and partition #>
first sector: 2048 
  # 2048 is default in recent fdisk, 
  # and is compatible with Vista and Win 7, 
  # 4k-sector disks and all common RAID stripe sizes

การจัดแนวระบบไฟล์

สิ่งนี้เกี่ยวข้องกับ RAID เป็นหลัก (ระดับ 0, 5 และ 6; ไม่ใช่ระดับ 1); ระบบไฟล์ทำงานได้ดีขึ้นถ้ามันถูกสร้างขึ้นด้วยความรู้เกี่ยวกับขนาดแถบ

นอกจากนี้ยังสามารถใช้สำหรับ SSD ได้หากคุณต้องการจัดระบบไฟล์ให้ตรงกับขนาดการลบ SSD (Theodore Tso ผู้พัฒนาเคอร์เนล Linux)

ในโพสต์ OP mkfsจะตรวจพบการตั้งค่าที่ดีที่สุดโดยอัตโนมัติดังนั้นจึงไม่จำเป็นต้องดำเนินการใด ๆ เพิ่มเติม

หากคุณต้องการตรวจสอบสำหรับRAIDพารามิเตอร์ที่เกี่ยวข้องคือ:

  • ขนาดบล็อก(ขนาดบล็อกระบบไฟล์เช่น 4096)
  • ขนาดแถบ(เหมือนกับขนาดก้อน mdadm เช่น 64k)
  • กางเกง: stripe size / block size (เช่น 64k / 4k = 16)
  • แถบกว้าง: stride * #-of-data-disks (เช่น 4 ดิสก์ RAID 5 คือ 3 ดิสก์ข้อมูล; 16 * 3 = 48)

จากลินุกซ์ Raid วิกิพีเดีย ดูเพิ่มเติมเครื่องคิดเลขอย่างง่ายสำหรับระดับ RAID และจำนวนดิสก์ที่แตกต่างกัน

สำหรับการจัดแนวบล็อกการลบ SSDพารามิเตอร์คือ:

  • ขนาดบล็อก fs (เช่น 4096)
  • SSD ลบขนาดบล็อก(เช่น 128k)
  • แถบกว้าง: ลบบล็อกขนาด / fs- บล็อกขนาด(เช่น 128k / 4k = 32)

จากการโพสต์ SSD ดอร์ย

การจัดแนวขอบเขต LVM

ปัญหาที่อาจเกิดขึ้นคือ LVM สร้างส่วนหัว 192k นี่คือหลายเท่าของ 4k (ดังนั้นจึงไม่มีปัญหาเกี่ยวกับดิสก์ 4k-block) แต่อาจจะไม่ได้เป็นขนาด RAID หลายแถบ (ถ้า LVM ทำงานบน RAID) หรือขนาดลบบล็อก SSD (ถ้า LVM ทำงานบน SSD)

ดูโพสต์ของ Theodoreสำหรับวิธีแก้ปัญหา


@Marco เป็นอย่างไร คนแรกสำหรับ IBM Developer Works แม้จะมีกราฟมาตรฐานของโทษประสิทธิภาพการเขียนสำหรับการใช้พาร์ทิชันที่ไม่ได้จัดแนวและแถบด้านข้างบน RAID บล็อกโพสต์โดย Tso บนการจัดตำแหน่ง SSD ได้ย้ายอย่างน้อยสองครั้งตั้งแต่ฉันเขียน อัปเดตลิงก์อีกครั้ง แต่ไม่รับประกันว่าจะใช้งานได้
jg-faustus

ลิงค์สำรองบน ​​SSD: การจัดแนวพาร์ติชัน SSD
jg-faustus

8

เพื่อนของฉันคนหนึ่งชี้ให้เห็นว่าฉันสามารถ mkfs.ex4 ได้ทันที/dev/md1โดยไม่ต้องแบ่งพาร์ติชันอะไรเลยฉันจึงลบพาร์ติชันและทำเช่นนั้นและดูเหมือนว่าจะเป็นการฟอร์แมตในขณะนี้


6

ฉันพบว่าวิธีนี้เป็นวิธีที่ง่ายที่สุด

parted -a opt /dev/md0
(parted) u MiB
(parted) rm 1
(parted) mkpart primary 1 100%

หรือวิธีสกปรกทางเลือกก็จะเป็นเช่นนี้

(parted) mkpart primary ext4 1 -1

เอกสารประกอบแบบแยกส่วนแนะนำให้ใช้ MB และ GB ไม่ใช่ MiB หรือ GiB หากมีความประสงค์ที่จะอนุญาตให้แยกส่วนเพื่อพยายามเพิ่มประสิทธิภาพพาร์ติชันโดยอัตโนมัติ
เฟลิเป้อัลวาเรซ

1

ดูเหมือนว่า mkfs.ext4 ต้องการให้ระบบไฟล์บน RAID ของคุณเริ่มต้นในขอบเขต 64 KiB หากคุณใช้ทั้งดิสก์มันจะเริ่มต้นที่ 0 ซึ่งแน่นอนว่ายังเป็นหลายเท่าของ 64 KiB ...

เครื่องมือการแบ่งส่วนใหญ่ในปัจจุบันจะใช้ขอบเขต 1 MiB ตามค่าเริ่มต้นอยู่แล้ว (fdisk อาจไม่ได้)

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

ในกรณีที่อุปกรณ์ RAID ของคุณมีบางสิ่งคล้ายกันเกิดขึ้น: ข้อมูลในอุปกรณ์จะถูกเก็บไว้ใน "ชิ้นข้อมูล" ขนาด 64 KiB ด้วยการตั้งค่า mdadm เริ่มต้น

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