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

Файловая система: разделы, файлы и каталоги

< Лекция 5 || Лекция 6: 123456 || Лекция 7 >
Аннотация: Лекция рассказывает о свойствах файлов, каталогов, о деталях работы с ними и соглашениях об именах файлов, а также о правах доступа к файлам и каталогам. Эта информация важна всем, в особенности полезны могут быть сведения о механизме управления доступом к файлам с помощью списков управления доступом (ACL).

Оптимизация размеров разделов

Вопрос об оптимизации дисковой подсистемы обычно встает как неизбежный результат отсутствия детального планирования системы в целом. Поэтому первым правилом, которое следует соблюдать системному администратору, желающему видеть свою систему быстрой и надежной, будет "планируй все заранее".

Когда требуется установить новый сервер Solaris, стоит подумать, чем этот сервер будет занят. В современном мире задачи компьютеров меняются быстрее, чем оборудование. Если пять лет назад почтовый сервер, обслуживающий сто пользователей, мог работать на медленном компьютере с диском 1 Гбайт, то нынче с почтой связано намного больше задач, чем просто прием, передача и хранение. Современный почтовый сервер для тех же ста пользователей принимает почту, проверяет ее на вирусы, блокирует спам, возможно, выполняет контекстный анализ письма для фильтрации спама и только после этого сохраняет его на диске. Объемы передаваемой почты тоже существенно возросли. Письма часто отправляются в формате HTML, а многие адресаты вкладывают в письма не только текстовые документы, но и фотографии, музыкальные файлы и видеоклипы. Поэтому, планируя свой новый почтовый сервер с запасом, вы не ошибетесь. Сейчас средний пользователь хранит в своем почтовом ящике несколько сотен мегабайт информации, следует ожидать, что в ближайшее время придется оценивать возможную нагрузку на файловую систему почтового сервера исходя из 5-10 Гбайт на каждого пользователя. Это не относится к серверам, которые только передают почту, но не хранят почтовые ящики пользователей.

Для передачи и приема нескольких писем в секунду придется установить новый компьютер с процессором Pentium IV, если на сервере будет запущена программа контекстного анализа писем для фильтрации спама (например, spamasassin ). Объем памяти, естественно, тоже должен быть достаточным для одновременного запуска десятков копий программы sendmail или ее аналога.

Из этого видно, что характер работы сервера надо планировать еще до начала его установки. Во время установки следует задать верные размеры файловых систем. Это избавит вас от необходимости модифицировать их размеры в дальнейшем.

В Solaris размер корневой файловой системы / вполне может быть менее 3 Гбайт. Даже с учетом возможного обновления системы этого достаточно. Но файловая система /usr, куда будут устанавливаться все новые пакеты, должна быть спланирована с запасом. Если работа сервера будет связана с большой дисковой нагрузкой (кэширование http-запросов, хранение файлов или почты), то для этих специфических целей (например, кэш http-запросов) можно выделить отдельный раздел и назначить ему такой размер, который соответствует вашим потребностям.

Надо будет учесть такие факторы, как возможный рост потребностей, требуемая производительность (для подсистем SCSI лучше установить шесть дисков по 9 Гбайт, чем один размером 54 Гбайт, - так будет быстрее) и не забыть учесть "запас", который создает система на каждом разделе1См. "минимальное свободное пространство ". .

Как узнать, сколько места осталось на диске?

Оценить, как в текущий момент используется диск, поможет программа df:

df
/            (/dev/dsk/c0d0s0):      1787406 blocks 419477 files
/boot        (/dev/dsk/c0d0p0:boot): 19452 blocks   -1 files
/proc        (/proc               ): 0 blocks       2896 files
/etc/mnttab  (mnttab              ): 0 blocks       0 files
/dev/fd      (fd                  ): 0 blocks       0 files
/var/run     (swap                ): 1265832 blocks 30240 files
/tmp         (swap                ): 1265832 blocks 30240 files
/export/home (/dev/dsk/c0d0s7     ): 7647080 blocks 481212 files

Чтобы получить более удобную картину, в которой размер занятых блоков приводится в килобайтах, следует дать команду df -k:

df -k
Filesystem           kbytes  used   avail   capacity Mounted on
/dev/dsk/c0d0s0      1857844 964142 837967  54%      /
/dev/dsk/c0d0p0:boot 11234   1508   9726    14%      /boot
/proc                0       0      0       0%       /proc
Mnttab               0       0      0       0%       /etc/mnttab
Fd                   0       0      0       0%       /dev/fd
Swap                 632924  20     632904  1%       /var/run
Swap                 633208  304    632904  1%       /tmp
/dev/dsk/c0d0s7      3823549 9      3785305 1%       /export/home

Команда

df -o i

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

df -i

Для оценки размеров подкаталогов любого каталога используйте du. Например, для определения того, сколько места на дисках занимают подкаталоги корневого каталога, дайте команду du -s /*:

du -s /*
2       /bin
3011    /boot
87255   /cdrom
1424    /core
3068    /dev
76      /devices
6262    /etc
26      /export
6       /floppy
4       /format.log
1       /home
20702   /kernel
2       /lib
16      /lost+found
2       /Mail
2       /mnt
1       /net
2       /nsmail
14      /opt
3822    /platform
730131  /proc
50      /qq
2       /qqqq
34154   /sbin
640     /tmp
46      /TT_DB
1811752 /usr
46138   /var
0       /vol
19      /xfn

В этой команде ключ -s указывает, что следует выдать суммарные значения по всем подкаталогам, а аргумент /* требует, чтобы была посчитана статистика по всем подкаталогам и файлам корневого каталога. Без указания ключа -s программа du сообщит о том, сколько места занимает каждый из "листьев" дерева каталогов, т.е. выдаст длинный и подробный список всех подкаталогов вообще, включая подкаталоги подкаталогов подкаталогов...

Минимальное свободное пространство

При создании файловой системы часть раздела диска резервируется на всякий случай. Эта доля задается параметром minfree (параметр free при запуске программы mkfs ) и по умолчанию составляет 10% общего объема файловой системы. Ко "всяким случаям" относят переполнение диска, т.е. превышение выделенного лимита пространства размещенными на разделе файлами, необходимость срочно найти свободный дисковый блок, когда диск почти заполнен, и тому подобное. В современных системах, когда файловые системы размером в сотни гигабайт - явление обычное, 10% свободного объема составляет значительный объем дискового пространства.

Чтобы уменьшить такие колоссальные издержки, значение minfree достаточно установить равным 1%. Кстати, при установке Solaris 9 на мой ноутбук ThinkPad 390X с диском размером 4 Гбайт, по умолчанию файловая система была создана именно с таким minfree. Несмотря на это, документация на mkfs_ufs утверждала, что 10% является значением по умолчанию. При создании файловой системы минимальное свободное пространство можно задать так:

mkfs_ufs -o free=1

или так:

newfs -m 1

Изменить параметры файловой системы UNIX можно с помощью программы tunefs.

После того как на диске осталось свободного пространства менее, чем указано в minfree, запись на диск сможет выполнить только root.

< Лекция 5 || Лекция 6: 123456 || Лекция 7 >