[ Страница назад | Страница вперед | Содержание | Индекс | Библиотека | Юридическая информация | Поиск ]

Принципы управления системой: Операционная система и устройства


Сжатие данных

Примечание: Сжатие данных применяется только в JFS.

Журнализированная файловая система (JFS) поддерживает фрагментированные и сжатые файловые системы. В этих типах файловых систем экономия дисковой памяти достигается за счет того, что размер минимального логического блока (фрагмента) файла на диске меньше, чем размер физического блока (4 Кб). Во фрагментированной файловой системе в таких фрагментах хранятся только последние логические блоки файлов размером не более 32 Кб. В сжатой файловой системе в таких фрагментах могут храниться все блоки файлов любого размера. В среднем за счет сжатия данных экономится примерно 50% дисковой памяти.

Применение фрагментов и сжатия данных, тем не менее, повышает риск фрагментации дискового пространства. Фрагменты, выделенные логическому блоку, должны занимать непрерывную область памяти. В файловой системе с фрагментированным свободным пространством иногда бывает трудно выбрать достаточное количество свободных смежных сегментов, необходимых для размещения логического блока, даже большом общем числе свободных фрагментов. В JFS для решения проблемы фрагментации применяется программа defragfs, объединяющая свободные блоки в последовательные цепочки. С помощью этой утилиты можно увеличить объем непрерывной свободной памяти в фрагментированных и сжатых файловых системах. Экономия дисковой памяти за счет применения фрагментов и сжатия данных достаточно велика, чтобы можно было смириться с фрагментированностью файловой системы, которую всегда можно устранить.

Алгоритмы сжатия файлов в текущей версии JFS совместимы с предыдущими версиями данной операционной системы. Интерфейс программирования (API), в который включены все системные вызовы, связанные со сжатием данных, остался в новой версии JFS без изменений.

Дополнительная информация о поддержке фрагментов, использовании дисков, фрагментации свободного пространства и влиянии фрагментации на производительность приведена в разделе Поддержка фрагментов и переменного числа I-узлов.

Процедура сжатия данных

Примечание: Сжатие данных применяется только в JFS.

Внимание: Корневая файловая система (/) не может быть сжата. Кроме того, не рекомендуется сжимать файловую систему /usr, поскольку программа installp должна иметь возможность точно определять объем дискового пространства, необходимого для установки обновлений и новых компонентов программного обеспечения. Дополнительная информация о вычислении объема дискового пространства приведена в разделе Особенности сжатых файловых систем.

Сжатие данных - это атрибут файловой системы, задаваемый при ее создании с помощью команды crfs или mkfs . Сжатие данных применяется только для обычных файлов и длинных символьных связей. Фрагменты по-прежнему поддерживаются при работе с каталогами и метаданными, сжатие которых не выполняется. Каждый логический блок файла сжимается независимо от других перед записью на диск. Такой подход обеспечивает максимальную скорость выборки и обновления данных, хотя эффективность сжатия несколько снижается (по сравнению со сжатием больших блоков данных).

После сжатия логическому блоку обычно требуется менее 4096 байт дискового пространства. Сжатый блок записывается на диск, и для него выделяется непрерывный блок памяти, состоящий из минимального достаточного числа фрагментов. Если логический блок не удается сжать, то он записывается на диск без сжатия и для него выделяется непрерывный блок памяти размером 4096 байт.

Особенности сжатых файловых систем

Примечание: Приведенная в этом разделе информация относится только к JFS.

Поскольку после успешного завершения операции записи (или сохранения - при использовании файлов размещения) программа, записывающая файл, не ожидает возникновения ошибки, связанной с недостатком свободного места на диске (ENOSPC), необходимо обеспечить объем свободного пространства, достаточный для записи логических блоков на диск. Такая гарантия обеспечивается выделением 4096 байт на каждый логический блок при первом его изменении, что позволяет записать даже не сжатый блок. Если выделить свободный участок памяти размером 4096 байт невозможно, то система возвращает сообщение об ошибке ENOSPC или EDQUOT, даже в том случае, если фактический объем свободного дискового пространства достаточен для размещения сжатого логического блока. Поэтому в случаях, когда в файловой системе очень мало свободной памяти, а также когда пользователь израсходовал почти всю выделенную ему память, могут выдаваться ошибочные сообщения о том, что недостаточно дисковой памяти.

Помимо преждевременной выдачи сообщений о том, что недостаточно дисковой памяти, сжатые файловые системы обладают следующими особенностями:

Установка режима сжатия файловой системы

Примечание: Приведенная в этом разделе информация относится только к JFS.

Сжатие данных теперь поддерживается командами crfs, mkfs и lsfs. В них, а также в программе SMIT, предусмотрены дополнительные опции, позволяющие задавать режим сжатия данных для файловой системы.

Просмотр режима сжатия данных

Примечание: Приведенная в этом разделе информация относится только к JFS.

Флаг -q команды lsfs позволяет определить текущее значение атрибута сжатия данных.

Совместимость и преобразование

Примечание: Приведенная в этом разделе информация относится только к JFS.

Предыдущие версии этой операционной системы совместимы с текущей версией JFS. Совместимость дисковых образов с предыдущими версиями операционной системы позволяет монтировать файловые системы и обращаться к ним без выполнения каких-либо преобразований и без снижения производительности файловых систем.

Резервное копирование и восстановление

Примечание: Приведенная в этом разделе информация относится только к JFS.

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

Алгоритм сжатия

Примечание: Приведенная в этом разделе информация относится только к JFS.

В AIX применяется разработанный в IBM алгоритм сжатия на базе стандартного алгоритма LZ. Алгоритм LZ сжимает данные путем замены второго и всех последующих вхождений определенной строки на указатель, задающий первое вхождение строки, и ее длину. В начале процедуры сжатия в базе данных повторяющихся строк нет ни одной строки, поэтому как минимум первый байт данных не будет "сжат" и будет записан в выходную строку в исходном виде (при этом к нему добавляется сигнальный бит и символ занимает уже 9 бит - 0 и исходный байт). После сжатия определенного объема данных, домустим N байт, программа сжатия начинает искать самую длинную строку, которая встречается в этих N байтах, и с которой начинается следующий необработанный байт. Если длина найденной строки равна 0 или 1, то следующий байт не кодируется и записывается в исходном виде (с сигнальным битом). В противном случае совпадающая строка заменяется на пару (указатель,длина), а процедура сжатия продолжается с байта N+L+1, где L - длина совпадающей строки. В модификации алгоритма LZ фирмы IBM для N поддерживаются значения 512, 1024 и 2048. В алгоритме IBM LZ зафиксировано кодирование пар (указатель, длина) и обычных символов. Указатель - это поле фиксированной длины размером log2 N, а длина кодируется полем переменной длины.

Влияние на производительность

Примечание: Приведенная в этом разделе информация относится только к JFS.

Поскольку сжатие данных входит в состав средств поддержки фрагментов, то все рассуждения о производительности, относящиеся к фрагментам, применимы и к сжатию данных. Кроме того, сжатие данных оказывает следующее влияние на производительность файловой системы:


[ Страница назад | Страница вперед | Содержание | Индекс | Библиотека | Юридическая информация | Поиск ]