Европейский Университет в Санкт-Петербурге
Опубликован: 04.07.2008 | Доступ: свободный | Студентов: 1321 / 264 | Оценка: 4.34 / 3.65 | Длительность: 21:13:00
Лекция 7:

Устройство и администрирование файловой системы UFS

< Лекция 6 || Лекция 7: 1234 || Лекция 8 >

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

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

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

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

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

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

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

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

Оценить текущее использование диска поможет программа 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    9736     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

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

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

< Лекция 6 || Лекция 7: 1234 || Лекция 8 >
Александр Тагильцев
Александр Тагильцев

Где проводится профессиональная переподготовка "Системное администрирование Windows"? Что-то я не совсем понял как проводится обучение.