Dell Unity: Вирівнювання попереджень у форматі Linux LUN зміщено на 512 байтів. Це може призвести до погіршення продуктивності
Summary: Dell Unity: Вирівнювання попереджень у форматі Linux LUN зміщено на 512 байтів. Це може призвести до погіршення продуктивності.
Symptoms
Ця проблема пов'язана з тим, що Dell Unity рекламує підтримку SPC-4, що призводить до змін у поведінці Linux SCSI порівняно з приєднанням Linux до масивів сімейства VNX2/VNX.
На продуктивність впливають дві речі:
- У новій версії Linux видає команди unmap для тонкого Dell Unity LUN.
- Linux використовує дані, повернуті на сторінці даних Inquiry Vital Product Data 0xB2, щоб вирішити, як вирівняти файлову систему, і дані, повернуті масивом, призводять до неправильного вирівнювання файлової системи.
Вирівнювання попереджень у форматі Linux LUN зміщено на 512 байтів. Це може призвести до погіршення продуктивності.
# mkfs.ext3 /dev/mapper/mpathd1 mke2fs 1.42.9 (28-Dec-2013) /dev/mapper/mpathd1 alignment is offset by 512 bytes. This may result in very poor performance, (re)-partitioning suggested. <<<<<<<<<<< Disk /dev/mapper/VGsdb-LVsdb: 29.9 TiB, 32875361599488 bytes, 64209690624 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 8192 bytes / 33553920 bytes Alignment offset: 512 bytes
Cause
Диск Linux використовує оптимальний розмір передачі, який можна знайти на сторінці Inquiry Vital Data Page 0xB0 як стартовий сектор при створенні розділу в LUN без розділів. Оскільки цей оптимальний розмір передачі становить 65535, mkfs згодом (і правильно) стверджуватиме, що файлова система неправильно вирівняна.
Зміна оптимального розміру передачі на сторінці Inq VPD 0xB0 буде виконана в майбутньому оновленні Dell Unity.
Resolution
Як обхідний шлях, клієнт може використовувати 2048 (десятковий дріб) як початковий СЕКТОР для fdisk. "mkfs" потім побудує належним чином вирівняну файлову систему. Зауважте, що утиліти розділів/файлової системи Linux мають різні перемикачі/опції для створення розділів та файлової системи. Вони можуть використовувати сектори або циліндри як одиниці. Ми хочемо, щоб вони використовували СЕКТОРИ як одиниці виміру зі своїми комунальними службами.
Якщо ви створюєте два або більше розділів у LUN, наступні розділи слід створювати з початковим СЕКТОРОМ, кратним 2048.
Якщо ви використовуєте "fdisk -c", замість цього вам потрібно вказати, щоб почати з 65536 (система видає типове значення 65535) "-c" є режимом сумісності з dos і, згідно з man-сторінкою linux, цей параметр слід використовувати.
Крім того, якщо ви не використовуєте опцію "-c", ви отримаєте наступне.
[root@localhost nasadmin]# fdisk -u /dev/sdi WARNING: DOS-compatible mode is deprecated. It's strongly recommended to switch off the mode (command 'c').
Як обхідний шлях для "fdisk -c" слід використовувати 65536 як початковий сектор. Це призводить до вирівнювання файлових систем.
Additional Information
Якщо параметр "-c" не використовується з командою fdisk:
Як обхідний шлях, клієнт може використовувати 2048 (десятковий дріб) як початковий СЕКТОР для fdisk.
" mkfs», а потім побудувати належним чином вирівняну файлову систему. Зауважте, що утиліти розділів/файлової системи Linux мають різні перемикачі/опції для створення розділів та файлової системи.
Вони можуть використовувати сектори або циліндри як одиниці. Ми хочемо, щоб вони використовували СЕКТОРИ як одиниці виміру зі своїми комунальними службами.
Partition number (1-4): 1
First sector (1-167772159, default 65535): 2048
Last sector, +sectors or +size{K,M,G} (2048-167772159, default 167772159):
Using default value 167772159
----------------------
Якщо використовується параметр "-c" з командою fdisk:
Те ж саме стосується, але починати слід зі значення 65536.
primary partition (1-4)
Partition number (1-4): 1
First sector (65535-524287999, default 131070): 65536
Last sector, +sectors or +size{K,M,G} (65536-524287999, default 524287999): 524287999
Ключовим моментом тут є те, що число, яке використовується для правильного початку вирівнювання, має бути поділене на 2048 рік.
На прикладі вище: 65536/2048 = 32 >>>> вирівнювання є правильним, 65536 можна використовувати для вирівнювання розділу.
65556/2048=32.00976 >>>> вирівнювання неправильне, тому це значення не можна використовувати.