Title: Управление IOC CSS: table.css
Управление 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
Зарезервированные порты[ports]
Для управления запуском 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 адреса[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]
Опции
- help - напечатать подсказку пользования скриптом
- start - запуск всех IOC, если IOC уже запущен то на экран печатается сообщение об ошибке, дублирующий IOC не запускается
- start ioc_name - запуск конкретного IOC
- stop - остановка всех IOC
- stop ioc_name - остановка конкретного IOC
- status - статус всех IOC
- restart - остановка и запуск всех IOC
- restart ioc_name - остановка и запуск конкретного IOC
- log ioc_name - выдать log соответствующего IOC, ожидать появления новых данных и выводить их. Завершить Ctrl-C.
- telnet ioc_name - подключиться к консоли IOC, выход по Ctrl-] q. (не надо писать exit, это перезапустит IOC).
Пример вывода
[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:4088 fftvepp3 active [ OK ]
ioc: localhost:4089 2P4 active ioc OK disconnected [ СБОЙ ]
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: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 - состояние подсоединения к оборудованию