Существует несколько подходов оптимизации работы жестких дисков и увеличения надежности хранения информации. Самым простым и эффективным выходом было бы использования жестких дисков, основанных на флэш-памяти (так называемые Solid-State Disks). К недостаткам такого решения относится дороговизна оборудования - такие диски не по карману большинству пользователей.
Более доступным решением стало использование систем RAID - массива независимых дисковых накопителей с избыточностью (Redundant Array of Independent Disks). Но они популярны лишь при использовании недорогих IDE дисков. Диски с интерфейсом SCSI до сих пор остаются дорогим удовольствием. Но о них чуть позднее. В основном, RAID используется для увеличения как производительности, так и надежности хранения информации. При этом используется несколько дисков. Отметим, многие пользователи не рассматривают систему RAID Mode 0 (чередование дисков - striping) как систему RAID, так как никакой избыточности она не предоставляет. То есть данные хранятся вовсе не надежно, и если сломается хотя бы один диск, все данные будут потеряны.
Именно по этой причине массивы RAID 0 не предназначены для длительного хранения данных. Но они могут стать подходящим решением для кратковременного использования, когда нужна высокая производительность (swap файлы, временные диски, видео-монтаж, видео-кодирование).
Иногда нам кажется, что винчестеры работают слишком медленно. Причин тому несколько. Больше всего на скорости чтения сказывается фрагментация данных. Ниже мы объясним суть проблемы:
Обычно файлы сохраняются последовательно, друг за другом.
При удалении файла возникает пустое пространство между оставшимися файлами...
... которое заполняется при записи новых файлов.. Если размер нового файла больше размера освободившегося пространства, дисковая система разделит файл - фрагментирует его (конечно, если нет другого свободного места).
Не обязательно иметь техническое образование, чтобы оценить влияние фрагментации. Когда файл хранится в одном месте, он считывается последовательно (и чтение происходит с максимальной скоростью). Для чтения фрагментированных файлов приходится осуществлять операции позиционирования головки, что увеличивает время считывания и таким образом значительно сокращает производительность жесткого диска.
Хотя время доступа и не зависит напрямую от фрагментации (не важно, фрагментирован файл, или нет), головки чтения/записи могут закончить считывание последнего фрагмента в другой позиции, отличной от начальной. К сожалению, алгоритмы кэширования не могут справиться с этим эффектом. Так что даже кэш-память не поможет обеспечить высокой скорости работы жесткого диска.
Вполне очевидно, что фрагментации избежать нельзя, но её эффект можно снизить, если регулярно дефрагментировать диски. В зависимости от количества данных, которые вы храните на вашем диске, вы можете проводить дефрагментацию с различной периодичностью: либо каждые несколько недель - если вы регулярно записываете файлы и удаляете их, либо раз в несколько месяцев - если оборот данных не очень велик.
IDE | SCSI | |
Пропускная способность | 100 MB/s (UltraATA/100) | 160/320 Мб/с (Ultra160, Ultra320 SCSI) |
Длина кабеля | 45 см | ~150 см |
Устройства на канал | 2 | 7/15 |
Масштабируемость | Средняя | Превосходная |
Многозадачная производительность | В зависимости от контроллера - обычно средняя | В зависимости от контроллера - обычно высокая |
Цена | Низкая | Средняя - высокая |
Загрузка процессора | Средняя | Низкая |
Если для дома и офиса масштабируемость, многозадачная производительность и загрузка процессора не имеют особого значения, такая банальная вещь, как длина кабеля, может сыграть важную роль. Длина кабеля интерфейса IDE не может превышать 45 сантиметров, поэтому бывает очень трудно подключить несколько IDE дисков в верхних отсеках. То же самое касается high-end RAID контроллеров типа Promise SuperTrak100: это устройство даже поддерживает RAID 5, но подключить нужное количество устройств (обычно 5 или 6) в некоторых корпусах бывает очень и очень сложно. В случае SCSI можно запросто подключить одним кабелем друг за другом до 7 устройств.
Идея чередования дисков возникла ещё давно, поэтому нет ничего удивительного в том, что Windows 2000 не требует аппаратного контроллера для установки RAID 0. Можно установить RAID 0 программно - Windows 2000 поддерживает не только использование одного винчестера, или нескольких винчестеров как единого целого (drive spanning), но и чередование. Скептики возразят, что использование дисков в режиме программного чередования нагружает процессор. Конечно, доля правды в этом есть, но не стоит забывать о мощности современных процессоров. На самом же деле, программное решение RAID нагрузит процессор лишь немногим более аппаратного решения с использованием RAID контроллера.
Windows 2000 способна чередовать любое количество дисков, независимо от их интерфейсов. Вы можете, например, чередовать три IDE диска и один SCSI диск. Чередование позволяет подключать несколько дисков, но при этом за основу будет браться самый маленький. Так, например, три 40Гб диска и один 8 Гб в итоге дадут лишь только 32Гб - емкость самого маленького винчестера, помноженная на количество устройств. Однако чтобы достичь максимальной емкости и производительности, лучше использовать сходные по параметрам диски.
Дополнительный IDE контроллер, такой как этот Promise Ultra 100 TX2 не так дорог, как RAID контроллер и он позволяет реализовать программное чередование.
Во-первых, необходимо установить требуемые контроллеры и диски. После этого запустите "Управление компьютером" (Computer Management) - для этого можно набрать в командной строке "compmgmt.msc /s", откройте раздел управления дисками (Disk Management) в разделе Storage.
В нижней правой части окна вы увидите все диски и их разделы. Перед тем как создавать чередование, необходимо удалить все разделы на тех дисках, которые вы собираетесь использовать для чередования. Для этого вызовите меню, щелкнув правой кнопкой по разделу. Теперь необходимо конвертировать эти диски в динамические диски (dynamic drives). Щелкните правой кнопкой по полю слева от области с разделом и выберите пункт "Преобразовать в динамический диск" ("Convert To Dynamic Drive").
После перезапуска системы (что обязательно) чтобы создать новый раздел нужно щелкнуть правой кнопкой по области раздела требуемого диска. Мастер позволит вам создать простые разделы, создавать чередование или иным способом объединять диски. Далее, определите размер сектора и метку диска, далее он автоматически отформатируется. Вуаля, готово!
Пока всё выглядит очень хорошо. Тем не менее, мы обнаружили, что система Windows 2000 не может быть установлена на программном RAID. Когда мы специально для установки Windows организовали массив, установочная программа не распознала чередующихся дисков. Вероятно, причиной тому является то, что стандартные винчестеры не поддерживают модель динамических дисков Windows 2000. Если вы всё же выберете один из дисков массива для установки системы, Windows 2000 скажет, что необходимо сначала его отформатировать.
Интересно, что системе нет дела до того, в каком порядке установлены диски в массиве. Главное, чтобы все диски были и чтобы все они работали. Например, если поменять устройство с мастера на слейв - на производительность это почти не повлияет. Удаление же любого из дисков массива приводит в нерабочее состояние всю систему - поэтому будьте бдительны.
Было бы неплохо установить Windows 2000 на RAID, но, к сожалению, система этого не позволяет. Тем не менее, существует масса других применений такому массиву. С одной стороны, мы можете держать файл подкачки (swap file) в массиве. Тем не менее, сначала убедитесь, что вы ничего туда не записали. Кроме того, указывайте одинаковые числа первоначального и максимального размера, чтобы файл подкачки не был фрагментирован. Ещё одно применение чередованию - использование его как временного диска для сложных и требовательных приложений, таких как Adobe Photoshop. Если можно, указывайте фиксированный размер для временных файлов.
Тестовая система | |
Процессор | Intel Pentium III, 866 MHz |
Материнская плата | Asus CUSL2, i815 Chipset |
RAM | 128 MB SDRAM, 7ns (Crucial/Micron) CL2 |
Интерфейс IDE | i815 UltraDMA/100 Interface (ICH2) Promise FastTrak100 Promise Ultra100 |
Графическая карта | i815 On-Board Graphics |
Сетевая карта | 3COM 905TX PCI 100 MBit |
Операционная система | Windows 2000 Pro 5.00.2195 SP2 |
Тесты | |
Тест офисных приложений (Office Applications Benchmark) |
ZD WinBench 99 - Business Disk Winmark 2.0 |
Тест Highend Applications | ZD WinBench 99 - High-End Disk Winmark 2.0 |
Передачи данных | ZD WinBench 99 - Disk Inspection Test 2.0 |
Производительности | SiSoft Sandra 2001 |
Настройки | |
Видео-драйверы | Intel i815 Reference Drivers 4.3 |
Драйверы IDE | Intel Bus Master DMA Drivers 6.03 Promise Ultra100 Driver 1.60 Promise FastTrak100 Driver 2.00 |
Версия DirectX | 8.0a |
Экранное разрешение | 1024x768, 16 Bit, 85 Hz Refresh |
Многие, наверное, видели диаграммы передачи данных жестких дисков (например, DTLA).
Эта диаграмма во многом похода на предыдущую, только вместо одного диска здесь используется два. Изменен масштаб: если один диск обеспечивает скорость 36 мегабайт в секунду, система с двумя дисками обеспечивает почти вдвое большую производительность - 70 мегабайт в секунду.
Использование двух каналов вместо одного практически не сказывается на производительности.
Добавление третьего диска не сильно повлияет на производительность - максимальная скорость не будет выше 75 мегабайт в секунду, тем не менее, гарантированная скорость будет не менее 55 мегабайт в секунду. В сравнении с двухдисковой конфигурацией, где гарантированная скорость не менее 38 мегабайт в секунду, разница довольно существенная, особенно она заметна на серьезных приложениях.
Здесь начинается самое интересное! В результате подключения всех трех дисков (по одному на IDE канал) 32-разрядная PCI шина полностью загружается.
Возможно, для увеличения емкости кто-то захочет использовать четыре диска на двух каналах. Удивительно, но это не приводит к увеличению скорости передачи данных выше 75 мегабайт в секунду. Однако, минимальная скорость в 72 мегабайта в секунду - это уже что-то.
Разделение массива на три канала заметно повышает производительность - почти до 100 мегабайт в секунду, с гарантированной скоростью в 76 мегабайт в секунду.
Казалось бы, это самый производительный вариант. Тем не менее, скорость немногим выше варианта с тремя дисками и тремя каналами.
Здесь вы можете сравнить максимальную и минимальную производительность всех конфигураций. Пожалуй, система с четырьмя дисками и четырьмя каналами почти в четыре раза производительнее однодисковой системы.
Скорость доступа к диску от чередования выше не станет. Это очевидно. Хотя пропускная способность значительно выше, диски не могут позиционировать головки быстрее. Это относится не только к программному RAID, но и к любому аппаратному решению. В дорогих адаптерах могут быть встроены RISC контроллеры, использоваться большие объемы кэш-памяти, применяться сложные алгоритмы, но они не решат проблему. Отсюда вывод: если ваши приложения часто обращаются к массивам данных (например, веб-сервер), постарайтесь приобрести диски с наименьшим временем доступа.
Понятно, что стандартные приложения типа Microsoft Word или Excel не очень требовательны к подсистеме хранения информации.
В отличие от теста Business Disk WinMark, тест Highend Disk WinMark ясно показывает разницу при работе с более быстрой подсистемой хранения. Здесь результат почти на 50% выше у системы, использующей, по крайней мере, три IDE канала.
Результаты теста Sandra похожи на Disk WinMarks. Использование двух дисков приводит к увеличению общей производительности подсистемы хранения, дальнейшее увеличение количества дисков на производительности системы практически не сказываются.
Программная поддержка чередования - действительно полезная возможность. В зависимости от количества дисков, вы можете поднять скорость передачи данных до пропускной способности шины PCI (теоретически - это 133 мегабайта в секунду). В системах с 64-битной шиной PCI вы можете достичь ещё большей производительности - при использовании большего количества дисков и контроллеров. Многие приложения хранят все рабочие данные в кэше процессора или в оперативной памяти. В этом случая проблема скорости жестких дисков отходит на второй план.
Программное чередование может оказаться идеальным решением для "тяжелых" приложений, которым необходимы высокопроизводительные дисковые устройства. Например, вы можете хранить в таком массиве файлы подкачки Windows или какие-либо другие постоянно обновляемые данные (например, приложения, регулярно запускаемые по локальной сети). Отметим, что такие массивы не подходят для обычной работы, так как вероятность потери данных у них значительно выше, чем у однодисковых систем или систем RAID. Поэтому не рекомендуется хранить на чередующемся массиве большие базы данных и различные важные файлы.