Смекни!
smekni.com

Руководство Системного администратора Linux (стр. 5 из 20)

нового диска или его настройке следует обращаться к этой главе.

При администрировании дисков могут возникнуть следующие

проблемы:

Форматирование диска (в настоящее время форматирование

является необязательной процедурой для многих типов дисков).

Разделение диска, если диск будет использоваться для разных

целей. Одна из причин разделения - это хранение разных

операционных систем на одном диске. Другая причина - хранение

пользовательских и системных файлов в pазных pазделах, что

упрощает резервное копирование и восстановление, а также защиту

системных файлов от повреждений.

Создание файловой системы на соответствующем диске или

разделе. В системе Linux диск ничего не значит, пока на нем не

установлена файловая система. Только после этого возможна работа с

файлами.

Монтирование различных файловых систем для формирования

единой структуры каталогов, как автоматически так и вручную

(файловые системы, монтируемые вручную, должны быть вpучную

демонтированы).


- 26 -

В главе 6 рассматриваются вопросы буфеpизации дисков и работы

с виртуальной памятью, что также нужно знать при работе с дисками.

В этой главе рассматриваются вопросы, которые необходимо

знать при работе с жесткими и гибкими дисками. К сожалению здесь

не рассматривается использование ленточных накопителей и приводов

для компакт дисков.

4.1 Типы устройств

В системе UNIX, а следовательно и Linux, существует два типа

устройств: блочные устройства с прямым доступом (такие как диски)

и символьные устройства (такие как ленточные накопители и

последовательные порты), некоторые из них могут быть

последовательными, а некоторые - с прямым доступом. Каждое

поддерживаемое устройство представляется в файловой системе файлом

устройства. При выполнении операций чтения или записи с подобным

файлом, происходит обмен данными между устройством, на которое

указывает этот файл. Такой способ доступа к устройствам позволяет

не использовать специальные программы (а также специальные методы

програмирования, такие как работа с прерываниями). Например, для

распечатки файла на принтере, используется следующая команда:

ttyp5 root ~ $ cat filename > /dev/lp1

ttyp5 root ~ $

Однако, для распечатки файлов используется специальная

программа (обычно lpr(1)), которая контролирует поток поступающих

файлов во избежание возникновения конфликтных ситуаций, например,

при попытке распечатать на одном принтере одновpеменно несколько

разных файлов. По мере распечатки, новые файлы поступают

автоматически. По подобной схеме работает большинство устройств.

Однако с файлами устройств проблемы возникают очень редко.

Так как устройства отображаются как файлы в файловой системе

(в каталоге /dev), несложно обнаружить с помощью команды ls(1)

какие существуют файлы устройств. После выполнения команды ls -l


- 27 -

на экран выводится список файлов, причем в первой колонке

содержится тип файла и права доступа к нему. Например, для

просмотра файла, соответствующего последовательному порту,

используется следующая команда:

ttyp5 root ~ $ ls -l /dev/cua0

crw-rw-rw- 1 root uucp 5, 64 Nov 30 1993 /dev/cua0

ttyp5 root ~ $

Первый символ в первой колонке, т.е. 'c', показывает тип

файла, в данном случае символьное устройство. Для обычных файлов

используется символ '-', для каталогов - 'd', для блочных

устройств - 'b' (см. pуководство к команде ls(1) для более

подробной информации).

Наличие большого количества файлов устройств совсем не

означает, что эти устройства на самом деле установлены. Наличие

файла /dev/sda ни о чем не говорит и совсем не означает, что в

компьютере установлен жесткий диск SCSI. Это предусмотрено для

облегчения установки программ и нового оборудования (нет

необходимости искать нужные параметры и создавать файлы для новых

устройств).

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

В этом разделе рассматриваются термины, связанные с

использованием жестких дисков.

Жесткий диск состоит из одной или нескольких круглых пластин,

одна или обе стороны которой покрыты магнитным материалом,

используемым для хранения информации. Для каждой стороны

предусмотрена головка, позволяющая считывать или записывать

информацию. Пластины вращаются на одной оси обычно со скоростью

3600 оборотов в минуту, хотя в более быстрых пpиводах используются

более высокие скорости. Головки перемещаются вдоль радиуса

поверхности пластин, что позволяет получить доступ к любой точке

поверхности.


- 28 -

Центральный процессор (CPU) и жесткий диск обмениваются

информацией через дисковый контроллер. Это упрощает схему

обращения и работы с диском, так как контроллеры для разных типов

дисков могут быть построены с использованием одного интерфейса для

связи с компьютером. Поэтому, например, для считывания сектора

можно воспользоваться всего лишь одной командой вместо сложных

последовательностей электрических сигналов для того, чтобы

переместить головки к нужной позиции, синхронизировать вращение

диска и считывание или запись данных и др. (на самом деле,

интерфейс между компьютером и контроллером тоже достаточно сложен,

но не на столько, на сколько он был бы без использования

контроллера). Котроллер также выполняет и некоторые другие

функции, такие как буфеpизация информации или автоматическая

замена плохих секторов.

Существуют еще некоторые понятия, знание которых необходимо

для понимания работы жесткого диска. Обычно поверхности делятся на

концентрические кольца, называемые дорожками или трэками, которые,

в свою очередь, делятся на сектора. Такое разделение нужно для

указания нужных позиций на диске и для распределения дискового

пространства на файлы. Для нахождения нужной информации на диске

достаточно примерно следующих данных: "поверхность 3, дорожка 5,

сектор 7". Обычно количество секторов на дорожке одинаково для

всех дорожек на диске, хотя в некоторых устройствах на внешних

трэках размещается большее количество секторов (все сектора имеют

один и тот же физический размер, поэтому на более длинных дорожках

помещается больше секторов). Стандартный размер сектора равен 512

байт. Диск не может оперировать данными, объем которых менее

одного сектора.

Каждая поверхность разделена на дорожки (и сектора) таким

образом, что при перемещении головки одной поверхности к

какой-либо дорожке, головки остальных поверхностей будут

установлены на этой же дорожке. Совокупность всех таких дорожек

называется цилиндром. Для перемещения головок от одной дорожки

(цилиндра) к другой требуется какое-то количество времени. Таким

образом, если разместить данные, доступ к которым чаще всего

производится сразу (например, файл), в одном цилиндре, то


- 29 -

необходимость в перемещении головок отпадает. Это повышает

производительность работы диска. Не всегда представляется

возможным разместить файл подобным образом. Файлы, которые

хранятся в разных местах на диске, называются фрагментированными.

Количество поверхностей (или головок, что в принципе одно и

то же), цилиндров и секторов сильно различается у разных

устройств. Совокупность таких параметров называется структурой

диска, которая хранится в специальной памяти, для питания которой

используются аккумуляторы. Эта память называется CMOS RAM, откуда

операционная система может считывать информацию во время ее

загрузки или во время установки драйвера.

К сожалению, BIOS построен так, что не представляется

возможным указать дорожку, номер которой превышает 1024, для

записи в CMOS RAM, что является серьезным ограничением для дисков

больших объемов. Для решения этой проблемы контроллер жесткого

диска передает заведомо неправильную информацию о структуре диска

и преобразует данные, представляемые компьютером, в нечто,

соответсвующее реальности. Например, жесткий диск может состоять

из 8 головок, 2048 дорожек с 35 секторами в каждой. В то время как

контроллер может утверждать, что диск имеет 16 головок и 1024

дорожки с 35 секторами в каждой, не превышая предела на хранение в

CMOS RAM числа дорожек и преобразуя адресацию уменьшая номер

головки вдвое и удваивая номер дорожки. Преобразование адресов

искажает представление операционной системы о структуре диска, что

усложняет размещение требуемой информации на одном цилиндре для

увеличения производительности.

Преобразование используется только для IDE дисков. В SCSI

дисках используется доступ с применением последовательного номера

сектора (который контроллер преобразует в номер головки, цилиндра

и сектора диска) и другой метод обмена информацией с процессором.

Однако, процессор может не иметь представления о реальной

структуры диска.

Так как системе Linux часто не известна информация о

структуре диска, то в файловых системах не используется размещение


- 30 -

отдельных файлов в пределах одного цилиндра. Вместо этого

применяется размещение файлов в цепочках последовательно

расположенных секторов, что дает приблизительно одинаковую

производительность. Хотя проблема усложняется за счет

использования специальных возможностей контроллера, таких как

внутреннее кэширование и других автоматических функций.

Каждый жесткий диск представлен отдельным файлом. Для IDE

дисков обычно существует только два таких файла. Они известны как

/dev/hda и /dev/hdb соответственно. Для SCSI дисков используются

файлы /dev/sda и /dev/sdb и т.д. Подобные обозначения применяются

и для других типов дисков. Файлы устройств для жестких дисков

предоставляют доступ к целому диску, не рассматривая разделы