Где проводится профессиональная переподготовка "Системное администрирование Windows"? Что-то я не совсем понял как проводится обучение. |
Устройство и администрирование файловой системы UFS
Фрагментация
Любая файловая система так или иначе ищет компромисс между бесконтрольной фрагментацией, как в системе FAT, и полным запретом на фрагментацию, как в файловой системе ОС RT-11. Одной из проблем FAT является необходимость регулярно дефрагментировать раздел, а в файловой системе RT-11 приходилось регулярно выполнять программу squeese, которая записывала друг за другом, последовательно, все файлы, разбросанные по диску. Фрагментация FAT приводила к снижению производительности ввода-вывода, а запрет на фрагментацию в RT-11 делал невозможным запись на диск большого файла, даже если на диске было полно участков с размером хоть чуть меньше его длины, так как файл должен был быть записан только в последовательно расположенные блоки.
В файловой системе UFS проблема фрагментации решается очень изящно. Фактически, фрагментация диска редко превышает 1-2% от его объема, что в мире Windows считается превосходным показателем.
Как удается достичь такого? Нужно ли что-то делать системному администратору, чтобы фрагментация не мешала производительности в UNIX?
Фактически, термин "фрагментация" в UNIX означает явление, совсем не похожее на фрагментацию в FAT. В UFS если на диск записывается файл размером меньше блока, ему выделяется фрагмент блока, но фактически "резервируется" целый блок, и файл, таким образом, имеет резерв для расширения до размера блока. Файлы размером больше блока записываются в свободные (по возможности, последовательные) блоки файловой системы. Однако размер файла не всегда кратен длине блока, поэтому последний из блоков, в которые записан файл, будет, скорее всего, заполнен не до конца. В этот блок в UFS можно записать фрагмент другого файла. В этом смысле "фрагментом" файла в UFS называется часть файла, меньшая по размеру, чем блок. Фрагменты одного файла не могут храниться в разных блоках. Это означает, что файл не может занимать более одного блока неполностью. Это иллюстрирует рис. 7.1.
Индексный дескриптор хранит достаточно информации для того, чтобы идентифицировать не только блок, но и номер фрагмента в блоке, когда речь идет о размещении файла на диске.
Фрагментации в том смысле, в котором она мучает пользователей Windows, в файловой системе UFS не бывает, так как драйвер файловой системы сам заботится о том, чтобы размещать файл, по возможности, в пределах одного цилиндра.
Как много фрагментов (в понимании UFS) на разделе, можно выяснить, дав команду fsck –n.
Для уменьшения числа фрагментов (в понимании FAT), т.е. частей файла, записанных на разделе в разных цилиндрах вдали друг от друга, для записи файла в последовательные блоки следует воспользоваться коммерческими программами дефрагментации (см., например, http://www.eaglesoft.com/products.html – только для платформы SPARC) или выполнить резервное копирование всех файлов раздела и обратное их восстановление посредством программ ufsdump / ufsrestore.
Изменение размеров раздела
Для изменения размеров раздела UFS можно воспользоваться программой growfs. Кроме этого, если изменить размер раздела по какой-либо причине не представляется возможным, следует установить новый диск и перенести часть информации на него, возможно, создав соответствующие символические ссылки на переполненном разделе. Подробнее об изменении размеров разделов дисков и повышении их производительности рассказано в лекции 8 курса "Системное администрирование ОС Solaris 10".
Проверка файловых систем
Аналогом широко известной из систем Windows программы scandisk в UNIX является программа fsck. В Solaris fsck по умолчанию проверяет все фаловые системы, перечисленные в /etc/vfstab. Обычно имеет смысл запускать fsck вручную с указанием конкретной файловой системы:
fsck /dev/dsk/c0d0s7
Программа fsck проверяет файловую систему и, если находит ошибки, исправляет их. Найдя ошибки, об исправлении которых она не может принять самостоятельное решение, fsck выдает сообщение об этом на терминал, с которого ее запустили, и ждет решения администратора.
Если в настоящий момент файловая система смонтирована, fsck не начинает проверку такой файловой системы. Это правило можно обойти, если потребовать от fsck обращаться к диску как к символьному устройству, а не как к блочному:
fsck /dev/dsk/c0d0s7 /dev/dsk/c0d0s7 is a mounted file system, ignored fsck /dev/rdsk/c0d0s7 ** /dev/rdsk/c0d0s7 ** Currently Mounted on /export/home ** Phase 1 - Check Blocks and Sizes ** Phase 2 - Check Pathnames ** Phase 3 - Check Connectivity ** Phase 4 - Check Reference Counts ** Phase 5 - Check Cyl groups 2 files, 9 used, 3823540 free (20 frags, 477940 blocks, 0.0% fragmentation)