Сжатие диска - технология, увеличивающая эффективную емкость жестких дисков благодаря хранению информации в сжатом виде и последующему восстановлению и повторному сжатию данных при необходимости. Обработка происходит невидимо для пользователя. Время, затрачиваемое на сжатие и распаковку данных, может снизить производительность, но потери невелики и в целом незаметны. Хотя риск потери данных минимален, сжатие диска увеличивает вероятность аварий. Лучшие утилиты обеспечивают максимальный коэффициент сжатия данных в сочетании с наименьшими потерями производительности и наделены функциями и средствами резервирования для предотвращения потери данных.
Средства сжатия дисков, впервые появившиеся в составе DOS 6.0, стали причиной судебной тяжбы между корпорацией Microsoft и фирмой Stac Electronics, создателем утилиты сжатия дисков Stacker. Microsoft приобрела лицензию на программу DoubleDisk у компании Vertisoft и заменила математический алгоритм сжатия процедурой, похожей на применяемую в утилите Stacker. Фирма Stac считает, что при этом были нарушены ее авторские права. Stac получила компенсацию за понесенные убытки, а утилита Microsoft DoubleSpace была изъята из DOS и заменена в версии 6.22 программой DriveSpace. Первая реализация DriveSpace выполняла сжатие не столь хорошо, как Stacker. Новые версии, DriveSpace 2 и DriveSpace 3, поставляемые с Windows 95, были переработаны, с тем чтобы повысить их производительность до конкурентоспособного уровня. Единственным независимым поставщиком средств сжатия для Windows 95 в момент подготовки этого отчета была фирма Stac.
Все версии Windows 95 поставляются с утилитой DriveSpace 2, которая может сжимать диски емкостью не более 256 Мбайт до эффективного размера 512 Мбайт. Если вы купите пакет Microsoft Plus, то получите утилиту DriveSpace 3, которая может создавать сжатые диски емкостью до 2 Гбайт и обеспечивает более высокий коэффициент сжатия.
Как происходит сжатие диска
Утилиты сжатия диска упаковывают все данные из раздела жесткого диска и хранят их в большом файле, именуемом файлом сжатого диска (compressed volume file, CVF). CVF обычно хранится на отдельном виртуальном диске, который называется хост-диском (host drive). Драйвер, загружаемый до начала выполнения CONFIG.SYS, заставляет операционную систему воспринимать CVF в качестве жесткого диска.
Утилиты сжатия диска, как правило, используют метод сжатия LZW, в котором используется однопроходный алгоритм, пригодный для функционирования в реальном времени. Сжатие осуществляется путем кодирования информации таким образом, что файлы наиболее распространенных типов, встречающихся на жестком диске, удается разместить в меньшем пространстве. В процессе как сжатия, так и восстановления данных LZW динамически создает кодировочный справочник и корректирует свой алгоритм в процессе его выполнения, добиваясь максимального коэффициента сжатия.
На дисках, не подвергавшихся сжатию, минимальным выделяемым блоком является кластер. Размер кластера - число входящих в него 512-байт секторов - зависит от объема жесткого диска. Чем больше емкость жесткого диска, тем больше должен быть размер кластера. Это объясняется тем, что таблица распределения файлов (FAT) может содержать лишь 65 536 элементов, каждому из которых соответствует один кластер. 4-Кбайт кластер состоит из восьми секторов и может адресовать дисковое пространство, равное произведению чисел 4096 (4 Кбайт) и 65 536, или 256 Мбайт. Таким образом, для диска объемом до 512 Мбайт требуются 8-Кбайт кластеры; для 1-Гбайт диска - 16-Кбайт кластеры; а для 2-Гбайт диска - 32-Кбайт кластеры. Даже если файл не заполняет весь последний кластер, выделяется целый кластер, а незанятое пространство пропадает впустую.
Другой способ, применяемый в утилитах сжатия для уплотнения данных на диске, состоит в распределении дискового пространства не кластерами, а секторами или более мелкими блоками. Благодаря этому уменьшается объем неиспользуемого дискового пространства между файлами. В программе Stacker используются 16-байт блоки, в DriveSpace 2 - секторы (512-байт элементы), в DriveSpace 3 - 32-Кбайт кластеры. В дополнение к таблице распределения файлов CVF имеет некоторые специальные структуры для адресации блоков выделения, имеющих меньшие размеры, нежели кластеры.
Будьте осторожны
Поскольку для сжатия и хранения данных используются не такие, как обычно, методы, вероятность ошибок возрастает. По этой причине утилиты для сжатия дисков относятся к наиболее тщательно проверяемым из всех программных средств, поставляемых на рынок, и наделяются средствами самопроверки и резервирования, способными исправить почти любую ошибку.
Периодически выполняя дефрагментацию CVF, вы сможете сохранить высокий коэффициент сжатия и освободить много места на жестком диске. Размер свободного пространства, сообщаемый по команде DIR, вычисляется на основе оценки коэффициента сжатия для данного диска. Со временем, по мере того как CVF становится фрагментированным, реальное значение коэффициента сжатия может отличаться от теоретического. Чтобы получить точное представление об имеющемся в вашем распоряжении дисковом пространстве, следует периодически приводить теоретический коэффициент сжатия в соответствие с его реальным значением. После выполнения дефрагментации диска всегда следует заново определить теоретическое значение коэффициента сжатия.
Если вы используете сжатые диски, то для управления ими вам понадобятся инструменты, учитывающие особенности организации сжатых дисков. Стандартные программы-дефрагментаторы имеют дело с кластерами, а фрагментация сжатых дисков происходит на уровне минимальных выделяемых блоков. Убедитесь в том, что ваши дисковые утилиты совместимы с программами сжатия, установленными в вашей системе. Трудности возникают также при создании резервных копий сжатых дисков. Для резервирования необходимо использовать программное обеспечение, которое копирует данные на файловом уровне, а не создает образ диска.
Поскольку обе версии утилиты DriveSpace так похожи (за исключением показателей производительности), им в нашем обзоре посвящается одна статья.
DriveSpace 3
Microsoft Corp.
Стандартная версия Microsoft Windows 95 поставляется вместе с утилитой сжатия диска DriveSpace 2, в которой используется умеренно эффективный метод сжатия и могут создаваться сжатые диски объемом до 512 Мбайт. В состав пакета Microsoft Plus входит более совершенная версия программы, DriveSpace 3, которая способна сжимать диски емкостью до 2 Гбайт и обеспечивает более высокий коэффициент сжатия. Интерфейс обеих утилит в общих чертах совпадает. Во время инсталляции пакета Microsoft Plus утилита DriveSpace 2 удаляется.
Так как обе версии DriveSpace для Windows 95 представляют собой 32-разрядные программы, способные распознавать длинные имена файлов, то они обладают преимуществом перед утилитой Stacker 4.1, которая остается 16-разрядной программой, использующей в своих внутренних операциях короткие имена файлов. DriveSpace 3 также показала в наших тестах более высокий коэффициент сжатия, чем Stacker 4.1.
Читайте документацию
Если Stacker в чем-то превосходит DriveSpace, то в качестве документации. В руководстве по Windows 95 имеется короткое упоминание об утилите, пять страниц посвящены ей в руководстве по Microsoft Plus, но наиболее подробно DriveSpace документирована в Help-файле вспомогательного модуля. Однако даже там описано не все. Например, отсутствует раздел, в котором объяснялось бы, как разрешать проблемы, время от времени возникающие со сжатыми дисками.
Чем выше коэффициент сжатия диска, тем более сложная обработка требуется для поддержания уровня сжатия. В зависимости от вашей потребности в объеме памяти и скорости компьютера вы можете выбрать малый коэффициент сжатия и высокое быстродействие - либо, наоборот, предпочесть большой коэффициент сжатия в ущерб быстродействию.
DriveSpace 3, как и Stacker, предусматривает настраиваемый коэффициент сжатия, и вы можете подобрать его значение в соответствии со своими нуждами. Имеются три уровня сжатия: Standard (стандартный), HiPack (плотной упаковки) и UltraPack (сверхплотной упаковки). Динамическое сжатие файлов осуществляется с помощью методов Standard или HiPack, по вашему выбору. UltraPack, требующий больше времени для упаковки и восстановления данных, оказывается полезен для редко используемых файлов. Однако он не может работать в оперативном режиме без прерывания основной работы. Единственный способ воспользоваться методом сжатия UltraPack - запустить агент сжатия (Compression Agent) утилиты DriveSpace 3, который восстанавливает файлы, когда компьютер не используется.
Для загрузки, удаления и настройки версий 2 и 3 утилиты DriveSpace предусмотрен специальный графический модуль; средства DOS-режима не используются. Нам удалось просто и без осложнений создать сжатые диски с помощью обеих версий. Мы не столкнулись с проблемой нехватки памяти и прочими неудобствами, обнаружившимися при использовании утилиты Stacker.
Утилита DriveSpace не столь хорошо документирована, как Stacker, что причиняет неудобства некоторым пользователям. Однако во время тестирования мы не встретили никаких проблем. DriveSpace 3 обеспечивает превосходные производительность, коэффициенты сжатия, надежность и по сравнению с утилитой Stacker представляет собой лучшее средство для сжатия дисков в среде Windows 95.
DriveSpace 2
Цена: бесплатно (поставляется в комплекте с Windows 95).
Требуемые ресурсы: ПК на базе процессора 386 или более мощного, 4-Мбайт ОЗУ (рекомендуется 8 Мбайт), 40 Мбайт на жестком диске.
DriveSpace 3
Цена: 49 долл. (поставляется в составе пакета Microsoft Plus).
Требуемые ресурсы: ПК на базе процессора 386 или более мощного, 8-Мбайт ОЗУ, 25 Мбайт на жестком диске.
Microsoft Corp., Redmond, WA; 800-426-9400; fax, 206-635-6100.
Stacker 4.1
Stac Electronics
Утилита Stacker, версия 4.1, - новая, рассчитанная на применение с Windows 95 редакция утилиты Stacker, версия 4.0, где сохранились совместимость с DOS и Windows 3.1. В отличие от DriveSpace она представляет собой 16-разрядную прикладную программу. 32-разрядная версия Stacker пока не была анонсирована, и фирма Stac Electronics дала уклончивый ответ на наш запрос о ее дальнейших планах.