Производительность диска может быть ниже, чем ожидалось, при использовании нескольких дисков

В этой статье описывается решение проблемы, из-за которой производительность диска может быть медленнее, чем ожидалось. Эта проблема может возникнуть при использовании аппаратного или программного RAID-массива.

Применимо к: Windows Server 2012 R2, Windows 10 — все выпуски
Исходный номер базы знаний: 929491

Симптомы

Производительность диска может быть ниже, чем ожидалось при использовании нескольких дисков в Windows. Например, производительность может снизиться при использовании аппаратного избыточного массива независимых дисков (RAID) или программного RAID-массива.

Причина

Эта проблема может возникнуть, если начальное расположение секции не выровнено с границей единицы полосы в разделе диска, созданном в RAID.

Кластер томов можно создать на границе полосы единицы, а не рядом с границей полосы единиц. Это связано с тем, что Windows использует коэффициент 512 байт для создания кластеров томов. Это приводит к неправильной секции. Доступ к двум группам дисков осуществляется при обновлении одного кластера томов в несогласованном разделе.

Windows создает секции, основанные на предопределенном количестве секторов. Начальным расположением секции диска в Windows является либо 32-й, либо 64-й сектор в зависимости от сведений, предоставляемых операционной системе контроллером хранилища.

Примечание.

Секции диска всегда резервировать первый сектор секции для кода и для сведений о секции, таких как количество секторов и начальный сектор. Фактическая часть данных секции начинается со второго сектора секции.

Разрешение

Чтобы устранить эту проблему, используйте средство Diskpart.exe, чтобы создать раздел диска и указать начальное смещение в 2048 секторов (1 мегабайт). Начальное смещение в 2048 секторов охватывает большинство сценариев размера полосы.

Примечание.

В Windows Server 2003 с пакетом обновления 1 (SP1) появилась возможность для Diskpart настраивать выравнивание секций. Если у вас нет доступа к обновленной версии Diskpart, diskpar (обратите внимание, что в имени этой служебной программы нет окончательного "t").

Чтобы убедиться, что существующая секция выровнена, выполните вычисление, описанное в разделе "Дополнительные сведения".

Чтобы выровнять раздел диска в RAID со смещением в 2048 секторов, выполните следующие действия.

  1. В командной строке введите diskpart и нажмите клавишу ВВОД.

  2. Введите следующие команды в командной строке DISKPART и нажмите клавишу ВВОД:

    list disk
    

    Вы получите следующие выходные данные:

    Disk ### Status Size Free Dyn Gpt  
    -------- ---------- ------- ------- --- ---  
    Disk 0 Online 37 GB 8033 KB  
    Disk 1 Online 17 GB 8033 KB
    Disk 2 Online 17 GB 0 B  
    Disk 3 Online 17 GB 148 MB *  
    Disk 4 Online 17 GB 8 MB *  
    Disk 5 Online 17 GB 8 MB *  
    Disk 6 Online 17 GB 8 MB *  
    Disk 7 Online 17 GB 8 MB *  
    Disk 8 Online 17 GB 435 KB *  
    Disk 9 Online 17 GB 8 MB *  
    Disk 10 Online 17 GB 8033 KB
    

    Команда list disk предоставляет сводные сведения о каждом диске, установленном на компьютере. Текущий фокус имеет диск со звездочкой (*). Перечислены только фиксированные и съемные диски. К фиксированным дискам относятся интегрированные электронные устройства [IDE] и диски SCSI. Съемные диски включают диски 1394 и USB.

    select disk
    

    Используйте команду select disk , чтобы установить фокус на диск с указанным номером диска. Если номер диска не указан, команда отображает текущий диск, который находится в фокусе.

    create partition primary align=1024
    

    Примечание.

    • При вводе этой команды может появилось сообщение, похожее на следующее:DiskPart успешно создал указанный раздел.
    • Параметр align= number обычно используется вместе с аппаратными логическими номерами единиц RAID (LUN) для повышения производительности, если логические единицы не выровнены цилиндрами. Этот параметр выравнивает основную секцию, которая не выровнена цилиндром в начале диска, а затем округляет смещение до ближайшей границы выравнивания.
    • number — это количество килобайтов (КБ) от начала диска до ближайшей границы выравнивания. Команда завершается ошибкой, если основной раздел не находится в начале диска. Если вы используете команду вместе с параметром offset = number , смещение находится в первом используемом цилиндре на диске.
    exit
    
  3. Нажмите кнопку Пуск, нажмите кнопку Выполнить, введите diskmgmt.msc, а затем нажмите кнопку ОК.

  4. В оснастке "Управление дисками" консоли управления Майкрософт (MMC) найдите только что созданный раздел, а затем назначьте ему букву диска.

  5. Используйте файловую систему NTFS для форматирования новой секции, а затем назначьте размер кластера.

    Примечание.

    Этот пример процедуры предназначен для одной секции для каждой группы RAID.

Дополнительная информация

Чтобы убедиться, что существующий раздел выровнен, разделите размер блока чередования на начальное смещение группы дисков RAID. Используйте следующий синтаксис.
((Смещение секции) * (размер сектора диска)) / (размер единицы полосы)

Примечание.

Размер сектора диска и размер единицы чередования должен быть в байтах или в килобайтах (КБ).

Пример вычислений выравнивания в байтах для размера единицы полосы размером 256 КБ:
(63 * 512) / 262144 = 0,123046875
(64 * 512) / 262144 = 0,125
(128 * 512) / 262144 = 0,25
(256 * 512) / 262144 = 0,5
(512 * 512) / 262144 = 1

Пример вычислений выравнивания в килобайтах для размера единицы полосы размером 256 КБ:
(63 *.5) / 256 = 0,123046875
(64 *.5) / 256 = 0,125
(128 *.5) / 256 = 0,25
(256 *.5) / 256 = 0,5
(512 *.5) / 256 = 1

В этих примерах показано, что секция неправильно выравнивается по размеру единицы полосы размером 256 КБ, пока секция не будет создана со смещением в 512 секторов (512 байт на сектор).

Примечание.

Количество дисков в группе массивов не влияет на выравнивание секций. Факторы, влияющие на выравнивание секции, — это размер единицы полосы и начальная смещение секции.

Чтобы найти начальное смещение для данной секции, выполните следующие действия.

  1. Выберите в меню Пуск пункт Выполнить, введите команду cmd и нажмите кнопку ОК.

  2. Введите следующую команду и нажмите клавишу ВВОД:

    wmic partition get BlockSize, StartingOffset, Name, Index
    

    После выполнения команды вы получите следующие выходные данные:

    BlockSize Index Name StartingOffset  
    512 0 Disk #1, Partition #0 32256  
    512 0 Disk #2, Partition #0 32256  
    512 0 Disk #3, Partition #0 32256  
    512 0 Disk #4, Partition #0 1048576  
    512 0 Disk #0, Partition #0 32256  
    512 1 Disk #0, Partition #1 41126400
    
  3. Обратите внимание на значение BlockSize и StartingOffset для каждой заданной секции. Значение index, возвращаемое этой командой, указывает, является ли секция первой, второй секцией или другими секциями для данного диска. Например, индекс секции 0 является первой секцией на заданном диске.

  4. Чтобы определить, сколько секторов диска начинается с начала диска, разделите значение Параметра StartingOffset на значение BlockSize. В примере на шаге 2 следующее вычисление дает начальное смещение секции в секторах:

    32256 / 512 = 63