Практикум_OC_Linux. Ос unixлабораторный практикум
Скачать 0.57 Mb.
|
АДМИНИСТРИРОВАНИЕ ФАЙЛОВЫХ СИСТЕМ В UNIX файлы организованы в виде древовидной структуры, называемой файловой системой. В UNIX все файловые системы имеют два основных компонента – файл и каталог. Корнем дерева файловой системы является корневой каталог (/). В большинстве случаев файловое дерево (в том виде, как видит его пользователь), составлено из нескольких отдельных файловых систем, которые могут иметь различную файловую структуру, а файлы, принадлежащие этим файловым системам, могут распола- гаться на различных устройствах. Подсоединение корня файловой системы к каталогу коневой файловой системы называют монтиро- ванием, отсоединение – демонтированием. Каждый файл имеет связанные с ним метаданные (хранящиеся в индексных дескрипторах – inode ), содержащие все характери- стики файла. Имя файла связано с индексным дескриптором по- средством специального файла – каталога. 5.1. Типы файлов В UNIX существует шесть типов файлов, различающихся по функциональному назначению и действиям ОС при выполнении тех или иных действий над файлами: - обычный файл (regular file) - каталог (directory) - специальный файл устройства (special device file) - именованный каталог (named pipe) - символическая ссылка (link) - сокет (socket) 5.2. Типы файловых систем ОС Solaris использует файловые системы: UFS, ZFS, HSFS, PCFS, UDFS, и сетевую файловую систему NFS, причем UFS ис- пользуется в Solaris по умолчанию, tmpfs – файловую систему в памяти и lofs – файловую систему обратной связи, procfs – файловую систему процессов и др. 38 На диске может размещаться несколько файловых систем. Раз- дел диска, где может быть размещена файловая система, в ОС Solaris назван slice . Таблица размещения разделов ( VTOC ) располагается в первом секторе диска и отображается командой prtvtoc. Для создания и изменения таблицы разделов используется диалоговая программа format . Раздел 2 соответствует всему диску. Программа format служит также для анализа поверхности диска и его форматирования. Доступ к разделам осуществляется через специальные файлы, расположенные в /dev/rdsk/* (байт-ориентированные) и /dev/dsk/* (блочно-ориентированные, т.е. после форматирова- ния). Для SCSI-дисков наименование специальных файлов имеют вид сAtBdCsD , где A – номер контроллера, B – логический номер устройства (LUN), C – номер диска, обычно 0, D – номер раздела. 5.3. Структура UFS Описание элементов файловой системы UFS приведено в табл.5.1. Таблица 5.1 Элемент Описание Primary Su- perblock Содержит описание файловой системы, рас- полагается в одном секторе и содержит: • Число блоков данных • Число групп цилиндров • Размер блока данных и размер фраг- мента данных • Название точки монтирования • Флаги состояния файловой системы 39 Продолжение таблицы 5.1 Элемент Описание Backup Superblock Резервная копия суперблока Cylinder Group Block Блок данных, описывающий состояние груп- пы цилиндров и содержащий информацию: • Число inode • Число блоков данных в группе • Число каталогов в группе • Число свободных блоков, inode, фраг- ментов • Карту свободных блоков • Карту свободных inode Inode Table Список inode для группы цилиндров Data Block Блоки данных. Размер блока по умолчанию 8192 байта Структура inode Индексный дескриптор (inode) содержит следующие данные: • Тип файла • Права доступа • UID владельца файла • GID группы владельца файла • Размер файла • Дата создания файла • Число жестких ссылок на файл • Число занятых блоков на файл • 12 прямых указателей на блоки данных 40 • 1 косвенный указатель первого уровня на блок данных (со- держит 2048 прямых указателей) • 1 косвенный указатель второго уровня на блок данных (со- держит 2048 косвенных указателей первого рода) • 1 косвенный указатель третьего уровня на блок данных (со- держит 2048 косвенных указателей второго рода) • указатель на shadow inode, который содержит ACL для файла Номер i-node файла можно посмотреть командой ls –i Для сокращения потерь при хранении файлов используется хра- нение фрагментов разных файлов в одном блоке. Допускаются фрагменты 1/8, ¼, ½, 1 части блока данных. У каждого файла мо- жет быть только один фрагмент. 5.4. Создание файловой системы UFS Для создания файловой системы используются команды mkfs и newfs (формирует параметры для mkfs, может использоваться для создания файловой системы с параметрами по умолчанию). Пример newfs -F ufs /dev/rdsk/c0t0d0s1 При создании файловой системы можно задать следующие пара- метры: -b – размер блока данных -c – число цилиндров в группе -С – максимальное число логических блоков, размещенных последовательно -f fragsize – размер фрагмента -i nbpi – число байтов на i-node, по умолчанию используется <1Gb 2048 <2Gb 4096 <3Gb 6144 41 <1Tb 8192 >1Tb 1048576 -m free – часть свободного пространства (в процентах), резервируемый для root -s size – размер Тип файловой системы по умолчанию указан в файле /etc/default/fs: LOCAL=ufs Настройка стратегии размещения данных производится с помощью программы tunefs. Опции команды tunefs: -a maxcontig – максимальное число блоков данных, принадлежащих одному файлу, размещаемых непрерывно -m minfree – минимальный процент свободного пространства, при котором пользователи могут создавать файлы -o space|time – стратегия оптимизации (по умолчанию time) 5.5. Восстановление файловой системы после сбоя Восстановление целостности файловой системы производится утилитой fsck. Восстановление файлов или их фрагментов, связь блоков данных которых с их названием утрачена, производится в каталог /lost+found, созданный при форматировании файловой системы. Программа fsck требует указания байт-ориентированного файла и производит действия над немонтированной файловой си- стемой. Программа переносит изменения на диск в конце работы, поэтому в интерактивном режиме от изменений можно отказаться до вопроса о записи данных на диск. При повреждении суперблока может быть указан резервный (-b=№. Гарантированный альтерна- тивный номер суперблока 32). После внесения изменений следует перезагрузить систему. 5.6. Монтирование и демонтирование файловой системы Информация о том, какие файловые системы следует монтиро- вать при загрузке, содержится в файле /etc/vfstab. Формат файла /etc/vfstab описан в табл. 5.2. 42 Таблица 5.2 Поле Описание Device to mount Устройство, которое следует монтировать Device to fsck Устройство, которое следует проверять в слу- чае сбоя Mount point Точка монтирования FS type Тип файловой системы на устройстве FS pass Проверять ли состояние файловой системы при загрузке Mount at boot Автоматически монтировать при загрузке или нет Mount op- tions Список опций монтирования через запятую Команды монтирования и демонтирования файловых систем приведены в табл. 5.3. Таблица 5.3 Команда Описание mount Монтирует заданные файловые системы и ди- станционные ресурсы. mountall Монтирует все файловые системы, заданные в таблице файловых систем vfstab. umount Демонтирует заданные файловые системы. umountall Демонтирует все файловые системы, задан- ные в таблице файловых систем vfstab. Информация о смонтированных файловых системах помещает- ся в файл /etc/mnttab в виде спецфайл точка монтирования типФС опции время если не использовалась опция -m. Формат команды: 43 mount –F type общие_опции –o опции_данной_фс спец_файл точка_ монтирования Если запись о паре спец_файл/точка_монтирования имеет- ся в файле /etc/fstab, можно ограничиться чем-то одним. Оп- ции команды: -m – монтировать без помещения в /etc/mnttab, -f – принудительное монтирование, -a – все системы из файла /etc/fstab, -p – печатать список в формате /etc/fstab, -o опции – задать опции монтирования файловой системы, –l – монтировать только локальные файловые системы, -a –t тип – монтировать файловые системы только указанного типа. Опции монтирования большинства файловых систем ro – запрещена запись в файловую систему, rw – чтение и запись разрешены, quota, noquota – поддержка квот включена/отключена, rq = rw, quota – сокращенная запись, noatime – не модифицировать метки времен доступа к файлам (слегка повышает производительность), nosuid – запрещено изменять права запускаемого процесса на права владельца файла (обычно используется при импорте файловых систем), logging/nologging – включение/отключение поддержки журналирования в системе UFS Solaris. Файловая система может быть демонтирована, если ни один из ее файлов не используется, а ни один из каталогов не является те- кущим ни для одного процесса. Определить причины ошибки при демонтировании можно с помощью команды fuser , показываю- щей PID процессов, работающих с файлом или ФС вместе с кода- ми (см.таблицу 5.4). 44 Таблица 5.4 c Процесс имеет текущий каталог в данной файловой системе. e Из данной файловой системы запущена программа. o Имеется открытый файл. r Процесс имеет корневой каталог в файловой системе. m Имеется отображаемый на память файл. n Установлена обязательная блокировка. -k Уничтожить процесс, занявший файловую систему. -s sig Послать сигнал процессу, занимающиму файловую систему. -i Подтверждение. -u Указывать имя пользователя. 5.7. Другие команды для работы с файловой системой Другие команды, полезные при администрировании файловых систем, приведены в табл. 5.5. Таблица 5.5 fstyp -v Просмотр всех параметров ФС sync Синхронизирует данные на в памяти и на диске при буферизации опрераций с файловой системой df Отображение дискового пространства, используе- мого ФС du Отображение информации о размерах каталогов (текущей ФС) 45 5.8. Дисковые квоты Дисковые квоты – это ограничения, накладываемые на пользо- вателя в многопользовательской системе по использованию файло- вой системы. Для каждой файловой системы квоты устанавлива- ются независимо. Чтобы задействовать квоты в файловой системе, требуется – создать в её корне файл: touch quotas , владельцем которого является root c правами доступа rw -------. – монтировать систему с опцией quota (указать её в /etc/vfstab) – установить квоту для пользователя программой edquota user. Разделяют жесткие и мягкие квоты. Жесткая квота превышена быть не может. Мягкая квота (должна быть меньше) может быть превышена в течение ограниченного времени. Если пользователь за время “благожелательности” не устранил превышение мягкой квоты, жесткая квота становится равной мягкой. Квоты устанавливаются на объем файлов (в блоках по 1024 байта) и на их количество (число индексных дескрипторов) программой edquota в формате: fs точка монтирования blocks (soft=…, hard=…) inоdes ( soft=…,hard=…) где soft означает параметр, относящийся к мягкой квоте, а hard– к жесткой. Если для нескольких пользователей квоты должны быть установлены одинаковыми, можно воспользоваться заданием по образцу: edquota –p user1 user2 Время превращения мягкой квоты в жесткую устанавливается командой edquota –t в формате fs точка_монтир blocks time limit=…, files time limit=… Единицу измерения указывают ключевым словом week,day, month,hour,min,sec. Дополнительные символы игнорируют- 46 ся, поэтому допустимо weeks. По умолчанию период благожела- тельности равен неделе, уточнить умолчание можно в файле /usr/include/sys/fs/ufs_quota.h . Другие команды для работы с квотами указани в табл. 5.6. Таблица 5.6 Команда Описание quotacheck Перестроить файлы квот, полезно, если квоты вводятся в файловой системе, уже содержащей файлы quota Выдает информацию о действующих квотах quotaon Включает использование квот в файловой системе quotaoff Выключает использование квот в файловой систе- ме 5.9. Пространство виртуальной памяти Виртуальная память может быть представлена как разделом на диске, так и файлом. Раздел на диске указывается в файле /etc/vfstab , является основным и обычно подключается при старте системы. Дополнительное пространство виртуальной памяти может быть получено в виде файла в файловой системе. Получить информацию о конфигурации виртуальной памяти можно командой swapfs. Файл для использования виртуальной памятью создается командой mkfile nnn[k|b|m] filename, где k,b,m – единицы измерения, и затем регистрируется в систе- ме командой: swap –a /path/filename Отключить виртуальную память в файле можно командами: 47 swap –d filename rm filename Файл также можно указать в /etc/vfstab . В качестве устройства указывается полное путевое имя, тип файловой системы swap. Пример файла /etc/vfstab (фрагмент) #device device mount FS fsck mount mount #to mount to fsck point type pass at boot opt /dev/dsk/c0t0d0s0 - - swap - no - /virt/sw1 - - swap - no - 5.10. Работа со сменными носителями Файловая система FAT/FAT32 в ОС Solaris имеет наименование pcfs, а CD-ROM соответственно hsfs. Чаще всего поддержка pcfs используется применительно к дискетам, но раздел FAT в системе c архитектурой x86 может быть также смонтирован (при этом в наименовании файла устройства имеются некоторые особенности): mount –F pcfs /dev/dsk/c0t0d0p0:C /pcfs/C Дискета может быть отформатирована как в pcfs , так и в ufs программой fdformat. Так как процесс монтирования любой файловой системы ко- мандой mount требует полномочий суперпользователя, то для ра- боты с дискетами и CD-ROM в Solaris предусмотрен специальный демон, который подключает/отключает файловые системы – мене- джер томов vold. Команды настройки vold приведены в табл.5.7. Таблица 5.7 Команда Описание rmmount Монтирование сменных носителей информации volcan- cel Отмена запроса пользователя на доступ к ФС на сменном носителе volcheck Проверка наличия носителя информации на устройстве 48 Продолжение таблицы 5.7 Команда Описание volmiss- ing Действие, которое выполняется при попытке до- ступа к устройству с отсутствующим носителем vold Демон менеджера томов, который управляется файлом /etc/vold.conf Для извлечения носителя из дисковода используется команда eject. В системе имеются синонимы: floppy0 – дискета, cdrom0 – компакт диск. Примеры Копирование на дискету с запущенным демоном vold 1. Вставляем дискету в дисковод. 2. Проверяем: volcheck /floppy/floppy0. 4. Переписываем файл на дискету: cp /export/home/user1/file /floppy/floppy0. 5. Отключаем дискету: eject floppy. Копирование на дискету без демона vold 1. Вставляем дискету в дисковод. 2. Подключаем дискету: mount –F pcfs /dev/fd0 /floppy/floppy0. 4. Переписываем файл на дискету: cp /export/home/user1/file /floppy/floppy0. 5. Отключаем дискету: umount /floppy/floppy0. 5.11. Файловая система NFS NFS – сетевая файловая система – позволяет совместно использовать фрагмент файловрй системы несколькими компьютерами. Экспорт файловой системы осуществляется командой share, отмена экспорта – командой unshare. Набор команд share хранится в файле /etc/dfs/dfstab и выполняется по команде 49 shareall. Можно экспортировать отдельный каталог. Несколько файловых систем не могут быть экспортированы одной командой. Опции экспорта: ro – экпорт только для чтения, rw – допустимы чтение и запись, nosub – запрет монтирования подкаталогов, nosuid – запрет выполнения программ отимени владельца и доступа к специальным файлам, anon – указывает uid анонимного пользователя (вместо no- body ) Спецификации узлов, которым разрешено импортировать файловую систему: .ххх.ххх - любой узел в домене, имя - компьютер в домене, @адрес - сеть, - (дефис) - исключая. Элементы списка отделяются символом :(двоеточие). Пример share -F nfs -o rw=.mephi.ru:-@192.168.12.0/24 -o nosuid /export/home Импорт файловой системы NFS клиентом производится командой mount, которая также осуществляет монтирование. Указываемый тип файловой системы – nfs , опции монтирова- ния: ro | rw – запрет/разрешение записи в импортированной файловой системе, fg | bg – монтирование в фоновом или обычном режиме, hard – если сервер не отвечает на запросы, продолжать попытки, soft – если сервер не отвечает на запросы, сообщить об ошибке, intr –возможно прерывание с клавиатуры заблокированного процесса, осуществляющего доступ к NFS, nointr – процесс прервать нельзя, 50 largefiles – поддержка файлов размером более 2 Гбайт proto=... – используемый протокол ( tcp или udp ), rsize=... wsize=... – размер буферов чтения/записи, retry=... – число попыток монтирования, quota включить поддержку пользовательских квот. Пример mount -F nfs -o rw,soft,quota moon:/pub /moon/pub В примере экспортируемый машиной moon каталог /pub монти- руется в каталог /moon/pub. Для автоматического монтирования можно добавить строку в /etc/vfstab. Пример файла /etc/vfstab (фрагмент) #device device mount FS fsck mount mount #to mount to fsck point type pass at boot opt moon:/pub - /moon/pub nfs - yes rw,soft,quota Программа nfsstat может быть использована для отображения статистической информации, касающейся NFS. 5.12. Создание резервных копий Надежность аппаратной платформы, применение RAID масси- вов, журналируемых файловых систем позволяет практически пол- ностью защититься от аппаратного сбоя. Но при этом всегда оста- ется вероятность ошибки оператора, который случайно удалил важные файлы. Именно для защиты от таких угроз следует выпол- нять резервное копирование важных данных. В состав ОС Solaris входит набор важных утилит, с помощью которых администратор может выполнить резервное копирование (табл.5.7) Программа ufsdump предназначена для многоуровневого ин- крементального резервного копирования. Предусмотрены уровни от 0 до 9, 0 означает полное копирование. 51 |