Жесткие диски

clip_image002

Независимо от скорости процессора или памяти основным «узким местом» в про­изводительности системы являются диски и периферийные устройства. Даже если потратить целый день на тонкую настройку и разгон процессора и памяти, старые медленные жесткие диски могут свести к нулю все усилия по улучшению произ­водительности. Рассмотрим простые и, как правило, не требу­ющие дополнительных затрат приемы — такие как разумное разбиение жесткого диска и использование инструментов, необходимых для подготовки жесткого дис­ка к хранению файлов. Они помогут привести жесткие диски в соответствие с по­требностями системы и вашими требованиями к ее надежности.

Разбиение и форматирование

Разбиение жесткого диска на разделы повышает эффективность файло­вых операций.

Известно ли вам, какая часть пространства на жестком диске расходуется пона­прасну? В системах Windows непроизводительные затраты, обусловленные неоптимальными размерами выде­ляемых блоков, составляют от 10 % до 30 %.

Немного теории.

Разделом (partition) называется логическая область жесткого диска, содержащая файловую систему. Разбиение жесткого диска на разделы напоминает выделение крупных земельных наделов, которые в дальнейшем делятся на множество мел­ких участков. Файловая система внутри раздела содержит файлы и каталоги, из которых складывается хорошо известная нам иерархическая структура файлов на диске.

Файловая система, ее инструментарий и средства поддержки на уровне операци­онной системы обеспечивают хранение данных в «участках» (называемых клас­терами), выделяемых внутри разделов. Если поставить маленький дом на боль­шом участке, большая часть земли останется неиспользованной. В реальной жизни «лишнюю» землю можно отвести под посевы или пастбища, но в файловых си­стемах каждый «участок»-кластер может содержать только один «дом». Один «дом» может располагаться на нескольких «участках», но «участок» не может быть занят ничем другим, даже если в нем есть пустое место.

разбиение форматированиеТипы разделов

Разные операционные системы для PC поддерживают разные типы разделов и файловых систем. На компьютерах семейства х86 обычно встречаются разделы пяти типов:

Основной раздел — первый раздел на жестком диске (а нередко и единствен­ный, занимающий все доступное пространство). Основной раздел был необходим для DOS и Windows 9x-Me, но системы линейки Windows NT и Linux способ­ны загружаться из дополнительного раздела. Основной раздел может содер­жать только один логический диск. На диске можно создать до четырех основ­ных разделов или трех с одним дополнительным разделом.

Дополнительный раздел — может существовать только в том случае, если на дис­ке уже имеется хотя бы один основной раздел. Дополнительный раздел может занимать все оставшееся свободное место на диске или только его часть; он мо­жет содержать файловую систему NTFS или инородные (non-DOS) разделы. До­полнительный раздел может содержать один или несколько логических дисков.

Логический раздел — чтобы в файловых системах DOS или Windows вы могли обращаться к пространству внутри дополнительного раздела по букве диска, в дополнительном разделе должен быть создан как минимум один логический раздел. Если создать дополнительный раздел, в котором нет ни одного логи­ческого раздела, любая операционная система может затребовать его простран­ство или превратить дополнительный раздел в инородный.

• Раздел NTFS — разделы NTFS обычно создаются и используются операцион­ными системами Windows ХР, 2003, 7. В разделах NTFS могут определяться собственные логические разделы и диски.

• Инородный раздел — все типы разделов, не поддерживаемые DOS или Windows.

К этой категории относятся разделы различных версий Linux, FreeBSD, SunOS и других систем. В этих операционных системах используются другие типы файловых систем, обеспечивающие распределение дискового пространства и поддержку работы файловых систем.

Раздел любого типа может быть как активным, так и неактивным. Активный раз­дел не всегда является системным или загрузочным; последний назначается опе­рационной системой.

Активным называется раздел, на котором BIOS ищет загрузочные файлы и опера­ционную систему. Чтобы активный раздел стал загрузочным, он должен содержать основную загрузочную запись (MBR) и файлы, необходимые для начала загрузки операционной системы. Остальные файлы операционной системы могут находить­ся в другом разделе или логическом диске.

Файловые системы

После разбиения диска необходимо решить, какие файловые системы будут на нем использоваться. В настоящее время известно несколько десятков различных файловых систем. Вот лишь некоторые из них:

• DOSFAT-12, FAT-16, FAT-32. Файловые системы DOS, известные под назва­ниями FAT-12, FAT-16 и FAT-32 (хотя ни одна версия DOS не поддерживает FAT-32), прошли долгий путь эволюции от первых дней существования PC (когда вся информация хранилась на дискетах) до поддержки жестких дисков большого объема. Сокращение «FAT» происходит от слов «File Allocation Table», то есть «таблица размещения файлов»; эта структура данных в той или иной форме присутствует в любой файловой системе, но ее название обычно ассоциируется с файловыми системами DOS. Число определяет количество бит информации, необходимых для идентификации кластеров: 12 бит позволя­ют идентифицировать до 4096 кластеров/файлов (включая каталоги), 16 бит — до 65 536 кластеров/файлов, а 32 бита — до 4,2 миллиарда кластеров/файлов в одном разделе. Запись каталога в файловой системе FAT содержит информа­цию о начальном и конечном кластерах файла, а также об атрибутах файловой системы (только для чтения, архивный, скрытый и системный). Файловые системы DOS/FAT не поддерживают защиты доступа к файлам.

• NTFS. На жестком диске может существовать один или несколько разделов NTFS вместе с основными, дополнительными или инородными разделами. NTFS является журналируемой файловой системой; это означает, что файло­вая система сохраняет информацию о выполняемых операциях для расшире­ния возможностей восстановления в случае сбоя системы. NTFS использует два метода отслеживания данных каталогов и файлов. Во-первых, главная файловая таблица (MFT, Master File Table) «знает все» о каталогах (папках) и файлах на диске; во-вторых, информация о файлах хранится в самих фай­лах. Более того, относительно небольшие файлы хранятся в самой таблице MFT, а не в отдельной области диска. Каталоги NTFS содержат информацию о каталоге, а не о хранящихся в нем файлах. В информации файла в NTFS хра­нится не только имя файла, его местонахождение и атрибуты, но и данные си­стемы безопасности. Количество файлов и каталогов в NTFS практически не ограничено, разве что MFT при очень большом количестве файлов вырастет до таких размеров, что поглотит все свободное место на диске.

• ext, ext2 и ext3. Файловые системы ext используются системой Linux. Ext поддержи­вает диски и отдельные файлы размером до 2 Гбайт, ext2 поддерживает разде­лы до 4 Тбайт и файлы до 2 Гбайт (Linux 2.2) и свыше 2 Гбайт для Linux 2.4 и выше. Файловая система ext3 представляет собой журналируемую файловую систему, совместимую с ext2. Журналируемая файловая система регистрирует изменения перед их внесением, что повышает надежность файловой системы.

• jfs. Журналируемая файловая система jfs была разработана IBM для серверов Linux. За дополнительной информацией о jfs обращайтесь на сайт http://oss.soft- ware.ibm.com/developerworks/opensource/jfs/.

• ReFS файловая система, разработанная для операционной системы Windows 8, которая будет обладать совместимостью с NTFS, но будут новые функции хранения данных, например, устойчивость к сбоям и повреждениям данных, технология объединения данных и виртуализация.

В файловых системах FAT и NTFS дисковое пространство распределяется по кластерам. Кластер состоит из одной или нескольких 512-байтовых единиц про­странства адресов.

Файловая система FAT-32, которая поддерживается в системах Windows ХР, 7, 2003, 2008, позволяет создавать диски объ­емом до 4 Тбайт, содержащие до 4 миллиардов класте­ров/файлов с размером кластера 32 Кбайт. Для очень мелких (512-байтовых) файлов это приводит к крайне неэффективному расходованию дискового про­странства и огромным потерям. Следовательно, при разбиении жесткого диска разумно использовать кластеры как можно меньшего размера. В FAT-32 макси­мальный размер файла ограничивается 2 Гбайт, и для большинства из нас этого более чем достаточно, но если вы собираетесь работать с файлами большего раз­мера (например, с крупными базами данных) — используйте NTFS.

NTFS тоже может выделять место на диске единицами, размер которых может составлять всего 512 байт (один сектор). Как и в FAT, кластеры обычно образу­ются из нескольких секторов, но в NTFS используется достаточно широкий чис­ловой диапазон, позволяющий отслеживать огромное число кластеров, поэтому размер кластера варьируется от одного 512-байтового сектора до нескольких сек­торов. Максимальное число единиц (кластеров или секторов) в NTFS позволяет использовать диски, объем которых исчисляется терабайтами. Максимум диско­вого пространства, теряемого при хранении файла, составляет часть одного клас­тера. Разделы NTFS можно пере­форматировать в консоли управления дисками ХР или Семерки, чтобы использовать более мелкие или крупные кластеры по вашему усмотрению.

В зависимости от метода кэширования с опережающим чтением и объема кэша для конкретного диска использование 1-килобайтных кластеров в NTFS эквива­лентно 1 000 обращений к диску при чтении или записи 1-мегабайтного файла, тогда как при 4-килобайтных кластерах потребуется всего 250 обращений. С дру­гой стороны, средняя веб-страница объемом 1-2 Кбайт и мелкие графические фай­лы начнут поглощать на 2-4 Кбайт больше дискового пространства, чем требует­ся для их хранения. На первый взгляд кажется, что 2-4 Кбайт — это немного, но если разрешить увеличение кэша временных файлов Интернета до 512 Мбайт и бо­лее это может привести к тому, что 256 Мбайт дискового пространства будет по­трачено на временные веб-файлы, которые вы все равно можете никогда больше не увидеть

Важно заметить, что дисковые операции и их производительность с точки зрения операционной системы существенно отличаются от того, что происходит внутри самого диска. Естественно, диск должен прочитать или записать все секторы с данны­ми по требованию операционной системы, поэтому он должен выполнить всю ме­ханическую работу по поиску всех секторов, будь они смежными (не фрагментированные файлы) или находящимся в разных местах диска (фрагментированные файлы). Операционная система отслеживает местонахождение файлов по файловым таб­лицам и сообщает диску, откуда следует читать фрагменты файлов. Диск умеет находить только дорожки и секторы; ему ничего не известно о том, где хранится тот или иной файл. Если встроенный код и схема кэширования диска достаточно умны, они сами оптимизируют размещение файлов и операции чтения. При достаточно большом внутреннем кэше диск принимает все команды операционной системы, отвечает «понял, выполняю» и берется за работу, позволяя ОС выполнить другие операции. Возможно, когда-нибудь появятся диски, знающие о существовании операционных систем, или специальные диски с файловыми функциями; тогда операционная система станет действительно операционной системой, а не дис­петчером файлов, но пока вся ответственность за оптимизацию файловых и дис­ковых функций возлагается на операционную систему и разработчика драйверов.

Материалы по теме