True64 Alpha Cluster

True64 Alpha Cluster

 
  • True64 Alpha Cluster
  • Вопросы Агееву
  • Механическая схема
  • Всякое забавное
  • Загрузчик
  • Настройки boot у Alpha
  • Партиширование дисков
  • CFS - Cluster File system.
  • CAA - Cluster Aplication Availability
  • Кластер и сеть
  • Конфигурирование и инсталляция кластера
  • Команды инсталляции
  • CFS и CDSL
  • Работа с железом
  • Команды мониторинга
  • Разное
  • Кворум
  • Дублирование загрузочного диска

  • Вопросы Агееву



          Про 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

    Настройки boot у Alpha

    # только на старых машинах чтоб работал 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

    CFS и CDSL


    Некластерные (индивидуальные) файлы в каждой из файловой систем лежат в
    /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 <      cluster_name=newname EOF sysconfigdb -m -f tmp-file clubase и исправить имя кластера в /etc/hosts.equiv и /etc/hosts и м.б. в /.rhosts

          Поменять IP-адрес и имя узла Удалить узел, затем добавить clu_delete_member clu_add_member

    Кворум



          назначить кворум-диск 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


    Home | UK Shop Center |Contact | Buy Domain | Directory | Web Hosting | Resell Domains


    Copyleft 2005 ruslib.us