Red Hat Cluster Manager: Руководство по установке и администрированию Red Hat Cluster Manager | ||
---|---|---|
Назад | Глава 6. Сетевые службы общего доступа к файлам | Вперед |
Сетевые файловые системы высокой степени доступности является одним из самых эффективным применением кластера. Использование служб Samba высокой степени доступности даёт следующие преимущества:
Возможность предоставления в общий доступ файлов для клиентов Microsoft® Windows™ с использованием протокола CIFS/SMB.
Позволяет и Windows и NFS клиентам одновременно работать с одним набором файловых систем.
Предоставляет Windows клиентам надежный доступ к важным данным, или в случае отказа сервера позволяет быстро восстановить соединение.
Облегчает выполнение технической поддержки, так как в кластере возможно прозрачное перемещение служб Samba на один узел, при этом администратор может исправить или заменить другой узел кластера.
Позволяет собрать конфигурацию "активный-активный" для более эффективного использования оборудования. Дополнительные подробности таких конфигураций приведены ниже.
Замечание | |
---|---|
Полное рассмотрение конфигурации Samba выходит за рамки этого документа. Поэтому в этом руководстве выделены только основные аспекты использования этой службы в кластере. Обратитесь к Официальному руководству по настройке Red Hat Linux за дополнительными подробностями о настройке Samba. Кроме этого, за дополнительной информацией о Samba обратитесь по адресу http://www.redhat.com/support/resources/print_file/samba.html. Для настройки службы Samba высокой степени доступности необходимо понимать как настраивается обычные, не кластерные службы Samba. |
Если вы намереваетесь создать службы Samba высокой степени доступности, все узлы вашего кластера должны соответствовать определенным требованиям. Эти требования включают в себя:
Должны быть установлены пакеты Samba RPM. Система Red Hat Enterprise Linux AS поставляется со следующими пакетами, связанными со службой Samba: samba и samba-common. Заметьте, никаких дополнительных изменений пакетов Samba RPM для поддержки высокой степени доступности не требуется.
Демоны Samba будут запускаться и останавливаться программным обеспечением кластера на основе служб. Поэтому, информация о конфигурации Samba не должна указываться в стандартном файле /etc/samba/smb.conf. Автоматический запуск демонов Samba smbd и nmbd должен быть отключен в уровнях выполнения init.d. Например: chkconfig --del smb.
Так как инфрастуктура кластера останавливает соответствующие демоны Samba, системные администраторы не должны вручную запускать стандартный сценарий остановки samba (например, service smb stop) так при этом будут остановлены все демоны, связанные с кластером.
Подключения файловых систем, используемых службами Samba не должны описываться в файле /etc/fstab. В кластерных службах подключения файловых систем задаются в утилите cluadmin.
Перенос общих принтеров Samba в данный момент не поддерживается.
В этом разделе рассматривается модель реализации поддержки служб Samba высокой степени доступности. Ознакомившись с этой моделью, вы сможете понять требования к конфигурации кластерных служб Samba.
В обычной, не кластерной конфигурации Samba управление службой осуществляется с помощью файла /etc/samba/smb.conf, в котором описываются файловые системы, доступные определенным Windows-клиентам. В нем также описываются права доступа и другие параметры подключения общих ресурсов. В модели с одним сервером, один экземпляр демонов smbd и nmbd автоматически запускается сценарием уровня выполнения /etc/rc.d/init.d/smb.
Чтобы реализовать службы Samba высокой степени доступности, вместо одного файла /etc/samba/smb.conf каждая службы Samba использует свой файл конфигурации. Эти файлы носят названия /etc/samba/smb.conf.sharename; где sharename - имя определенного ресурса, предоставляемого службой Samba. Например, если один общий ресурс называется eng а другой ресурс - acct, файлы конфигурации Samba будут иметь названия /etc/samba/smb.conf.eng и /etc/samba/smb.conf.acct, соответственно.
Формат файла smb.conf.sharename идентичен формату стандартного файла smb.conf. Никаких дополнительных полей для работы службы в кластере не создаётся. В файле smb.conf.sharename необходимо определить некоторые параметры, которые потребуются для корректной работы кластера, они будут описаны в следующем разделе. Когда с помощью утилиты cluadmin добавляется новая служба Samba, автоматически создается шаблон файла smb.conf.sharename на основе заданных параметров службы. Этот файл затем может использоваться как исходная точка; впоследствии администратор может добавлять в него клиентов Windows, определенные каталоги для общего доступа, а также разрешения.
Системный администратор должен скопировать полученный файл /etc/samba/smb.conf.sharename на каждый узел кластера. После внесения любых изменений файла smb.conf.sharename, сделанных после первоначальной конфигурации, также необходимо скопировать этот файл на другой узел кластера.
Для повышения степени доступности Samba, каждая отдельная служба Samba в кластере настраивается (в cluadmin) со своей собственной парой демонов smbd/nmbd. Поэтому, если в кластере настроено несколько служб Samba, на отдельном узле кластера вы можете увидеть несколько экземпляров этих пар демонов. Демоны Samba smbd/nmbd не запускаются стандартными сценариями уровня выполнения init.d; их запускает кластерное программное обеспечение на работающем, исполняющим службу, узле.
Чтобы один узел мог выполнять несколько экземпляров демонов Samba, каждой паре демонов требуется отдельный каталог блокировок. Поэтому, для каждой службы Samba определяется свой каталог блокировок демона. Этот каталог носит название /var/cache/samba/sharename; где sharename заменяется именем общего ресурса Samba, указанного при конфигурации службы (в cluadmin). Для приведенного выше примера, соответствующие каталоги блокировок будут называться /var/cache/samba/eng и /var/cache/samba/acct.
Когда служба Samba настраивается с помощью утилиты cluadmin, каталог /var/cache/samba/sharename автоматически создаётся утилитой cluadmin. При этом появляется сообщение о необходимости вручную создать такой каталог блокировок на другом узле кластера. Например: mkdir /var/cache/samba/eng
Перед настройкой служб Samba соберите информацию о конфигурации, например, какие файловые системы будут представляться в виде общих папок Windows клиентам. Для настройки служб Samba потребуется следующая информация:
Service Name (Название службы) — Имя, используемое для обозначения службы в кластере.
Preferred Member — Имя системы, которая будет выполнять роль сервера Samba этой службы, если в кластере работают несколько узлов.
Relocation Policy (Политика перемещения) — политика, определяющая, перемещать ли службу на предпочитаемый узел, если во время запуска службы он был отключен. Этот параметр полезен в конфигурациях с балансировкой нагрузки, когда общая нагрузка делится на два сервера Samba.
Status Check Interval (Интервал проверки состояния) — определяет как часто (в секундах) подсистема кластера должна проверять, работает ли пара демонов Samba smbd/nmbd, связанных со службой. Если один из этих демонов неожиданно прекращает работу, он будет автоматически перезапущен для продолжения работы службы. Если указано значение, равное 0, наблюдение за службой не будет производиться. Если значение этого параметра равно 90, с промежутком в 90 секунд будет происходить опрос состояния служб.
IP Address (IP адрес) — Windows-клиенты будут обращаться к общим ресурсам сервера, используя этот адрес (или связанное с ним имя компьютера). Чтобы Windows-клиенты не зависели от того, какой из узлов кластера в данный момент исполняет роль NFS сервера, для обращения к службе они не должны использовать имя узла кластера. Вместо этого, кластерным службам Samba назначаются плавающие IP адреса, отличные от IP адресов узлов кластера. Этот плавающий IP адрес присваивается узлу, который действительно в данный момент предоставляет общий доступ к ресурсу. При таком подходе, Windows-клиенты могут знать о существовании только плавающего IP адреса, и не зависеть от перемещений службы от одного узла к другому. Задавая IP адрес службы Samba, администратор также может определить маску сети и адрес широковещательной рассылки. Если будет указано None (Отсутствует) (по умолчанию предлагается это значение), в качестве маски сети и широковещательного адреса будут применены параметры настройки сетевого интерфейса.
Mount Information (Информация о подключениях) — информация о подключениях не кластерных файловых систем обычно находится в файле /etc/fstab. Напротив, кластерные файловые системы не следует описывать в файле /etc/fstab. Таким образом гарантируется, что файловая система будет подключена только на одном узле кластера. Нарушение этого правила приводит к разрушению файловой системы и отказу системы в целом.
Device special file (Специальный файл устройства) — Специальный файл дискового устройства, файловая система которого будет подключена. Вы должны определить этот параметр в ходе настройки службы Samba.
Mount point directory (Каталог подключения) — служба Samba может подключать больше одной файловой системы. В таком случае, файловые системы будут объединены в одну переносимую группу.
Mount options (Параметры подключения) — Параметры, задаваемые при подключении.
Forced unmount (Принудительное отключение) — Этот параметр определяет, будет ли разрешено принудительное отключение файловых систем. Если принудительное отключение разрешено, и какие-либо приложения, работающие в кластерной системе, используют эту файловую систему при отключении или перемещении службы, перед выполнением отключения файловой системы такие приложения будут завершены в принудительном порядке.
Export Information (Информация об экспортах) — эта информация требуется только для служб NFS. Если вы настраиваете файловый сервер только для Windows-клиентов, ответьте отрицательно (no) на вопрос о предоставлении NFS доступа. Напротив, вы можете настроить службу для предоставления разнородного доступа к ресурсам, определив параметры как экспорта NFS, так и общего ресурса Samba.
Samba Share Name (Имя общего ресурса Samba) — В процессе настройки службы вам будет предложено предоставить файловую систему для общего пользования Windows-клиентами. Если вы ответите на этот вопрос положительно, затем вы должны определить имя общего ресурса Samba. От введенного здесь имени будет зависеть название файла конфигурации /etc/samba/smb.conf.sharename и каталога блокировок /var/cache/samba/sharename. По принятому соглашению, имя общего ресурса Windows, указанного в файле smb.conf.sharename также будет соответствовать этому значению. На практике в отдельном файле smb.conf.sharename вы можете описать несколько общих ресурсов Samba. Для каждого устройства может быть определена максимум одна конфигурация Samba; она должна быть указана с первым устройством. Например, если одна служба использует несколько дисковых устройств (и соответствующих точек подключения) , укажите для службы одно имя sharename. Затем, в файле /etc/samba/smb.conf.sharename, опишите отдельные общие ресурсы Samba и соответствующие каталоги различных устройства. Чтобы отключить доступ к службе samba, установите для этого параметра значение None.
Настраивая службы Samba с помощью утилиты cluadmin:
Внимательно проверьте правильность заданных параметров службы. Встроенная логика проверки правильности параметров Samba не является достаточной.
Во многих приглашениях утилиты, с помощью команды
Настроив службу Samba с помощью cluadmin, не забудьте настроить файл /etc/samba/smb.conf.sharename для каждой службы в соответствии с выбранной схемой авторизации.
Не забудьте также скопировать файл smb.conf.sharename на другой узел кластера.
Рекомендуется предварительно создать каталог блокировок демона Samba на другом узле кластера, например, так: mkdir /var/cache/samba/acct.
При удалении службы Samba, также вручную удалите файл /etc/samba/smb.conf.sharename. Утилита cluadmin не удаляет его автоматически для сохранения ваших настроек для возможного последующего использования.
Ниже приведен пример конфигурации, иллюстрирующий процесс настройки службы Samba. В этом примере настраивается один общий ресурс Samba, в котором находятся домашние каталоги четырех работников отдела бухгалтерии. Команда бухгалтеров будет обращаться к этому ресурсу со своих компьютеров с операционной системой Windows.
Ниже приведены используемые параметры настройки службы, а также некоторые комментарии к ним.
Service Name (Название службы) — samba_acct. Название службы выбрано исходя из предназначения службы - предоставлять общий доступ Samba работникам бухгалтерии.
Preferred Member (Предпочитаемый узел) — clu4. В этом примере кластера узлы имеют имена clu3 и clu4.
User Script (Пользовательский сценарий) — Программное обеспечение кластера имеет встроенную поддержку служб Samba. В связи с этим, при настройке службы Samba нет необходимости создавать такой сценарий. Поэтому для параметра User Script устанавливается значение по умолчанию: None (Отсутствует).
Monitoring Interval (Интервал наблюдения) — 90 секунд.
IP Address (IP адрес) — 10.0.0.10. По имени компьютера cluacct, связанному с этим IP адресом, Windows-клиенты будут обращаться при подключении файловых систем. Заметьте, этот IP отличается от адресов узлов кластера (clu3 и clu4). В качестве маски сети и широковещательного адреса будут использованы значения по умолчанию.
Mount Information (Информация о подключении) — /dev/sdb10, имя раздела на общем RAID-хранилище, где физически располагается файловая система. ext2 — тип подключаемой файловой системы. /mnt/users/accounting — точка подключения файловой системы. rw,nosuid,sync — параметры подключения.
Export Information (Информация об экспорте) — для упрощения, в этом примере для файловой системы не определяется NFS экспорт.
Share Name — acct. Это имя ресурса Samba, к которому будут подключаться Windows-клиенты, например так: \\10.0.0.10\acct.
Ниже приведена часть файла /etc/hosts, в котором описаны IP адреса и связанные имена компьютеров, используемых в кластере.
10.0.0.3 clu3 # cluster member 10.0.0.4 clu4 # second cluster member 10.0.0.10 cluacct # floating IP address associated with accounting team NFS service |
Ниже приведен настройки в утилите cluadmin службы Samba с описанными выше параметрами:
Service name: samba_acct Preferred member [None]: clu4 Relocate when the preferred member joins the cluster (yes/no/?) [no]: yes User script (e.g., /usr/foo/script or None) [None]: Status check interval [0]: 90 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]: 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/sdb12 Filesystem type (e.g., ext2, ext3 or None): ext2 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]: no Would you like to share to Windows clients (yes/no/?) [no]: yes You will now be prompted for the Samba configuration: Samba share name: acct The samba config file /etc/samba/smb.conf.acct does not exist. Would you like a default config file created (yes/no/?) [no]: yes Successfully created daemon lock directory /var/cache/samba/acct. Please run `mkdir /var/cache/samba/acct` on the other cluster member. Successfully created /etc/samba/smb.conf.acct. Please remember to make necessary customizations and then copy the file over to the other cluster member. Do you want to (a)dd, (m)odify, (d)elete or (s)how DEVICES, or are you (f)inished adding DEVICES [f]: f name: samba_acct preferred node: clu4 relocate: yes user script: None monitor interval: 90 IP address 0: 10.0.0.10 netmask 0: None broadcast 0: None device 0: /dev/sdb12 mount point, device 0: /mnt/users/accounting mount fstype, device 0: ext2 mount options, device 0: rw,nosuid,sync force unmount, device 0: yes samba share, device 0: acct Add samba_acct service as shown? (yes/no/?) yes |
После настройки службы, выполненной с помощью cluadmin, как показано выше, не забудьте:
Отредактировать в соответствии с требованиями файл /etc/samba/smb.conf.sharename.
Скопировать файл /etc/samba/smb.conf.sharename на другой узел кластера.
Создать каталог блокировок на другом узле кластера, например mkdir /var/cache/samba/acct
В этом разделе описаны поля файла smb.conf.sharename, которые влияют на корректную работу служб Samba высокой степени доступности. Полное описание всех параметров файла конфигурации Samba выходит за рамки этого документа. Для поддержки кластера никаких дополнительных полей добавлено не было, формат файла также соответствует соглашениям Samba.
Ниже показан пример файла smb.conf.sharename, автоматически сгенерированного утилитой cluadmin для службы с указанными с параметрами. Этот пример соответствует настройке службе, выполненной с помощью cluadmin выше.
# Template samba service configuration file - please modify to specify # subdirectories and client access permissions. # Remember to copy this file over to other cluster member, and create # the daemon lock directory /var/cache/samba/acct. # # From a cluster perspective, the key fields are: # lock directory - must be unique per samba service. # bind interfaces only - must be present set to yes. # interfaces - must be set to service floating IP address. # path - must be the service mountpoint or subdirectory thereof. # Refer to the cluster documentation for details. [global] workgroup = RHCLUSTER lock directory = /var/cache/samba/acct log file = /var/log/samba/%m.log encrypt passwords = yes bind interfaces only = yes interfaces = 10.0.0.10 [acct] comment = High Availability Samba Service browsable = yes writable = no public = yes path = /mnt/service12 |
Ниже приведены описания самых значимых, с точки зрения кластера, параметров файла /etc/samba/smb.conf.sharename. В этом примере, файл с именем /etc/samba/smb.conf.acct соответствует имени общего ресурса acct, определенному в утилите cluadmin. Ниже описаны только поля, относящиеся к работе кластера. Остальные поля соответствуют стандартным правилам Samba, которые должны соблюдаться.
Эти параметры относятся ко всем общим ресурсам, указанным в файле smb.conf.sharename. Обратите внимание, в этом файле можно описать несколько общих разделов, при этом соответствующие каталоги должны находиться в подключенных службой файловых системах.
Указывает имя каталога, в котором демоны Samba smbd/nmbd будут размещать свои файлы блокировок. Оно должно быть равно /var/cache/samba/sharename, где sharename может меняться в зависимости от параметра, заданного в cluadmin. Этот каталог необходимо определить для работы на одном узле нескольких экземпляров демонов smbd/nmbd разных служб.
Этот параметр должен равен yes (да) чтобы каждая пара служб smbd/nmbd привязывалась к плавающему IP адресу, связанному с кластерной службой Samba.
Укажите IP адрес, связанный со службой Samba. Если указывается сетевая маска службы, это поле выглядит следующим образом: interfaces = 10.0.0.10/255.255.254.0
Эти параметры относятся к определенному разделу Samba.
По умолчанию, для общего ресурса установлены права только на чтение. Задавайте этот параметр в соответствии с требованиями вашего окружения.
По умолчанию, это точка подключения первой файловой системы, указанная при настройке службы. В этом поле задается каталог или подкаталог, который будет быть доступен Windows-клиентам.
Windows-клиенты не требуют дополнительной настройки для использования общих ресурсов предоставляемых кластером высокой степени доступности. Единственным требованием при подключении Windows-клиентов является использование для доступа к общему ресурсу Samba плавающего IP адреса (или связанного имени компьютера), определенного в cluadmin, например 10.0.0.10. Windows-клиенты не должны обращаться к ресурсу по адресу одного из узлов кластера (например, clu3 или clu4).
В зависимости от используемой в окружении кластера схемы проверки подлинности, для определения учетных записей Windows-пользователей в кластерных системах может понадобиться команда smbpasswd. При создании этих учетных записей, необходимо, чтобы информация, связанная с учетными записями Samba была синхронизирована на обоих узлах кластера. Добиться этого можно, либо запустив утилиту smbpassword на каждом узле кластера, либо выполнив эту команду в одной системе и скопировав полученный файл /etc/samba/smbpasswd в другую. Например, чтобы разрешить подключение к общему ресурсу Samba, обслуживаемому кластером, Windows-клиенту sarge, необходимо выполнить следующую команду на обоих узлах кластера, определяя каждый раз одно и то же имя пользователя и пароль:
smbpasswd -a sarge |
После этого Windows-клиент может обращаться к общему ресурсу Samba обычным способом. Например, можно нажать кнопку Start (Пуск) на панели задач, выбрав затем Run (Выполнить). При этом на экране появляется диалоговое окно, в котором можно указать имя кластерного общего ресурса Samba. Например: \\10.0.0.10\acct или \\cluacct\acct. Для подключения общего ресурса Samba Windows-клиент может также выполнить операцию Map Network Drive (Подключить сетевой диск). Убедитесь в том, что в имени ресурса указывается имя компьютера, соответствующее плавающему IP-адресу службы. Согласно приведенной выше выдержке из файла /etc/hosts; правильным именем этого ресурса высокой степени доступности будет \\cluacct\acct. Обращение к этому ресурсу не должно производиться по имени узла кластера. Например, не обращайтесь к ресурсу по имени \\clu3\acct или \\clu4\acct. Если вы обратились к ресурсу по имени узла кластера (например \\clu3\acct), Windows-клиенты смогут получать доступ к этому ресурсу, только если он действительно обслуживается узлом clu3, таким образом вы теряете высокую степень доступности ресурса.
В отличие от протокола NFS, применяемый в Windows протокол CIFS/SMB использует больше состояний. Как следствие, в Windows-окружении, каждое отдельное приложение должно соответствующим образом реагировать на отсутствие немедленного ответа от сервера Samba. В случае запланированного перемещения службы или неожиданного сбоя, в течении некоторого времени клиенты Windows не будут получать ответа от сервера Samba. Разработанные корректно приложения Windows будут обращаться к ресурсу повторно в течении этого интервала.
Такие приложения смогут дождаться ответа службы, таким образом перемещение или перенос службы проходит для Windows клиентов незаметно. Напротив, некорректно разработанные приложения Windows выдадут сообщения об ошибке в случае отказа или перемещении службы, указывая на невозможность подключения к ресурсам. Возможно вам потребуется повторить операцию или перезапустить Windows-приложение для повторного подключения к общему ресурсу Samba, если это приложение повело себя некорректно при сбое или перемещении службы.
Поведение Windows-клиентов в ответ на сбой или перемещение службы samba также зависит от версии системы Windows, установленной на клиентском компьютере. Например, операционные системы, основанные на версии Windows 98 часто выдают ошибку, например, такую, "The network path was not found (Сетевой путь указан неверно)". Тогда как более поздние версии, такие как Windows 2000, при тех же обстоятельствах продолжают работать.