Оцените этот текст:




 Про clu_create

1. Virtual cluster interconnect device   (isc0) 10.0.0.1
Phisical cluster interconnect device  (tu0)  10.1.0.1
Зачем дублировать phisical виртуальным и зачем два адреса для CI?

Если MC, то IP будет только один.
Если LAN - то виртуальный адрес - для эмуляции MC-интерфейса

2. Партиции под root,var,usr нужно размечать заранее врукопашную?
   Ответ: да

3. Диски для quorum, boot1 clu_create расапартиширует самостоятельно?
   Ответ: да

4. Где физически живет /cluster/members/{memb}
   Ответ: соответствующий boot-диск root2_domain#root at /dev/disk/dsk2a
   Например: /vmunix --> /cluster/members/{memb}/boot_partition/vmunix

5.   Как  сгенерить  ядро  для  только  что  вставленного  в  машину  fiber╜
chanel-контроллера

>>> boot -file  genvmunix -fl s  dka300
# doconfig
# cp /sys/MOS209/vmunix /

Если дравера нет, то поставить NHD (New Hardware Delivery)
mount /cdrom
/cdrom/nhd_install   ну а он запускает setld
ставит  в  т.ч.  дравер.  Если  ставился  дравер  -  то будет перезагрузка и
пересборка ядра

6. Какой внешний адрес будет у каждого члена кластера?
одинаковый - совпадающий с IP кластера? Как их различать снаружи?
Или я буду ходить с узла на узел используя внутренние CI-шные адреса?
Phisical или виртуальный?

У  узла  будет  несколько  IP-адресов.  Свой индивидуальный, общекластерный,
назначенный на IC-физический, на IC-виртуальный

По  умолчанию  OUT-IP  - адрес узла. Если в /etc/cluster_services порту дать
атрибут outmulti, то наружу на этот порт пойдем от имени кластера


7. DRD касается только дисков, или другие устройства тоже?
(Если да, то какие - com,lpt,ethernet...)?

DSK, TAPE

8.  О  кворуме. Достаточный кворум - контанта, или пропорционален количеству
достижимых на данный момент узлов?  Т.е.  в  8-машинном  кластере  можно  ли
добраться вычитанием по одному до 2-узловой конфигурации?

Минимальный  достаточный  кворум  -  константа.  Но  ее  можно  уменьшать  в
/etc/sysconfigtab Но делать это надо заранее, если останется  узлов  меньше,
чем этот минимум, кластер повиснет в io-suspend

9.  По аналогии с симлинками. Где отрабатываюыся cdsl-линки при NFS монтаже?
И как обстоит дело с абсолютными и относительными линками?

Ответ:

Он  отдается  как симлинк, as is вместе с {memb}. Если я хочу его прочитать,
мне придется самому быть trueunix'ом. В кластере NFS-сервер является  именно
кластерным, и отдает только общую файловую систему.

10. ssh IP-кластера будет кидать на одну и ту же ноду всегда? Или round-robin

Если порт зарегистрирован в /etc/cluster_services как

in_single  (default)  -  то  все  приходы  форвардятся  на одну и ту же ноду
   (выбранную случайно. Если нода закрыла порт, начинается проброс на другую)

in_multi  -  то  приходы форвардятся по нодам в соответствии с атрибутом
             selection-weight  (по  умолчанию  3  на  одну,  затем 3 на
             другую, и так по кругу)




 ---------------------------------------
  eth              eth
CLUSTER          CLUSTER
      ci ====== ci
MEMBER1          MEMBER2
 scsi/fc           fs
     \______________|______________________________
           RAID      SCSI
          массив     диск


 ci     - Cluster interconnect - либо dedicated LAN
                                 либо MC - Memory Chanel

 scsi/fs - общая SCSI шина или Fiber chanel для подключения
                 систем хранения видимых со ввсех членов кластера



О забеге SCSI на сервере DS15
Линейное 1*r-чтение     66M/sec
Линейное 2*r-чтение   2*66M/sec
Линейное 3*r-чтение   2*66M/sec
Линейное 4*r-чтение   2*66M/sec

Линейное 1*b-чтение     18M/sec
Линейное 2*b-чтение   2*18M/sec
Линейное 3*b-чтение   2*18M/sec
Линейное 4*b-чтение   2*18M/sec



УКАЗАТЕЛЬ | ADVFS-дравер | дисковая метка | партиция а, b, c

Изготовление загрузчика
dd if=загрузочныйдиск of=новыйдиск

nhd



# только на старых машинах чтоб работал wwidmgr
set mod diag
# только на старых машинах чтоб работала shared bus
set bus_probe_algorithm new

set eib0_mode
set eib0 FastFD   # ee0 = eia0, ee1 = eib0

help wwidmgr          # получаем help
wwidmgr -show wwid    #  Получаем список юнитов

 Назначить диск с udid 131 в переменную wwid0, 132 в
wwidmgr -clear all
wwidmgr -quickset -item 1 -udid 131
wwidmgr -quickset -item 2 -udid 132
show wwid*            # список распознаных fc-юнитов
show n*               # список видимых портов на raid-массиве
 это позволит увидеть их в show dev



disklabel -r  dsk8    #  Посмотреть
disklabel -re dsk8    #  Отредактировать с использованием текстового редактора
diskconfig            #  Отредактировать через GUI

Партиции
/dev/rdisk/dsk[0-9][a-h]  # сырые    dsk7c "c" партиция на весь дис'к
/dev/disk/dsk[0-9][a-h]  # блочные  a,b,d,e,f,g,h - могут перекрываться




Все члены кластера видят единую (одинаковую) файловую систему.
/ /etc /usr и т.д. - одна на всех.

Для размещения _различных_ (индивидуальных) файлов используется
 /cluster/members/member1/...
 /cluster/members/member2/...
 /cluster/members/{memb}/ - каталог индивидуальных файлов члена кластера
 /cluster/members/member --> /cluster/members/{memb}

Хотя /etc/ - общий, в нем хочется некоторые файлы иметь индивидуальными.
Это делается через Context Dependend Symbolic Link (CDFS) указывающих вовнутрь
индивидуального дерева

/etc/passwd --> ../cluster/members/{memb}/etc/passwd

CFS  живет  поверх  DRD  -  обращения  из файловой системы к дискам проходят
сквозь слой Device Request Dispatcher - если диск локальный  (т.е.  виден  с
машины  напрямую  -  запрос  обрабатывается  напрямую, если диск подключен к
другому члену кластера - запрос форвардится на него через Cluster  Intercon╜
nect

каждая  файловая  система  работающая  под  CFS  хостится  конкретным узлом,
остальные редиректят свои запросы на нее через DRD. В  случае  гибели  узла,
автоматически  происходит  переброс обслуживания fs на другой узел. Failover
автоматический, автоматический load-balancing отсутствует.

cfsmgr /filesystem   - какой узел является сервером для этой fs
cfsmgr -a server=system2 /   - перебросить обслуживание "/" на system2



Система,  обеспечивающая failover для приложений - переброс на другой узел в
случае неприятностей на основном узле.

Single-instance - одна копия на кластер. CAA обеспечивает ей failover

Multi-instance	- на каждом узле по копии. Используют locking, чтобы
                  не конфликтовать по общим ресурсам

Distributed     - на каждом узле по копии. Используют кластерные средства
                  оповещения и блокировки (Distributed Lock Manager)
		  чтобы не конфликтовать по ресурсам

/var/cluster/caa/profile/*.cap - Профайлы всех CAA и network-ресурсов
/var/cluster/caa/script/*.scr  - Скрипты всех CAA

################# Network ###############
TYPE = network
NAME = net155
DESCRIPTION = Localnetwork of our office
SUBNET = 155.208.157.0
FAILURE_TRESHHOLD = 0
FAILURE_INTERVAL = 0

################# Tape, Mediachanger ###############
TYPE = tape    # или changer
NAME = TapeRMT0
DESCRIPTION = Tape drive 1
DEVICE_NAME = /dev/tape/tape1
FAILURE_TRESHHOLD = 0
FAILURE_INTERVAL = 0


################# Application ###############
TYPE = application
NAME = appl
DESCRIPTION = Application Description
HOSTING_MEMBERS
PLACEMENT = balanced      # куда уходить
            favored (по порядку списка, а если нет, где придется),
	    restricted (по порядку списка, и только на нем)
REQUIRED_RESOURCES
OPTIONAL_RESOURCES
CHECK_INTERVAL = 60
FAILURE_TRESHHOLD = 0
FAILURE_INTERVAL = 0
RESTART_ATTEMPTS = 1
FAILOVER_DELAY =
AUTO_START = 1             #  стартовать ли после reboot
ACTION_SCRIPT = appl.scr   #  starting/stoping,check-running
                лежит в каталоге /var/cluster/caa/script
                Аргументы: start/stop/check, код успеха 0
SCRIPT_TIMEOUT = 60        # если скрипт не отработал за 60 сек, то fail
###############################################

caa_profile      создание caa-профайла
caa_register     регистрация caa-приложения или цаа-ресурса(netw,tape)
caa_start        запуск caa-приложения или цаа-ресурса(netw,tape)
caa_stop         останов caa-приложения (но не ресурса)
caa_stat         посмотреть статус
caa_relocate     перебросить на другой узел



Кластер имеет hostname и IP кластера, дополнительно
Каждый член кластера имеет свой собственный hostname и IP

Cluster  interconnect конфигурится как IP-доступ, с адресами узлов 10.0.0.1,
10.0.0.2,...

Дублирование ethernet осуществляет встроенный в операционку механизм NetRain
Интерфейсы ee0,ee1,ee2 соединяются в виртуальный интерфейс nr0, на который и
вешается  IP  (в  любой момент работает только один интерфейс, остальные - в
запасе на горячей подмене)

На  NetRain  садится  ClusterInterconnect.  Если  потребуется резервирование
интерфейсов в клиентскую сеть - это делается просто стандартными  средствами
операцинки, кластер в этом не участвует.



Сперва конфигурируем операционку на одном сервере со всем
необходимым софтом. Затем создаем кластер. При этом
создается отдельные (новые) диски для общих кластерных файловых систем:
 /      > 125М (лучше 250М)
 /usr/  > 680М (лучше 1000М)
 /var/
 и  т.д.  И  они  _не  совпадают_  с  "затравочным"  диском  ка котором жила
изначальная операционная система. Для каждого члена кластера создается  свой
собственный  загрузочный  диск,  на  котором  живет  его загрузочное ядро (и
больше ничего).

Итого, кластеру потребуются следующие диски (LUN'ы):

 tru64  (3Гб)  -  "Затравочный  диск" - на него ставится операционка и софт.
Нужен только при создании кластера, после сетапа кластера не используется.

 root (партиция 250M) - общий для всех членов кластера
 /usr (партиция 1000М) - общий для всех членов кластера
 /var (партиция 1000М) - общий для всех членов кластера
 /данные1,2 (по вкусу) - общие для всех членов кластера

 boo1 (диск 500М) - загрузочный диск для member1
 /dev/disk/dsk2a -- root2_domain#root on /cluster/members/{memb}/boot_partition
 /dev/disk/dsk2b -- swap для member1
 /dev/disk/dsk2h -- cnx партиция 1М, в самом конце диска -
                    для синхронизационных заморочек кластера

 boo2 (диск 500М) - загрузочный диск для member2

 quorum (диск 1М) - для голосований (кто останется жить)после распада кластера




clu_create  -  создает  кластер  -  все  общие диски и boot1 для member1

 затем грузимся с boo1, и уже с созданного member1 генерим все остальные узлы
clu_add_client - при этом будут создаваться boot2, boot3,...



mount /dev/disk/cdrom0c /cdrom
setld -l /cdrom/TruCluster/kit     # с диска Additional kit 2
umount /cdrom
mount /dev/disk/cdrom0c /cdrom     # NHD (New Hardware Detect) 1 of 1
cd /cdrom ; ./nhd_install
umount /cdrom

lmfsetup   # ставим лицензию на TruCluster TCS-UA

clu_create
 загрузка на новом узле, на нем:
clu_add_member



Некластерные (индивидуальные)  файлы в каждой из файловой систем лежат в

/fsdir-name/cluster/members/member[N]/...

например

/var/adm/abc.log - общекластерный файл

mkcdsl -c /var/adm/abc.log перемещает его в member-specific и
создает на него CDSL

/var/adm/abc.log --> /var/cluster/members/{memb}/adm/abc.log

mkcdsl  -a  /var/adm/abcde - создает локальный файл и cdsl на него на каждом
                             узле кластера





 dsfmgr - Device Special Files manager
 hwmgr  - Hardware manager
 drdmgr - Device Request Dispatcher manager

hwmgr -scan scsi
hwmgr -view devices
hwmgr -view devices -cluster
hwmgr -view hierarchy -member membername
hwmgr -show scsi


        SCSI                DEVICE    DEVICE  DRIVER NUM  DEVICE FIRST
 HWID:  DEVICEID HOSTNAME   TYPE      SUBTYPE OWNER  PATH FILE   VALID PATH
-------------------------------------------------------------------------
   68:  0        mos214     disk      none    0      1    dsk0   [0/0/0]
   69:  1        mos214     disk      none    0      1    dsk1   [0/1/0]
   70:  2        mos214     disk      none    2      1    dsk2   [0/3/0]
   71:  3        mos214     cdrom     none    0      1    cdrom0 [2/0/0]
   75:  5        mos214     disk      none    0      1    dsk4   [0/2/0]
  114:  4        mos214     raid      none    0      4    scp1   [6/0/0]
  120:  6        mos214     disk      none    0      1    dsk5   [6/3/11]
  121:  7        mos214     disk      none    0      1    dsk6   [6/3/12]
  122:  8        mos214     disk      none    2      1    dsk7   [6/3/13]
  123:  9        mos214     disk      none    0      1    dsk8   [6/3/14]
  124:  10       mos214     disk      none    0      1    dsk9   [6/3/15]
  125:  11       mos214     disk      none    0      1    dsk10  [6/3/16]

hwmgr -delete -id 125    # удаление девайса из таблицы

dsfmgr -v     - verify корректность назначения драверов
dsfmgr -vF    - verify & fix  корректность назначения драверов

drdmgr -a server dsk3  Кто сервер у диска dsk3
drdmgr -h system1 -a accessnode=system2 dsk3
       Назначить системе system1 доступ к диску dsk3 через system2

Выполнить на всех узлах: hwmgr -scan comp -cat scsi_bus
Найти и назначить новые диски в кластере





sysman -station
   --> cluster specific

clu_get_info       статус кластера и узлов

clu_check_config   подробная диагностика



 Удаление узла навсегда
member2# shutdown -sh
member1# clu_delete_member -m 2
member1# clu_quorum  для переопределения условий кворума

 Удаление узла временно
member2: оторвать кабели
member1# clu_quorum  для переопределения условий кворума

 Переименование кластера:
подправить в /etc/sysconfigtab
clubase:cluster_name=newname

например сиполнить на каждом узле
cat > tmp-file <

Кворум

назначить кворум-диск clu_quorum -f -d add dsk8 1 clu_quorum -f -d adjust dsk8 1 clu_quorum -f -d remove Выдать узлу memb1 кворумный голос clu_quorum -f -m memb1 1 Сколько голосов максимально может быть набрано clu_quorum -f -е 3 Достаточным для кворума будет (N+2)/2

    Дублирование загрузочного диска

disklabel -r /dev/rdisk/dsk$1c > lbl.txt disklabel -z /dev/rdisk/dsk$2c disklabel -Rr -t advfs /dev/rdisk/dsk$2c lbl.txt /mdec/rzboot.advfs /mdec/bootrz.advfs dd if=/dev/disk/dsk$1a of=/dev/disk/dsk$2a bs=8192k dd if=/dev/disk/dsk$1b of=/dev/disk/dsk$2b bs=8192k dd if=/dev/disk/dsk$1g of=/dev/disk/dsk$2g bs=8192k dd if=/dev/disk/dsk$1h of=/dev/disk/dsk$2h bs=8192k

Last-modified: Thu, 12 Aug 2004 17:23:33 GMT
Оцените этот текст: