Европейский Университет в Санкт-Петербурге
Опубликован: 10.10.2005 | Доступ: свободный | Студентов: 1716 / 298 | Оценка: 4.30 / 3.85 | Длительность: 16:22:00
ISBN: 978-5-94774-820-8
Лекция 5:

Файловая система: идеология и структура

Каталог /devices

Каталог /devices отражает аппаратную конфигурацию компьютера. Дерево его подкаталогов строится в соответствии с реальными подключениями устройств к шинам и контроллерам. Поэтому для компьютеров различных архитектур структура дерева подкаталогов /devices будет разной. Содержание этих подкаталогов будет разным для разных компьютеров, даже если они имеют одинаковую архитектуру, потому что компьютеры могут иметь разную конфигурацию: неодинаковое количество жестких дисков, различные контроллеры интерфейсов (SCSI, IDE), по-разному подсоединенные к ним диски. Например, для компьютера x86 дерево может быть таким:

./pseudo
./isa
./isa/fdc@1,3f0
./isa/i8042@1,60
./pci@0,0
./pci@0,0/pci8086,7191@1
./pci@0,0/pci-ide@2,1/ide@0
./pci@0,0/pci-ide@2,1/ide@1
./pci@0,0/pci-ide@2,1

Это пример дерева каталогов Solaris 9, установленного на ноутбук IBM ThinkPad 390X.

Полный список всех устройств компьютера, с которыми система Solaris готова работать, содержится в файле /etc/path_to_inst.

Файл /etc/path_to_inst содержит соответствия физических имен устройств и номеров экземпляров устройств (тех, что называются minor-номерами устройств). Чтобы эти соответствия сохранялись от загрузки к загрузке, система записывает их в файл /etc/path_to_inst. Этот файл во время загрузки доступен только для чтения, он может быть изменен с помощью программ add_drv(1M) и drvconfig(1M).

Обычно системному администратору незачем изменять этот файл. Для просмотра полного списка устройств следует использовать команду prtconf:

prtconf

Для просмотра списка устройств, фактически работающих в системе, используйте

prtconf | grep -v not

Это позволяет отфильтровать в выводе prtconf строки, содержащие слово "not", например, "device not attached". Более подробно об изменении аппаратной конфигурации и добавлении драйверов устройств говорится в "лекции 1" курса "Администрирование ОС Solaris".

Разбиение диска на разделы

Каждый диск состоит из нескольких разделов. Все разделы, кроме раздела для свопинга, имеют точки монтирования. Вся файловая система UNIX представляет собой единое дерево. К нему можно присоединять (монтировать) новые "ветви".

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


Рис. 5.3.

Для присоединения мы должны указать, в какое место существующей файловой системы (точку монтирования ) следует смонтировать новый раздел. После монтирования все каталоги нового раздела будут доступны в качестве подкаталогов точки монтирования. При этом истинная структура файловой системы оказывается прозрачной для пользователя. После того как раздел смонтирован, пользователь не отличит каталоги одного раздела от каталогов другого. Предположим, мы смонтировали раздел в каталог /usr :


Рис. 5.4.

Посмотреть, какие разделы в какие точки монтирования присоединены, можно командой mount:

mount
/ on /dev/dsk/c0d0s0
read/write/setuid/intr/largefiles/xattr/onerror=panic/dev=
   1980000 on Sat Jan 31 20:08:40 2004
/boot on /dev/dsk/c0d0p0:boot
   read/write/setuid/nohidden/nofoldcase/dev=19a3010
   on Sat Jan 31 20:08:38 2004
/proc on /proc read/write/setuid/dev=2d80000
   on Sat Jan 31 20:08:39 2004
/etc/mnttab on mnttab read/write/setuid/dev=2e40000
   on Sat Jan 31 20:08:39 2004
/dev/fd on fd read/write/setuid/dev=2e80000
   on Sat Jan 31 20:08:42 2004
/var/run on swap read/write/setuid/xattr/dev=1
   on Sat Jan 31 20:08:45 2004
/tmp on swap read/write/setuid/xattr/dev=2
   on Sat Jan 31 20:08:48 2004
/export/home on /dev/dsk/c0d0s7
read/write/setuid/intr/largefiles/xattr/onerror=panic/dev=
1980007 on Sat Jan 31 20:08:48 2004
/floppy/noname on /vol/dev/diskette0/noname
   read/write/setuid/nohidden/nofoldcase/dev=1740002
   on Sat Jan 31 21:34:36 2004

Обратите внимание на то, что если каталог является точкой монтирования, то он находится на отдельном разделе, а если нет - то он расположен на том же разделе, что и родительский каталог. Например, каталог /usr расположен на отдельном разделе, а каталог /etc - в том же разделе, что и каталог /.

Разбиение диска на разделы производится в двух случаях: при установке системы и при подключении нового диска. Разбиение на разделы следует спланировать так, чтобы в будущем размеры разделов были достаточны для установки программ и размещения файлов данных. В Solaris должны быть созданы как минимум два раздела: корневой (root) раздел, монтируемый в файловой системе в корень ее дерева и обозначаемый символом " / " (слэш), и раздел для свопинга. Последний не имеет точки монтирования, так как не принадлежит к файловой системе и не размечается, а используется для прямых чтения страниц с диска и записи страниц на диск.

Для более надежной и быстрой работы системы принято, кроме упомянутых разделов, создавать разделы с точками монтирования /usr, /export/home и, возможно /opt. Далее мы будем называть разделы по именам точек монтирования (например, раздел /usr).

В корневом каталоге системы располагается несколько файлов и ряд обязательных для работы системы подкаталогов. Это подкаталоги /bin, /sbin, /dev, /devices, /etc, /tmp. Кроме того, обычно есть подкаталоги /usr и /opt, а также /export, они обычно являются точками монтирования других разделов.

Корневой каталог в типичной установке Solaris (набор программ Entire Distribution - подробнее см. лекции 3 и 4) занимает 200 Мб (при условии, что каталоги /usr, /var и /export/home размещены в других разделах ). При установке системы ему следует выделить 300 Мб - с запасом. Каталог /usr займет не меньше 1400 Мб, /var - не менее 100 Мб. Для каталога /var имеет смысл выделить больше места, т.к. именно в нем будут содержаться быстро растущие в размере файлы протоколов, почтовые ящики пользователей и прочее. Приведенные объемы разделов справедливы для варианта установки с набором программ Entire Distribution.

Вообще говоря, перед планированием разделов следует подумать о том, как будет использоваться компьютер под управлением Solaris. Если это будет сервер Oracle, надо зарезервировать один неразмеченный (неотформатированный) раздел под базы данных Oracle. Если планируется сделать почтовый сервер, то следует отвести под раздел /var достаточно места для размещения всех почтовых ящиков в каталоге /var/mail, а если это будет файловый сервер, надо сделать отдельный большой раздел для хранения файлов пользователей (например, /export/home).

Таким образом, фактическое пространство, которое следует отвести под каталог /var, зависит от назначения компьютера. Исходя из собственного опыта, я всегда создаю для /var раздел размером как минимум 256 Мб в системах с небольшой нагрузкой (почтовый сервер, http-cache и ftp для сети из 10-50 компьютеров) и до 2-3 Гб в системах со средней нагрузкой (почтовый сервер, http-cache, СУБД типа MySQL, web-сервер с 5-10 виртуальными хостами в сети из 50-150 компьютеров).

При установке системы программа-установщик предложит вам разумные значения по умолчанию. Если специфика устанавливаемой системы требует изменений, можно нажать кнопку Modify в окне Lay Out File Systems и затем изменить размеры разделов там, где требуется. Окно Lay Out File Systems появляется ближе к концу работы установщика, после выбора типа установки. О типах установки (установка базового комплекта, установка полного комплекта ПО Solaris и т.п.) подробнее рассказано в лекциях 3 и 4.

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