TOP

Управление IOC ВЭПП3–4

В данный момент происходит переосмысление поэтому описание может не соответствовать действительности

IOC сервер bpm

Для обеспечения жизнененного цикла ioc выделены два виртуальных серевера bpm и bpm-dev. bpm-dev предназначен для сборки проектов, на нем установлен vim, gcc–7, и прочие необходимые средства для сборки пакетов. также на нем можно делать пробные запуски ioc в домашней директории. Графичекое окружение на bpm-dev не установленно, но графические команды запускать можно, например gitk --all, git gui.

установка на bpm

Корневая директория для установки ioc выбрана /epics. Таким образом установка выглядит

make INSTALL_LOCATION=/epics install

Перед установкой имеет смысл сделать make clean, чтобы пресобрать registerRecordDeviceDriver файлы.

После этого установленные файлы переносятся на bpm командой

rsync -avzu $(INSTALL_LOCATION)/ bpm:$(INSTALL_LOCATION)

запуск ioc

Запуск ioc осуществляется systemd, для этого создан ioc-master.service. Этот сервис при запуске компьютера пробегает по директории с окружением запускаемых ioc находится /epics/startup/ioc/bpm.vepp4.local/*/env.sh и запускает их основываясь на шаблонах ioc@ и ioc-legacy@.

Например для запуска ioc с именем myioc установленным по пути /epics/myioc необходимо создать файл /epics/startup/ioc/bpm.vepp4.local/myioc/env.sh со следующим содержанием

PROCSERV_PORT=_номер_procServ_порта_
IOC_DIR=/epics/myioc/iocBoot/iocmyioc
IOC_EXE=../../bin/linux-x86_64/myioc
IOC_CMD=myioc.cmd

где _номер_procServ_порта_ номер порта по которому можно подключиться к консоли ioc, список номеров ведется https://star.inp.nsk.su/~bekhte/v4orb2.wiki.git/html/vXbpmd#ports

логгирование ioc

логгирование ведется по пути /var/log/procServ. Ротацией логов ioc занимается сервис procServ-vacuum.service+timer. По достижении суммарного объема *.log файлов 50M данные переносятся в *.log.1, а файлы усекаются.

идея для ioc сервисов взята https://bitbucket.org/europeanspallationsource/m-epics-environment.git

Зарезервированные порты

Для управления запуском IOC используется редиректор консоли procServ. Он перенаправляет консоль IOC на зарезервированный за ним порт. Номера портов 4050–4200 зарезервированны под использование системы пикапов. Краткая схема резервирования

Порт система хост net 147
4050 - 4067 VEPP4 bpm 20–90
4068 nmr bpm 11
4069 dissector_e bpm 150
4070 - 4074 VEPP4 bpm
4075 dissector_p bpm 153
4076 dissector_fft_e bpm
4077 dissector_fft_p bpm
4078 dissector_v3 bpm 151
4079 dissector_fft_v3 bpm
4080 - 86,88,89,91 - 4102 VEPP3 bpm 100–129,130–139,140–145
4087 резерв
4090 резерв
4103 VEPP3 SEP bpm 19
4104 резерв
4105 helper3 bpm
4106 nmrstab bpm 4
4107 btunev3 bpm 8
4108 kud bpm 6
4109 nmr2 bpm 5
- BCM bpm 9
4110 - 4119 резерв
4120 - 4155 VEPP4 bpm
4156 - 4170 v4chan bpm 200–220
4171 v4line bpm
4172 v4chan bpm 200–220
4173 k500 bpm
4174 - 4199 резерв
20001 orbit bpm
bpm 251–253
skifbpm 170–180

Зарезервированные IP адреса

net 147 система
2 ноутбук
3 стойка
4 nmrstab
5 nmr2
6 kud
8 btunev3
9 BCM
11 nmr
19 VEPP3 SEP
20–90 VEPP4
100–129 VEPP3 v1
130–139 VEPP3 ver2
140–145 VEPP3 ver3
150 dissector_e
151 dissector_v3
153 dissector_p
160–189 skifbpm garden
200–220 v4chan
249 dcct vepp4
250 dcct vepp3
251–253 virtual host

Вызов скрипта

Для управления IOC существует специальный скрипт v3bpmd и v4bpmd для управления ВЭПП3 и ВЭПП4 соответственно. v4disd для управления диссектором ВЭПП4, ВЭПП3. v4chand для управления каналом ВЭПП3-ВЭПП4. nmrd для управления ЯМРом.

Скрипты управляют IOC через systemd.

исполняется на bpm

v3bpmd [start [what]|stop [what]|status [what]|restart [what]|help|log what|logall|telnet what]

v4bpmd [start [what]|stop [what]|status [what]|restart [what]|help|log what|logall|telnet what]

v4disd [start [what]|stop [what]|status [what]|restart [what]|help|log what|logall|telnet what]

v4chand [start [what]|stop [what]|status [what]|restart [what]|help|log what|logall|telnet what]

nmrd    [start [what]|stop [what]|status [what]|restart [what]|help|log what|logall|telnet what]

Опции

Пример вывода

[vepp4@bpm ~]$ v3bpmd status
ioc: localhost:4080 4P5 active ioc OK connected            [  OK  ]
ioc: localhost:4081 4P4 active ioc OK connected            [  OK  ]
ioc: localhost:4082 2P3 active ioc OK connected            [  OK  ]
ioc: localhost:4083 2P6 active ioc OK connected            [  OK  ]
ioc: localhost:4084 2P5 active ioc OK connected            [  OK  ]
ioc: localhost:4085 1P7 active ioc OK connected            [  OK  ]
ioc: localhost:4086 1P1 active ioc OK connected            [  OK  ]
ioc: localhost:4087 kserv active                           [  OK  ]
ioc: localhost:4088 fftvepp3 active                        [  OK  ]
ioc: localhost:4089 2P4 active ioc OK disconnected         [ СБОЙ ]
ioc: localhost:4090 kserv2 active                          [  OK  ]
ioc: localhost:4091 1P2 active ioc OK connected            [  OK  ]
ioc: localhost:4092 1P3 active ioc OK connected            [  OK  ]
ioc: localhost:4093 1P5 active ioc OK disconnected         [ СБОЙ ]
ioc: localhost:4094 1P6 active ioc OK disconnected         [ СБОЙ ]
ioc: localhost:4095 3P1 active ioc OK connected            [  OK  ]
ioc: localhost:4096 3P2 active ioc OK connected            [  OK  ]
ioc: localhost:4097 3P3 active ioc OK connected            [  OK  ]
ioc: localhost:4098 3P5 active ioc OK connected            [  OK  ]
ioc: localhost:4099 3P6 active ioc OK connected            [  OK  ]
ioc: localhost:4100 3P8 active ioc OK connected            [  OK  ]
ioc: localhost:4101 4P2 active ioc OK connected            [  OK  ]
ioc: localhost:4102 4P6 active ioc OK connected            [  OK  ]
ioc: localhost:4103 sep active                             [  OK  ]
ioc: localhost:4104 ksep active                            [  OK  ]
ioc: localhost:4105 helper3 active                         [  OK  ]
[vepp4@bpm ~]$ v4bpmd status
ioc: localhost:4067 stp0 active ioc OK connected           [  OK  ]
ioc: localhost:4120 stp2 active ioc OK disconnected        [ СБОЙ ]
ioc: localhost:4121 stp4 active ioc OK connected           [  OK  ]
ioc: localhost:4122 srp1 active ioc OK connected           [  OK  ]
ioc: localhost:4123 srp2 active ioc OK connected           [  OK  ]
ioc: localhost:4124 srp3 active ioc OK connected           [  OK  ]
ioc: localhost:4125 srp4 active ioc OK connected           [  OK  ]
ioc: localhost:4126 srp5 active ioc OK connected           [  OK  ]
ioc: localhost:4127 srp6 active ioc OK connected           [  OK  ]
ioc: localhost:4128 srp7 active ioc OK connected           [  OK  ]
ioc: localhost:4129 srp8 active ioc OK connected           [  OK  ]
ioc: localhost:4130 srp9 active ioc OK connected           [  OK  ]
ioc: localhost:4064 sip1 active ioc OK connected           [  OK  ]
ioc: localhost:4065 sip2 active ioc OK connected           [  OK  ]
ioc: localhost:4066 srp10 active ioc OK connected          [  OK  ]
ioc: localhost:4131 srp11 active ioc OK connected          [  OK  ]
ioc: localhost:4132 srp12 active ioc OK connected          [  OK  ]
ioc: localhost:4133 srp13 active ioc OK connected          [  OK  ]
ioc: localhost:4134 srp14 active ioc OK connected          [  OK  ]
ioc: localhost:4135 srp15 active ioc OK connected          [  OK  ]
ioc: localhost:4136 srp16 active ioc OK connected          [  OK  ]
ioc: localhost:4137 srp17 active ioc OK connected          [  OK  ]
ioc: localhost:4063 sep5 active ioc OK connected           [  OK  ]
ioc: localhost:4062 sep4 active ioc OK connected           [  OK  ]
ioc: localhost:4061 sep3 active ioc OK connected           [  OK  ]
ioc: localhost:4060 sep1 active ioc OK connected           [  OK  ]
ioc: localhost:4059 sep0 active ioc OK connected           [  OK  ]
ioc: localhost:4050 nep0 active ioc OK disconnected        [ СБОЙ ]
ioc: localhost:4051 nep1 active ioc OK connected           [  OK  ]
ioc: localhost:4052 nep3 active ioc OK connected           [  OK  ]
ioc: localhost:4053 nep4 active ioc OK connected           [  OK  ]
ioc: localhost:4054 nep5 active ioc OK connected           [  OK  ]
ioc: localhost:4138 nrp17 active ioc OK connected          [  OK  ]
ioc: localhost:4139 nrp16 active ioc OK connected          [  OK  ]
ioc: localhost:4140 nrp15 active ioc OK connected          [  OK  ]
ioc: localhost:4141 nrp14 active ioc OK connected          [  OK  ]
ioc: localhost:4142 nrp13 active ioc OK connected          [  OK  ]
ioc: localhost:4143 nrp12 active ioc OK connected          [  OK  ]
ioc: localhost:4144 nrp11 active ioc OK connected          [  OK  ]
ioc: localhost:4057 nrp10 active ioc OK connected          [  OK  ]
ioc: localhost:4056 nip3 active ioc OK connected           [  OK  ]
ioc: localhost:4055 nip1 active ioc OK disconnected        [ СБОЙ ]
ioc: localhost:4145 nrp9 active ioc OK connected           [  OK  ]
ioc: localhost:4146 nrp8 active ioc OK connected           [  OK  ]
ioc: localhost:4147 nrp7 active ioc OK connected           [  OK  ]
ioc: localhost:4148 nrp6 active ioc OK connected           [  OK  ]
ioc: localhost:4149 nrp5 active ioc OK connected           [  OK  ]
ioc: localhost:4150 nrp4 active ioc OK connected           [  OK  ]
ioc: localhost:4151 nrp3 active ioc OK connected           [  OK  ]
ioc: localhost:4152 nrp2 active ioc OK connected           [  OK  ]
ioc: localhost:4153 nrp1 active ioc OK connected           [  OK  ]
ioc: localhost:4154 ntp4 active ioc OK connected           [  OK  ]
ioc: localhost:4155 ntp2 active ioc OK connected           [  OK  ]
ioc: localhost:4058 ntp0 active ioc OK connected           [  OK  ]
ioc: localhost:4070 reaper active                          [  OK  ]
ioc: localhost:4071 stap active                            [  OK  ]
ioc: localhost:4072 fftvepp4 active                        [  OK  ]
ioc: localhost:4073 sep_all active                         [  OK  ]
ioc: localhost:4074 sep_helper active                      [  OK  ]
[vepp4@bpm ~]$

где:
active - состояние сервиса systemd
ioc OK - IOC запущен
connected - состояние подсоединения к оборудованию