180 likes | 267 Views
Channel Finder operational experience at BNL. w ork by: Gabriele Carcassi, Robert Petkus , Guobao Shen, Kunal Shroff, Lingyun Yang, written by: Gabriele Carcassi performed by: Kunal Shroff. ChannelFinder at BNL. channelfinder.nsls2.bnl.gov. IOCs. u pdate daemon. / cf -update. NFS.
E N D
Channel Finderoperational experience at BNL work by: Gabriele Carcassi, Robert Petkus,Guobao Shen, Kunal Shroff, Lingyun Yang, written by: Gabriele Carcassiperformed by: Kunal Shroff
ChannelFinderat BNL channelfinder.nsls2.bnl.gov IOCs update daemon /cf-update NFS Web proxy GlassfishWeb service CSS Scripts to- populate properties- create lattice dependency data flow
Getting channels from the IOCs channelfinder.nsls2.bnl.gov IOCs /cf-update 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 channelfinder.nsls2.bnl.gov update daemon /cf-update GlassfishWeb service 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 channelfinder.nsls2.bnl.gov GlassfishWeb service 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 channelfinder.nsls2.bnl.gov GlassfishWeb service Scripts to- populate properties- create lattice 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).
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 channelfinder.nsls2.bnl.gov GlassfishWeb service CSS dependency data flow
CSS & ChannelFinder • See next talk!