Про 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 - могут перекрываться
CFS - Cluster File system.
Все члены кластера видят единую (одинаковую) файловую систему.
/ /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
CAA - Cluster Aplication Availability
Система, обеспечивающая 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