Optimization Disk Systems декабря 21, 2009
За последнее десятилетие производительность процессоров и памяти выросла на несколько порядков, к сожалению этого нельзя сказать о дисковой подсистеме. В этом году у всех крупных вендоров оборудования появились SSD диски, но пока они «почти» не доступны (не каждый готов купить диск емкостью 250гб за 5 000 - 16 000$). Конечно все относительно, один SSD диск по производительности может равняться 100 шпинделям 15к на определенных задачах.
Настройка оптимальной производительности дисковой подсистемы - это серьезная наука. Постигать азы этой науки проще всего с использованием Best Practices производителей
программного обеспечения и оборудования. Использование рекомендаций дает быстрый и заметный эффект с минимальными затратами (разумеется если применять их правильно).
Некоторые факторы, влияющие на операции ввода /вывода:
-
число, размер и скорость дисков;
-
размер кластера;
-
конфигурация HBA адаптеров и SAN;
-
пропускная способность сети;
-
кэш на дисках, контроллерах, SAN;
-
уровень RAID;
-
число путей от дисковой подсистемы до серверов;
-
версии драйверов для всех компонентов;
-
тип нагрузки
-
и т.д.
Настройка дисковой подсистемы разбивается на задачи:
1. Определить требования заказчика (медленно работает, нестабильно и т.д.)
2. Определить тип нагрузки (IO, пропускная способность)
3. Снятие журналов производительности
4. Проверка корректности сборки дискового массива (внутренняя архитектура петель, нагрузка на внутренние шины)
5. Проверка архитектуры оптической сети
6. Проверка настроек серверов
Обсудим 6 задачу, так как в ней чаще всего возникают проблемы. Проблемы здесь возникают по одной простой причине - эксперты делятся на две большие категории: эксперт по дисковым массивам, эксперт по серверам. Здесь и возникает «пресловутый человеческий фактор». Эксперт по дисковым массивам нарезает LUN и передает его эксперту по серверам, а тот в свою очередь работает с ним как умеет. Теоретически всю работу по монтированию диска в операционную систему(ОС) должен проводить эксперт по дисковым массивам, на практике как повезет, так как ОС бывают разные и один эксперт по дисковым массивам просто не в состоянии знать все ОС.
От теории к практике.
При монтировании диска в ОС Windows 2003 забывают делать выравнивание кластеров NTFS (насколько я понимаю для SSD дисков этого делать не нужно). Об этой проблеме много писали, но о ней приходится регулярно вспоминать, так как выявлена проблема года 3 назад, а активное ее обсуждение всего год.
Из общих обсуждений в интернете трудно понять необходимость выравнивания дисков GPT Basic. Выравнивать нужно. Ответ найден, после длительных поисков, в документе «Aligning GPT Basic and Dynamic Disks For Microsoft Windows 2003» Technical Note P/N 300-004-075 от компании EMC.
Для уже установленной и работающей с неверным смещением системы - нужно исправлять смещение, только если есть проблемы с производительностью ввода-вывода! Влияние смещения на производительность заметно для систем, производящих много операций чтения-записи.
1. Запускаем командную строку и выполняем: wmic partition get BlockSize, StartingOffset, Name, Index
Смотрим параметр StartingOffset - он должен делиться без остатка на 4096. Выделенные рамочкой результаты не делятся - нужно выравнивать.
2. Запускаем оснастку Disk Management (из Computer Management) . Сопоставляем номер с буквой диска
3. Запускаем с командной строки fsutil fsinfo ntfsinfo R:
Нас интересует текущий размер кластера NTFS.
4. Смотрим физический размер сегмента на дисковой системе. Размер кластера должен быть меньше или равен размеру сегмента (лучше когда равны)
5. Смотрим рекомендацию размера кластера NTFS производителя программного обеспечения. В нашем случае нагрузку создает Microsoft SQL Server, поэтому правильный размер кластера 64к
6. Делаем резервное копирование данных с диска
7. Если размер сегмента на дисковой системе отличается от нужной, то пересоздаем Raid c нужным размером сегмента
8. Если п.7 пропустили, то удаляем все разделы на диске, например с помощью оснастки Disk Management
9. С командной строки выполняем:
C:\diskpart
DISKPART> select disk 3
DISKPART> create partition primary align=64
10. Форматируем диск с размером кластера 64к
11. Переносим данные обратно