Bagaimana cara menyelaraskan tabel partisi saya dengan benar?

19

Saya sedang dalam proses membangun array RAID5 pertama saya. Saya telah menggunakan mdadm untuk membuat pengaturan berikut:

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

Sementara itu terjadi, saya memutuskan untuk memformat binatang buas dengan perintah berikut:

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

Saya tidak yakin apa yang harus dilakukan tentang "/ dev / md1p1 alignment diimbangi oleh 63488 bytes." dan cara mempartisi disk dengan benar agar saya dapat memformatnya dengan benar.

Jorge Castro
sumber

Jawaban:

17

Karena perataan muncul di banyak tempat -

  • Hard drive "Format Lanjutan" dengan blok 4k
  • SSD
  • SERANGAN
  • LVM

- Saya akan sedikit memperluas pertanyaan.

Menyelaraskan partisi

"Linux pada disk sektor 4kB" (IBM developerWorks) mengikuti langkah-langkah dengan fdisk, parted dan GPT fdisk.

Dengan 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

Menyelaraskan sistem file

Ini terutama relevan untuk RAID (level 0, 5 dan 6; bukan level 1); sistem file berkinerja lebih baik jika dibuat dengan pengetahuan tentang ukuran garis.

Ini juga dapat digunakan untuk SSD jika Anda ingin menyelaraskan sistem file ke ukuran blok penghapusan SSD (Theodore Tso, pengembang kernel Linux).

Dalam pos OP mkfstampaknya secara otomatis mendeteksi pengaturan optimal, jadi tidak ada tindakan lebih lanjut diperlukan.

Jika Anda ingin memverifikasi, untuk RAID parameter yang relevan adalah:

  • ukuran blok ( ukuran blok sistem file, mis. 4096)
  • ukuran garis (sama dengan ukuran potongan mdadm, mis. 64k)
  • langkah: stripe size / block size (mis. 64k / 4k = 16)
  • stripe-width: stride * #-of-data-disks (mis. 4 disk RAID 5 adalah 3 disk data; 16 * 3 = 48)

Dari Linux Raid Wiki . Lihat juga kalkulator sederhana ini untuk berbagai level RAID dan jumlah disk.

Untuk pelurusan blok hapus SSD parameternya adalah:

  • ukuran blok fs (mis. 4096)
  • SSD menghapus ukuran blok (mis. 128k)
  • stripe-width: erase-block-size / fs-block-size (mis. 128k / 4k = 32)

Dari pos SSD Theodore .

Menyelaraskan luasan LVM

Masalah potensial adalah bahwa LVM membuat header 192k. Ini adalah kelipatan dari 4k (jadi tidak ada masalah dengan disk-blok 4k) tetapi mungkin bukan kelipatan dari ukuran RAID stripe (jika LVM berjalan pada RAID) atau SSD menghapus ukuran blok (jika LVM berjalan pada SSD).

Lihat posting Theodore untuk solusinya.

jg-faustus
sumber
@ Mars Bagaimana? Yang pertama, untuk IBM Developer Works, bahkan memiliki grafik benchmark hukuman kinerja tulis untuk menggunakan partisi yang tidak selaras, dan bilah samping pada RAID. Blogpost oleh Tso pada perataan SSD telah bergerak setidaknya dua kali sejak saya menulis ini. Memperbarui tautan lagi, tetapi tidak ada jaminan itu akan tetap berfungsi.
jg-faustus
Tautan alternatif pada SSD: Menyelaraskan partisi SSD
jg-faustus
8

Seorang teman saya menunjukkan bahwa saya bisa langsung mkfs.ex4 /dev/md1tanpa mempartisi apa pun, jadi saya menghapus partisi dan melakukannya dan tampaknya sedang memformat sekarang.

Jorge Castro
sumber
6

Saya menemukan cara ini menjadi yang termudah

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

atau metode kotor alternatif hanya akan seperti ini

(parted) mkpart primary ext4 1 -1
AllGamer
sumber
Dokumentasi parted menyarankan menggunakan MB dan GB, bukan MiB atau GiB, jika seseorang ingin memungkinkan parted untuk mencoba mengoptimalkan partisi secara otomatis.
Felipe Alvarez
1

Sepertinya mkfs.ext4 menginginkan sistem file pada RAID Anda untuk memulai pada batas 64 KiB. Jika Anda menggunakan seluruh disk, itu dimulai pada 0 yang tentu saja juga kelipatan 64 KiB ...

Sebagian besar alat partisi saat ini akan menggunakan batas 1 MiB secara default (fdisk mungkin tidak).

Alasannya adalah karena sebagian besar hard disk & SSD menggunakan sektor fisik pada perangkat yang jauh lebih besar daripada sektor logis. Hasilnya adalah bahwa jika Anda membaca sektor logis 512 byte dari disk, perangkat keras sebenarnya harus membaca data dalam jumlah yang jauh lebih besar.

Dalam kasus perangkat RAID perangkat lunak Anda sesuatu yang serupa terjadi: data di dalamnya disimpan dalam "potongan" dari 64 KiB dengan pengaturan mdadm default.

JanC
sumber