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
2. Дополнительная документация
Подробная информация об использовании Red Hat Enterprise Linux может быть найдена в следующих руководствах:
- Руководство по установке Red Hat Enterprise Linux: Рассматривает различные аспекты установки Red Hat Enterprise Linux.
- Руководство по развертыванию Red Hat Enterprise Linux: Содержит информацию о развертывании, конфигурации и администрировании Red Hat Enterprise Linux 5.
Подробная информация о Red Hat Cluster Suite может быть найдена в следующих руководствах:
- Обзор Red Hat Cluster Suite: Содержит общую информацию о Red Hat Cluster Suite.
- Конфигурация и управление кластером Red Hat: Содержит информацию об установке, конфигурации и управлении кластерными компонентами Red Hat.
- LVM Administrator's Guide: Configuration and Administration — Provides a description of the Logical Volume Manager (LVM), including information on running LVM in a clustered environment.
- GFS: Конфигурация и администрирование: Содержит информацию об установке, настройке и поддержке работы глобальной файловой системы Red Hat (GFS, Global File System).
- Использование Device-Mapper Multipath: Содержит информацию о возможностях Device-Mapper Multipath для Red Hat Enterprise Linux.
- Использование GNBD с GFS: Содержит обзор использования устройств GNBD с Red Hat GFS.
- Администрирование виртуального сервера Linux: Предоставляет информацию о настройке высокопроизводительных систем и служб для работы с виртуальным сервером Linux (LVS, Linux Virtual Server).
- Замечания к выпуску Red Hat Cluster Suite: Предоставляют информацию о текущем выпуске Red Hat Cluster Suite.
Документация Red Hat Cluster Suite и другие руководства Red Hat доступны в форматах HTML и PDF на диске документации Red Hat Enterprise Linux и в Интернете по адресу http://www.redhat.com/docs/.
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 | Демонтирует файловую систему. | ||||
|
| Проверяет и исправляет несмонтированную файловую систему. | ||||
gfs_grow | gfs2_grow | Увеличивает размер файловой системы. | ||||
gfs_jadd | gfs2_jadd | Добавляет журнал в смонтированную файловую систему. | ||||
|
| Создает файловую систему на накопителе. | ||||
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 theinherit_jdata
flag. To flag a directory as "inherit jdata", you can set thejdata
flag on the directory or you can use thechattr
command to set the+j
flag on the directory. Using thechattr
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 включает следующие шаги:
- Настройка логических томов.
- Создание файловой системы GFS2.
- Монтирование файловых систем.
Выполните эти шаги для выполнения исходной настройки GFS2.
- С помощью LVM создайте логический том для каждой файловой системы GFS2.
Примечание
Для автоматизации процесса активации и деактивации логических томов можно использовать сценарииinit.d
, включенные в Red Hat Cluster Suite. Настройка и управление кластером Red Hat содержит подробную информацию о сценарияхinit.d
. - 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
-jNumberJournals BlockDevice
mkfs -t gfs2 -p lock_dlm -t
LockTableName
-jNumberJournals 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, «Создание файловой системы». - 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
aclmount
позволяет управлять списками ACL. Если файловая система смонтирована без использования опции
, то пользователи смогут просматривать списки ACL (с помощью команды-o
aclgetfacl
), но не смогут их изменять (с помощью команды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 -pLockProtoName
-tLockTableName
-jNumberJournals BlockDevice
mkfs -t gfs2 -pLockProtoName
-tLockTableName
-jNumberJournals BlockDevice
Допустимый формат команд создания локальной файловой системы GFS2:
mkfs.gfs2 -pLockProtoName
-jNumberJournals BlockDevice
mkfs -t gfs2 -pLockProtoName
-jNumberJournals 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 |
| |||||||
-q | Не осуществляет вывод на экран. | ||||||||
-r | MegaBytes | Определяет размер групп ресурсов (в мегабайтах). Минимально допустимый размер — 32 Мб, максимальный размер — 2048 Мб. Большой размер может увеличить производительность в системах с очень большими файлами. Если эта опция не указана, mkfs.gfs2 выберет размер группы в зависимости от размера файловой системы. Так, размер групп для файловых систем среднего размера будет составлять 256 Мб. | |||||||
-t | LockTableName |
| |||||||
-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. Полная форма
mountBlockDevice MountPoint
-ooption
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 . | ||
| Заставляет GFS2 рассматривать файловую систему как систему с несколькими узлами. lock_nolock по умолчанию автоматически включает флаги localcaching и localflocks . | ||
| Сообщает системе GFS2 о том, что она выполняет роль локальной файловой системы. Так, GFS2 сможет использовать некоторые возможности, которые недоступны в кластерном режиме. lock_nolock автоматически установит флаг localcaching . | ||
| Разрешает слою 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 -uUser
-lSize
-fMountPoint
gfs2_quota limit -gGroup
-lSize
-fMountPoint
Setting Quotas, Warn Limit
gfs2_quota warn -uUser
-lSize
-fMountPoint
gfs2_quota warn -gGroup
-lSize
-fMountPoint
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 -uUser
-fMountPoint
Displaying Quota Limits for a Group
gfs2_quota get -gGroup
-fMountPoint
Displaying Entire Quota File
gfs2_quota list -f MountPoint
User
- Идентификатор пользователя (в качестве которого может служить имя пользователя из файла паролей или номер UID) поможет отобразить информацию о заданном пользователе.
Group
- Идентификатор группы (в качестве которого может служить имя группы из файла групп или номер GID) поможет отобразить информацию о заданной группе.
MountPoint
- Задает файловую систему GFS2.
3.4.2.2. Вывод команды
Вывод команды
gfs2_quota
выглядит так:
userUser
: limit:LimitSize
warn:WarnSize
value:Value
groupGroup
: 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 settuneMountPoint
quota_quantumSeconds
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
.
- Демонтируйте файловую систему GFS, отключив ее от всех узлов в кластере.
- С помощью команды
gfs_fsck
выполните проверку целостности файловой системы GFS. - Повторно смонтируйте и создайте резервную копию существующей системы GFS.
- Демонтируйте файловую систему и выполните команду
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.400 | 2013-10-31 | Rüdiger Landmann | |
| |||
Издание 3-10 | 2012-07-18 | Anthony Towns | |
| |||
Издание 1.0-0 | Thu Jan 29 2009 | ||
|
Предметный указатель
A
- adding journals to a file system, Добавление журналов в файловую систему
- atime, configuring updates, Настройка обновлений atime
- mounting with noatime , Монтирование с помощью noatime
- mounting with relatime , Монтирование с помощью relatime
- audience, Целевая аудитория
B
C
- configuration, before, Прежде чем приступить к настройке GFS2
- configuration, initial, Начало работы
- prerequisite tasks, Предварительные условия
D
- data journaling, Журналирование данных
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, Увеличение размера файловой системы
I
- initial tasks
- setup, initial, Исходные задачи настройки
- introduction, Введение
- audience, Целевая аудитория
M
- making a file system, Создание файловой системы
- managing GFS2, Управление GFS2
- maximum size, GFS2 file system, Обзор GFS2
- mkfs.gfs2 command options table, Полный список параметров
- mount table, Полная форма
- mounting a file system, Монтирование файловой системы
O
- overview, Обзор GFS2
- configuration, before, Прежде чем приступить к настройке GFS2
P
- path names, context-dependent (CDPNs), Монтирование связей и контекстно зависимые имена путей
- preface (см. introduction)
- prerequisite tasks
- configuration, initial, Предварительные условия
Q
- quota management, Управление квотами GFS2
- displaying quota limits, Отображение лимитов квот и занятого пространства
- enabling quota accounting, Активация квот
- enabling/disabling quota enforcement, Включение и отключение квот
- setting quotas, Установка квот
- synchronizing quotas, Синхронизация квот
R
- repairing a file system, Исправление файловой системы
S
- setup, initial
- initial tasks, Исходные задачи настройки
- suspending activity on a file system, Приостановка записи в файловую систему
T
- tables
- GFS2-specific options for adding journals, Полная форма
- GFS2-specific options for expanding file systems, Полная форма
- mkfs.gfs2 command options, Полный список параметров
- mount options, Полная форма
U
- unmounting a file system, Демонтирование файловой системы
Юридическое уведомление
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.