|
|
www.lissyara.su
—> документация
—> FreeBSD
—> UFS2
Как устроена UFS2
Автор: dikens3.
1. Суперблок.
2. Группы цилиндров.
3. Дескрипторы групп цилиндров.
Суперблок.
В начале UFS находится суперблок, в котором хранится основная информация: строение файловой системы, размер, конфигурация.
Рассмотрим создание файловой системы UFS2:
# newfs -L NameVolume -O2 -U -n /dev/ad1
/dev/ad1: 2014.0MB (4124736 sectors) block size 16384, fragment size 2048
using 11 cylinder groups of 183.77MB, 11761 blks, 23552 inodes.
with soft updates
super-block backups (for fsck -b #) at:
160, 376512, 752864, 1129216, 1505568, 1881920, 2258272,
2634624, 3010976, 3387328, 3763680
| Объём созданного раздела составляет 2014.0 Мбайт и содержит 4124736 секторов, размер блока равен 16384 байта, а размер фрагмента 2048 байт. В созданном разделе будут использоваться 11 групп цилиндров и объём информации, хранящийся в каждой группе, не более 183.77 Мбайт. Каждая группа цилиндров (Возможно кроме последней группы) содержит 11761 блок и 23552 индексных узла.(По умолчанию размер блока равен 8 фрагментам, а значит, в 11761 блоке содержится 94088 фрагментов.)
Soft Updates включены.
Копии суперблока будут находиться в секторах 160, 376512, 752864, 1129216, 1505568, 1881920, 2258272, 2634624, 3010976, 3387328, 3763680.(В каждой группе по одной резервной копии суперблока)
Воспользуемся TSK (/usr/ports/sysutils/sleuthkit):
# fsstat -f ufs /dev/ad1 | head -n 30
FILE SYSTEM INFORMATION
--------------------------------------------
File System Type: UFS 2 - Тип файловой системы
Last Written: Thu Oct 18 23:13:23 2007 - Время последнего монтирования
Last Mount Point: /mnt/target - Куда последний раз была смонтирована
Volume Name: NameVolume - Имя тома
System UID: 0
Flags: Soft Dependencies - Включён SoftUpdate
METADATA INFORMATION
--------------------------------------------
Inode Range: 0 – 259071 - Общее количество индексных узлов. (диапазон)
Root Directory: 2 - Где находится корневой каталог
Num of Avail Inodes: 259069 - Количество свободных индексных узлов
Num of Directories: 1 - Количество директорий на данный момент
CONTENT INFORMATION
--------------------------------------------
Fragment Range: 0 - 1031183 - Общее количество фрагментов. (диапазон)
Block Size: 16384 - Размер блока (Состоит из 8 фрагментов)
Fragment Size: 2048 - Размер фрагмента (1/8 часть блока)
Num of Avail Full Blocks: 124821 - Количество свободных блоков
Num of Avail Fragments: 14 - Количество свободных фрагментов
CYLINDER GROUP INFORMATION
--------------------------------------------
Number of Cylinder Groups: 11 - Количество групп цилиндров
Inodes per group: 23552 - Количество индексных узлов в каждой группе
Fragments per group: 94088 - Количество фрагментов в каждой группе
| Исходя из названия, суперблок, можно предположить, что он занимает 1 блок. В данном примере он равен 16384 байта и состоит из 8 фрагментов или 32 секторов. В UFS2 суперблок всегда находится в секторе 128.
Группы цилиндров.
Система UFS делится на секции, называемые группами цилиндров. Каждая группа цилиндров содержит более подробную информацию о своей группе.
Вот как выглядит нулевая группа:
# fsstat -f ufs /dev/ad1 | fgrep -A 22 "Group 0:"
Group 0:
Last Written: Fri Oct 19 23:28:15 2007 - Время последней записи
Inode Range: 0 – 23551 - Диапазон/количество индексных узлов.
Fragment Range: 0 – 94087 - Диапазон/количество фрагментов
Boot Block: 0 – 3 - Загрузочный код.
Super Block: 4 – 11 - Резервная копия суперблока.
Super Block: 40 – 47 - Резервная копия суперблока.
Group Desc: 48 – 55 - Дескриптор группы. (диапазон)
Inode Table: 56 – 2999 - Таблица индексных узлов. (диапазон)
Data Fragments: 3000 – 94087 - Диапазон фрагментов для записи данных
Global Summary (from the superblock summary area): Данные от суперблока:
Num of Dirs: 1 - Количество директорий на данный момент
Num of Avail Blocks: 11384 - Количество свободных блоков
Num of Avail Inodes: 23549 - Количество свободных индексных узлов
Num of Avail Frags: 14 - Количество свободных фрагментов
Local Summary (from the group descriptor): Данные от дескриптора группы:
Num of Dirs: 1 - Количество директорий на данный момент
Num of Avail Blocks: 11384 - Количество свободных блоков
Num of Avail Inodes: 23549 - Количество свободных индексных узлов
Num of Avail Frags: 14 - Количество свободных фрагментов
Last Block Allocated: 0 - Последний выделенный блок
Last Fragment Allocated: 0 - Последний выделенный фрагмент
Last Inode Allocated: 0 - Последний выделенный индексный узел
| Дескрипторы групп цилиндров:
Каждая группа цилиндров содержит специальную структуру - дескриптор группы, в котором хранится информация об использованных и свободных фрагментах, блоках, индексных узлах и многое другое.
В дескрипторе группы находятся битовые карты индексных узлов, блоков и фрагментов группы.
К примеру, состояние выделения блоков и фрагментов определяется по битовой карте блоков или фрагментов соответственно. В битовой карте индексных узлов хранятся метаданные, описывающие файлы и каталоги.
Примеры:
1. Список файлов и директорий?
Корневой каталог всегда находится в индексном узле 2, посмотрим, что там:
# fls -f ufs -a /dev/ad1 2
d/d 2: .
d/d 2: ..
d/d 188416: dir1
r/r 3: foremost
r/r 4: file1.pdf
r/r 5: file2.pdf
r/r 6: file3.pdf
r/r 7: file4.pdf
r/r 8: file5.pdf
r/r 9: file6.pdf
d/d 164864: dir2
| 2. Список файлов и директорий в dir1?
# fls -f ufs /dev/ad1 188416
d/d 188417: 22
r/r 188418: file2.pdf
| 3. Сколько блоков/фрагментов занимает file6.pdf?
# istat -f ufs /dev/ad1 9
inode: 9
Allocated
Group: 0
uid / gid: 1001 / 1001
mode: -rw-r--r--
size: 2328268
num of links: 1
Inode Times:
Accessed: Fri Oct 19 22:22:23 2007
File Modified: Mon Sep 18 23:29:07 2006
Inode Modified: Sat Oct 20 16:11:57 2007
Direct Blocks:
23824 23825 23826 23827 23828 23829 23830 23831
23832 23833 23834 23835 23836 23837 23838 23839
23840 23841 23842 23843 23844 23845 23846 23847
…
[skip]
…
Indirect Blocks:
3144 3145 3146 3147 3148 3149 3150 3151
| Indirect Blocks - блоки косвенной адресации, т.е. содержат указатели на другие блоки. (В нашем случае задействован только один)
P.S. Данная информация несёт ознакомительный характер, поэтому не расписывал ёё подробно.
Ссылка на обсуждение: http://forum.lissyara.su/viewtopic.php?t=6652.
размещено: 2007-10-20,
последнее обновление: 2007-10-20,
автор: dikens3
|
|
|
|
2014-07-27, lissyara
gmirror
Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов.
2013-08-20, zentarim
Scan+Print server FreeBSD 9
Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540
2011-11-20, BlackCat
Разъём на WiFi-карту
Делаем съёмной несъёмную антену на WiFi-карте путём установки ВЧ-разъёма
2011-09-14, manefesto
Настройка git+gitosis
Настройка системы контроля версия исходного кода в связке git+gitosis+ssh
2011-08-14, zentarim
Wi-FI роутер + DHCP + DNS
Настройка Wi-Fi роутера на Freebsd 8 + DNS сервер + DHCP сервер: чтобы Wi-Fi клиенты были в одной подсети с проводными, проводные и беспроводные клиенты получали адреса автоматически по DHCP, кэширующ
2011-06-15, -ZG-
Охранная система на FreeBSD+LPT
В этой статье описана попытка реализации простой охранной системы на базе FreeBSD с подключением к ней охранных устройтсв на LPT порт и видеорегистрацией.
2011-03-13, terminus
ng_nat
Описание работы ng_nat, практическое использование, достоинства и недостатки в сравнении с ipfw nat
2011-02-20, Капитан
Nagios+Digitemp
Статья описывает создание системы оповещения о превышении температуры в специальных помещениях на основе Nagios с использованием программы Digitemp.
2011-02-17, Le1
Zyxel Configuration
Скрипт для массового изменения конфига свичей Zyxel. Берет из файла iplist список ip-шек, заходит последовательно на каждый и выполняет комманды из файла commands, записывая происходящее в лог файл.
2011-02-16, fox
hast carp zfs ucarp cluster
HAST (Highly Available Storage), CARP, UCARP, ZFS, Cluster настройка и одаптация плюс личные размышления…
2011-02-04, BlackCat
Восстановление ZFS
История о том, как был восстановлен развалившийся RAIDZ ZFS-пул (перешедший в FAULTED) с помощью скотча и подручных средств. Или о том, какие приключения ожидают тех, кто не делает резервных копий.
2011-02-03, Капитан
1-Wire
Статья описывает самостоятельное изготовление контроллера DS9097 для съёма показаний с датчиков температуры DS1820 с помощью программы Digitemp.
2011-01-28, Капитан
Температура в серверной
Статья описывает построение системы наблюдения за температурой в помещении серверной с использованием программы Digitemp и выводом графиков в MRTG
2011-01-21, m4rkell
Syslog server
Как то буквально на днях, у нас завалилось, что то в еве) или не в еве не суть. Суть в том, что когда захотели снять логи с хостов esx обнаружили, что хранят эти негодяи логии только за последнии сутк
2011-01-07, lissyara
Canon/gphotofs
Монтирование цифровых фотоаппаратов Canon (PTP) как файловой системы, автоматизация этого процесса через события devd и внешние скрипты.
2010-12-13, Al
IPSec
Описание принципов работы IPSEC и способов аутентификации.
2010-12-07, manefesto
FreeBSD on flash
Было принято решении переехать на USB Flash и установить минимальный джентельменский набор для работы своего роутера. Делаем =)
|
Статистика сайта
|
Сейчас на сайте находится: 11 чел.
|
За последние 30 мин было: 45 человек
|
За сегодня было 7422 показов, 845 уникальных IP
|
|
|
|
Этот информационный блок появился по той простой причине,
что многие считают нормальным, брать чужую информацию не уведомляя автора
(что не так страшно), и не оставляя линк на оригинал и автора — что более существенно.
Я не против распространения информации — только за. Только условие простое — извольте
подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой,
незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
Если соизволите поставить автора в известность — то вообще почёт вам и уважение.
© lissyara 2006-10-24 08:47 MSK
|
|
|
Комментарии пользователей [1 шт.]