5.5. Создание удобной для использования структуры хранилища

Само по себе устройство хранения имеет немного применений. Да, в это хранилище можно записать данные и потом прочитать их, но так как данные не структурированы, обращаться к ним можно только по адресам секторов (геометрическим или логическим).

Поэтому нужно каким-то образом сделать неструктурированный жёсткий диск более удобным в использовании. В следующих разделах рассказывается о некоторых подходах к решению этой задачи.

5.5.1. Разделы

Первое, с чем часто сталкивается системный администратор — с тем, что размер жёсткого диска намного больше, чем нужно для имеющейся задачи. Поэтому многие операционные системы способны разбивать пространство жёсткого диска на разделы.

Так как разделы отделены друг от друга, они могут занимать пространство разного объёма, при этом пространство одного раздела никак не может повлиять на пространство, занятое другими разделами. Например, раздел, содержащий файлы операционной системы, не будет затронут, даже если на разделе с файлами пользователя совсем не останется места. У операционной системы по-прежнему будет свободное пространство для внутреннего использования.

Хотя это несколько упрощённое представление, разделы можно рассматривать как подобие отдельных дисков. На самом деле, в некоторых операционных системах разделы даже называются «дисками». Однако это не совсем верно, поэтому нам нужно изучить разделы более подробно.

5.5.1.1. Атрибуты разделов

Разделы характеризуются следующими атрибутами:

  • геометрия раздела

  • тип раздела

  • поле «тип раздела»

Эти атрибуты рассматриваются подробно в следующих разделах.

5.5.1.1.1. Геометрия

Геометрия раздела определяет его физическое расположение на диске. Геометрия может задаваться как номер цилиндра, головки и сектора начала и конца раздела, хотя чаще всего для разделов задаётся только начальный и конечный цилиндр. При этом размер раздела определяется как объём хранилища между начальным и конечным цилиндрами.

5.5.1.1.2. Тип раздела

Тип раздела определяет взаимосвязь раздела с другими разделами диска. Разделы бывают трёх разных типов:

  • Основные разделы

  • Дополнительные разделы

  • Логические разделы

Эти типы описываются ниже.

5.5.1.1.2.1. Основные разделы

Основные разделы — это разделы, занимающие одно из четырёх мест, отведённых для основных разделов в таблице разбиения диска.

5.5.1.1.2.2. Дополнительные разделы

Дополнительные разделы были придуманы для случаев, когда на диске требуется создать больше четырёх разделов. Дополнительный раздел может содержать в себе другие разделы, что кардинально увеличивает число разделов, которые можно создать на одном диске. Введение дополнительных разделов было обосновано постоянным увеличением ёмкости новых дисков.

5.5.1.1.2.3. Логические разделы

Логические разделы — это разделы, содержащиеся внутри дополнительного раздела, с точки зрения использования они ничем не отличаются от обычных основных разделов.

5.5.1.1.3. Поле «тип раздела»

Каждый раздел имеет поле «тип», в котором содержится код, показывающий, как должен использоваться раздел. Поле «тип» может определять или не определять операционную систему компьютера, но оно должно определять, как хранятся данные в разделе. Следующий раздел содержит дополнительные сведения об этом.

5.5.2. Файловые системы

Даже если мы выберем подходящее устройство хранения, правильно его настроим и разобьём на разделы, мы всё равно не сможет легко сохранять и получать информацию — нам недостаёт способа структурирования и организации этой информации. Нам нужно то, что называется файловой системой.

Понятие файловой системы настолько фундаментально в сфере устройств хранения, что средний пользователь компьютера часто даже не отличает эти понятия. Однако системный администратор не может позволить себе игнорировать файловые системы и их влияние на повседневную работу.

Файловая система — это способ представления данных на устройстве хранения. Файловые системы обычно предлагают следующие возможности:

Весь набор этих возможностей предлагают не все файловые системы. Например, в файловой системе, разработанной для однопользовательской операционной системы, вполне может применяться упрощённый подход к управлению доступом и также может отсутствовать контроль владения файлом.

Здесь важно отметить, что файловая система в большой степени определяет характер вашей ежедневной работы. Если используемая в вашей организации файловая система хорошо подходит функциональным требованиям организации, это значит, что файловая система не только решает вашу задачу, но и позволяет вам быстрее и эффективнее её обслуживать.

С учётом этого, перечисленные возможности рассматриваются в следующих разделах более подробно.

5.5.2.1. Файловое хранилище

Хотя файловые системы, использующие метафору файла для хранения данных, настолько универсальны, что их можно считать данностью, есть некоторые аспекты, на которые следует обратить внимание.

Во-первых, нужно учитывать ограничения имён файлов. Например, какие символы допускаются в имени файла? Какова максимальная длина имени файла? Эти вопросы важны, так как они определяют, какие имена файлов можно использовать, а какие — нельзя. В старых операционных системах с более примитивными файловыми системами допускались только алфавитно-цифровые символы (исключительно в верхнем регистре) и только традиционные имена в стиле 8.3 (это значит, что для имени файлов отводится восемь символов, а для последующего расширения — три).

5.5.2.2. Древовидная структура каталогов

Хотя в файловых системах самых первых операционных систем не было понятия каталогов, все широко используемые сегодня файловые системы поддерживают каталоги. Сами каталоги обычно реализуются как файлы, то есть никаких особенных утилит для работы с ними не требуется.

Более того, так как каталоги подобны файлам и каталоги могут содержать файлы, каталоги могут содержать другие каталоги, что позволяет создавать многоуровневое дерево каталогов. Это очень мощная концепция, с которой должны быть хорошо знакомы все системные администраторы. Используя многоуровневые каталоги, вы можете упростить управления файлами для себя и своих пользователей.

5.5.2.3. Контроль времени создания, обращения и изменения файлов

В большинстве файловых систем ведётся учёт времени создания файла, а некоторые учитывают также время обращения и изменения. Помимо того, что позволяет определить, когда данный файл был создан, открыт или изменён, эти даты очень важны для правильной работы резервного копирования с приращением.

Дополнительные сведения о том, как при резервном копировании используются эти возможности файловой системы, можно найти в разделе 8.2 Резервное копирование.

5.5.2.4. Управление доступом

Управление доступом — это область, в которой файловые системы отличаются кардинально. Некоторые файловые системы вообще не имеют чётко определённой модели управления доступом, тогда как другие гораздо более сложны. Говоря в общем, в большинстве современных файловых систем модель управления доступом включает в себя два компонента:

  • Идентификация пользователя

  • Список разрешённых действий

Под идентификацией пользователя понимается, что файловая система (и управляющая операционная система) должна сначала однозначно идентифицировать отдельных пользователей. Это позволяет полностью отслеживать все операции на уровне файловой системы. Кроме этого часто бывает полезно создавать специальные наборы пользователей, или группы. Группы чаще всего используются в организациях, где пользователи могут быть участниками одного или нескольких проектов. Некоторые файловые системы также поддерживают создание универсальных идентификаторов, которые могут назначаться одному или нескольким пользователям.

Кроме этого, в файловой системе должна быть предусмотрена возможность вести список действий, разрешённых (или запрещённых) для каждого файла. Чаще всего отслеживаются следующие действия:

  • Чтение файла

  • Запись файла

  • Исполнение файла

В различных файловых системах в этот список могут быть добавлены другие действия, например, удаление или даже внесение изменений в список управления доступом к файлу.

5.5.2.5. Учёт занятого места

В жизни системного администратора есть вечная истина — свободного места не бывает много, а если сегодня его много, то это не надолго. Поэтому системный администратор должен, по крайней мере, иметь возможность быстро определить объём свободного места в каждой файловой системе. Кроме этого файловые системы, способные чётко идентифицировать пользователя, часто предоставляют возможность узнать, какой объём пространства занимает конкретный пользователь.

Эта возможность крайне важна в больших окружениях с множеством пользователей, так как, к сожалению, правило 80/20 также часто касается пространства на диске — 20 процентов ваших пользователей будут занимать 80 процентов дискового пространства. Если вы сможете легко определить, какие пользователи составляют эти 20 процентов, вы сможете более эффективно управлять ресурсами хранилища.

Развивая это, некоторые файловые системы предлагают возможность на уровне пользователей ограничивать объём диска, который они могут занимать (такие ограничения часто называются дисковыми квотами). В разных файловых системах могут быть свои особенности, но в общем случае каждому пользователю отводится определённый объём диска, который он может использовать. Помимо этого, файловые системы имеют и другие отличия. Некоторые файловые системы разрешают пользователю превысить свою квоту только один раз, тогда как в других есть «период вежливости», в течение которого начинает действовать большая квота.

5.5.3. Структура каталогов

Многие системные администраторы мало задумываются о том, как хранилище, создаваемое ими сегодня, будет использоваться завтра. Однако, если вы подумаете об этом, прежде чем предоставите хранилище пользователям, впоследствии вам не придётся прилагать много ненужных усилий.

Главное, что могут сделать системные администраторы — используя каталоги и подкаталоги, создать понятную структуру хранилища. Этот подход даёт несколько преимуществ:

Если ваше хранилище подчиняется какой-либо структуре, оно гораздо легче воспринимается. Например, рассмотрим большую систему с множеством пользователей. Вместо того, чтобы разместить каталоги всех пользователей в одном большом каталоге, возможно, имеет смысл использовать подкаталоги, отражающие структуру вашей организации. Таким образом, каталоги людей, работающих в бухгалтерии, будут находиться в каталоге accounting, каталоги работников инженерного отдела — в каталоге engineering и т. д.

Преимущество такого подхода состоит в том, что он упрощает ежедневный контроль за использованием хранилища (и потребностями пользователей) для каждого отдела вашей организации. Получить список файлов, используемых сотрудниками отдела кадров, становится очень просто. Также просто сделать резервную копию всех файлов юридического отдела.

Правильно выбранная структура увеличивает гибкость. В продолжение предыдущего примера предположим на секунду, что инженерный отдел должен приступить к выполнению нескольких новых больших проектов. Поэтому в ближайшем будущем на работу будет принято много новых инженеров. Однако имеющегося сегодня в хранилище свободного места будет недостаточно, когда произойдёт планируемое расширение инженерного отдела.

Но так файлы всех сотрудников инженерного отдела хранятся в каталоге engineering, решение будет простым:

Конечно, у такого подхода есть и недостатки. Например, если сотрудники часто переходят из отдела в отдел, вам должны каким-то образом сообщать о таких перемещениях, и вы должны соответственно изменять структуру каталогов. В противном случае она перестанет быть актуальной, что в долгосрочной перспективе не упростит работу, а усложнит её.

5.5.4. Обеспечение доступа к хранилищу

Когда устройство хранения разбито на разделы и в разделах создана файловая системы, это хранилище готово к использованию.

Для некоторых операционных систем это действительно так: как только операционная система обнаруживает новое устройство хранения, системный администратор может его отформатировать, и оно становится доступно без каких-либо дополнительных усилий.

В других операционных системах необходим ещё один шаг. Этот шаг, часто называемый монтированием, указывает операционной системе, как можно обращаться к хранилищу. Монтирование хранилища обычно выполняется с помощью специальной вспомогательной программы или команды, при этом необходимо, чтобы устройство хранения (и возможно раздел) было определено явно.