За системен администратор

Дефрагментиране

Дефрагментацията се появи едновременно с появата на твърдите дискове в света. Ако ви е грижа за вашия компютър най-малко, трябва редовно да дефрагментирате твърдите си дискове. Това със сигурност ви напомня за разговор със зъболекар, който във всеки разговор ви напомня да използвате зъбен конец. Да, дефрагментирането е също толкова важно.

Освен ако компютърът ви не е в ъгъла и никога не се включи, информацията на твърдия му диск става все по-фрагментирана. Ще ви покажа как работи след няколко минути, но засега нека ви дам някои факти от историята на дефрагментирането.

Дефрагментиране и Windows NT

Windows NT® няма вграден дефрагментатор на диска. По това време се смяташе, че такава програма не е необходима. В крайна сметка NTFS е проектиран с оглед на оптимизацията и фрагментацията не е толкова лоша за твърдия диск с тази файлова система, колкото с твърдия диск с файлова система FAT. Но с течение на времето дори производителността на NTFS твърд диск може да пострада от неоптимално разпределение на файлове. Необходимостта от дефрагментиране стимулира пазара за дефрагментатори на трети страни. Софтуерът Diskeeper от Executive Software (сега преименуван на Diskeeper Corporation) беше много популярен сред ИТ специалистите. Когато Windows 2000 въведе поддръжка за дефрагментиране на операционната система, Microsoft лицензира технологията от Executive Software. В Windows® 2000 помощната програма за дефрагментиране беше приставка за конзолата за управление на Microsoft® (dfrg.msc), която можете да извикате, като щракнете върху иконата на диска или ръчно стартирате defrag.exe от командния ред. Програмата не позволява стартиране на планирано дефрагментиране. Много ИТ специалисти обаче са създали сценарий за автоматизация на дефрагментирането, използвайки инструментите, вградени в операционната система. Файлът Defrag.exe в Windows XP и Windows Server® 2003 е имал някои подобрения и някои функции за автоматизация в сравнение с по-ранната си версия. Но все пак, за да автоматизираме процеса, беше необходимо да напишем подходящ скрипт.

Няколко компании, включително Winternals Software (където съм работил преди), са разработили софтуер за дефрагментиране на предприятия. Повечето от тези програми работят по подобен начин. Те включват централизирана конзола, агент, който работи с клиентски компютри (през цялото време или само при поискване), и схема, която определя кога и как трябва да се извърши операцията по дефрагментиране.

В Windows Vista® дефрагментирането на твърдия диск на компютъра продължава традицията на предишните операционни системи. Тази операционна система е оптимизирала дефрагментатора и поддържа нови функции, като дефрагментиране на малки файлови фрагменти (не повече от 64 MB), което съкращава времето за дефрагментиране, тъй като не губи време за големи файлови фрагменти. Механизмът за дефрагментиране в Windows Vista и Windows Server 2008 е по-мощен от механизма за дефрагментиране, използван в по-ранните версии на Windows. Освен това дефрагментирането започва автоматично, без да е необходимо ръчно планиране. Ако обаче работите в голяма организация или искате да оптимизирате работата на компютрите и липсват вградените възможности за дефрагментиране за вашите цели, може да се наложи да закупите софтуер на трета страна. Както при по-ранните версии, дефрагментирането на големи обеми, които интензивно използват NTFS компресия, може да предизвика някои трудности. В този случай трябва да използвате и инструментите за дефрагментиране на други разработчици.

Защо възниква фрагментация?

Фрагментацията възниква, защото файловете се променят с течение на времето. В идеалния случай файловете на Windows не се променят сами. Е, или поне те не се променят много често, само в случай на инсталиран сервизен пакет и актуализации на софтуера. В противен случай системните файлове не се променят. Правенето на значителни промени в системата, като инсталиране на сервизен пакет, неизбежно води до фрагментация, тъй като актуализираните файлове най-често не могат да бъдат записани в същото пространство, което заемат на твърдия диск. В допълнение, такива големи промени може да изискват рестартиране, което води до по-нататъшно фрагментиране.

За разлика от системните файлове, потребителските файлове и данни (и регистъра на Windows) непрекъснато се променят. Четенето, писането, модифицирането, копирането и изтриването на файлове значително увеличава фрагментацията, особено когато намалява свободното дисково пространство.

Основният проблем не е дори в това колко фрагментиран е твърдият диск като цяло, а в това колко фрагментирани са отделните файлове. От представянето на първите дефрагментатори на твърд диск с цветни диаграми, всеки потребител е мечтал, че представената диаграма е правоъгълник със същия цвят. Но това не е това, което потребителите наистина искат. Някои решения за дефрагментиране се опитват да направят твърдите дискове два монолитни блока: цветен блок (файлови данни) и бял блок (свободно дисково пространство). За съжаление, това е много жалко резултат, ако целта ви е да минимизирате честотата и разходите за дефрагментиране. Ако сте компресирали всички файлове, поставяйки ги в една част на диска, не оставяйки почти никакво свободно място там, когато редактирате файловете, промените ще бъдат запазени в края на данните на файла. Следователно, такава дефрагментация всъщност води до фрагментация следващия път, когато някой файл се редактира. Вместо два добре организирани блока на твърдия диск, добрата дефрагментация не винаги представлява идеалната картина. На фиг. 1 показва тестваната система преди дефрагментиране. Сега вижте фиг. 2, която показва същата система след дефрагментиране от Windows.


Фигура: 1 Твърд диск преди дефрагментиране

Фигура: 2 Твърд диск след дефрагментиране

Моля, обърнете внимание, че ОС Windows не фрагментира толкова много файлове на твърдия диск, колкото премахва фрагментацията на отделни файлове (вижте Фигура 3, раздел на отчета за фрагментация, който съдържа информация за най-фрагментираните файлове, преди твърдият диск да е бил фрагментиран).

твърдите дискове

Фигура: 3 Доклад за дефрагментиране

В този случай дори след дефрагментиране Windows няма да покаже компактен набор от файлови данни, групирани в една част на твърдия диск. Забележете големия зелен раздел с данни на фиг. 1 и 2. Това е суап файлът на Windows, за който ще кажа няколко думи. Ако сте активирали хибернация в Windows, тя ще бъде представена по същия начин по време на дефрагментирането.

Важно е да дефрагментирате редовно

Както при зъбната нишка, важно е да запомните, че най-важното е да я дефрагментирате редовно. Особено важно е редовното дефрагментиране на силно използвани системи като сървъри. Ако забавите дефрагментирането, процесът може да отнеме твърде дълго, което ще доведе до недостъпни сървъри или забавяне на тяхната производителност (дефрагментирането може да отнеме много време, а някои от етапите му включват интензивно използване на ресурсите на процесора).

Дори най-добрите мрежови дефрагментатори не могат да дефрагментират всичко. Например, те не винаги могат да дефрагментират отворени или заключени файлове (включително файла за пейджинг или файловете от системния регистър) и трябва да заобиколят хибернационния файл, ако той съществува (размерът му съвпада с количеството RAM на вашия компютър). В следващия раздел ще обсъдя трикове за дефрагментиране, които могат да ви помогнат да оптимизирате заключените файлове.

Мисля, че е важно да разберем митовете и фактите, свързани с дефрагментирането.

Дефрагментацията като компонент на инфраструктурата

Трябва сериозно да обмислите необходимостта от редовно дефрагментиране за всички компютри. Можете да използвате вградения дефрагментатор на Windows или да изберете решение на трета страна. По принцип изборът зависи от това колко допълнителна работа възнамерявате да направите. В Windows XP и по-нови версии на операционната система можете да добавите файла defrag.exe като планирана задача. Статията в базата знания support.microsoft.com/kb/555098 описва как да направите това. Дефрагментирането на лаптоп има редица функции. От една страна, най-добре е да дефрагментирате твърдия диск, докато лаптопът е включен (в идеалния случай, когато е включен). В същото време е нежелателно да се заемат ресурси на процесор или твърд диск, когато потребителят работи. За съжаление, ако потребителят не използва лаптоп, компютърът най-вероятно е изключен от мрежата и е в режим на готовност или хибернация (а управлението на захранването и задачите по график не са възможни). В Winternals (и вероятно всяка друга компания) прекарахме много време, опитвайки се да създадем идеалния сценарий за дефрагментиране за потребители на лаптопи. Ако използвате Windows Vista, решението може да е вграден дефрагментатор и планирани задачи с подобрени икономии на енергия в сравнение с предишните версии. Ако това не е достатъчно, ще трябва да използвате мобилни решения на трети страни. Някои от тези решения просто стартират операция по дефрагментиране, уведомяват потребителя, че операцията е извършена, докладват кога е извършена (и колко често се извършва) и колко време е отнело.

В допълнение към дефрагментирането на твърдите дискове на мобилни компютри, понякога проблемите с фрагментацията трябва да бъдат разгледани извън нивото на файловата система. Този проблем не възниква при настолни компютри или лаптопи, но може да се наложи дефрагментиране и на сървъри, Microsoft Exchange, SQL Server ™ или други хранилища за данни. В този случай трябва да решите дали да го извършите преди или след дефрагментирането на файловата система.

Ако използвате програма за дефрагментиране на трета страна, уверете се, че използва API за дефрагментиране на Windows. Започвайки с Windows NT 4.0, Windows използва свой собствен API за дефрагментиране, за да предотврати неочаквана загуба на данни. Например, ако в процеса на преместване на файл захранването на системата е изключено, не е приятно, че движението на фрагмента няма да бъде завършено и може да доведе до загуба на данни или дори невъзможност за зареждане на операционната система.

И накрая, ако използвате решения за виртуализация, въпросът е как да дефрагментирате виртуални дискове. Виртуалните дискове са склонни към фрагментация по същия начин като физическите твърди дискове и в известен смисъл това е дори по-лошо поради ограниченията им за капацитет. Освен това, ако вашето решение за виртуализация ви позволява да свивате дискове или дялове, може да се наложи първо да ги дефрагментирате, за да освободите дисково пространство (или поне да съкратите времето за операцията за свиване).

Допълнителни средства

Досега вероятно сте осъзнали важността и стойността на дефрагментирането. Дори да не използвате инструменти за дефрагментиране на трети страни, може да се интересувате от PageDefrag от Марк Русинович, който може да бъде изтеглен от уебсайта на Microsoft Sysinternals (вижте microsoft.com/technet/sysinternals/FileAndDisk/PageDefrag.mspx). Както бе отбелязано по-горе, страничният файл на Windows не може да бъде дефрагментиран, докато операционната система работи. Същият е случаят с файловете на системния регистър на Windows и дневниците на събитията. Използвайки малък драйвер, PageDefrag ви позволява да дефрагментирате тези заключени файлове, преди Windows да завърши зареждането и да ги заключи. За да използвате този драйвер, просто стартирайте инструмента PageDefrag и настройте инструмента да работи при следващото зареждане или при всяко зареждане. Когато рестартирате системата (на мястото, където преди това е била извършена проверката на диска), файловете, посочени в списъка, ще бъдат дефрагментирани (вижте фиг. 6).

администратор

Фигура: 6 Файлове, дефрагментирани с PageDefrag

В допълнение към PageDefrag, друг инструмент Contig може да бъде изтеглен от уеб сайта на Sysinternals, който ви позволява ръчно да дефрагментирате определен файл. Може да бъде полезно, ако стандартна операция по дефрагментиране не е успяла да дефрагментира определен файл или ако след дефрагментирането той отново стане фрагментиран, за разлика от останалите файлове на тома.

Contig може да се използва и за дефрагментиране на цяла директория или поддиректория с помощта на персонализирани шаблони. По този начин можете да дефрагментирате всички файлове в директорията на Windows, независимо от местоположението на файловете.

Contig –s c: \ Windows \ *. *

Дефрагментацията ще работи изрично, ако е избрано -v, докато -q ще работи във фонов режим.