channel finder operational experience at bnl work by: gabriele carcassi, robert petkus, guobao shen,...
TRANSCRIPT
Channel Finderoperational experience at
BNLwork by: Gabriele Carcassi, Robert Petkus,Guobao Shen, Kunal Shroff, Lingyun Yang,
written by: Gabriele Carcassiperformed by: Kunal Shroff
ChannelFinder at BNL
IOCs
GlassfishWeb service
/cf-update
Web proxy
CSSScripts to
- populate properties- create lattice
channelfinder.nsls2.bnl.gov
NFSupdate
daemon
dependency
data flow
Getting channels from the IOCs
IOCs/cf-update
channelfinder.nsls2.bnl.gov
NFS
dependency
data flow
Getting channels from the IOCs
• channelfinder.nsls2.bnl.gov exports the directory /cf-update through NFS
• Each IOC directly or indirectly has access to it• When the IOC boots, the startup script saves
the output of a dbl command to a file• Filename format: hostname.iocname.dbl
Updating channel list
GlassfishWeb service
/cf-update
channelfinder.nsls2.bnl.gov
update daemon
dependency
data flow
Updating channel list
• Daemon monitors for changes in the /cf-update directory and updates channelfinder– Setup a script in /etc/init.d– Uses /usr/bin/inoticoming to monitor for changes
in the directory– Uses CFUpdateIOC.py script coming with channel
finder python client to perform the update– Ignores all the channels that ends in “_” (NSLS-II
convention for “internal” channels)
Updating channel list
• Update process feels very fast• System has been very reliable– no problems so far
Glassfish setup
GlassfishWeb service
channelfinder.nsls2.bnl.gov
dependency
data flow
Glassfish setup
• Running Glassfish 3.1• Single instance of Glassfish for multiple
applications– Will be the same deployment server for our log
service (collaboration with MSU)– Each application available as an alias– Top application changes according to the alias• http://channelfinder.nsls2.bnl.gov – ChannelFinder• http://log.nsls2.bnl.gov – log
Glassfish setup
• Glassfish runs as glassfish user• Glassfish redirects to PAM for authentication– This is supported only as root user– We had to make glassfish member of the shadow
group and allow it to access /etc/shadow (for local accounts) and /etc/pam_ldap.conf (for ldap accounts)
– Runs fine now
Glassfish setup
• In ldap created the following groups:– cf-admins, admins– cf-channels, users that adds/removes channels,
currently only cf-update– cf-properties, users that can add properties, a
couple of people in our group and physics group– cf-tags, users that can only add tags, more people in
the physics group– aphla, accelerator physics high level application, to
group tags/properties from that group
Glassfish setup
• Main problems– Increase max file descriptors– OutOfMemory error• Used to hit it, now we don’t anymore• Quantum-bug: stopped appearing once we setup the
infrastructure to debug it when it would happen again
Usage from high level physics
GlassfishWeb service
Scripts to- populate properties
- create lattice
channelfinder.nsls2.bnl.gov
dependency
data flow
Usage from high level physics
• Our physics group adds properties/tags• From Linyun Yang (accelerator physics) talk:
– From Channel Access to Channel Finder Service:• Channel Accesses in Python and Matlab are simple to use.• High level applications (HLA) deals with thousands of magnets,
instruments and more channels.• Organized/structured channel information is necessary.• Channels linked to accelerator lattice and diagnostics are even better.• Searching instead of remembering is easier for HLA users.
– A “dictionary” service can help HLA to manage the channels and build a lattice structure to which the AP is familiar. (they done simulation, analysis with it in the design).
device FM1G4C02AChannel Name
SR:C02-MG:G04A{HFCor:FM1} SR:C02-MG:G04A{VFCor:FM1}Fld-I Fld-SP Fld-I Fld-SP
handle READBACK SETPOINT READBACK SETPOINTelemName FXM1G4C02A FYM1G4C02A
elemType HFCOR VFCORelemField x ydevName FM1G4C02A
sEnd 65.5222cell C02
girder G4symmetry A
length 0.044ordinal 263 264
tagseget eput eget eput
x ysys.SR
Usage from high level physics
• Physics group can re-create the lattice from the information in channel finder
• By tags, different lattices can be built, and elements can be shared between them.– Sharing is important for injection, where LTD1 and
LTD2 shares a lot of elements with LTB
CSS & ChannelFinder
GlassfishWeb service
CSS
channelfinder.nsls2.bnl.gov
dependency
data flow
CSS & ChannelFinder
• See next talk!