Pertanyaan Bagaimana cara saya menyejajarkan tabel partisi saya dengan benar?


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 akan saya memutuskan untuk memformat binatang 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 keselarasan diimbangi oleh 63488 byte." dan cara mem-partisi disk dengan benar agar cocok sehingga saya dapat memformatnya dengan benar.


18
2017-10-21 00:18


asal




Jawaban:


Karena penyelarasan muncul di banyak tempat -

  • "Advanced Format" hard drive dengan blok 4k
  • SSD
  • SERANGAN
  • LVM

- Saya akan memperluas sedikit pada pertanyaan itu.

Menyelaraskan partisi

"Linux pada disk 4kB-sektor" (IBM developerWorks) berjalan melalui 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 menginginkannya sejajarkan sistem file ke ukuran blok hapus SSD (Theodore Tso, pengembang kernel Linux).

Di pos OP mkfs tampaknya secara otomatis mendeteksi pengaturan optimal, jadi tidak ada tindakan lebih lanjut yang diperlukan.

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

  • Ukuran blok (ukuran blok sistem file, mis. 4096)
  • ukuran garis (Sama seperti ukuran potongan mdadm, mis. 64k)
  • melangkah: stripe size / block size  (mis. 64k / 4k = 16)
  • stripe-lebar: 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 tingkat RAID dan jumlah disk yang berbeda.

Untuk SSD menghapus perataan blok parameternya adalah:

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

Dari Pos SSD Theodore.

Menyelaraskan luasan LVM

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

Lihat Pos Theodore untuk solusinya.


16
2017-12-31 19:06



@Marco Bagaimana bisa begitu? Yang pertama, untuk IBM Developer Works, bahkan memiliki grafik benchmark dari hukuman kinerja tulis untuk menggunakan partisi yang tidak selaras, dan sidebar pada RAID. Blogpost oleh Tso pada perataan SSD telah pindah setidaknya dua kali sejak saya menulis ini. Memperbarui tautannya lagi, tetapi tidak ada jaminan akan tetap berfungsi. - j-g-faustus
Tautan alternatif pada SSD: Menyelaraskan partisi SSD - j-g-faustus


Seorang teman saya menunjukkan bahwa saya hanya bisa mkfs.ex4 tepat /dev/md1 tanpa mempartisi apa pun, jadi saya menghapus partisi dan melakukan itu dan tampaknya memformat sekarang.


7
2017-10-21 00:50





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

6
2017-11-26 23:02



Dokumentasi parted menyarankan menggunakan MB dan GB, bukan MiB atau GiB, jika seseorang ingin membolehkan parted untuk mencoba mengoptimalkan partisi secara otomatis. - Felipe Alvarez


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

Kebanyakan 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 jumlah data yang jauh lebih besar.

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


1
2017-10-21 02:04