Структура файлової системи hfs

· З метою системної безпеки (заборона запуску програм з файлових систем, обмеження дискового простору для файлової системи, и.т.п)

У загальних рисах файлову систему HP-UX складається з дерева каталогів (директорій) розміщених ієрархічно з кореневим каталогом у вершині. Всі файлові системи мають властивість "монтовані" полягає в тому що будь-яка файлова система може бути змонтована (прикріплена) до існуючої директорії. Будь-яку змонтовану файлову систему крім кореневої можна демонтувати. Монтування кореневої файлової системи здійснює ядро, відразу ж після завантаження.

Структура файлової системи HFS

Все HFS файлові системи мають в своєму складі наступні структури:

· Набір груп циліндрів

Структури даних використовуються в файлової системі містяться в файлі /usr/include/sys/fs.h. Первинний суперблок це безперервний блок даних розмірів 8К розміщується перед початком файлової системи який містить статичну інформацію про файлової системи в момент її створення (або останнього розширення):

· Розмір файлової системи

· Кількість inodes які може зберігати файлова система

· Позиція вільного місця на диску

· Кількість груп цілінров

· Позиції суперблоков, Крупп цилиндро, блоків inodes і блоків даних

· Розмір блоку і фрагмента

Крім цього головний суперблок містить допоміжну інформацію про те коли останній раз монтувалася, модифікувалася і перевірялася файлова система. Тому що головний суперблок містить виключно важливу інформацію про файлову систему, HP-UX завжди зберігає його копії в кожній групі циліндрів. Одна з копій завантажується в пам'ять після завантаження. Головний суперблок розміщується на самому початку файлової системи і кожна група ціліндпров має має свою копію суперблоку. Таким чином досягається резервування критично важливої ​​інформації. Суперблоці груп циліндрів на диску оновлюються кожного разу коли виконується команда sync або коли файлова система размонтіруйте. У файлі / etc / sbtab присутній запис положення всіх суперблоков файлових систем.

Група циліндрів - це група дискових циліндрів йдуть підряд. Циліндр являє собою сукупність треків кожен з яких розміщений на однаковій відстані від центру поверхні дискового носія. Всі треки в ціліндрк доступні за одну операцію читання / запису дискової головки. З метою підвищення продуктивності, циліндри групуються (за замовчуванням 16 циліндрів) в групи циліндрів. Кожна група циліндрів має свій набір inodes і свою карту вільного простору в групі. Така організація зберігання позволяеет мінімізувати час пошуку даних файлу в групі циліндрів. Наведемо структуру групи циліндрів:

1 тільки для першої групи циліндрів

2 см. Розділ inodes

3 см. Розділ блоки даних

Розділ інформації про групу циліндрів зберігає динамічні параметри групи циліндрів, такі як:

· Кількість inodes і блоків даних в групі циліндрів

· Покажчики на останній спожитий блок, фрагмент і inode

· Кількість вільних фрагментів

· Карту використаних inodes

· Карту вільних блоків

Інформація про групу циліндрів занімет один блок (розмір блоку визначається прісозданіі файлової системи і зазвичай дорівнює або чотирьом або восьми кілобайтам).

Крім зберігання інформації про стан файлової системи, групи циліндрів зберігають ключову інформацію про inodes файлової системи - індексам файлів даних (і директорій). Дискова inode містить наступну інформацію про фото:

· Тип файлу і атрибути доступу

· Кількість посилань на файл

· Власника і групу файлу

· Розмір файлу в байтах

· Тимчасові місця (час останнього звернення, останньої модифікації)

· Покажчики на блоки файлової системи містять дані

Коли файл відкритий процесом, інформація про його inode перебуває в пам'яті ядра (in-core inode) в поєднанні з доаполнітельнимі атрибутами, такими як:

· Статус inode, включаючи факт блокування inode, чи відрізняється in-core inode від дискової inode в наслідок модифікації файлу, чи є файл точкою монтування файлової системи ...

· Покажчик на інші in-core inodes збудовані у вигляді списку.

Якщо inode вказує на спеціальний (нерегулярно) файл, то з ним асоціюються додаткові параметри, такі як є чи файл FIFO або pipe, символьним або блоковим пристроєм або ж Директорією. Коли створюється файлова система (команда newfs), створюються inodes. Кількість inodes обмежує кількість файлів в файлову систему. При створенні файлової системи за замовчуванням система має на увазі що в середньому на одну inode припадає 2048 байт даних, що в більшості випадків є більш ніж достатньою кількістю. Іноді, можлива ситуація коли ядро ​​сигналізує про помилку переповнення таблиці in-core inodes (inode: table is full). В цьому випадку необхідно змінити розмір цієї таблиці збільшивши системний параметр ядра ninode.

Після суперблоку, даних про групу циліндрів і таблиці inodes йде місце зарезервоване під блоки даних. HP-UX підтримує блоки розміром 4,8,16,32 і 64 Кб. Розмір блоку задається при створенні файлової системи (команда newfs). Великий розмір блоку дає виграш в швидкості передачі даних при роботі з великими файламіно при цьому є причиною неефективного використання дискового простору приработе з маленькими (яких більшість в HP-UX) файлами. Тому з метою економії дискового простору блок може бути розділений на декілька фрагментів (1,2 або 4Кб). Розмір фрагмента також визначається при створенні файлової системи і не може мати розмір менше ніж одна восьма розміру блоку.

Схожі статті