5.9. Информация, ориентированная на Red Hat Enterprise Linux

В зависимости от вашего предыдущего опыта системного администрирования, управление хранилищем в Red Hat Enterprise Linux для вас может быть либо в целом знакомо, либо абсолютно непривычно. В этом разделе обсуждаются вопросы администрирования хранилища применительно к Red Hat Enterprise Linux.

5.9.1. Соглашения об именовании устройств

Как и во всех Linux-подобных операционных системах, в Red Hat Enterprise Linux для обращения к любому оборудованию (включая диски) используются файлы устройств. Однако соглашения об именовании подключенных устройств хранения в различных Linux и Linux-подобных реализациях отличаются. Давайте рассмотрим, как именуются файлы устройств в Red Hat Enterprise Linux.

ЗамечаниеЗамечание
 

Имена устройств в Red Hat Enterprise Linux определяются при загрузке.

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

5.9.1.1. Файлы устройств

В Red Hat Enterprise Linux файлы дисковых устройств располагаются в каталоге /dev/. Формат имён файлов зависит от различных аспектов оборудования и его настройки, в частности, важны следующие аспекты:

  • Тип устройства

  • Единица устройства

  • Раздел

5.9.1.1.1. Тип устройства

Первые две буквы имени файла устройства обозначают определённый тип устройств. Для дисков наиболее распространены следующие типы устройств:

  • sd — устройство с интерфейсом SCSI

  • hd — устройство с интерфейсом ATA

Дополнительную информацию о SCSI и ATA можно найти в разделе 5.3.2 Современные стандартные интерфейсы.

5.9.1.1.2. Единица устройства

После двухбуквенного кода типа устройства указывается одна или две буквы, определяющие конкретную единицу устройства. В определении единиц «a» обозначает первую единицу устройства, «b» — вторую и т. д. Таким образом, первый жёсткий диск компьютера может обозначаться как hda или sda.

ПодсказкаПодсказка
 

Так как SCSI может адресовать большое количество устройств, для поддержки в системе более чем 26 устройств требуется добавлять второй символ единицы. Таким образом, первые 26 SCSI-дисков в системе будут иметь имена от sda до sdz, вторые 26 дисков — от sdaa до sdaz и т.д.

5.9.1.1.3. Раздел

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

  • /dev/hda1 — первый раздел первого ATA-диска

  • /dev/sdb12 — двенадцатый раздел второго SCSI-диска

  • /dev/sdad4 — чётвёртый раздел тридцатого SCSI-диска.

5.9.1.1.4. Доступ ко всему устройству

Бывают случаи, когда необходимо обратиться не к какому-то отдельному разделу, а ко всему устройству. Обычно это требуется, когда устройство не разбито на разделы или вообще не поддерживает стандартные разделы (как например CD-ROM). В таких случаях номер раздела опускается:

  • /dev/hdc — всё третьё ATA-устройство

  • /dev/sdb — всё второе SCSI-устройство.

Однако в большинстве дисков используются разделы (дополнительную информацию о разбиении диска на разделы в Red Hat Enterprise Linux можно найти в разделе 5.9.6.1 Добавление хранилища).

5.9.1.2. Альтернативы именам файлов устройств

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

  1. Системный администратор добавляет новый SCSI-контроллер с тем, чтобы добавить в компьютер два новых SCSI-диска (имеющаяся шина SCSI полностью занята)

  2. Первоначальные SCSI-диски (включая первый диск на шине: /dev/sda) остаются в прежнем состоянии

  3. Система перезагружается

  4. SCSI-диск, который до этого назывался /dev/sda, получает новое имя, потому что /dev/sda теперь называется первый SCSI-диск на новом контроллере.

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

Однако, в некоторых организациях и конфигурациях компьютеров вероятность столкнуться с этой проблемой намного выше. В тех организациях, где часто требуется изменять конфигурацию хранилища, обычно используется оборудование, допускающее изменение конфигурации без отключения. Такое оборудование, подключаемое «на ходу», позволяет легко добавлять или удалять хранилища. Но при таких обстоятельствах могут возникать проблемы с именованием устройств. К счастью, в Red Hat Enterprise Linux реализованы возможности, позволяющие сделать смену имени устройства менее проблематичной.

5.9.1.2.1. Метки файловых систем

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

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

5.9.1.2.2. Использование devlabel

Программа devlabel пытается решить проблему именования устройств несколько другим способом. Программа devlabel запускается системой Red Hat Enterprise Linux при каждой загрузке (и при каждом добавлении или удалении устройств, подключаемых «на ходу»).

Когда devlabel запускается, она загружает файл конфигурации (/etc/sysconfig/devlabel) и получает из него список устройств, за которые она отвечает. Для каждого устройства в этом списке есть символическая ссылка (назначаемая системным администратором) и универсальный уникальный идентификатор (Universal Unique IDentifier, UUID).

Команда devlabel гарантирует, что символическая ссылка всегда будет указывать на изначально указанное устройство, даже если имя устройства изменилось. Таким образом, системный администратор может ссылаться в системе, например, на /dev/projdisk, а не на /dev/sda12.

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

За дополнительной информацией о devlabel обратитесь к Руководству по системному администрированию Red Hat Enterprise Linux.

5.9.2. Основы файловой системы

Red Hat Enterprise Linux обеспечивает поддержку многих популярных файловых систем, что позволяет легко обращаться к файловым системам других операционных систем.

Это особенно полезно в случаях с двойной загрузкой и при переносе файлов из одной операционной системы в другую.

Поддерживаются следующие файловые системы (и не только):

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

5.9.2.1. EXT2

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

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

Следующий раздел рассказывает о том, каким образом описанная выше проблема решается Red Hat Enterprise Linux.

5.9.2.2. EXT3

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

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

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

5.9.2.3. ISO 9660

В 1987 году Международная организация по стандартизации (International Organization for Standardization, ISO) выпустила стандарт 9660. Этот стандарт определяет представление файлов на компакт-дисках. Системные администраторы Red Hat Enterprise Linux, скорее всего, встретят два применения формата ISO 9660:

  • Компакт-диски

  • Файлы (обычно называемые ISO-образами), содержащие полные файловые системы ISO 9660, предназначенные для записи на носители CD-R или CD-RW

Базовый стандарт ISO 9660 имеет довольно ограниченную функциональность, особенно по сравнению с современными файловыми системами. Имена файлов могут состоять максимум из 8 символов, а расширение — из трёх. Однако со временем стали популярны различные расширения этого стандарта, в частности:

  • Rock Ridge — Используя некоторые поля, неопределённые в ISO 9660, поддерживает такие возможности как длинные имена в файлов в разном регистре, символические ссылки и вложенные каталоги (другими словами, каталоги могут содержать в себе другие каталоги)

  • Joliet — Расширение стандарта ISO 9660, разработанное Microsoft с тем, чтобы компакт-диски могли содержать длинные имена файлов в кодировке символов Unicode

Red Hat Enterprise Linux может корректно работать с файловыми системами ISO 9660 и обоими расширениями Rock Ridge и Joliet.

5.9.2.4. MSDOS

Red Hat Enterprise Linux также поддерживает файловые системы других операционных систем. Имя файловой системы msdos указывает на то, что первоначально эту файловую систему поддерживала операционная система Microsoft MS-DOS®. Как и в MS-DOS, в Red Hat Enterprise Linux в файловой системе msdos допускаются только имена файлов 8.3. Кроме этого, в ней отсутствуют некоторые важные атрибуты файлов, в частности разрешения и владение. Однако с точки зрения обмена файлами, возможностей файловой системы msdos более чем достаточно.

5.9.2.5. VFAT

Файловая система vfat была впервые использована в операционной системе Microsoft Windows® 95. Улучшенная по сравнению с msdos, она поддерживает имена файлов длиннее, выходящие за рамки ограничения 8.3 в msdos. Однако понятия разрешений и владения файлов в ней также отсутствуют.

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

Чтобы обратиться к любой файловой системе, сначала её необходимо смонтировать. Монтируя файловую систему, вы указываете Red Hat Enterprise Linux сделать заданный раздел (на заданном устройстве) доступным для системы. Так же, когда доступ к конкретной файловой системе более не требуется, её необходимо размонтировать.

Чтобы смонтировать любую файловую систему, необходимо указать следующие сведения:

В следующем разделе точки монтирования рассматриваются более подробно.

5.9.3.1. Точки монтирования

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

В Red Hat Enterprise Linux применяется несколько другой подход. Как и в других операционных системах, полный путь к файлу включает название файла и указание каталога, в котором он находится. Однако явное указание устройства отсутствует.

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

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

Например, предположим, что в корневом каталоге системы Red Hat Enterprise Linux содержится каталог foo, полный путь к которому будет /foo/. Затем предположим, что есть также раздел, который будет монтироваться, а точкой монтирования раздела выбран каталог /foo/. Если в корневом каталоге этого раздела находится файл с именем bar.txt, после того, как раздел будет смонтирован, вы сможете обратиться к этому файлу, указав следующий путь:

/foo/bar.txt

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

Во многих системах Red Hat Enterprise Linux часто используется точка монтирования /home/ — потому что в /home/ обычно размещаются домашние каталоги всех пользователей. Если /home/ используется как точка монтирования, все файлы пользователей хранятся в выделенном разделе, и никогда не займут раздел операционной системы.

ПодсказкаПодсказка
 

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

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

5.9.3.2. Определение смонтированных разделов

Помимо того, что можно монтировать и размонтировать дисковое пространство, можно также определить, что смонтировано. Это можно сделать несколькими разными способами:

  • Просмотреть /etc/mtab

  • Просмотреть /proc/mounts

  • Выполнить команду df.

5.9.3.2.1. Просмотр /etc/mtab

Файл /etc/mtab — это обычный файл, обновляемый программой mount при монтировании или размонтировании файловых систем. Ниже показан пример /etc/mtab:

/dev/sda3 / ext3 rw 0 0none /proc proc rw 0 0
usbdevfs /proc/bus/usb usbdevfs rw 0 0
/dev/sda1 /boot ext3 rw 0 0
none /dev/pts devpts rw,gid=5,mode=620 0 0
/dev/sda4 /home ext3 rw 0 0
none /dev/shm tmpfs rw 0 0
none /proc/sys/fs/binfmt_misc binfmt_misc rw 0 0

ЗамечаниеЗамечание
 

Файл /etc/mtab предназначен только для просмотра состояния смонтированных в данный момент файловых систем. Изменять его вручную не следует.

Каждая строка представляет файловую систему, смонтированную в данный момент, и содержит следующие поля (слева направо):

  • Указание устройства

  • Точка монтирования

  • Тип файловой системы

  • Смонтирована ли файловая система только для чтения (read-only, ro) или для чтения и записи (read-write, rw), а также другие параметры монтирования

  • Два неиспользованных поля, содержащих 0 (для совместимости с /etc/fstab[1])

5.9.3.2.2. Просмотр /proc/mounts

Файл /proc/mounts является частью виртуальной файловой системы proc. Как и другие файлы внутри /proc/, «файл» mounts не существует ни на каком диске вашей системы Red Hat Enterprise Linux.

На самом деле, это даже не файл, а отображение состояния системы, представленное ядром Linux в форме файла.

С помощью команды cat /proc/mounts мы можем просмотреть состояние всех смонтированных файловых систем:

rootfs / rootfs rw 0 0
/dev/root / ext3 rw 0 0
/proc /proc proc rw 0 0
usbdevfs /proc/bus/usb usbdevfs rw 0 0
/dev/sda1 /boot ext3 rw 0 0
none /dev/pts devpts rw 0 0
/dev/sda4 /home ext3 rw 0 0
none /dev/shm tmpfs rw 0 0
none /proc/sys/fs/binfmt_misc binfmt_misc rw 0 0

Как мы могли заметить из предыдущего примера, формат /proc/mounts очень похож на формат /etc/mtab. Вообще в системе смонтировано несколько файловых систем, не связанных с дисками. В частности, это сама файловая система /proc/ (вместе с двумя другими файловыми системами, смонтированными внутри /proc/), pseudo-ttys и файловая система разделяемой памяти.

Хотя следует признать, что этот формат не слишком понятен пользователям, анализ /proc/mounts — лучший способ абсолютно точно узнать, что смонтировано в системе Red Hat Enterprise Linux, так как эту информацию выдаёт само ядро. Другие способы в редких обстоятельствах могут быть неточны.

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

5.9.3.2.3. Выполнение команды df

Хотя /etc/mtab и /proc/mounts позволяют вам узнать, какие файловые системы смонтированы в данный момент, на этом возможности этих средств заканчиваются. Но чаще всего вас больше интересует один конкретный аспект смонтированных в данный момент файловых систем — объём свободного пространства в них.

Для этого мы можем использовать команду df. Ниже показан пример результатов команды df:

Filesystem           1k-blocks      Used Available Use% Mounted on
/dev/sda3              8428196   4280980   3719084  54% /
/dev/sda1               124427     18815     99188  16% /boot
/dev/sda4              8428196   4094232   3905832  52% /home
none                    644600         0    644600   0% /dev/shm

Сразу же становятся заметны несколько отличий от /etc/mtab и /proc/mount:

  • Выводится более понятный заголовок

  • За исключением файловой системы разделяемой памяти, показываются только дисковые файловые системы

  • Показывается общий размер, объёмы свободного и использованного пространства, и их процентное отношение

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

5.9.4. Сетевое хранилище в Red Hat Enterprise Linux

Для реализации сетевого хранилища в Red Hat Enterprise Linux применяются два основных подхода:

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

5.9.4.1. NFS

Сетевая файловая система (Network File System, NFS), как и следует из имени — файловая система, к которой можно обращаться по сети. В других файловых системах, устройство хранения должно быть непосредственно подключено к локальному компьютеру. Однако NFS этого не требует, что позволяет организовывать самые разные схемы, от серверов централизованной файловой системы до полностью бездисковых компьютерных систем.

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

Хотя это в основном технология Linux и UNIX, стоит отметить, что реализации клиентов NFS существуют и в других операционных системах, что делает NFS пригодной для совместного использования файлах на самых разных платформах.

Файловые системы, которые предоставляет клиентам NFS, определяются в файле конфигурации /etc/exports. За дополнительной информацией обратитесь к странице man exports(5) и Руководству по системному администрированию Red Hat Enterprise Linux.

5.9.4.2. SMB

Сетевой протокол, название которого расшифровывается как Server Message Block (Блок сообщений сервера), используется в различных операционных системах, выпускаемых Microsoft, в течение многих лет. SMB позволяет совместно использовать хранилище по сети. В современных реализациях в качестве нижележащего транспортного протокола чаще используется TCP/IP, а раньше использовался NetBEUI.

В Red Hat Enterprise Linux поддержку SMB обеспечивает сервер Samba. Информация о настройке Samba приводится в Руководстве по системному администрированию Red Hat Enterprise Linux.

5.9.5. Автоматическое монтирование файловых систем с помощью /etc/fstab

После установки системы Red Hat Enterprise Linux все разделы, определённые и/или созданные в процессе установки, будут монтироваться автоматически при загрузке системы. Однако, что произойдёт, если впоследствии добавить в систему дополнительные диски? Ничего, так как система не была настроена для автоматического монтирования. Однако это очень легко изменить.

Ответ лежит в файле /etc/fstab. Этот файл используется для определения файловых систем, монтируемых при загрузке системы, а также для задания значений по умолчанию для других файловых систем, которые могут время от времени монтироваться вручную. Ниже показан пример файла /etc/fstab:

LABEL=/              /                    ext3    defaults        1 1
/dev/sda1            /boot                ext3    defaults        1 2
/dev/cdrom           /mnt/cdrom           iso9660 noauto,owner,kudzu,ro 0 0
/dev/homedisk        /home                ext3    defaults        1 2
/dev/sda2            swap                 swap    defaults        0 0

Каждая строка представляет одну файловую систему и содержит следующие поля:

5.9.6. Добавление/удаление хранилища.

Хотя в основном действия, которые необходимо выполнить для добавления или удаления хранилища, зависят больше от аппаратного, чем от программного обеспечения, есть и некоторые аспекты, зависящие от вашей операционной среды. В этом разделе рассказывается о действиях, необходимых для добавления и удаления хранилища, связанных именно с Red Hat Enterprise Linux.

5.9.6.1. Добавление хранилища

Процесс добавления хранилища в систему Red Hat Enterprise Linux довольно прост. Ниже перечислены действия, имеющие особенности в Red Hat Enterprise Linux:

  • Разбиение на разделы

  • Форматирование раздела (разделов)

  • Обновление /etc/fstab

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

5.9.6.1.1. Разбиение на разделы

Закончив установку диска, нужно создать один или несколько разделов, чтобы пространство диска стало доступно Red Hat Enterprise Linux.

Это можно сделать несколькими способами:

  • С помощью утилиты командной строки fdisk

  • С помощью parted, другой программы командной строки

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

  1. Выберите новый диск (имя диска можно определить по соглашению об именовании устройств, описанному в разделе 5.9.1 Соглашения об именовании устройств). Применительно к fdisk, для этого имя устройства передаётся при запуске fdisk:

    fdisk /dev/hda
                    
  2. Просмотреть таблицу разделов диска, чтобы убедиться, в том, что вы на самом деле не ошиблись с выбором диска для разбиения. В нашем примере fdisk выводит таблицу разбиения по команде p:

    Command (m for help): p
    
    Disk /dev/hda: 255 heads, 63 sectors, 1244 cylinders
    Units = cylinders of 16065 * 512 bytes
    
       Device Boot    Start       End    Blocks   Id  System
    /dev/hda1   *         1        17    136521   83  Linux
    /dev/hda2            18        83    530145   82  Linux swap
    /dev/hda3            84       475   3148740   83  Linux
    /dev/hda4           476      1244   6176992+  83  Linux
                    
  3. Удалить все ненужные разделы, которые могут присутствовать на новом диске. В fdisk это выполняется с помощью команды d:

    Command (m for help): d
    Partition number (1-4): 1

    Эту операцию следует повторить для всех присутствующих на диске ненужных разделов.

  4. Создать новый раздел (разделы), убедившись в правильности указанного желаемого размера и типа раздела. В fdisk это операция разделяется на два этапа — сначала создаётся раздел (с помощью команды n):

    Command (m for help): n
    Command action
       e   extended
       p   primary partition (1-4)
    
    p 
    
    Partition number (1-4): 1
    First cylinder (1-767): 1
    Last cylinder or +size or +sizeM or +sizeK: +512M 
                    

    Затем определяется тип файловой системы (с помощью команды t):

    Command (m for help): t
    Partition number (1-4): 1
    Hex code (type L to list codes): 82
                    

    Тип раздела 82 обозначает раздел подкачки Linux.

  5. Сохранить изменения и выйти из программы разбиения диска. В fdisk это выполняется с помощью команды w:

    Command (m for help): w
                    

ПредупреждениеПредупреждение
 

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

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

5.9.6.1.2. Форматирование раздела (разделов)

Форматирование разделов в Red Hat Enterprise Linux выполняется с помощью программы mkfs. Однако на самом деле mkfs не осуществляет запись информации конкретной файловой системы на диск, вместо этого она передаёт управление одной из других программ, которые собственно создают файловую систему.

Сейчас самое время взглянуть на страницу man mkfs.<fstype>, посвящённую выбранной вами файловой системе. Например, обратитесь к странице man mkfs.ext3, чтобы просмотреть параметры, доступные вам при создании новой файловой системы ext3. Вообще говоря, программы mkfs.<fstype> предлагают разумные настройки по умолчанию, подходящие для большинства конфигураций, однако, следующие несколько параметров системные администраторы меняют довольно часто:

  • Метка тома для последующего использования в /etc/fstab

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

  • Нестандартный размер блока и/или число байт на дескриптор inode для конфигураций, которые должны поддерживать либо очень большие, либо очень маленькие файлы

  • Проверка на наличие сбойных секторов до форматирования.

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

После этого, всегда лучше дважды проверить сделанное, вручную смонтировав раздел (разделы), и убедившись в том, что всё в порядке. Когда всё будет проверено, переходите к настройке в Red Hat Enterprise Linux автоматического монтирования новых файловых систем при загрузке системы.

5.9.6.1.3. Обновление /etc/fstab

Как было отмечено в разделе 5.9.5 Автоматическое монтирование файловых систем с помощью /etc/fstab, чтобы новые файловые системы монтировались при загрузке системы, вы должны добавить необходимые строки в /etc/fstab. Внеся изменения в /etc/fstab, проверьте сделанное, выполнив «неполную» команду mount, то есть, указав только устройство или точку подключения. Достаточно команды, подобной следующим:

mount /home
mount /dev/hda3

(Замените /home или /dev/hda3 подходящим именем точки монтирования или устройства.)

Если соответствующая запись в /etc/fstab верна, mount извлечёт из неё недостающую информацию и завершит операцию монтирования.

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

5.9.6.2. Удаление хранилища

Процесс удаления хранилища из системы Red Hat Enterprise Linux довольно прост. Ниже перечислены действия, имеющие особенности в Red Hat Enterprise Linux:

  • Удаление разделов диска из /etc/fstab

  • Размонтирование активных разделов диска

  • Удаление содержимого диска

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

5.9.6.2.1. Удаление разделов диска из /etc/fstab

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

  • Сравнивая путь к точке подключения раздела с каталогами во втором столбце /etc/fstab

  • Сравнивая имя файла устройства с именами файлов в первом столбце /etc/fstab

ПодсказкаПодсказка
 

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

5.9.6.2.2. Прекращение доступа с помощью umount

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

Для того, чтобы размонтировать раздел с помощью команды umount, вы должны указать имя файла устройства или точку монтирования раздела:

umount /dev/hda2
umount /home
            

Раздел может быть размонтирован, только если он в данный момент не используется. Если раздел не может быть размонтирован на обычном уровне выполнения, загрузитесь в режиме восстановления и удалите запись раздела из /etc/fstab.

Отключая раздел подкачки с помощью swapoff, вы должны указать имя файла устройства, представляющего раздел подкачки:

swapoff /dev/hda4
            

Если отключить подкачку на разделе подкачки с помощью swapoff не удаётся, загрузитесь в режиме восстановления и удалите запись раздела из файла /etc/fstab.

5.9.6.2.3. Удаление содержимого диска

Удаление содержимого диска в Red Hat Enterprise Linux — очень простая процедура.

Размонтировав все разделы диска, выполните следующую команду (от имени root):

badblocks -ws <device-name>

Здесь <device-name> — это имя файла диска (без номера раздела), информацию с которого вы хотите уничтожить. Например, укажите /dev/hdb для второго диска ATA.

Ниже показано, что выводит команда badblocks в процессе работы:

Writing pattern 0xaaaaaaaa: done                        
Reading and comparing: done                        
Writing pattern 0x55555555: done                        
Reading and comparing: done                        
Writing pattern 0xffffffff: done                        
Reading and comparing: done                        
Writing pattern 0x00000000: done                        
Reading and comparing: done                        

Учтите, что badblocks на самом деле записывает в каждый сектор диска по очереди четыре разных комбинации битов. На больших дисках этот процесс может выполняться очень долго — часто несколько часов.

ВажноВажно
 

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

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

5.9.7. Реализация дисковых квот

Red Hat Enterprise Linux позволяет отслеживать использование дискового пространства на уровне пользователей или групп с помощью дисковых квот. В следующем разделе представлен обзор возможностей дисковых квот в Red Hat Enterprise Linux.

5.9.7.1. Общая информация о дисковых квотах

Дисковые квоты в Red Hat Enterprise Linux имеют следующие свойства:

  • Реализация на уровне файловой системы

  • Учёт пространства в разрезе пользователей

  • Учёт пространства в разрезе групп

  • Отслеживание использования блоков диска

  • Отслеживание использования inode

  • Жёсткие пределы

  • Мягкие пределы

  • Периоды «вежливости»

Все эти свойства квот подробно рассматриваются в следующих разделах.

5.9.7.1.1. Реализация на уровне файловой системы

Дисковые квоты в Red Hat Enterprise Linux можно использовать на уровне файловых систем. Другими словами, дисковые квоты можно включать или отключать в разных файловых системах по отдельности.

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

5.9.7.1.2. Учёт пространства в разрезе пользователей

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

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

5.9.7.1.3. Учёт пространства в разрезе групп

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

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

5.9.7.1.4. Отслеживание использования блоков диска

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

5.9.7.1.5. Отслеживание использования inode

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

5.9.7.1.6. Жёсткие пределы

Жёсткий предел — это абсолютное максимальное число блоков диска (или inode), которое может временно использоваться пользователем (или группой). Использовать хоть бы на один блок или inode свыше жёсткого предела не удастся.

5.9.7.1.7. Мягкие пределы

Мягкий предел — это максимальное число блоков диска (или inode), которое может использоваться пользователем (или группой) постоянно.

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

5.9.7.1.8. Периоды «вежливости»

Как было сказано ранее, использование диска сверх мягкого предела является временным. Периодом «вежливости» называется время, в течение которого пользователь (или группа) может в использовании диска превысить мягкий предел и приблизиться к жёсткому.

Если пользователь продолжает использовать больше, чем позволяет мягкий предел, и период «вежливости» истекает, увеличение использования не будет разрешаться, пока пользователь (или группа) не уменьшит использование до мягкого предела.

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

5.9.7.2. Включение дисковых квот

ЗамечаниеЗамечание
 

Следующие разделы предлагают краткий обзор действий, которые необходимо выполнить, чтобы включить дисковые квоты в Red Hat Enterprise Linux. Чтобы глубже изучить эту тему, обратитесь к главе, посвящённой дисковым квотам, в Руководстве по системному администрированию Red Hat Enterprise Linux.

Чтобы использовать дисковые квоты, вы должны сначала включить их. Этот процесс включает следующие шаги:

  1. Изменение /etc/fstab

  2. Размонтирование файловых систем

  3. Запуск quotacheck

  4. Назначение квот

Файл /etc/fstab управляет монтированием файловых систем в Red Hat Enterprise Linux. Так как дисковые квоты реализованы на уровне файловой системы, для включения дисковых квот в этот файл нужно добавить два параметра — usrquota и grpquota.

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

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

Затем с помощью команды quotacheck создаются файлы дисковых квот, в которые собирается информация о текущем использовании уже существующих файлов. Файлы дисковых квот (aquota.user (для квот пользователей) и aquota.group (для квот групп)) содержат необходимую связанную с квотами информацию и располагаются в корневом каталоге файловой системы.

Для назначения дисковых квот применяется команда edquota.

Эта вспомогательная программа показывает в текстовом редакторе информацию о квотах для пользователя или группы, указанных в параметрах edquota. Например:

 Disk quotas for user matt (uid 500):
  Filesystem      blocks       soft       hard     inodes     soft     hard
  /dev/md3       6618000          0          0      17397        0        0

Это показывает, что пользователь matt в данные момент использует более 6 Гбайт дискового пространства и свыше 17 000 дескрипторов inode. В данный момент мягкие и жёсткие пределы для блоков диска и дескрипторов inode не заданы, а значит, никаких ограничений на использование дискового пространства пользователем нет...

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

Disk quotas for user matt (uid 500):
  Filesystem      blocks       soft       hard     inodes     soft     hard
  /dev/md3       6618000    6900000    7000000      17397        0        0

В этом примере пользователю назначается мягкий предел 6,9 Гбайт, а жёсткий — 7 Гбайт. Никакие ограничения на число дескрипторов inode для этого пользователя не задаются.

ПодсказкаПодсказка
 

С помощью программы edquota также можно задать период «вежливости» файловой системы, передав ей параметр -t.

5.9.7.3. Управление дисковыми квотами

Поддержка дисковых квот в Red Hat Enterprise Linux не требует больших усилий. По сути, всё, что требуется, это:

  • Регулярно формировать отчёты об использовании диска (и проводить работу с пользователями, которые не могут эффективно управлять выделенным им дисковым пространством)

  • Поддерживать точность дисковых квот

Для создания отчёта об использовании диска необходимо запустить утилиту repquota. Выполнив команду repquota /home, вы получите следующее:

*** Report for user quotas on device /dev/md3
Block grace time: 7days; Inode grace time: 7days
                        Block limits                File limits
User            used    soft    hard  grace    used  soft  hard  grace
----------------------------------------------------------------------
root      --   32836       0       0              4     0     0       
matt      -- 6618000 6900000 7000000          17397     0     0       

Дополнительную информацию о repquota можно найти в Руководстве по системному администрированию Red Hat Enterprise Linux, в главе, посвящённой дисковым квотам.

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

В этом случае команда quotacheck используется подобно тому, как она использовалась вначале при включении квот.

Ниже приведён пример команды quotacheck:

quotacheck -avug

Проще всего регулярно запускать quotacheck можно с помощью cron. Многие системные администраторы запускают quotacheck раз в неделю, хотя может иметь смысл более длинный или короткий интервал, в зависимости от ваших обстоятельств.

5.9.8. Создание RAID-массивов

Помимо поддержки аппаратных RAID-массивов, Red Hat Enterprise Linux также поддерживает программные RAID. Создать программные RAID-массивы можно двумя способами:

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

5.9.8.1. В процессе установки Red Hat Enterprise Linux

В процессе обычной установки Red Hat Enterprise Linux можно создать RAID-массивы. Это выполняется на этапе разбиения диски на разделы.

Для начала вы должны вручную разбить ваш диск на разделы с помощью Disk Druid. Сначала вы должны создать новый раздел, имеющий тип «software RAID». Затем выбрать диски, которые вы хотите включить в RAID-массив, в поле Доступные устройства (Allowable Drives). Выберите желаемый размер и определите, должен ли этот раздел стать основным.

Создав все разделы, требуемые для RAID-массивов, которые вы хотите создать, воспользуйтесь кнопкой RAID, чтобы перейти к созданию этих массивов. Затем перед вами появится диалоговое окно, в котором вы можете выбрать точку подключения массива, тип файловой системы, имя устройства RAID, уровень RAID, и разделы «программного RAID», из которых будет собран этот массив.

После создания всех нужных массивов процесс установки продолжается обычным образом.

ПодсказкаПодсказка
 

За дополнительной информацией о создании программных RAID-массивов в процессе установки Red Hat Enterprise Linux обратитесь к Руководству по системному администрированию Red Hat Enterprise Linux.

5.9.8.2. После установки Red Hat Enterprise Linux

Создать RAID-массив после установки Red Hat Enterprise Linux немного сложнее. Как и при добавлении дискового хранилища любого типа, сначала необходимо установить и правильно настроить необходимое оборудование.

Разбиение на разделы для RAID немного отличается от разбиения одного отдельного диска. Вместо типа раздела «Linux» (тип 83) или «подкачки Linux» (тип 82), все разделы, которые станут частью RAID-массива, должны иметь тип «Linux raid auto» (тип FD).

Затем необходимо создать файл /etc/raidtab. Этот файл отвечает за конфигурацию всех RAID-массивов в вашей системе. Формат файла (описанный на странице man raidtab(5)) довольно прост. Вот, например, как выглядит /etc/raidtab для массива RAID-1:

raiddev             /dev/md0
raid-level                  1
nr-raid-disks               2
chunk-size                  64k
persistent-superblock       1
nr-spare-disks              0
    device          /dev/hda2
    raid-disk     0
    device          /dev/hdc2
    raid-disk     1

Наиболее интересны в этом файле следующие разделы:

  • raiddev — показывает имя файла устройства для RAID-массива [2]

  • raid-level — Определяет уровень RAID данного RAID-массива

  • nr-raid-disks — Указывает, сколько разделов физического диска образуют этот массив

  • nr-spare-disks — Программные RAID-массивы в Red Hat Enterprise Linux позволяют определять один или несколько резервных разделов диска, эти разделы могут автоматически заменять отказавшие диски

  • device, raid-disk — В совокупности эти параметры определяют разделы физического диска, составляющие этот RAID-массив

Затем нужно собственно создать RAID-массив. Это осуществляется с помощью программы mkraid. Для приведённого примера файла /etc/raidtab, мы бы создали RAID-массив /dev/md0 следующей командой:

mkraid /dev/md0

Теперь RAID-массив /dev/md0 можно форматировать и монтировать. Этот этап ничем не отличается от форматирования и монтирования обычного диска.

5.9.9. Повседневное управление RAID-массивами

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

5.9.9.1. Проверка состояния массива с помощью /proc/mdstat

Проверить состояние всех RAID-массивов в конкретной системе проще всего с помощью файла /proc/mdstat. Ниже показан пример файла mdstat (просмотреть его можно, выполнив cat /proc/mdstat):

Personalities : [raid1] 
read_ahead 1024 sectors
md1 : active raid1 hda3[0] hdc3[1]
      522048 blocks [2/2] [UU]
      
md0 : active raid1 hda2[0] hdc2[1]
      4192896 blocks [2/2] [UU]
      
md2 : active raid1 hda1[0] hdc1[1]
      128384 blocks [2/2] [UU]
      
unused devices: <none>

В этой системе три RAID-массива (все RAID-1). Для каждого RAID-массива в /proc/mdstat отведён отдельный раздел, который содержит следующие сведения:

  • Имя устройства RAID-массива (не включающее /dev/)

  • Состояние RAID-массива

  • Уровень RAID-массива

  • Имена физических разделов, составляющих массив в данный момент (за которыми указывается номер единицы массива)

  • Размер массива

  • Число настроенных устройств и число работающих устройств в массиве

  • Состояние каждого настроенного в массиве устройства (U означает, что устройство работает, а _ означает, что устройство отказало)

5.9.9.2. Перестраивание RAID-массива с помощью raidhotadd

Если /proc/mdstat показывает, что в одном из RAID-массивов есть проблема, этот массив следует перестроить с помощью вспомогательной утилиты raidhotadd. Для этого необходимо выполнить следующие действия:

  1. Определить, на каком диске находится отказавший раздел

  2. Исправить проблему, вызвавшую сбой (скорее всего для этого нужно заменить диск)

  3. Разбить новый диск так, чтобы его разделы были идентичны разделам на других дисках массива

  4. Выполнить следующую команду:

    raidhotadd <raid-device> <disk-partition>
  5. Наблюдать за процессом перестраивания в файле /proc/mdstat

ПодсказкаПодсказка
 

Чтобы посмотреть, как выполняется перестраивание, можно использовать следующую команду:

watch -n1 cat /proc/mdstat

Эта команда выводит содержимое файла /proc/mdstat, обновляя его на экране каждую секунду.

5.9.10. Управление логическими томами

Red Hat Enterprise Linux поддерживает LVM. LVM можно настроить в процессе установки Red Hat Enterprise Linux или после её завершения. LVM в Red Hat Enterprise Linux поддерживает группирование физических хранилищ, изменение размера логических томов и перенос данных с определённого физического тома.

За дополнительной информацией о LVM обратитесь к Руководству по системному администрированию Red Hat Enterprise Linux.

Замечания

[1]

За дополнительными сведениями обратитесь к разделу 5.9.5 Автоматическое монтирование файловых систем с помощью /etc/fstab.

[2]

Заметьте, что, так как RAID-массив составляется из разделов диска, имя файла устройства RAID-массива не несёт в себе информацию уровня разделов.