Red Hat Cluster Manager: Руководство по установке и администрированию Red Hat Cluster Manager | ||
---|---|---|
Назад | Вперед |
В этой главе содержатся инструкции по настройке Red Hat Enterprise Linux AS для реализации сетевых служб общего доступа NFS и Samba с высокой степенью доступности.
Сетевая файловая система (NFS) является одним из самых эффективных применений кластера. Использование кластерной службы NFS даёт следующие преимущества:
Гарантируется непрерывный доступ клиентов к важным данным даже в случае отказа сервера.
Облегчает выполнение технической поддержки, так как в кластере возможно прозрачное перемещение служб NFS на один из узлов, при этом администратор может исправить или заменить другой узел кластера.
Позволяет собрать конфигурацию "активный-активный" для более эффективного использования оборудования. Дополнительные замечания о таких конфигурациях приведены ниже.
Чтобы выполнять службы NFS высокой степени доступности, все кластерные сервера должна соответствовать определенным требованиям. (Обратите внимание: эти требования не касаются клиентов NFS.) Эти требования приведены ниже:
В ядре должна быть включена поддержка NFS сервера. NFS может быть встроен в ядро или использоваться в виде модуля. Поддерживаются NFS версии 2 и 3.
Встроенная в ядро системы Red Hat Enterprise Linux AS 2.1 поддержка NFS, включает улучшения (изначально разработанные компанией Mission Critical Linux Inc.), позволяющие прозрачно перемещать службы NFS. Эти улучшения ядра позволяют клиентам NFS избавиться от ошибок потерянных указателей файлов, возникающих после перемещения службы NFS. Если в ядре не реализованы эти улучшения NFS, служба NFS тем не менее сможет работать в кластере, но при запуске и остановке службы вы увидите сообщения, предупреждающие об отсутствии этих улучшений.
Во всех кластерных системах должны работать демоны NFS. Этого можно добиться, задав выполнение сценария NFS уровня выполнения init.d. Например:
/sbin/chkconfig --level 345 nfs on |
Также должны работать демоны RPC portmap. Например:
/sbin/chkconfig --level 345 portmap on |
NFS службы не запустятся, если не будут работать следующие NFS-демоны: nfsd, rpc.mountd, и rpc.statd.
Подключения файловых систем, а также их экспорт, для кластерных служб NFS не должны задаваться в файлах /etc/fstab и /etc/exports. В кластерных NFS службах подключения файловых систем и их экспорт задаются в утилите cluadmin.
Перед выполнением настройки служб NFS, важно составить план экспорта и переноса файловых систем. Для настройки служб NFS потребуется следующая информация:
Service Name (Название службы) — Имя, используемое для обозначения службы в кластере.
Preferred Member — Имя системы, которая будет выполнять роль сервера NFS этой службы, если в кластере работают несколько узлов.
Relocation Policy (Политика перемещения) — политика, определяющая, перемещать ли службу на предпочитаемый узел, если во время запуска службы он был отключен. Этот параметр полезен в конфигурациях с балансировкой нагрузки, когда общая нагрузка делится на два сервера.
IP Address (IP адрес) — клиенты NFS будут обращаться к файловым системам NFS сервера, используя этот адрес (или связанное с ним имя компьютера). Чтобы NFS клиенты не зависели от того, какой из узлов кластера в данный момент исполняет роль NFS сервера, для обращения к службе они не должны использовать имя узла кластера. Вместо этого, кластерным NFS службам назначаются плавающие IP адреса, отличные от IP адресов узлов кластера. Этот плавающий IP адрес присваивается узлу, который действительно в данный момент выполняет NFS экспорт. При таком подходе, клиенты NFS могут знать о существовании только плавающего IP адреса, и не зависеть от перемещений службы от одного узла к другому. Задавая IP адрес службы NFS, администратор также может определить маску сети и адрес широковещательной рассылки. Если будет указано None (Отсутствует) (по умолчанию предлагается это значение), в качестве маски сети и широковещательного адреса будут применены параметры настройки сетевого интерфейса.
Mount Information (Информация о подключениях) — информация о подключениях не кластерных файловых систем обычно находится в файле /etc/fstab. Напротив, кластерные файловые системы не следует описывать в файле /etc/fstab. Таким образом гарантируется, что файловая система будет подключена только на одном узле кластера. Нарушение этого правила приводит к разрушению файловой системы и отказу системы в целом.
Device special file (Специальный файл устройства) — Специальный файл дискового устройства, файловая система которого будет подключена. Вы должны определить этот параметр в ходе настройки службы NFS.
Mount point directory (Каталог подключения) — служба NFS может подключать больше одной файловой системы. В таком случае, файловые системы будут объединены в одну переносимую группу.
Mount options (Параметры подключения) — Параметры, задаваемые при подключении. Замечание по умолчанию, Linux-сервер NFS не гарантирует, что запись данных будет произведена на жесткий диск синхронно. Чтобы включить режим синхронной записи, укажите параметр подключения sync. Определяя параметр sync, вы получаете гарантию целостности данных, но теряете в производительности системы. За подробным описанием параметров подключения, обратитесь к странице mount(8) руководства.
Forced unmount (Принудительное отключение) — Этот параметр определяет, будет ли разрешено принудительное отключение файловых систем. Если принудительное отключение разрешено, и какие-либо приложения, работающие в кластерной системе, используют эту файловую систему при отключении или перемещении службы, перед выполнением отключения файловой системы такие приложения будут завершены в принудительном порядке.
Export Information (Информация об экспортах) — Информация об экспортах не кластерных служб NFS, обычно помещается в файл /etc/exports. Напротив, кластерные службы NFS не должны размещать эту информацию в /etc/exports; эти параметры задаются в ходе настройки службы. Информация об экспорте включает в себя:
Export directory (Экспортируемый каталог) — Экспортируемый каталог может совпадать с точкой подключения. В этом случае, через NFS доступна вся файловая система. Кроме этого, можно экспортировать не всю, а часть (подкаталог) подключенной файловой системы. Экспортируя подкаталоги файловой системы, вы можете определить разным группам NFS-клиентов различные права.
Export client names (Имена клиентов экспорта) — этот параметр определяет, каким компьютерам будет разрешено подключаться к экспортируемой файловой системе. В этом параметре можно указать как отдельные имена компьютеров (например, fred), так и целые домены (например, *.wizzbang.com). Если значение этого параметра равно *, любой компьютер сможет подключить эту файловую систему.
Export client options (Параметры экспорта для клиентов) — этот параметр определяет права доступа, назначенные соответствующим клиентам. Например, вы можете задать доступ ro (только чтение), и rw (чтение-запись). По умолчанию установлены следующие параметры экспорта: ro,async,wdelay,root_squash.
За подробным описанием параметров экспорта, обратитесь к странице export(5) руководства.
Настраивая службы NFS с помощью утилиты cluadmin:
Внимательно проверьте правильность заданных параметров службы. Встроенная логика проверки правильности параметров не является достаточной.
Во многих приглашениях утилиты, с помощью команды
Ниже приведен пример конфигурации, иллюстрирующий процесс настройки службы NFS. В этом пример настраивается один NFS-экспорт, в котором находятся домашние каталоги 4 работников отдела бухгалтерии. Доступ клиентов к NFS будет ограничен четырьмя компьютерами этих работников.
Ниже приведены используемые параметры настройки службы, а также некоторые комментарии к ним.
Замечание | |
---|---|
Для настройки службы NFS с помощью cluadmin, необходимо запустить демоны кластера. |
Service Name (Название службы) — nfs_accounting. Название службы выбрано исходя из предназначения службы - предоставлять экспорт работникам бухгалтерии.
Preferred Member (Предпочитаемый узел) — clu4. В этом примере кластера узлы имеют имена clu3 и clu4.
User Script (Пользовательский сценарий ) — Программное обеспечение кластера имеет встроенную поддержку служб NFS. В связи с этим, при настройке службы NFS нет необходимости создавать такой сценарий. Поэтому для параметра User Script устанавливается значение по умолчанию: None (Отсутствует).
IP Address (IP адрес) — 10.0.0.10. К имени компьютера clunfsacct, связанного с этим IP адресом, NFS-клиенты будут обращаться при подключении файловых систем. Заметьте, этот IP отличается от адресов узлов кластера (clu3 и clu4). В качестве маски сети и широковещательного адреса будут использованы значения по умолчанию.
Mount Information (Информация о подключении) — /dev/sdb10, имя раздела на общем RAID-хранилище, где физически располагается файловая система. ext3 — тип подключаемой файловой системы. /mnt/users/accounting — точка подключения файловой системы. rw,nosuid,sync — параметры подключения.
Export Information (Информация об экспорте) - в этом примере, вся подключенная файловая система будет доступна на чтение и запись четырем работникам бухгалтерии. Компьютеры этих работников имеют следующие имена: burke, stevens, needle и dwalsh.
Ниже приведена часть файла /etc/hosts, в котором описаны IP адреса и связанные имена компьютеров, используемых в кластере.
10.0.0.3 clu3 # cluster member 10.0.0.4 clu4 # second cluster member 10.0.0.10 clunfsacct # floating IP address associated with accounting dept. NFS service 10.0.0.11 clunfseng # floating IP address associated with engineering dept. NFS service |
Ниже приведен настройки в утилите cluadmin службы NFS с описанными выше параметрами:
cluadmin> service add Service name: nfs_accounting Preferred member [None]: clu4 Relocate when the preferred member joins the cluster (yes/no/?) \ [no]: yes Status check interval [0]: 30 User script (e.g., /usr/foo/script or None) [None]: Do you want to add an IP address to the service (yes/no/?) [no]: yes IP Address Information IP address: 10.0.0.10 Netmask (e.g. 255.255.255.0 or None) [None]: Broadcast (e.g. X.Y.Z.255 or None) [None]: Do you want to (a)dd, (m)odify, (d)elete or (s)how an IP address, or are you (f)inished adding IP addresses [f]: f Do you want to add a disk device to the service (yes/no/?) [no]: yes Disk Device Information Device special file (e.g., /dev/sdb4): /dev/sdb10 Filesystem type (e.g., ext2, ext3 or None): ext3 Mount point (e.g., /usr/mnt/service1) [None]: /mnt/users/accounting Mount options (e.g., rw,nosuid,sync): rw,nosuid,sync Forced unmount support (yes/no/?) [yes]: Would you like to allow NFS access to this filesystem (yes/no/?) [no]: yes You will now be prompted for the NFS export configuration: Export directory name: /mnt/users/accounting Authorized NFS clients Export client name [*]: burke Export client options [None]: rw Do you want to (a)dd, (m)odify, (d)elete or (s)how NFS CLIENTS, or are you (f)inished adding CLIENTS [f]: a Export client name [*]: stevens Export client options [None]: rw Do you want to (a)dd, (m)odify, (d)elete or (s)how NFS CLIENTS, or are you (f)inished adding CLIENTS [f]: a Export client name [*]: needle Export client options [None]: rw Do you want to (a)dd, (m)odify, (d)elete or (s)how NFS CLIENTS, or are you (f)inished adding CLIENTS [f]: a Export client name [*]: dwalsh Export client options [None]: rw Do you want to (a)dd, (m)odify, (d)elete or (s)how NFS CLIENTS, or are you (f)inished adding CLIENTS [f]: f Do you want to (a)dd, (m)odify, (d)elete or (s)how NFS EXPORTS, or are you (f)inished adding EXPORTS [f]: Do you want to (a)dd, (m)odify, (d)elete or (s)how DEVICES, or are you (f)inished adding DEVICES [f]: Disable service (yes/no/?) [no]: name: nfs_eng disabled: no preferred node: clu4 relocate: yes user script: None monitor interval: 30 IP address 0: 10.0.0.10 netmask 0: None broadcast 0: None device 0: /dev/sdb10 mount point, device 0: /mnt/users/accounting mount fstype, device 0: ext3 mount options, device 0: rw,nosuid,sync force unmount, device 0: yes NFS export 0: /mnt/users/accounting Client 0: burke, rw Client 1: stevens, rw Client 2: needle, rw Client 3: dwalsh, rw Add nfs_eng service as shown? (yes/no/?) yes Added nfs_eng. cluadmin> |
Для использования кластерной службы NFS клиенты не требуют какой-то особенной настройки. В соответствии с приведенным выше примером, если клиентской системе нужно подключиться к службе NFS высокой степени доступности, в файле /etc/fstab необходимо добавить следующую строку:
clunfsacct:/mnt/users/accounting /mnt/users/ nfs bg 0 0 |
В предыдущем разделе рассматривалась примерная конфигурация простой службы NFS. В этом разделе описывается как настроить более сложную службу NFS.
В примере, приведенном в этом разделе, рассматривается настройка двух служб NFS высокой степени доступности. В этом примере предполагается, что к файловым системам NFS, обслуживаемым кластером, обращаются две различные группы пользователей. Для обслуживания этих пользователей, необходимо настроить две отдельных службы NFS. Каждая службе будет присвоен отдельный IP адрес, а также предпочитаемый узел кластера. Таким образом, при нормальной работе двух узлов кластера, каждый из них будет экспортировать одну из файловых систем. Это позволяет администратору более эффективно использовать мощности двух кластерных систем. В случае сбоя (или запланированного обслуживания) на одном из узлов кластера, обе службы NFS будут запущены на работающем узле кластера.
Эта примерная конфигурация строится на основе конфигурации, приведенной в предыдущем разделе, за счет добавления второй службы. При добавлении второй службы используются следующие параметры настройки:
Service Name (Название службы) — nfs_engineering. Название службы выбрано исходя из предназначения службы - предоставлять экспорт работникам технического отдела.
Preferred Member (Предпочитаемый узел) — clu3. В этом примере кластера узлы имеют имена clu3 и clu4. Обратите внимание, что здесь указано имя компьютера clu3, так как предпочитаемым узлом другой кластерной службы (nfs_accounting) является узел clu4.
IP Address (IP адрес) — 10.0.0.11. К имени компьютера clunfseng, связанного с этим IP адресом, NFS-клиенты будут обращаться при подключении файловых систем. Заметьте, этот IP отличается от адресов узлов кластера (clu3 и clu4). Также обратите внимание на то, что этот IP адрес отличается от присвоенного другой NFS службе (nfs_accounting). В качестве маски сети и широковещательного адреса будут использованы значения по умолчанию.
Mount Information (Информация о подключении) — /dev/sdb11, имя раздела на общем RAID-хранилище, где физически располагается файловая система. ext2 — тип подключаемой файловой системы. /mnt/users/engineering — точка подключения файловой системы. rw,nosuid,sync — параметры подключения.
Export Information (Информация об экспорте) — в этом примере, отдельные каталоги подключенной файловой системы будут доступны на чтение и запись трем работникам технического отдела. Компьютеры этих работников носят имена: ferris, denham, и brown. Обратите внимание, чтобы сделать этот пример более показательным, каждый работник отдела сможет подключить только свой собственный каталог.
Ниже приведен пример создания службы NFS, в том же кластере, что и в предыдущем примере, при создании службы nfs_accounting, с помощью утилиты cluadmin.
cluadmin> service add Service name: nfs_engineering Preferred member [None]: clu3 Relocate when the preferred member joins the cluster (yes/no/?) [no]: yes Status check interval [0]: 30 User script (e.g., /usr/foo/script or None) [None]: Do you want to add an IP address to the service (yes/no/?) [no]: yes IP Address Information IP address: 10.0.0.11 Netmask (e.g. 255.255.255.0 or None) [None]: Broadcast (e.g. X.Y.Z.255 or None) [None]: Do you want to (a)dd, (m)odify, (d)elete or (s)how an IP address, or are you (f)inished adding IP addresses [f]: f Do you want to add a disk device to the service (yes/no/?) [no]: yes Disk Device Information Device special file (e.g., /dev/sdb4): /dev/sdb11 Filesystem type (e.g., ext2, ext3 or None): ext2 Mount point (e.g., /usr/mnt/service1) [None]: /mnt/users/engineering Mount options (e.g., rw,nosuid,sync): rw,nosuid,sync Forced unmount support (yes/no/?) [yes]: Would you like to allow NFS access to this filesystem (yes/no/?) \ [no]: yes You will now be prompted for the NFS export configuration: Export directory name: /mnt/users/engineering/ferris Authorized NFS clients Export client name [*]: ferris Export client options [None]: rw Do you want to (a)dd, (m)odify, (d)elete or (s)how NFS CLIENTS, or are you (f)inished adding CLIENTS [f]: f Do you want to (a)dd, (m)odify, (d)elete or (s)how NFS EXPORTS, or are you (f)inished adding EXPORTS [f]: a Export directory name: /mnt/users/engineering/denham Authorized NFS clients Export client name [*]: denham Export client options [None]: rw Do you want to (a)dd, (m)odify, (d)elete or (s)how NFS CLIENTS, or are you (f)inished adding CLIENTS [f]: Do you want to (a)dd, (m)odify, (d)elete or (s)how NFS EXPORTS, or are you (f)inished adding EXPORTS [f]: a Export directory name: /mnt/users/engineering/brown Authorized NFS clients Export client name [*]: brown Export client options [None]: rw Do you want to (a)dd, (m)odify, (d)elete or (s)how NFS CLIENTS, or are you (f)inished adding CLIENTS [f]: f Do you want to (a)dd, (m)odify, (d)elete or (s)how NFS EXPORTS, or are you (f)inished adding EXPORTS [f]: a Do you want to (a)dd, (m)odify, (d)elete or (s)how DEVICES, or are you (f)inished adding DEVICES [f]: Disable service (yes/no/?) [no]: name: nfs_engineering disabled: no preferred node: clu3 relocate: yes user script: None monitor interval: 30 IP address 0: 10.0.0.11 netmask 0: None broadcast 0: None device 0: /dev/sdb11 mount point, device 0: /mnt/users/engineering mount fstype, device 0: ext2 mount options, device 0: rw,nosuid,sync force unmount, device 0: yes NFS export 0: /mnt/users/engineering/ferris Client 0: ferris, rw NFS export 0: /mnt/users/engineering/denham Client 0: denham, rw NFS export 0: /mnt/users/engineering/brown Client 0: brown, rw Add nfs_engineering service as shown? (yes/no/?) yes Added nfs_engineering. cluadmin> |
Следующие особенности необходимо принять во внимание при настройке кластерных служб.
Файловые системы NFS, экспортируемые кластерными системами, не указываются в стандартном файле /etc/exports. Вместо этого NFS экспорты, связанные с кластерными службами, сохраняются в файле конфигурации кластера (с помощью cluadmin).
Команда exportfs -r удаляет все экспорты, не объявленные явно в файле /etc/exports. Выполнение этой команды приведет к недоступности кластерных служб NFS до перезапуска службы. Поэтому рекомендуется не использовать команду exportfs -r в кластере с настроенными службами NFS высокой степени доступности. Чтобы восстановить систему после непреднамеренного использования exportfs -r, необходимо остановить, а затем перезапустить кластерную службу NFS.
Блокировки файлов NFS не сохраняются при переносе или перемещении службы. Причиной этого является то, что реализация NFS в Linux сохраняет информацию о блокировках в системных файлах. Эти системные файлы, сохраняющие состояние блокировок, в кластере не реплицируются. Вследствие этого, после переноса службы могут быть установлены другие блокировки.