Файловую систему можно определить как:
· метод хранения данных;
· иерархию директорий.
AIX поддерживает три типа файловых систем:
· jfs Журнальная файловая система
· cdrfs Файловая система CD-ROM на компакт-дисках
· nfs Сетевая файловая система
Не смотря на то, что эти файловые системы физически различаются, для пользователей и приложений этих различий не видно.
· Их можно разместить в определенном
месте на диске (из соображений
производительности).
· Некоторые задачи, например, архивирование,
перемещение, обеспечение безопасности
более эффективно осуществлять с файловой
системой, а не с директориями.
· Можно определять ограничения на
использование дискового пространства
пользователями посредством квот.
· Поддержка целостности полноты структуры
файловой системы, например, если одна из
файловых систем повреждена другие будут не
затронуты.
· Специальные требования безопасности.
· Организация данных и программ в группы
для упрощения управления файлами и лучшей
производительности.
После первой установки AIX существует только пять журнальных файловых систем:
· / (root) = /dev/hd4 Вершина иерархии файлового
дерева. Содержит файлы и директории,
критичные для системного выполнения,
включая директорию устройств и программ,
завершающих процесс загрузки
· /usr = /dev/hd2 Команды операционной системы,
библиотеки и программы приложений. Эта
файловая система должна быть определена
как доступная по сети.
· /var = /dev/hd9var Место размещения различных
файлов подкачки и аудита.
· /home = /dev/hd1 Домашние директории
пользователей. Традиционное место
размещения пользовательских файлов данных.
· /tmp = /dev/hd3 Пространство используемое всеми
пользователями для сохранения временных
файлов и рабочего пространства.
Целесообразно часто очищать.
Файл /etc/filesystems документирует характеристики компоновки или атрибуты файловых систем. Этот файл организован в виде станз (stanza). Каждое имя станзы в этом файле относится к файловой системе, которая нормально смонтирована.
Атрибуты файловой системы описывают следующие её параметры:
· check используется командой fsck для
определения файловых систем проверяемых по
умолчанию. Значение True разрещает проверку.
· dev Для локальных точек монтирования
идентифицирует или специальный блочный
файл, где файловая система постоянно
находится, или файл или директорию, в
которую будет установлена файловая система.
· mount используется командой mount для
определения точки монтирования файловой
системы по умолчанию. Возможные значения:
· automatic файловая система монтируется автоматически при старте системы
· true файловая система монтируется при команде mount all.
· false файловая система не монтируется автоматически
· type используется для группировки
вместе связанных файловых систем, которые
могут весь быть установленны командой mount -t.
· vfs описывает тип монтирования (например,
nfs)
· vol используется командой mkfs для
установки ярлыка (label) новой файловой
системы.
· log устройство на которое будут
записываться данные об модификации данной
файловой системы (опция работает только с JFS).
Для того чтобы пользователи смогли получить доступ к данным, содержащимся в файловой системе, её необходимо смонтировать. Монтированием файловой системы является её логическое подключение к иерархии директорий.
Пользователь работает именно с иерархией директорий и может иногда определить, что он подключен к другой файловой системе, только на основании косвенных признаков (например при переходе в сетевую файловую систему nfs может быть заметно замедление скорости доступа к данным). Во всех остальных случаях различные смонтированные файловые системы "прозрачны" для пользователей.
Когда SMIT создает файловую систему, точка монтирования создаётся автоматически.
Файловые системы, ассоциированные с устройствами, представлены в специальном файле в логическом томе /dev. При монтировании файловой системы к пустой директории её структура директорий и файлы просто становятся частью иерархического дерева директорий.
При монтировании файловой системы к директории, которая содержит другие директории и файлы, они становятся недоступными для пользователей и доступ к ним можно организовать, только размонтировав подсоединённую к этой директории файловую систему.
Пользователи могут монтировать файловые системы, если они принадлежат к группе system и имеют право записи в точке монтирования.
Пользователь root может монтировать файловые системы в любое необходимое место с установкой любых ограничений.
Журнальная файловая система AIX размещается на логическом томе, который разделен на кластеры размером по 4Кбайта. В тоже время, для совместимости с другими системами UNIX, файловая система может быть поделена на блоки кратные 512 байт.
Первый адресуемый блок (кластер) файловой системы называется суперблоком и содержит в себе информацию, которая идентифицирует соответствующую файловую систему (например, её наименование, размер, количество inodes (определяют максимальное количество файлов в файловой системе), дату и время создания) и пустой список, используемый позднее.
Суперблок очень важен и файловая система при его повреждении не может быть смонтирована. Поэтому существует второй резервный суперблок, который размещается в 31 блоке.
За суперблоком идёт определенное количество так называемых inodes, которые содержат идентификационную информацию для файлов (например, тип, размер, разрешения, идентификационные номера (ID) пользователя/группы владельца, дату и время создания/изменения/последнего доступа). Они также содержат ссылки на блоки данных, в которых размещается информация файлов.
Примечание: inodes не содержат имен файлов, которые размещаются в специальных файлах, называемых директориями.
Как ранее упоминалось, минимальным размером кластера логического тома является размер 4Кбайта. Для примера, при размещении файла размером 2Кбайта остаётся неиспользуемыми тоже 2Кбайта. При наличии большого количества маленьких файлов такая ситуация ведёт к неэкономному использованию дискового пространства.
Для решения этой проблемы может применяться фрагментация диска на более мелкие структурные единицы - фрагменты (размером по 512, 1024, 2048 и 4096 байт). Размер фрагментов определяется только при создании файловой системы.
Журнальная файловая система AIX поддерживает компрессию информации. Компрессия позволяет значительно увеличить размер доступного дискового пространства (приблизительно в 2 раза), правда, за счёт снижения производительности.
Компрессированная информация должна размещаться на непрерывно следующих логических блоках и поэтому перед компрессией обязательно необходимо произвести дефрагментацию дискового пространства.
Внимание: файловая система root должна быть обязательно некомпрессированной.
При работе с журнальной файловой системой все операции с данными в файлах проводятся как транзакции (групповые операции).
Типовая транзакция содержит в себе следующие операции:
1. При записи информации в файл данные
сначала размещаются в оперативной памяти.
2. Каждую минуту выполняется системный
вызов sync, который записывает данные в
информационные блоки на диске. При этом
данные об необходимых изменениях в inodes
записываются в специальный файл jfslog (/dev/hd8)
размером 4МБ. Этот файл является журналом
транзакций журнальной файловой системы.
Обновление информации в нём происходит
циклически. Такой файл имеется для каждой
группы томов.
3. Только после удачной записи всех
информационных блоков происходит операция
подтверждения COMMIT, о которой также
производится запись в jfslog и только после
этого происходит обновление в inodes.
4. Завершает транзакцию системный вызов sync.
Логично, что ведение журнала делает журнальные файловые системы очень устойчивыми ко всяким сбоям.
Вы можете просмотреть список определенных в системе файловых систем используя команду lsfs. Эта команда показывает информацию из файла /etc/filesystems и из логических томов.
Команда lsfs также показывает информацию о сетвеых файловых системах (NFS) и файловых системах CD-ROM.
# lsfs
Name | Nodename | Mount Pt | VFS | Size | Options | Auto |
/dev/hd4 | - | / | jfs | 8192 | - | yes |
/dev/hd1 | - | /home | jfs | 90112 | - | yes |
/dev/hd2 | - | /usr | jfs | 507904 | - | yes |
/dev/hd9var | - | /var | jfs | 8192 | - | yes |
/dev/hd3 | - | /tmp | jfs | 16384 | - | yes |
/dev/cd0 | - | /infocd | cdrfs | ro | yes | |
/dev/lv00 | - | /home/john | jfs | 8192 | rw | yes |
Синтаксис команды lsfs следующий:
lsfs [-q][-c|-l][-v vfstype|-u mountgrp] file_system
где, опция -q
используется если вам нужен вывод
информации о размере фрагмента, алгоритме
компрессии и количества выделенных байт на
inode;
опции -c или -l нужны для указания
того, выводить ли информацию в формате
колонок или станз, соответственно;
опции -v
или -u используются для указания
необходимости вывода информации только об
определенных файловых системах (в
зависимости от типа или точки монтирования,
соответственно).
Указание в команде lsfs имени определенной файловой системы выведет информацию только о требуемой файловой системе. Для получения этой же информации вы можете использовать команду smit fs.
Команда mount используемая без параметров выводит список всех смонтрованных в текущий момент файловых систем.
# mount
node | mounted | mounted over | vfs | date | options |
/dev/hd4 | / | jfs | Jul 11 20:14 | rw,log=/dev/hd8 | |
/dev/hd2 | /usr | jfs | Jul 11 20:15 | rw,log=/dev/hd8 | |
/dev/hd9var | /var | jfs | Jul 11 20:15 | rw,log=/dev/hd8 | |
/dev/hd3 | /tmp | jfs | Jul 11 20:15 | rw,log=/dev/hd8 | |
/dev/hd1 | /home | jfs | Jul 11 20:16 | rw,log=/dev/hd8 | |
/dev/lv00 | /home/john | jfs | Jul 11 20:16 | rw,log=/dev/hd8 |
С помощью SMIT можно получить эту информацию выбрав:
SMIT -> File System -> List all Mounted File Systems
Для создания файловой системы на предварительно определенном логическом томе рекомендуется использовать инструмент SMIT, который даёт высокий уровень контроля за указанием всех необходимых параметров и позволяет избежать ошибок при создании файловой системы.
Этот процесс форматирует логический том для использования файловой системой.
# smit crjfslv
Add a File System on a Previously Defined Logical Volume
Type or select values in entry fields.
Press Enter AFTER making all desired changes.
[Entry Fields]
* LOGICAL VOLUME name
* MOUNT POINT
[]
+
Mount AUTOMATICALLY at system
restart no
+
PERMISSIONS
read/write
+
Mount OPTIONS
[]
+
Start Disk Accounting?
no
+
Fragment Size (bytes) 4096
+
Number of bytes per inode
4096
+
Compression algorithm
no
+
F1=Help
F2=Refresh
F3=Cancel
F4=List
F5=Reset
F6=Command
F7=Edit
F8=Image
F9=Shell
F10=Exit
Enter=Do
# smit crjfs
Add a Journaled File System
Type or select values in entry fields.
Press Enter AFTER making all desired changes.
[Entry Fields]
Volume group name
rootvg
* SIZE of file system (in 512-byte blocks)
[]
#
* MOUNT POINT
[]
Mount AUTOMATICALLY at system restart
no
+
PERMISSIONS
read/write
+
Mount OPTIONS
[]
+
Start Disk Accounting?
no
+
Fragment Size (bytes) 4096
Number of bytes per inode
4096
Compression algorithm
no
F1=Help
F2=Refresh
F3=Cancel
F4=List
F5=Reset
F6=Command
F7=Edit
F8=Image
F9=Shell
F10=Exit
Enter=Do
Для создания журнальной файловой системы, кроме SMIT, вы можете воспользоваться высокоуровневой командой crfs с указанием необходимых параметров.
Не путайте команду crfs с командой mkfs. В отличие от команды mkfs, команда crfs создаёт, если это необходимо, логический том используя команду mklv, затем строит на нём структуру файловой системы, используя команду mkfs и производит все необходимые изменения в базе ODM и файле /etc/filesytems для соответствующих логического тома и файловой системы.
При создании журнальной файловой системы с помощью команды crfs вы должны будете указать:
-g volgrp - имя группы томов, на которой
будет создан логический том. Конечно, эта
группа томов должна иметь необходимое
свободное пространство для создания нового
логического тома;
-a size=SIZE - размер файловой системы в 512-ти
байтовых блоках;
-m mntpt - точка монтирования файловой
системы (имя директории в существующей
файловой системе). В основном точка
монтирования не указывается;
-a yes|no - указание необходимости
автомонтирования новой файловой системы
при перезапуске системы. При указанной
точке монтирования по умолчанию (см. выше)
файловая система может быть помечена как
автомонтируемая. Об этом делается запись
mount=true в станзе файловой системы файла /etc/filesystems.
-p rw|ro - режим доступа. Все файловые
системы могут быть смонтированы с режимом
доступа чтение/запись (rw) или только для
чтения (ro). Дополнительным выбором для
монтирования файловой системы (Mount Options)
может быть указание на запрещение
выполнения setuid и setgid программ (выбор nosuid)
или запрещение открывать системные вызовы
устройств с файловых систем с этой точкой
монтирования (выбор nodev).
-a fragment=size - указание размера фрагмента
журнальной файловой системы в байтах.
Размер фрагмента может принимать значения
512, 1024, 2048 или 4096. Значение по умолчанию - 4096
байт.
-a nbpl=value - указание количества байт на
один inode. Влияет на общее количество inodes в
файловой системе. Этот параметр может иметь
значения 512, 1024, 2048, 4096, 8192 или 16384. Значение по
умолчанию - 4096 байт.
-a compress={no|LZ} - указание алгоритма
компрессии для файловой системы. Значение
по умолчанию - no.
# smit mountfs
Mount a File System
Type or select values in entry fields.
Press Enter AFTER making all desired changes.
[Entry Fields]
FILE SYSTEM name
[]
DIRECTORY over which to mount
[]
TYPE of file system
FORCE the mount?
no
REMOTE NODE containing the file system
to mount
[]
Mount as a REMOVABLE file system?
no
Mount as a READ-ONLY system?
no
Disallow DEVICE access via this mount?
no
Disallow execution of SUID and sgid programs
in this file system?
no
F1=Help
F2=Refresh
F3=Cancel
F4=List
F5=Reset
F6=Command
F7=Edit
F8=Image
F9=Shell
F10=Exit
Enter=Do
Обычные пользователи могут монтировать файловые системы, если они являются членами группы system и имеют права доступа на запись в точке монтирования.
Системные администраторы для монтирования файловых систем также должны иметь права доступа на запись в точке монтирования, но при этом точки монтирования должны быть определены в файле /etc/filesystems.
Пользователь root может монтировать файловые системы в любом месте иерархии директорий в независимости от установленных прав доступа.
Change/Show Characteristics of a Journaled File System
Type or select values in entry fields.
Press Enter AFTER making all desired changes.
[Entry Fields]
File system name
/home
NEW mount point
[/home]
SIZE of file system (in 512-byte blocks)[8192]
Mount GROUP
[]
Mount AUTOMATICALLY at system restart
yes
+
PERMISSIONS
read/write
+
Mount OPTIONS
[]
+
Fragment Size (bytes) 4096
Number of bytes per inode
4096
Compression algorithm
no
F1=Help
F2=Refresh
F3=Cancel
F4=List
F5=Reset
F6=Command
F7=Edit
F8=Image
F9=Shell
F10=Exit
Enter=Do
Размер журнальной файловой системы может быть увеличен в любое время (при этом автоматически увеличивается размер логического тома). Только такую операцию нельзя делать для уменьшения её размера.
При необходимости уменьшить размер файловой системы лучшим выходом является создание новой файловой системы нужного размера с удалением старой.
Для удаления журнальной файловой системы, кроме средств SMIT, вы можете воспользоваться высокоуровневой командой rmfs. Эта команда, наряду с удалением самой файловой системы, удаляет всю информацию о ней из базы данных ODM и файла /etc/filesystems. Когда удаляется файловая система, то также удаляется и логический том, на котором она находилась.
Задачи администратора по управлению дисковым пространством файловых систем следующие:
· слежение за ростом файловых систем;
· обнаружение проблем;
· контроль над быстрорастущими файлами;
· контроль над использованием дискового
пространства пользователями;
· при необходимости дефрагментация и
компрессия файловых систем.
Не смотря на то, что в четвертой версии AIX существует динамическое увеличение размера файловых систем, такое увеличение не происходит автоматически. Системный администратор должен постоянно отслеживать использование дискового пространства файловой системы и увеличивать её размер, когда она будет полностью заполнена.
Для просмотра информации об общем и используемом дисковом пространстве используется команда df. Для показа размера дискового пространства в килобайтах эту команду необходимо запускать с ключом -k.
Быстрорастущие системные файлы должны быть постоянно под контролем и с целью экономии дискового пространства периодически очищаться.
Прежде всего, необходимо контролировать следующие файлы:
· /var/adm/wtmp
· /var/spool/*.*
· /smit.log
· /smit.script
· /etc/security/failedlogin
· /var/adm/sulog
Файлы /var/adm/wtmp и /var/adm/failedlogin читаются командой who -a имя_файла. Остальные файлы редактируются с помощью любого текстового редактора.
Система квот (ограничений) дискового пространства базируется на Berkeley Disk Quota System и позволяет администратору контролировать количество файлов и блоков данных пользователей или их групп.
Эта система используется в следующих случаях:
· ограниченное дисковое пространство в системе;
· файловая система требует повышенной безопасности;
· при высоком использовании файловой системы (например, в университете).
Пределы квот устанавливаются тремя параметрами:
Soft limits - определяет количество блоков по 1KB или файлов, на которое пользователь может превысить на определенный период (grace period).
Hard limits - максимальное количество блоков по 1KB или файлов, которое пользователь не может превысить
Grace period - время на которое пользователь может превысить отпущенное ему по soft limits дисковое пространство или количество файлов. По умолчанию - 7 дней.
Внимание: Для запуска всех команд, связанных с установкой и управлением квотами необходимо иметь полномочия пользователя root. Остальные пользователи могут только просмотреть личные квоты с помощью команды quota запускаемой в командной строке.
1 шаг - Включение режима квот Для указания того, что для данной файловой системы установлен режим квот, необходимо вставить в её станзу файла /etc/filesystems следующую строку: для режима квот пользователей: quota=userquota для режима квот пользователей и групп: quota=userquota,groupquota
2 шаг - Установка квот Для создания и редактирования квот используется команда edquota. Эта команда создаёт временный файл, который содержит информацию обо всех текущих квотах каждого пользователя и группы.
Синтаксис команды edquota следующий:
edquota [-u username|-g groupname] [-p prototype]
где: опция -u используется для редактирования квоты пользователя username; опция -g используется для редактирования квот группы groupname; опция -p используется для указания прототипа квоты (пользователя или группы, имя которых необходимо указать), который используется для копирования ранее установленных квот.
Внимание: Для использования команды edquota должна быть установлена переменная EDITOR (для примера, export EDITOR=/usr/bin/vi).
3 шаг - Установка Grace Period Для установки Grace Period также используется команда edquota с параметрами: -t - для всех пользователей и групп; -tg - для всех групп; -tu - для всех пользователей.
Grace Period можно устанавливать в секундах, минутах, часах или днях. Установка Grace Period в размере 1-й секунды показывает, что Grace Period не предоставляется. Установка 0 определяет Grace Period по умолчанию.
Включение режима квот Для включения режима квот используется команда quotaon с параметрами: -u - установка режима квот только для пользователей; -g - установка режима квот только для групп; -a - установка режима квот для пользователей и групп. После параметра можно указать имя конкретной файловой системы, для которой необходимо включить механизм квот. По умолчанию режим квот выключен.
Выключение режима квот Для выключения режима квот используется команда quotaoff. Можно отключить режим квот для всех файловых систем (с параметром -a) или для конкретной файловой системы (указать её имя).
Проверка режима квот Команда quotacheck используется для проверки корректности работы механизма квот. Команда repquota используется для проверки использования текущих пользовательских или групповых квот.
Для дефрагментации обязательно смонтированной файловой системы используется команда defragfs:
/usr/sbin/defragfs [-q|-r] FILESYSTEM
опция -q показывает отчет о текущем статусе файловой системы; опция -r показывает отчет о текущем статусе файловой системы и о возможном состоянии файловой системы, после дефрагментации .
Файловые системы могут быть проверены используя команду fsck. Ее синтаксис:
fsck [-p|-y|-n] [-f] [FILE SYSTEM]
Опция -p указывает на проведение проверки и исправление файловой системы без информирования пользователя обо всех изменениях и без запросов на совершение таких изменений. При запуске проверки файловых систем из SMIT используется эта опция. Опции -y или -n используются для ответов yes или no на все вопросы выдаваемые командой.
Проверка файловой системы производится в несколько стадий: проверка журнала на предмет обнаружения сообщений об ошибках, проверка inodes, косвенных блоков, блоков данных, свободных блоков, проверка размеров файлов, проверка содержимого директорий.
Если явно не указана файловая система для проверки, то проверяются все файловые системы, для которых в файле /etc/filesystems установлен атрибут check в true. Команда выводит отчет о своей работе в директорию /lost+found.
· Запускайте команду lsfs.
· Отслеживайте содержимое файла /etc/filesystem.
· Запускайте команду df для проверки
использования дискового пространства.
· Проверяйте все смонтированные файловые
системы командой mount.