Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

GFS 2

Red Hat Enterprise Linux 5

Red Hat GFS 2

Редакция 3

Аннотация

Данный документ содержит информацию об установке, конфигурации и поддержке работоспособности глобальной файловой системы Red Hat второй версии (GFS2, Global File System 2).

Введение

Данный документ предоставляет информацию о настройке и поддержке работы глобальной файловой системы Red Hat версии 2 (GFS2, Red Hat Global File System 2). Red Hat GFS2 может выполняться на единственном узле как составляющая конфигурации кластера в наборе кластеров Red Hat. Информацию о наборе кластеров можно найти в документах Обзор Red Hat Cluster Suite и Конфигурация и управление кластером Red Hat.
HTML и PDF-версии официальных руководств по Red Hat Enterprise Linux можно найти на сайте http://www.redhat.com/docs/.

1. Целевая аудитория

Этот документ предназначен для администраторов систем Linux, имеющих навыки:
  • Администрирования систем Linux, включая конфигурацию ядра
  • Установки и конфигурации сетей с разделяемым хранилищем, таких как Fibre Channel SAN

3. Ждем ваших отзывов

Если вы обнаружили ошибку или опечатку или у вас есть предложения по усовершенствованию данного документа, мы бы хотели услышать об этом. Отправьте сообщение в систему регистрации ошибок Bugzilla (http://bugzilla.redhat.com/bugzilla/) относительно компонента rh-cs.
Be sure to mention the manual's identifier:
rh-gfs2(EN)-5 (2009-01-05T15:15)
By mentioning this manual's identifier, we know exactly which version of the guide you have.
Если у вас есть предложения по улучшению документации, попытайтесь описать их как можно более детально. Если вы нашли ошибку, пожалуйста, укажите номер раздела и часть окружающего текста, чтобы мы смогли быстрее ее найти.

Глава 1. Обзор GFS2

Файловая система (ФС) Red Hat GFS2 напрямую взаимодействует с интерфейсом файловой системы ядра Linux (слой VFS). GFS2 может быть развернута в отдельной системе как составляющая конфигурации кластера. В кластерной файловой системе GFS2 использует распределенные метаданные и многочисленные журналы.
A GFS2 file system can be created on an LVM logical volume. A logical volume is an aggregation of underlying block devices that appears as a single logical device. For information on the LVM volume manager, see the LVM Administrator's Guide.
В основу GFS2 положена 64-битная архитектура, что теоретически позволяет создать файловую систему размером 8 Эбайт. Но максимально подерживаемый размер файловой системы GFS2 на сегодняшний день составляет 25 Тбайт. Если требуется размер, превышающий 25 Тбайт, обратитесь к вашему консультанту Red Hat.
При определении размера вашей файловой системе сначала обдумайте, как вы будете восстанавливать данные в случае ее сбоя. Например, выполнение команды fsck в достаточно большой файловой системе может занять продолжительное время, при этом используя большой объем памяти. В случае сбоя диска время восстановления зависит от скорости резервного носителя.
Узлы Red Hat GFS2 можно настроить с помощью утилит конфигурации и управления Red Hat Cluster Suite. Red Hat GFS2 обеспечивает совместный доступ к данным для узлов в составе кластера Red Hat, при этом представление файловой системы одинаково для всех узлов GFS2. Это позволяет процессам на различных узлах использовать файлы GFS2 аналогично тому, как процессы на одном узле совместно используют файлы в локальной файловой системе. Конфигурация и управление кластером Red Hat содержит более подробную информацию.
LVM logical volumes in a Red Hat Cluster suite are managed with CLVM, which is a cluster-wide implementation of LVM, enabled by the CLVM daemon, clvmd running in a Red Hat Cluster Suite cluster. The daemon makes it possible to use LVM2 to manage logical volumes across a cluster, allowing all nodes in the cluster to share the logical volumes. to any directory on your system. For information on the LVM volume manager, see the LVM Administrator's Guide.
Модуль ядра gfs2.ko отвечает за реализацию файловой системы GFS2. Он загружается на кластерные узлы GFS2.
Эта глава содержит основную информацию о GFS2 и рассматривает следующее:

1.1. Прежде чем приступить к настройке GFS2

Прежде чем приступить к установке и настройке GFS2, обратите внимание на следующие ключевые характеристики ваших файловых систем GFS2:
Узлы GFS2
Определите, какие узлы в составе Red Hat Cluster Suite будут монтировать файловые системы GFS2.
Число файловых систем
Сколько файловых систем GFS2 вы сначала создадите? Файловые системы также могут быть добавлены позднее.
Имя файловой системы
Для каждой файловой системы определите имя, которое должно быть уникально для всех файловых систем lock_dlm в пределах кластера и для всех файловых систем (lock_dlm и lock_nolock) на каждом узле. Имя ФС должно следовать формату переменной параметра. Например, в этом документе в качестве примеров используются имена mydata1 и mydata2.
Журналы
Determine the number of journals for your GFS2 file systems. One journal is required for each node that mounts a GFS2 file system. GFS2 allows you to add journals dynamically at a later point as additional servers mount a filesystem. For information on adding journals to a GFS2 file system, see Раздел 3.6, «Добавление журналов в файловую систему».
Узлы серверов GNBD
Если вы используете GNBD, сначала стоит определить число требуемых узлов серверов. Обратите внимание на имя узла и IP-адрес для каждого узла — они понадобятся при настройке клиентов GNBD. Документ Использование GNBD с глобальной файловой системой содержит описание использования GNBD с GFS2.
Устройства хранения и разделы
Определите устройства хранения и разделы, которые будут использоваться для создания логических томов в файловых системах (с помощью CLVM).

Примечание

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

1.2. Отличия GFS2 от GFS

В этой секции перечислены преимущества и изменения, которые предлагает GFS2.
Migrating from GFS to GFS2 requires that you convert your GFS file systems to GFS2 with the gfs2_convert utility. For information on the gfs2_convert utility, see Приложение A, Преобразование файловой системы GFS в GFS2.

1.2.1. Имена команд GFS2

In general, the functionality of GFS2 is identical to GFS. The names of the file system commands, however, specify GFS2 instead of GFS. Таблица 1.1, «Команды GFS и GFS2» shows the equivalent GFS and GFS2 commands.

Таблица 1.1. Команды GFS и GFS2

Команда GFS Команда GFS2 Описание
mount mount Монтирует файловую систему. Система может определить тип монтируемой файловой системы (GFS или GFS2). Информация о параметрах монтирования для GFS2 может быть найдена на странице помощи gfs2_mount(8).
umount umount Демонтирует файловую систему.
fsck
gfs_fsck
fsck
fsck.gfs2
Проверяет и исправляет несмонтированную файловую систему.
gfs_grow gfs2_grow Увеличивает размер файловой системы.
gfs_jadd gfs2_jadd Добавляет журнал в смонтированную файловую систему.
gfs_mkfs
mkfs -t gfs
mkfs.gfs2
mkfs -t gfs2
Создает файловую систему на накопителе.
gfs_quota gfs2_quota Управляет квотами на выделяемое пространство в смонтированной файловой системе.
gfs_tool gfs2_tool Выполняет настройку и сбор информации о файловой системе.
gfs_edit gfs2_edit Отображает, выводит на печать или изменяет внутреннюю структуру файловых систем. Команда gfs2_edit может использоваться для обоих типов файловых систем.
Полный список поддерживаемых опций команд GFS2 можно найти на страницах помощи соответствующих команд.

1.2.2. Другие различия GFS и GFS2

This section summarizes the additional differences in GFS and GFS2 administration that are not described in Раздел 1.2.1, «Имена команд GFS2».

1.2.2.1. Контексто зависимые имена путей

GFS2 file systems do not provide support for context-dependent path names, which allow you to create symbolic links that point to variable destination files or directories. For this functionality in GFS2, you can use the bind option of the mount command. For information on managing pathnames in GFS2, see Раздел 3.11, «Монтирование связей и контекстно зависимые имена путей».

1.2.2.2. Модуль gfs2.ko

gfs.ko — модуль ядра, отвечающий за реализацию файловой системы GFS. gfs2.ko — модуль ядра, отвечающий за реализацию GFS2.

1.2.2.3. Использование квот в GFS2

In GFS2 file systems, quota enforcement is disabled by default and must be explicitly enabled. To enable and disable quotas for GFS2 file systems, you use the quota=on|off|account option for the mount command. For information on enabling and disabling quota enforcement, see Раздел 3.4.4, «Включение и отключение квот».

1.2.2.4. Журналирование данных

GFS2 file systems support the use of the chattr command to set and clear the j flag on a file or directory. Setting the +j flag on a file enables data journaling on that file. Setting the +j flag on a directory means "inherit jdata", which indicates that all files and directories subsequently created in that directory are journaled. Using the chattr command is the preferred way to enable and disable data journaling on a file.

1.2.2.5. Динамическое добавление журналов

In GFS2 file systems, journals are plain (though hidden) files instead of embedded metadata. This means that journals can be dynamically added as additional servers mount a filesystem. For information on adding journals to a GFS2 file system, see Раздел 3.6, «Добавление журналов в файловую систему».

1.2.2.6. удален параметр atime_quantum

GFS2 не поддерживает параметр atime_quantum, который можно использовать в GFS для определения частоты обновлений atime. Вместо него GFS2 использует опции монтирования relatime и noatime. В частности, указание опции relatime аналогично установке параметра atime_quantum в GFS.

1.2.2.7. Параметр data= команды mount

При монтировании файловых систем GFS2 можно использовать параметры data=ordered и data=writeback команды mount. data=ordered приведет к переносу измененных в ходе транзакции данных пользователя на диск, прежде чем транзакция будет сохранена на диск. Это позволит избежать появления в файле неинициализированных блоков в случае сбоя. Если указать data=writeback, то данные пользователя будут записываться на диск в любое время, что позволит ускорить скорость работы в некоторых случаях, не не гарантирует постоянства. По умолчанию используется режим ordered.

1.2.2.8. Команда gfs2_tool

gfs2_tool для GFS2 поддерживает набор параметров, отличный от набора, поддерживаемого gfs_tool для GFS, в том числе:
  • gfs2_tool поддерживает параметр journals, который выводит информацию о настроенном журнале и общее число журналов в системе.
  • gfs2_tool не поддерживает флаг counters, который gfs_tool использует для отображения статистики GFS.
  • The gfs2_tool command does not support the inherit_jdata flag. To flag a directory as "inherit jdata", you can set the jdata flag on the directory or you can use the chattr command to set the +j flag on the directory. Using the chattr command is the preferred way to enable and disable data journaling on a file.

1.2.2.9. Команда gfs2_edit

gfs2_edit для GFS2 поддерживает набор параметров, отличный от набора, поддерживаемого командой gfs_edit для GFS.

1.2.3. Улучшенная производительность GFS2

Некоторые возможности GFS2 аналогичны GFS, но концентрируются на улучшении производительности файловой системы.
Основные улучшения производительности GFS2:
  • Улучшена производительность при интенсивном использовании единственного каталога.
  • Более быстрые операции синхронного ввода/ вывода.
  • Более быстрое кэшированное чтение (нет издержек блокирования).
  • Более быстрый ввод/ вывод для предопределенных файлов (при условии, что размер блоков ввода/ вывода достаточно большой, например, 4 Мб).
  • Более быстрые операции ввода/ вывода в целом.
  • Команда df выполняется намного быстрее вследствие более быстрых вызовов statfs.
  • Режим atime усовершенствован с целью сокращения числа операций ввода и вывода, генерируемых atime, по сравнению с числом, генерируемым в GFS.
GFS2 обеспечивает более широкую поддержку следующих аспектов:
  • GFS2 является составляющим компонентом официально поддерживаемого ядра (в составе 2.6.19).
  • GFS2 поддерживает следующие возможности:
    • Расширенные атрибуты SELinux.
    • Настройку атрибутов lsattr() и chattr() с помощью стандартных вызовов ioctl().
    • Метки времени с точностью до наносекунд.
Эффективность файловой системы GFS2:
  • GFS2 использует меньше памяти ядра.
  • GFS2 не требует чисел генерации метаданных.
    Выделение метаданных GFS2 не требует операций чтения. Управление копиями блоков метаданных в разных журналах осуществляется за счет исключения блоков из журнала перед отменой блокирования.
  • GFS2 включает упрощенный менеджер журналирования, не имеющий отношения к другим inodes или изменениям квот.
  • Команды gfs2_grow и gfs2_jadd используют блокирование для предотвращения выполнения нескольких образцов в одно и то же время.
  • Код ACL упрощен для вызовов, подобных creat() и mkdir().
  • Несвязанные inodes, изменения квот и изменения statfs принимаются во внимание без необходимости повторного монтирования журнала.

Глава 2. Начало работы

В этой главе рассматриваются способы исходной настройки GFS2, в том числе:

2.1. Предварительные условия

Before setting up Red Hat GFS2, make sure that you have noted the key characteristics of the GFS2 nodes (refer to Раздел 1.1, «Прежде чем приступить к настройке GFS2»). Also, make sure that the clocks on the GFS2 nodes are synchronized. It is recommended that you use the Network Time Protocol (NTP) software provided with your Red Hat Enterprise Linux distribution.

Примечание

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

2.2. Исходные задачи настройки

Исходная настройка GFS2 включает следующие шаги:
  1. Настройка логических томов.
  2. Создание файловой системы GFS2.
  3. Монтирование файловых систем.
Выполните эти шаги для выполнения исходной настройки GFS2.
  1. С помощью LVM создайте логический том для каждой файловой системы GFS2.

    Примечание

    Для автоматизации процесса активации и деактивации логических томов можно использовать сценарии init.d, включенные в Red Hat Cluster Suite. Настройка и управление кластером Red Hat содержит подробную информацию о сценариях init.d.
  2. Create GFS2 file systems on logical volumes created in Step 1. Choose a unique name for each file system. For more information about creating a GFS2 file system, refer to Раздел 3.1, «Создание файловой системы».
    Допустимый формат команды создания кластерной файловой системы GFS2:
    mkfs.gfs2 -p lock_dlm -t ClusterName:FSName -j NumberJournals BlockDevice
    mkfs -t gfs2 -p lock_dlm -t LockTableName -j NumberJournals BlockDevice
    Формат команды создания локальной файловой системы GFS2:
    mkfs.gfs2 -p lock_nolock -j NumberJournals BlockDevice
    mkfs -t gfs2 -p lock_nolock -j NumberJournals BlockDevice
    For more information on creating a GFS2 file system, see Раздел 3.1, «Создание файловой системы».
  3. At each node, mount the GFS2 file systems. For more information about mounting a GFS2 file system, see Раздел 3.2, «Монтирование файловой системы».
    Формат команды:
    mount BlockDevice MountPoint
    mount -o acl BlockDevice MountPoint
    Опция -o acl команды mount позволяет управлять списками ACL. Если файловая система смонтирована без использования опции -o acl, то пользователи смогут просматривать списки ACL (с помощью команды getfacl), но не смогут их изменять (с помощью команды setfacl).

    Примечание

    Для автоматизации процесса монтирования и демонтирования файловых систем GFS2 можно использовать сценарии init.d, включенные в Red Hat Cluster Suite. Конфигурация и управление кластером Red Hat содержит подробную информацию о сценариях init.d.

Глава 3. Управление GFS2

В этой главе рассматриваются задачи управления GFS2 и соответствующие команды. В том числе:

3.1. Создание файловой системы

Создание файловой системы GFS2 осуществляется с помощью команды mkfs.gfs2. При этом файловая система будет создана в активном томе LVM. Для исполнения mkfs.gfs2 необходима следующая информация:
  • Протокол блокирования/ имя модуля (для кластера используется протокол блокирования lock_dlm)
  • Имя кластера (если файловая система создается в процессе конфигурации кластера)
  • Число журналов (для каждого узла, который будет монтировать новую файловую систему, должен быть создан журнал)
Для создания GFS можно выполнить mkfs.gfs2 напрямую или mkfs с параметром -t, который определяет тип файловой системы (в нашем случае gfs2), с последующими параметрами настройки GFS2.

3.1.1. Формат

Допустимый формат:
mkfs.gfs2 -p LockProtoName -t LockTableName -j NumberJournals BlockDevice
mkfs -t gfs2 -p LockProtoName -t LockTableName -j NumberJournals BlockDevice
Допустимый формат команд создания локальной файловой системы GFS2:
mkfs.gfs2 -p LockProtoName -j NumberJournals BlockDevice
mkfs -t gfs2 -p LockProtoName -j NumberJournals BlockDevice

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

Необходимо понимать назначение параметров протокол_блокирования и таблица_блокирования. Их некорректное использование может привести к порче файловой системы или пространства блокирования.
LockProtoName
Определяет имя блокирующего протокола. Для кластера используется lock_dlm.
LockTableName
Этот параметр используется файловой системой GFS2 при конфигурации кластера и определяется в формате имя_кластера:имя_ФС.
  • имя_кластера определяет имя кластера Red Hat, для которого создается GFS2.
  • имя_ФС представляет собой имя файловой системы длиной от 1 до 16 символов, которое должно быть уникально для всех ФС lock_dlm в пределах кластера и для всех ФС (lock_dlm и lock_nolock) на каждом узле.
Number
Specifies the number of journals to be created by the mkfs.gfs2 command. One journal is required for each node that mounts the file system. For GFS2 file systems, more journals can be added later without growing the filesystem, as described in Раздел 3.6, «Добавление журналов в файловую систему».
BlockDevice
Логический или физический том.

3.1.2. Примеры

В этом примере файловая система использует блокирующий протокол lock_dlm. Кластер имеет имя alpha, а файловая система — mydata1. Файловая система создана на /dev/vg01/lvol0 и содержит восемь журналов.
mkfs.gfs2 -p lock_dlm -t alpha:mydata1 -j 8 /dev/vg01/lvol0
mkfs -t gfs2 -p lock_dlm -t alpha:mydata1 -j 8 /dev/vg01/lvol0
В этом примере создается файловая система mydata2 в кластере alpha. Она содержит 8 журналов и создана на устройстве /dev/vg01/lvol1.
mkfs.gfs2 -p lock_dlm -t alpha:mydata2 -j 8 /dev/vg01/lvol1
mkfs -t gfs2 -p lock_dlm -t alpha:mydata2 -j 8 /dev/vg01/lvol1

3.1.3. Полный список параметров

Таблица 3.1, «Опции команды mkfs.gfs2» describes the mkfs.gfs2 command options (flags and parameters).

Таблица 3.1. Опции команды mkfs.gfs2

Флаг Параметр Описание
-c Megabytes Sets the initial size of each journal's quota change file to Megabytes.
-D Включает вывод отладочной информации.
-h Помощь. Отображает доступные опции.
-J MegaBytes Определяет размер журнала (в мегабайтах). По умолчанию используется 128 Мб. Минимально допустимый размер — 8 Мб.
-j Number Определяет число журналов, которые создаст команда mkfs.gfs2. Для каждого узла, монтирующего файловую систему, необходимо создать один журнал. Если эта опция не задана, будет создан всего один журнал. Для файловых систем GFS2 дополнительные журналы могут быть добавлены позднее без необходимости наращивания файловой системы.
-O Отменяет запрос подтверждения перед записью файловой системы.
-p LockProtoName
Определяет имя блокирующего протокола. Допустимые значения:
lock_dlm — стандартный блокирующий модуль, обязателен для кластерной файловой системы.
lock_nolock — применяется, когда GFS2 используется в качестве локальной файловой системы (только на одном узле).
-q Не осуществляет вывод на экран.
-r MegaBytes Определяет размер групп ресурсов (в мегабайтах). Минимально допустимый размер — 32 Мб, максимальный размер — 2048 Мб. Большой размер может увеличить производительность в системах с очень большими файлами. Если эта опция не указана, mkfs.gfs2 выберет размер группы в зависимости от размера файловой системы. Так, размер групп для файловых систем среднего размера будет составлять 256 Мб.
-t LockTableName
Уникальный идентификатор, определяющий поле блокирования в таблице. Используется только протоколом lock_dlm, lock_nolock этот параметр не утилизирует.
Этот параметр следует формату ИмяКластера:ИмяФС.
ИмяКластера представляет собой имя кластера Red Hat, для которого создается файловая система GFS2. Только составляющие компоненты кластера могут ее использовать. Имя кластера определяется в файле /etc/cluster/cluster.conf с помощью утилиты конфигурации кластера и может быть отображено в интерфейсе управления кластером Red Hat Cluster Suite с помощью утилиты статуса кластера.
ИмяФС представляет собой имя файловой системы длиной от 1 до 16 символов, которое должно быть уникально в пределах кластера.
-u MegaBytes Specifies the initial size of each journal's unlinked tag file.
-V Отображает информацию о версии команды.

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

Before you can mount a GFS2 file system, the file system must exist (refer to Раздел 3.1, «Создание файловой системы»), the volume where the file system exists must be activated, and the supporting clustering and locking systems must be started (refer to Configuring and Managing a Red Hat Cluster). After those requirements have been met, you can mount the GFS2 file system as you would any Linux file system.
Чтобы манипулировать списками ACL, смонтируйте файловую систему с опцией -o acl. В противном случае пользователи будут иметь возможность просмотра списков ACL (с помощью getfacl), но не смогут их изменять (с помощью setfacl).

3.2.1. Формат

Mounting Without ACL Manipulation
mount BlockDevice MountPoint
Mounting With ACL Manipulation
mount -o acl BlockDevice MountPoint
-o acl
Параметр GFS2 для манипулирования списками ACL.
BlockDevice
Задает блочное устройство, на котором расположена файловая система GFS2.
MountPoint
Определяет каталог, в который монтируется GFS2.

3.2.2. Пример

В этом примере GFS2 на устройстве /dev/vg01/lvol0 будет смонтирована в каталог /mygfs2.
mount /dev/vg01/lvol0 /mygfs2

3.2.3. Полная форма

mount BlockDevice MountPoint -o option
The -o option argument consists of GFS2-specific options (refer to Таблица 3.2, «Опции монтирования GFS2») or acceptable standard Linux mount -o options, or a combination of both. Multiple option parameters are separated by a comma and no spaces.

Примечание

mount является системной командой Linux, стандартные опции которой также можно использовать (например, -r) вместе с опциями GFS2. Информация об опциях mount может быть найдена на странице помощи mount.
Таблица 3.2, «Опции монтирования GFS2» describes the available GFS2-specific -o option values that can be passed to GFS2 at mount time.

Таблица 3.2. Опции монтирования GFS2

Опция Описание
acl Позволяет манипулировать списками ACL. Если файловая система смонтирована без опции acl, то пользователи будут иметь возможность просмотра списков ACL (с помощью getfacl), но не смогут их изменять (с помощью setfacl).
data=[ordered|writeback] Если задан параметр data=ordered, то данные пользователя будут сохранены на диск, прежде чем результаты транзакции будут записаны на диск, что позволит избежать отображения неинициализированных блоков в файле в случае аварийного завершения работы. При указании data=writeback данные пользователя будут записываться на диск в любое время, что позволит ускорить скорость работы в некоторых случаях, но не гарантирует постоянства, которое гарантирует режим ordered. По умолчанию используется режим ordered.
ignore_local_fs
Осторожно! Эта опция НЕ должна использоваться, если к файловым системам GFS2 открыт совместный доступ.
Заставляет GFS2 рассматривать файловую систему как систему с несколькими узлами. lock_nolock по умолчанию автоматически включает флаги localcaching и localflocks.
localcaching
Осторожно! Эта опция НЕ должна использоваться, если к файловым системам GFS2 открыт совместный доступ.
Сообщает системе GFS2 о том, что она выполняет роль локальной файловой системы. Так, GFS2 сможет использовать некоторые возможности, которые недоступны в кластерном режиме. lock_nolock автоматически установит флаг localcaching.
localflocks
Осторожно! Эта опция НЕ должна использоваться, если к файловым системам GFS2 открыт совместный доступ.
Разрешает слою VFS (Virtual File System) выполнение flock и fcntl. lock_nolock автоматически установит флаг localflocks.
lockproto=МодульБлокирования Позволяет пользователю задать протокол блокирования. Если параметр МодульБлокирования не указан, имя протокола будет получено из суперблока файловой системы.
locktable=ТаблицаБлокирования Позволяет пользователю задать таблицу блокирования.
quota=[off/account/on] Позволяет управлять квотами. Значение account обеспечит корректную поддержку статистики использования для каждого UID/GID. При этом значения limit и warn будут игнорироваться. По умолчанию этот параметр установлен в off.
upgrade Обновляет формат файловой системы, так чтобы она могла использоваться новыми версиями GFS2.

3.3. Демонтирование файловой системы

Файловая система GFS2 демонтируется с помощью команды umount, как и обычные файловые системы Linux.

Примечание

Информацию о команде umount можно найти на ее странице помощи man.

3.3.1. Формат

umount MountPoint
MountPoint
Определяет каталог, в который монтируется GFS2.

3.4. Управление квотами GFS2

Квоты файловой системы используются для ограничения пространства, выделяемого пользователю или группе. Изначально квоты не установлены. GFS2 следит за используемым объемом пространства даже если ограничений нет и периодически обновляет данные квот, чтобы в случае сбоя системы не было необходимости в повторном создании квот.
To prevent a performance slowdown, a GFS2 node synchronizes updates to the quota file only periodically. The "fuzzy" quota accounting can allow users or groups to slightly exceed the set limit. To minimize this, GFS2 dynamically reduces the synchronization period as a "hard" quota limit is approached.
Для управления квотами GFS2 использует команду gfs2_quota. Другие Linux-функции работы c квотами не могут использоваться с GFS2.

3.4.1. Установка квот

Для каждого идентификатора пользователя (UID) и группы (GID) используется два параметра: жесткий лимит и лимит предупреждений.
Жесткий лимит определяет объем доступного для использования пространства. Файловая система не позволит пользователю или группе превысить максимально допустимый объем. Значение 0 (ноль) снимает все ограничения.
Лимит предупреждений обычно меньше жесткого лимита. Достигнув этого лимита, система уведомит пользователя или группу об используемом объеме пространства. Значение 0 (ноль) снимает все ограничения.
Лимиты можно задать с помощью команды gfs2_quota. Ее нужно выполнить только на том узле, на котором смонтирована файловая система GFS2.
By default, quota enforcement is not set on GFS2 file systems. To enable quota accounting, use the quota= of the mount command when mounting the GFS2 file system, as described in Раздел 3.4.4, «Включение и отключение квот».

3.4.1.1. Формат

Setting Quotas, Hard Limit
gfs2_quota limit -u User -l Size -f MountPoint
gfs2_quota limit -g Group -l Size -f MountPoint
Setting Quotas, Warn Limit
gfs2_quota warn -u User -l Size -f MountPoint
gfs2_quota warn -g Group -l Size -f MountPoint
User
Идентификатор пользователя, в качестве которого может использоваться имя пользователя из файла паролей или же номер UID.
Group
Идентификатор группы, в качестве которого может использоваться имя группы из файла групп или же номер GID.
Size
Переопределяет размер жесткого лимита или лимита ограничений. По умолчанию размер задается в мегабайтах, что можно изменить с помощью флагов -k (килобайты), -s (сектора) и -b (системные блоки).
MountPoint
Задает файловую систему GFS2.

3.4.1.2. Примеры

В этом примере для пользователя Bert будет установлен жесткий лимит 1024 Мб (1 Гб) в файловой системе /mygfs2.
gfs2_quota limit -u Bert -l 1024 -f /mygfs2
В этом примере в файловой системе /mygfs2 для группы с идентификатором 21 будет установлен лимит предупреждений 50 Кб.
gfs2_quota warn -g 21 -l 50 -k -f /mygfs2

3.4.2. Отображение лимитов квот и занятого пространства

Лимиты квот и текущее использование пространства для заданного пользователя или группы можно отобразить с помощью команды gfs2_quota get. Содержимое файла квоты можно отобразить с помощью команды gfs2_quota list; при этом будут отображены все идентификаторы с ненулевым лимитом (будь то жесткий лимит или лимит предупреждений).

3.4.2.1. Формат

Displaying Quota Limits for a User
gfs2_quota get -u User -f MountPoint
Displaying Quota Limits for a Group
gfs2_quota get -g Group -f MountPoint
Displaying Entire Quota File
gfs2_quota list -f MountPoint
User
Идентификатор пользователя (в качестве которого может служить имя пользователя из файла паролей или номер UID) поможет отобразить информацию о заданном пользователе.
Group
Идентификатор группы (в качестве которого может служить имя группы из файла групп или номер GID) поможет отобразить информацию о заданной группе.
MountPoint
Задает файловую систему GFS2.

3.4.2.2. Вывод команды

Вывод команды gfs2_quota выглядит так:
user User: limit:LimitSize warn:WarnSize value:Value

group Group: limit:LimitSize warn:WarnSize value:Value

В качестве единиц для параметров ЖесткийЛимит, ЛимитПредупреждений, Значение по умолчанию используются мегабайты. Единицы можно изменить с помощью флагов -k (килобайты), -s (сектора) и -b (системные блоки).
User
Имя пользователя или его идентификатор, которому соответствуют данные.
Group
Имя группы или ее идентификатор, которому соответствуют данные.
LimitSize
Установленный для пользователя или группы жесткий лимит. Если используется нулевое значение, то все ограничения снимаются.
Value
Объем пространства, используемый пользователем или группой.

3.4.2.3. Комментарии

При отображении информации команда gfs2_quota не преобразует идентификаторы групп и пользователей в имена, если командная строка содержит опцию -n.
Space allocated to GFS2's hidden files can be left out of displayed values for the root UID and GID by adding the -d option to the command line. This is useful when trying to match the numbers from gfs2_quota with the results of a du command.

3.4.2.4. Примеры

В этом примере будут отображены сведения обо всех существующих квотах для всех пользователей и групп в файловой системе /mygfs2.
gfs2_quota list -f /mygfs2
В этом примере будет отображена информация обо квотах для группы users в файловой системе /mygfs2 с использованием секторов в качестве единиц.
gfs2_quota get -g users -f /mygfs2 -s

3.4.3. Синхронизация квот

GFS2 хранит всю информацию о квотах в специальном файле на диске. Узел GFS2 обновляет этот файл каждые 60 секунд, а не при каждой записи в файловую систему, что позволяет избежать конфликтов при попытке записи в файл квот разными узлами, которые могут замедлить работу.
При достижении пользователем или группой лимита файловая система GFS2 динамически уменьшит интервал обновления файла квот, чтобы избежать превышения лимита. Интервал синхронизации определяется с помощью параметра quota_quantum и может быть изменен командой gfs2_tool. Изначально используется интервал 60 секунд. Стоит заметить, что параметр quota_quantum должен быть задан на каждом узле при каждом монтировании файловой системы, так как изменения параметра не сохраняются при повторном монтировании.
Для передачи информации о квотах с узла файлу квот на диске (между автоматическими обновлениями GFS2) используется команда gfs2_quota sync.

3.4.3.1. Формат

Synchronizing Quota Information
gfs2_quota sync -f MountPoint
MountPoint
Задает файловую систему GFS2.
Tuning the Time Between Synchronizations
gfs2_tool settune MountPoint quota_quantum Seconds
MountPoint
Задает файловую систему GFS2.
Seconds
Определяет новый интервал синхронизации GFS2. Стоит помнить, чем меньше значение, тем больше нагрузка.

3.4.3.2. Примеры

В этом примере выполняется синхронизация информации о квотах между узлом и файловой системой /mygfs2.
gfs2_quota sync -f /mygfs2
В этом примере интервал обновлений файла квот файловой системы /mygfs2 будет увеличен до 1 часа (3600 секунд).
gfs2_tool settune /mygfs2 quota_quantum 3600

3.4.4. Включение и отключение квот

В файловых системах GFS2 квоты по умолчанию отключены. Чтобы включить использование квот, при монтировании файловой системы укажите параметр quota=on.

3.4.4.1. Формат

mount -o quota=on BlockDevice MountPoint
Чтобы отключить использование квот, при монтировании файловой системы укажите параметр quota=off. Этот вариант используется по умолчанию.
mount -o quota=off BlockDevice MountPoint
-o quota={on|off}
Включает или отключает использование квот при монтировании файловой системы.
BlockDevice
Задает блочное устройство, на котором расположена файловая система GFS2.
MountPoint
Определяет каталог, в который монтируется GFS2.

3.4.4.2. Примеры

В следующем примере файловая система GFS2 на /dev/vg01/lvol0 будет смонтирована в /mygfs2 с использованием квот.
mount -o quota=on /dev/vg01/lvol0 /mygfs2

3.4.5. Активация квот

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

3.4.5.1. Формат

mount -o quota=account BlockDevice MountPoint
-o quota=account
Статистика использования пространства для пользователей и групп поддерживается файловой системой, даже если квоты не используются.
BlockDevice
Задает блочное устройство, на котором расположена файловая система GFS2.
MountPoint
Определяет каталог, в который монтируется GFS2.

3.4.5.2. Пример

В следующем примере файловая система GFS2 на /dev/vg01/lvol0 монтируется в каталог /mygfs2. При этом включено использование квот.
mount -o quota=account /dev/vg01/lvol0 /mygfs2

3.5. Увеличение размера файловой системы

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

3.5.1. Формат

gfs2_grow MountPoint
MountPoint
Задает файловую систему GFS2.

3.5.2. Комментарии

Перед выполнением команды gfs2_grow:
  • Создайте резервную копию важных данных.
  • Определите используемый расширяемой файловой системой объем. Для этого выполните команду df ТочкаМонтирования.
  • Expand the underlying cluster volume with LVM. For information on administering LVM volumes, see the LVM Administrator's Guide
После gfs2_grow выполните команду df для проверки доступного простанства.

3.5.3. Примеры

В следующем примере будет расширена файловая система на /mygfs2fs.
[root@dash-01 ~]# gfs2_grow /mygfs2fs
FS: Mount Point: /mygfs2fs
FS: Device:      /dev/mapper/gfs2testvg-gfs2testlv
FS: Size:        524288 (0x80000)
FS: RG size:     65533 (0xfffd)
DEV: Size:       655360 (0xa0000)
The file system grew by 512MB.
gfs2_grow complete.

3.5.4. Полная форма

gfs2_grow [Options] {MountPoint | Device} [MountPoint | Device]

MountPoint
Определяет точку монтирования файловой системы GFS2.
Device
Узел устройства, использующегося для наращивания файловой системы.
Таблица 3.3, «Параметры GFS2, доступные при расширении файловой системы» describes the GFS2-specific options that can be used while expanding a GFS2 file system.

Таблица 3.3. Параметры GFS2, доступные при расширении файловой системы

Опция Описание
-h Помощь. Отображает краткую справку по использованию.
-q Тихий режим. Отключает подробный вывод.
-r MegaBytes Определяет размер новой группы ресурсов. По умолчанию используется 256 Мб.
-T Тест. Выполняет все вычисления, но не записывает данные на диск и не выполняет расширение файловой системы.
-V Отображает информацию о версии команды.

3.6. Добавление журналов в файловую систему

Команда gfs2_jadd используется для добавления журналов в файловую систему GFS2. Журналы могут добавляться динамически в любой момент без необходимости расширения логического тома в основе ФС. gfs2_jadd надо выполнять в смонтированной файловой системе, но при этом ее нужно запустить только на одном узле в кластере. Все остальные узлы начнут использовать новое пространство автоматически.
Прежде чем добавить журналы, с помощью опции journals команды gfs2_tool определите, сколько журналов файловая система GFS2 уже содержит. Следующий пример демонстрирует количество и размер журналов в файловой системе, смонтированной в точку /mnt/gfs2.
[root@roth-01 ../cluster/gfs2]# gfs2_tool journals /mnt/gfs2
journal2 - 128MB
journal1 - 128MB
journal0 - 128MB
3 journal(s) found.

3.6.1. Формат

gfs2_jadd -j Number MountPoint
Number
Определяет число журналов для добавления.
MountPoint
Определяет точку монтирования файловой системы GFS2.

3.6.2. Примеры

Добавление одного журнала в файловую систему, смонтированную в /mygfs2:
gfs2_jadd -j1 /mygfs2
Добавление двух журналов в файловую систему, смонтированную в /mygfs2:
gfs2_jadd -j2 /mygfs2

3.6.3. Полная форма

gfs2_jadd [Options] {MountPoint | Device} [MountPoint | Device]
MountPoint
Определяет точку монтирования файловой системы GFS2.
Device
Узел устройства, использующегося для наращивания файловой системы.
Таблица 3.4, «Параметры GFS2, используемые при добавлении журналов» describes the GFS2-specific options that can be used when adding journals to a GFS2 file system.

Таблица 3.4. Параметры GFS2, используемые при добавлении журналов

Флаг Параметр Описание
-h Помощь. Отображает краткую справку по использованию.
-J MegaBytes Определяет размер новых журналов в мегабайтах. По умолчанию используется 128 Мб, при этом минимально допустимый размер — 32 Мб. Чтобы добавить в файловую систему журналы разных размеров, надо будет отдельно выполнить команду gfs2_jadd для каждого размера. Указанная величина округляется в меньшую сторону так, чтобы она была кратной размеру сегмента журнала, определенного при создании файловой системы.
-j Number Определяет число новых журналов, добавляемых командой gfs2_jadd. Значение по умолчанию — 1.
-q Тихий режим. Отключает подробный вывод.
-V Отображает информацию о версии команды.

3.7. Журналирование данных

Ordinarily, GFS2 writes only metadata to its journal. File contents are subsequently written to disk by the kernel's periodic sync that flushes file system buffers. An fsync() call on a file causes the file's data to be written to disk immediately. The call returns when the disk reports that all data is safely written.
Журналирование данных может сократить время работы fsync() (особенно для небольших файлов), так как все данные будут сохранены в журнал. fsync() завершит выполнение после удачной записи данных в журнал, что может занять гораздо меньше времени по сравнению с записью данных файла в основную файловую систему.
Можно улучшить производительность приложений, синхронизация данных для которых осуществляется с помощью fsync(), при помощи журналирования данных. Журналирование данных может быть включено автоматически для любых файлов GFS2, создаваемых в каталоге с установленным флагом и всех его подкаталогах.
Enabling data journaling on a directory sets the directory to "inherit jdata", which indicates that all files and directories subsequently created in that directory are journaled. You can enable and disable data journaling on a file or a directory with either of the following methods:
  • Выполнение команды chattr +j или chattr -j для заданного файла или каталога.
  • Установка или снятие флага jdata для каталога с помощью команды gfs2_tool setflag или gfs2_tool clearflag.
Использование команды chattr является более предпочтительным.

3.7.1. Включение и отключение журналирования данных с помощью команды chattr

С помощью команды chattr можно управлять журналированием данных файла. Приведенные ниже команды включают журналирование для файла /mnt/gfs2/gfs2_dir/newfile, а затем проверяют состояние флага.
[root@roth-01 ~]# chattr +j /mnt/gfs2/gfs2_dir/newfile
[root@roth-01 ~]# lsattr /mnt/gfs2/gfs2_dir
---------j--- /mnt/gfs2/gfs2_dir/newfile
Приведенный далее набор команд отключит журналирование данных для файла /mnt/gfs2/gfs2_dir/newfile и проверит состояние флага.
[root@roth-01 ~]# chattr -j /mnt/gfs2/gfs2_dir/newfile
[root@roth-01 ~]# lsattr /mnt/gfs2/gfs2_dir
------------- /mnt/gfs2/gfs2_dir/newfile
Флаг j для каталога можно установить с помощью команды chattr. В этом случае журналирование будет включено для всех создаваемых в нем файлов и каталогов. Приведенный набор команд установит флаг j для каталога gfs2_dir, затем будет создан новый файл newfile в каталоге /mnt/gfs2/gfs2_dir и проверено состояние флага j. Так как j уже установлен для каталога, журналирование должно быть включено автоматически для файла newfile.
[root@roth-01 ~]# chattr -j /mnt/gfs2/gfs2_dir
[root@roth-01 ~]# lsattr /mnt/gfs2
---------j--- /mnt/gfs2/gfs2_dir
[root@roth-01 ~]# touch /mnt/gfs2/gfs2_dir/newfile
[root@roth-01 ~]# lsattr /mnt/gfs2/gfs2_dir
---------j--- /mnt/gfs2/gfs2_dir/newfile

3.7.2. Включение и отключение журналирования данных с помощью команды gfs2_tool.

Следующая команда включает журналирование данных для файла /mnt/gfs2/gfs2file:
[root@roth-01 ~]# gfs2_tool setflag jdata /mnt/gfs2/gfs2file 
Проверить состояние флага jdata можно с помощью команды lsattr.
[root@roth-01 ~]# lsattr /mnt/gfs2
---------j--- /mnt/gfs2/gfs2file
Если для каталога установлен флаг jdata, то все создаваемые в нем файлы и подкаталоги будут журналироваться.
Следующий набор команд создаст новый подкаталог с именем gfs2_dir в /mnt/gfs2, установит флаг jdata, затем проверит состояние флага. После этого будет создан новый файл gfs2file и проверено состояния флага уже для этого файла.
[root@roth-01 ~]# mkdir /mnt/gfs2/gfs2_dir
[root@roth-01 ~]# gfs2_tool setflag jdata /mnt/gfs2/gfs2_dir
[root@roth-01 ~]# lsattr /mnt/gfs2
---------j--- /mnt/gfs2/gfs2_dir
[root@roth-01 ~]# touch /mnt/gfs2/gfs2_dir/newfile
[root@roth-01 ~]# lsattr /mnt/gfs2/gfs2_dir
---------j--- /mnt/gfs2/gfs2_dir/newfile
Снять флаг jdata можно с помощью команды gfs2_tool clearflag jdata. Пример:
[root@roth-01 ~]# gfs2_tool clearflag jdata /mnt/gfs2/gfs2file 
[root@roth-01 ~]# lsattr /mnt/gfs2
------------- /mnt/gfs2/gfs2file

3.8. Настройка обновлений atime

Индексному дескриптору inode каждого файла и каталога соотвествуют три временных метки:
  • ctime — время последнего изменения состояния inode.
  • mtime — время последнего изменения данных файла (каталога).
  • atime — время последнего обращения к файлу (каталогу).
Обновления atime активные по умолчанию в GFS2 и других файловых системах Linux. Так, при каждом чтении файла необходимо обновление его inode.
Так как информация, предоставляемая командой atime, может использоваться несколькими приложениями, постоянное выполнение обновлений может привести к увеличению ненужного трафика записи и блокирования файлов, что скажется на производительности. Поэтому рекомендуется отключить или уменьшить частоту обновлений atime.
Существует два метода уменьшения последствий обновлений atime:
  • relatime обновляет atime, только если обновление atime старше обновления mtime или ctime.
  • Стандартная опция Linux noatime может быть указана при монтировании файловой системы, что отключит обновления atime.

3.8.1. Монтирование с помощью relatime

Опцию relatime можно указать при монтировании файловой системы. atime будет обновляться, только если обновление atime старше обновления mtime или ctime.

3.8.1.1. Формат

mount  BlockDevice MountPoint -o relatime
BlockDevice
Задает блочное устройство, на котором расположена файловая система GFS2.
MountPoint
Определяет каталог, в который монтируется GFS2.

3.8.1.2. Пример

В этом примере файловая система GFS2 на /dev/vg01/lvol0 монтируется в каталог /mygfs2. При этом обновления atime выполняются только тогда, когда предыдущее обновление atime старше обновлений mtime или ctime.
mount /dev/vg01/lvol0 /mygfs2 -o relatime

3.8.2. Монтирование с помощью noatime

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

3.8.2.1. Формат

mount BlockDevice MountPoint -o noatime
BlockDevice
Задает блочное устройство, на котором расположена файловая система GFS2.
MountPoint
Определяет каталог, в который монтируется GFS2.

3.8.2.2. Пример

В этом примере файловая система GFS2 в /dev/vg01/lvol0 монтируется в каталог /mygfs2, при этом обновления atime отключены.
mount /dev/vg01/lvol0 /mygfs2 -o noatime

3.9. Приостановка записи в файловую систему

Запись в файловую систему можно приостановить с помощью команды gfs2_tool freeze. Приостановка записи позволяет зарегистрировать систему в стабильном состоянии. Выполните команду gfs2_tool unfreeze для возобновления записи.

3.9.1. Формат

Start Suspension
gfs2_tool freeze MountPoint
End Suspension
gfs2_tool unfreeze MountPoint
MountPoint
Задает файловую систему.

3.9.2. Примеры

Пример приостановки записи в файловую систему /mygfs2:
gfs2_tool freeze /mygfs2
Пример завершения приостановки записи в файловую систему /mygfs2:
gfs2_tool unfreeze /mygfs2

3.10. Исправление файловой системы

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

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

Команда fsck.gfs2 может выполняться в файловой системе только в том случае, если система не смонтирована.

Примечание

Если у вас есть опыт работы с gfs_fsck в ФС GFS, обратите внимание, что команда fsck.gfs2 отличается от предыдущих версий gfs_fsck. Основные отличия:
  • Нельзя выбрать интерактивный режим с помощью комбинации клавиш Ctrl+C. Нажатие Ctrl+C завершит работу fsck.gfs2. НЕ нажимайте Ctrl+C, если вы не хотите завершать работу команды.
  • Чтобы отобразить подробный вывод, используйте опцию -v. Ее повторное указание усиливает детализацию.
  • Уменьшить уровень детализации можно с помощью опции -q.
  • Опция -n откроет файловую систему в режиме чтения и будет автоматически отвечать no на все запросы. Эта опция используется с целью выявления ошибок без применения изменений fsck.gfs2.
Информацию о других опциях команды gfs2.fsck можно найти на ее странице помощи.

3.10.1. Формат

fsck.gfs2 -y BlockDevice
-y
Опция -y позволит автоматически отвечать yes на все вопросы. Так, команда fsck.gfs2 не будет запрашивать ответ перед применением изменений.
BlockDevice
Задает блочное устройство, на котором расположена файловая система GFS2.

3.10.2. Пример

В следующем примере будет исправлена файловая система GFS2 на /dev/testvol/testlv. Для ответа на все запросы будет автоматически использоваться yes.
[root@dash-01 ~]# fsck.gfs2 -y /dev/testvg/testlv
Initializing fsck
Validating Resource Group index.
Level 1 RG check.
(level 1 passed)
Clearing journals (this may take a while)...
Journals cleared.
Starting pass1
Pass1 complete
Starting pass1b
Pass1b complete
Starting pass1c
Pass1c complete
Starting pass2
Pass2 complete
Starting pass3
Pass3 complete
Starting pass4
Pass4 complete
Starting pass5
Pass5 complete
Writing changes to disk
fsck.gfs2 complete

3.11. Монтирование связей и контекстно зависимые имена путей

Файловые системы GFS2 не поддерживают контекстно зависимые имена путей (CDPN, Context-Dependent Path Names), которые позволяют создавать символьные ссылки к произвольным файлам и каталогам. Для реализации этой функциональности в GFS2 используется опция bind команды mount.
Опция bind позволяет смонтировать часть файловой структуры в новую точку, сохраняя при этом исходную точку монтирования. Формат команды:
mount --bind olddir newdir
Так, содержимое старого_каталога будет доступно в точках старый_каталог и новый_каталог. С помощью этой опции также можно настроить отдельные файлы.
Например, после выполнения приведенных ниже команд содержимое /root/tmp будет идентично содержимому смонтированного заранее каталога /var/log.
[root@menscryfa ~]# cd ~root
[root@menscryfa ~]# mkdir ./tmp
[root@menscryfa ~]# mount --bind /var/log /tmp
Аналогичного результата можно достичь, создав запись в файле /etc/fstab. Следующая запись означает, что содержимое /root/tmp будет идентично /var/log.
/var/log                /root/tmp               none    bind            0 0
После монтирования файловой системы можно выполнить команду mount для проверки статуса монтирования. Пример:
[root@menscryfa ~]# mount | grep /tmp
/var/log on /root/tmp type none (rw,bind)
Если файловая система поддерживает использование контекстно зависимых имен путей, можно сопоставить каталог /bin одному из следующих каталогов (в зависимости от архитектуры):
/usr/i386-bin
/usr/x86_64-bin
/usr/ppc64-bin
Аналогичного результата можно достичь, создав пустой каталог /bin. Затем, создав сценарий или запись в /etc/fstab, можно смонтировать каталог для соответствующей архитектуры в /bin с помощью команды mount --bind. Приведенная далее строка может использоваться в сценарии:
mount --bind /usr/i386-bin /bin
Или же можно создать следующую запись в файле /etc/fstab.
/usr/1386-bin             /bin               none    bind            0 0
Монтирование связей (bind mount) обеспечивает бóльшую гибкость по сравнению с методом CDPN, так как при этом можно монтировать различные каталоги в соответствии с определенными пользователями критериями (например, %fill). Контекстно зависимые имена путей в этом смысле более ограничены. Стоит заметить, однако, что вам придется написать собственный сценарий для осуществления монтирования в соответствии с критериями (например, если используется значение %fill).

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

Если вы монтируете файловую систему с помощью опции bind и при этом исходная файловая система смонтирована в режиме rw, то новая система также будет смонтирована в режиме rw даже при явном указании ro (флаг ro в этом случае будет просто проигнорирован). При этом в каталоге /proc/mounts новой файловой системе будет некорректно соответствовать ro.

Приложение A. Преобразование файловой системы GFS в GFS2

Для преобразования GFS и GFS2 используется команда gfs2_convert.
  1. Демонтируйте файловую систему GFS, отключив ее от всех узлов в кластере.
  2. С помощью команды gfs_fsck выполните проверку целостности файловой системы GFS.
  3. Повторно смонтируйте и создайте резервную копию существующей системы GFS.
  4. Демонтируйте файловую систему и выполните команду gfs2_convert gfsfilesystem. Будет отображено несколько сообщений предупреждения и запросов подтверждения, прежде чем файловая система, заданная с помощью параметра gfsfilesystem, будет преобразована в GFS2.
В следующем примере файловая система GFS на блочном устройстве /dev/testvg/testlv будет преобразована в GFS2.
[root@dash-01 ~]# gfs2_convert /dev/testvg/testlv
gfs2_convert version 2 (built Sep 25 2007 12:41:29)
Copyright (C) Red Hat, Inc.  2004-2006  All rights reserved.

This program will convert a gfs1 filesystem to a gfs2 filesystem.
WARNING: This can't be undone.  It is strongly advised that you:

   1. Back up your entire filesystem first.
   2. Run gfs_fsck first to ensure filesystem integrity.
   3. Make sure the filesystem is NOT mounted from any node.
   4. Make sure you have the latest software versions.
Convert /dev/testvg/testlv from GFS1 to GFS2? (y/n)y
Converting resource groups.
Converting inodes.
6 inodes converted.
Fixing file and directory information.
1 directories, 2 dirents fixed.
Converting journals.
Converting journal space to rg space.
Building system structures.
Removing obsolete gfs1 structures.
Committing changes to disk.
/dev/gfs2testvg/gfs2testlv: filesystem converted successfully to gfs2.
[root@dash-01 ~]#

Приложение B. История изменений

История переиздания
Издание 3-10.4002013-10-31Rüdiger Landmann
Rebuild with publican 4.0.0
Издание 3-102012-07-18Anthony Towns
Rebuild for Publican 3.0
Издание 1.0-0Thu Jan 29 2009

Предметный указатель

F

feedback, Ждем ваших отзывов
file system
adding journals, Добавление журналов в файловую систему
atime, configuring updates, Настройка обновлений atime
mounting with noatime , Монтирование с помощью noatime
mounting with relatime , Монтирование с помощью relatime
bind mounts, Монтирование связей и контекстно зависимые имена путей
context-dependent path names (CDPNs), Монтирование связей и контекстно зависимые имена путей
data journaling, Журналирование данных
growing, Увеличение размера файловой системы
making, Создание файловой системы
mounting, Монтирование файловой системы
quota management, Управление квотами GFS2
displaying quota limits, Отображение лимитов квот и занятого пространства
enabling quota accounting, Активация квот
enabling/disabling quota enforcement, Включение и отключение квот
setting quotas, Установка квот
synchronizing quotas, Синхронизация квот
repairing, Исправление файловой системы
suspending activity, Приостановка записи в файловую систему
unmounting, Демонтирование файловой системы

G

GFS2
atime, configuring updates, Настройка обновлений atime
mounting with noatime , Монтирование с помощью noatime
mounting with relatime , Монтирование с помощью relatime
managing, Управление GFS2
quota management, Управление квотами GFS2
displaying quota limits, Отображение лимитов квот и занятого пространства
enabling quota accounting, Активация квот
enabling/disabling quota enforcement, Включение и отключение квот
setting quotas, Установка квот
synchronizing quotas, Синхронизация квот
GFS2 file system maximum size, Обзор GFS2
GFS2-specific options for adding journals table, Полная форма
GFS2-specific options for expanding file systems table, Полная форма
growing a file system, Увеличение размера файловой системы

P

path names, context-dependent (CDPNs), Монтирование связей и контекстно зависимые имена путей
preface (см. introduction)
prerequisite tasks
configuration, initial, Предварительные условия

T

tables
GFS2-specific options for adding journals, Полная форма
GFS2-specific options for expanding file systems, Полная форма
mkfs.gfs2 command options, Полный список параметров
mount options, Полная форма

Юридическое уведомление

Copyright © 2009 Red Hat Inc..
This document is licensed by Red Hat under the Creative Commons Attribution-ShareAlike 3.0 Unported License. If you distribute this document, or a modified version of it, you must provide attribution to Red Hat, Inc. and provide a link to the original. If the document is modified, all Red Hat trademarks must be removed.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.