Как правильно выровнять таблицу разделов?

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

Так как выравнивание появляется во многих местах -

  • Жесткие диски «Advanced Format» с 4k блоками
  • SSD-накопители
  • RAID
  • LVM

- Я немного расширю вопрос.

Выравнивание разделов

«Linux на дисках сектора 4kB» (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 (Теодор Цо, разработчик ядра Linux).

В посте ОП mkfsвидимо автоматически определяются оптимальные настройки, поэтому никаких дальнейших действий не потребовалось.

Если вы хотите проверить, для RAID соответствующие параметры:

  • размер блока ( размер блока файловой системы, например 4096)
  • размер полосы (такой же, как размер фрагмента mdadm, например 64 КБ)
  • шаг: stripe size / block size (например, 64k / 4k = 16)
  • ширина полосы: stride * #-of-data-disks (например, 4 диска RAID 5 - 3 диска с данными; 16 * 3 = 48)

Из Linux Raid Wiki . Смотрите также этот простой калькулятор для разных уровней RAID и количества дисков.

Для выравнивания стираемого блока SSD параметры:

  • размер блока FS (например, 4096)
  • Размер стираемого блока SSD (например, 128 КБ)
  • ширина полосы: размер блока стирания / размер блока фс (например, 128k / 4k = 32)

Из сообщения Теодора о SSD .

Выравнивание экстентов LVM

Потенциальная проблема заключается в том, что LVM создает заголовок 192k. Это кратно 4 КБ (поэтому нет проблем с дисками по 4 КБ), но не может быть кратным размеру полосы RAID (если LVM работает на RAID) или размеру стираемого блока SSD (если LVM работает на SSD).

Посмотрите сообщение Теодора для обходного пути.

JG-Фауст
источник
@ Марко Как так? Первый из них, IBM Developer Works, даже содержит диаграмму производительности для снижения производительности записи при использовании невыровненных разделов и боковую панель для RAID. С тех пор, как я написал это, пост Цо о выравнивании SSD переместился как минимум дважды. Снова обновил ссылку, но нет гарантии, что она продолжит работать.
jg-faustus
Альтернативная ссылка на SSD:
выравнивание
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
AllGamer
источник
Разделенная документация предлагает использовать MB и GB, а не MiB или GiB, если вы хотите разрешить parted автоматически оптимизировать разделы.
Фелипе Альварес
1

Кажется, что mkfs.ext4 хочет, чтобы файловые системы на вашем RAID запускались на границе 64 КБ. Если вы используете весь диск, он начинается с 0, что, конечно, также кратно 64 КиБ ...

В настоящее время большинство инструментов разбиения по умолчанию используют границу в 1 МБ (fdisk, вероятно, этого не делает).

Причина этого заключается в том, что большинство жестких дисков и твердотельных накопителей используют физические сектора на устройстве, которые намного больше, чем логические сектора. Результатом этого является то, что если вы читаете логический сектор размером 512 байт с диска, аппаратное обеспечение фактически должно считывать намного больший объем данных.

В случае вашего программного RAID-устройства происходит нечто подобное: данные на нем хранятся в виде «кусочков» объемом 64 КиБ с настройками mdadm по умолчанию.

Janc
источник