Я думаю, что страдаю синдромом "все должно быть в степенях 2". Когда меня просят создать диск 30G в VmWare для виртуальной машины, я хочу создать диск 32G. Если кому-то нужно 256G хранилища с использованием LVM, я создаю 1 256, 2 128 или 4 64...
Вопрос прост: есть ли влияние на производительность или недостатки создания дисков "нестандартного" размера, даже если я помещаю их в группу томов в Linux? Если кто-то просит 80G, нормально ли создать 10, 20 и 50, чтобы достичь этого? Или мне следует придерживаться степеней 2, если я могу?
решение1
Я бы скорее рекомендовал вам следить за тем, является ли раздел так называемым выровненным по вводу-выводу, поскольку это может действительно повлиять на производительность ввода-вывода. В настоящее время это не такая уж проблема, поскольку установщики или мастера настройки обычно автоматически выравнивают разделы по какой-то "power of 2"
границе, но когда вы создаете его вручную, все равно может быть полезно знать, как это работает.
Я попытаюсь объяснить концепцию на простом примере, заимствованном из виртуальных сред. Для простоты предположим инфраструктуру VMware vSphere и файловую систему VMFS. Всего нам нужно учесть три слоя - дисковый массив, который имеет фрагменты определенного размера для запроса данных, файловую систему VMFS с блоками определенного размера и, наконец, файловую систему гостевой операционной системы, организованную в блоки/кластеры.
Обычно вам не нужно тратить время на выравнивание файловой системы VMFS с дисковым массивом, так как это выполняется автоматически при создании нового хранилища данных VMFS с помощью vCenter. С гостевой ОС ситуация хуже. Ниже приведена картинка невыровненных слоев:
Когда гостевая ОС считывает/записывает один блок/кластер, базовый гипервизор/дисковый массив должен будет запросить один блок из файловой системы VMFS и два фрагмента дискового массива, поскольку блок охватывает несколько фрагментов. Это может означать чтение или запись с нескольких дисковых шпинделей, поскольку эти фрагменты могут быть распределены по нескольким дискам в зависимости от конфигурации RAID. Конечно, это не оптимальная конфигурация. Лучше выровненная:
Затем один запрос блока файловой системы генерирует один запрос фрагмента дискового массива. Тем не менее, большинство современных операционных систем помнят об автоматическом выравнивании разделов ввода-вывода во время установки. Например, Windows Server 2008 или RedHat Enterprise Linux 6 делают это, но Windows Server 2003 или более старые дистрибутивы этого не делают.
Поэтому все равно стоит это запомнить, так как автоматическое выравнивание ввода-вывода обычно зависит от характеристик устройств хранения, чтобы указать их предпочтительное выравнивание ввода-вывода и размер блока ввода-вывода. Современные стеки ввода-вывода Linux (например, RHEL 6, parted, LVM, mkfs) могут работать с такой информацией и выполнять ее автоматически. Но если это не работает так, как ожидалось, вам следует сделать это вручную.