Опубликован: 01.07.2008 | Уровень: специалист | Доступ: платный
Лекция 4:

Какого типа у нас файловые системы

< Лекция 3 || Лекция 4: 12 || Лекция 5 >
Аннотация: В данной лекции рассмотрены типы файловых систем, а также создание файловой системы, ее монтирование, изменение параметров fs, выделение разделов под swap, инсталяция операционной системы. Приведены примеры.
Ключевые слова: l-r-типа, stand-alone, boot, Unix, UFS, file system, файловая система, BSD, файл, байт, inode, описатель файла, группа, ПО, диск, HP-UX, HFS+, high-q, AKA, journal, базы данных, транзакция, корректность, логит, X-протокол, closed, file, закрытие файла, sync, адресация, Директория, загрузчик, ядро, live, online, six-speed, disk, SNAPSHOT, команда, дополнительный раздел, вывод, устойчивость, пространство, ReadOnly, CD+G, mount, дерево, swapping, жесткий диск, read-only, game, ключ, SUN, Linux, retry, консоль, bad, m-media, failure, SCSI, адаптер, block, tape, manager, геометрия, spot, утилита, NTFS, org, HDA, partition, RAM, активная, Windows, SAM, primaries, конфигурация, инсталляция, операционная система, компьютер, CD-ROM, дистрибутивность, программа, SVR4, пробел, меню, system, debugger, enter, контроллер, PROM, корневая файловая система, управляющие, терминал, позиционирование, курсор, Full, install, upgrader, maintenance mode, операционный, исключение, суперпользователь, администратор, выход, maintenance, ctrl, shell-процедура, модем, архив, остов, ROM, SPARC, SD, root, множество, .NET, NFS, параметр, login, дистрибутив, FTP, ESC, ID, сервер, break, IP, адрес

MOTOROLA: Какого типа у нас файловые системы

fstyp имя_дискового_раздела

Рекомендуемый тип для неспециализированных (т.е. не тех, которые /stand, /boot и некоторые другие) файловых систем стандартный Unix'овский "ufs" - Unix File System. Это быстрая файловая система BSD-подобного типа с символическими линками, длинными именами файлов (до 256 байт), изменяемым размером блока, "размазанной" таблицей inod 'ов (описатели файлов расположены группами, которые равномерно распределены по диску)

mkfs - создает пустую файловую систему.


# создаем файловую систему типа s5 на 4-ом разделе диска, раз-
# мером 200 Мб !!! Размер указывается в 512-байтных блоках

 mkfs -F s5 /dev/rdsk/m328_c2d0s4 400000


# создаем файловую систему типа ufs на 5-ом разделе диска

 mkfs -F ufs -o bsize=4096,nsect=36,ntrack=9,free=1 \
 /dev/rdsk/m328_c2d0s5

Linux: создание файловой системы

mke2fs /dev/hda9

HP-UX: создание файловой системы

newfs -F hfs /dev/rvol12

HP-UX: JFS vs HFS

HP-UX использует два формата файловых систем: HFS (High Perfomance) - AKA старая добрая ufs, и новомодная JFS (Journal) AKA Verytas vxfs

vxfs - это не файловая система, а база данных с журналом транзакций и откаткой. Любая операция записи в файловую систему содержит только завершенные транзакции, поэтому fs на диске всегда находится в корректном состоянии. В лог пишется "протокол намерений", и его можно использовать для откатки.

Плюсы:

  1. vxfs использует физический журнал для записи критической метаинформации на диск. Это гарантирует эффективное восстанавление fs. Большая сохранность позволяет дольше кэшировать данные. Очень заметен выигрыш по скорости "close file" - закрытие файла НЕ форсирует sync inod 'а на диск, в отличие от ufs.
  2. vxfs применяет кластерную адресацию последовательных блоков - выигрыш в адресации блоков и скорости доступа к большим файлам.
  3. inod в vxfs -е имеет длину 256 байт (а не 128), и короткие (<=96байт) директории или симлинки хранятся прямо в inod
  4. Директории vxfs проиндексированы - следовательно, повышена скорость поиска файла по имени.
  5. По необходимости vxfs умеет создавать дополнительные области inod 'ов, и вообще - место в vxfs распределяется по мере заполнения.

Минусы:

  1. Служебные структуры vxfs занимают больше места на диске
  2. Загрузчик ядра не умеет читать формат vxfs, поэтому каталог /stand обязан быть HFS'ным

Плюсы для Live JFS (AKA OnLine VxFS) Only:

Это расширение стандартной vxfs, коммерческий продукт, поставляемый за отдельные деньги, после его установки стандартная vxfs получает дополнительные возможности:

  1. Увеличение размера fs без отмонтирования.
  2. Уменьшение размера fs (а-ля speed disk) без отмонтирования.
  3. Snapshot (заморозка) fs. По команде возникает параллельное дерево-копия раздела - "остановленное" на момент подачи команды. Реализация: использует дополнительно раздел диска для сохранения изменяемых блоков с данными. При обращении к "замороженным" данным блоки, еще не измененные - считываются из оригинальной файловой системы, если же менялись, то оригинал берется с сохраненной на отдельный раздел копии.

Примеры, на которых vxfs дает заметный (в 2-4 раза) выигрыш

cd /hfs ; time tar xf /tmp/big.tar
 cd /vxfs ; time tar xf /tmp/big.tar

 time cat bigfile bigfile bigfile bigfile bigfile > /vxfs/big
 time cat bigfile bigfile bigfile bigfile bigfile > /hfs/big

Вывод: в некоторых операциях vxfs быстрее, в остальных - не медленнее, устойчивее к выключению питания, но несколько больше съедает дискового пространства.

HFS имеет смысл на статических "readonly" каталогах, например /usr - скорость чтения одинакова, а hfs компактнее.

Linux. Запись директории на writable CDROM

mkisofs -R -o image directory

затем записать образ на cd-r командой cdrecord

Монтирование файловых систем

Чтобы сделать "видимыми" файлы, лежащие на дисковом разделе, Unix использует команду mount. Mount "подцепляет" файловую систему к общему дереву файлов. При монтировании нужно указать "точку монтажа" - каталог, к которому "подцепляется" наша новая файловая система. Например:

mount -F ufs /dev/dsk/m197_c0d0s8 /home1

Чтобы посмотреть, какие файловые системы у нас смонтированы, выполните команду

df

Чтобы наши файловые системы монтировались, а swap области активизировались автоматически при каждой загрузке, необходимо вставить соответствующие строки в файл /etc/vfstab. Формат строчек можно посмотреть в этом же файле.

MOTOROLA: Монтирование CD-ROM

Если на CDROM'е записана файловая система формата "ufs" - т.е. это "родной", моторольный cdrom, то монтировать его нужно по тем же правилам, что и обычный жесткий диск, только "read only"

mount -F ufs -r /dev/dsk/m197_c0d6s0 /cdrom

Если же это обычный "game'овый" диск для MSDOS'а, а точнее, CDROM стандартного формата iso9660, то монтировать его надо так:

mount -F cdfs -o ro /dev/dsk/m197_c0d6s7 /cdrom

(использование ключей -r и -o ro - равнозначно)

Отмонтирование файловых систем

umount /home1

Изменение параметров fs

Sun: tunefs

Linux: tune2fs

HP-UX: fsadm

Bad-блоки

Симптомы достаточно красноречивы: заметные задержки при доступе к диску (из-за retrying 'a), и на консоль сыплются страшные сообщения "Bad media", "Read failure"... "при доступе к блоку такому-то".

Запишите номера bad-блоков - их можно "подлечить".

Фирменные операционки: лечится, но с трудом-с

Современные SCSI адаптеры сами заменяют bad-блоки. Если засекли бад-блок, пропишите по нему (или файлу с ним) нули, адаптер заодно и пропишет, и подменит, и навсегда спрячет его, и он больше не покажется.

Motorola: Bad-блоки

Рекомендую ознакомиться с документацией - раздел "Bad blocks" в Томе "Disks and Tapes Managment"

см. также man по ddefs, mvme328, scsi1x7, dinit, ...

Надеюсь при описании геометрии диска командой ddefs вы не поскупились указать число "Bad spots" больше нуля. Замещение бад-блоков выполняется все той же командой dinit

dinit -n dskdeffilename /dev/rdsk/m187_c0d107
 -n номера bad-блоков вводятся с клавиатуры

dinit -t bad-list dskdeffilename /dev/rdsk/m187_c0d107
 -t bad-list файл со списком bad-блоков

Как протестировать диск на бад-блоки? У dinit есть ключ

-v 1 - verify with pattern

Linux: Bad-блоки

Linux'овский fsck с ключом "-c" умеет сам находить и лечить от bad-блоков (они собираются в отдельный "bad" inode)

# -y yes на все вопросы, -f force checking, -c bad-blocks
 e2fsck -c -y -f /dev/hda3

Диагностика оборудования

MOTOROLA: Утилита тестирования оборудования GOLD

Для тестирования и диагностики оборудования станции Motorola 922 можно воспользоваться утилитой gold. Она имеет систему меню, очень похожую на систему меню утилиты sysadm.

SUN: Утилита тестирования оборудования sundiag

Sundiag - многофункциональная утилита тестирования оборудования на Sun

Unix для PC

Да чего там выпендриваться. Грузитесь в MSDOS и там тестируйте железо всем, чем пожелаете.

Linux: изменение размеров NTFS-раздела

скачать и установить с linux-ntfs.sourceforge.org пакет ntfsprogs

ntfsresize -i /dev/hda9 # посмотреть статус и возможности

# тест возможности обрезать раздел под 15000 Мегабайт
ntfsresize -n -s 15000M /dev/hda9

umount /dev/hda9

ntfsresize -s 15000M /dev/hda9 # обрезать по настоящему

Командой fdisk /dev/hda удалить, затем вновь создать партицию /dev/hda9 размером 15000M partition id 7 (NTFS)

После перезагрузки проверить файловую систему NTFS.

Linux: опрос состояния IDE-диска

smartctl -a /dev/hda
< Лекция 3 || Лекция 4: 12 || Лекция 5 >
Дмитрий Ярцев
Дмитрий Ярцев
Россия
Игорь Зарубин
Игорь Зарубин
Россия