Monitoring Dynamic IOC Installations Using the alive Record Dohn Arms Beamline Controls & Data Acquisition Group Advanced Photon Source.

Slides:



Advertisements
Similar presentations
1 1999/Ph 514: Channel Access Concepts EPICS Channel Access Concepts Bob Dalesio LANL.
Advertisements

CISCO NETWORKING ACADEMY Chabot College ELEC Address Resolution Protocol.
Internet Control Protocols Savera Tanwir. Internet Control Protocols ICMP ARP RARP DHCP.
1 Dynamic DNS. 2 Module - Dynamic DNS ♦ Overview The domain names and IP addresses of hosts and the devices may change for many reasons. This module focuses.
CCNA2 Module 4. Discovering and Connecting to Neighbors Enable and disable CDP Use the show cdp neighbors command Determine which neighboring devices.
1 Semester 2 Module 4 Learning about Other Devices Yuda college of business James Chen
Channel Access Protocol Andrew Johnson Computer Scientist, AES Controls Group.
MCTS Guide to Microsoft Windows Server 2008 Network Infrastructure Configuration Chapter 4 Installing and Configuring the Dynamic Host Configuration Protocol.
Client Server Model The client machine (or the client process) makes the request for some resource or service, and the server machine (the server process)
Chapter 23: ARP, ICMP, DHCP IS333 Spring 2015.
70-290: MCSE Guide to Managing a Microsoft Windows Server 2003 Environment, Enhanced Chapter 8: Implementing and Managing Printers.
MCTS Guide to Microsoft Windows Server 2008 Network Infrastructure Configuration Chapter 8 Introduction to Printers in a Windows Server 2008 Network.
70-290: MCSE Guide to Managing a Microsoft Windows Server 2003 Environment Chapter 8: Implementing and Managing Printers.
Apache : Installation, Configuration, Basic Security Presented by, Sandeep K Thopucherela, ECE Department.
Chapter 26 Client Server Interaction Communication across a computer network requires a pair of application programs to cooperate. One application on one.
TCP Sockets Reliable Communication. TCP As mentioned before, TCP sits on top of other layers (IP, hardware) and implements Reliability In-order delivery.
Process-to-Process Delivery:
Dynamic Host Configuration Protocol (DHCP)
Web Server Configuration Alokes Chattopadhyay Computer & Informatics Centre IIT Kharagpur.
Name Resolution Domain Name System.
DHCP Dynamic Host Configuration Protocol. Introduction Client administration:  IP address management: They need to ease the process of joining the network.
資 管 Lee Application Layer and Client-Server Model A3.
Network Protocols. Why Protocols?  Rules and procedures to govern communication Some for transferring data Some for transferring data Some for route.
1 Chapter Client-Server Interaction. 2 Functionality  Transport layer and layers below  Basic communication  Reliability  Application layer.
Module 12: Routing Fundamentals. Routing Overview Configuring Routing and Remote Access as a Router Quality of Service.
CMPT 471 Networking II Address Resolution IPv4 ARP RARP 1© Janice Regan, 2012.
Modification of Pktfilter tool 10/9/2015Pktfilter modification - Brad Baker1 Brad Baker CS591 Spring 2007 Term project.
Citrix MPS 3.0 Licensing Douglas A. Brown President
1 CMPT 471 Networking II IGMP (IPv4) and MLD (IPv6) © Janice Regan,
Brad Baker CS591 Spring 2007 Term project 10/15/ Pktfilter modification - Brad Baker.
7/26/ Design and Implementation of a Simple Totally-Ordered Reliable Multicast Protocol in Java.
A powerful network monitoring system
BAI513 - PROTOCOLS DHCP BAIST – Network Management.
TCP Sockets Reliable Communication. TCP As mentioned before, TCP sits on top of other layers (IP, hardware) and implements Reliability In-order delivery.
Presented by Rebecca Meinhold But How Does the Internet Work?
Chapter 17 BOOTP and DHCP.
The Problem of State. We will look at… Sometimes web development is just plain weird! Internet / World Wide Web Aspects of their operation The role of.
EPICS Release 3.15 Bob Dalesio May 19, Features for 3.15 Support for large arrays - done for rsrv in 3.14 Channel access priorities - planned to.
1 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Dynamic Host Configuration Protocol (DHCP)
Chapter 18 Host Configuration : DHCP
Chapter 22 Bootstrap and Auto configuration (DHCP) History of Bootstrap -Bootstrap is used to assign IP address to the computer. -Constant changes in the.
1 Client-Server Interaction. 2 Functionality Transport layer and layers below –Basic communication –Reliability Application layer –Abstractions Files.
Developing Applications with the CSI Framework A General Guide.
The Client-Server Model And the Socket API. Client-Server (1) The datagram service does not require cooperation between the peer applications but such.
Page 1 Printing & Terminal Services Lecture 8 Hassan Shuja 11/16/2004.
Socket Programming.
EPICS Release 3.15 Bob Dalesio May 19, Features for 3.15 Support for large arrays Channel access priorities Portable server replacement of rsrv.
Multicasting  A message can be unicast, multicast, or broadcast. Let us clarify these terms as they relate to the Internet.
ASP-2-1 SERVER AND CLIENT SIDE SCRITPING Colorado Technical University IT420 Tim Peterson.
Linux Operations and Administration
Network Layer: Address Mapping, Error Reporting, and Multicasting
Computer Communication: An example What happens when I click on
Dynamic Host Configuration Protocol (DHCP) DHCP provides a temporary IP address for a limited period of time DHCP has two databases. First one has static.
BAI513 - PROTOCOLS DHCP BAIST – Network Management.
Chapter 5. An IP address is simply a series of binary bits (ones and zeros). How many binary bits are used? 32.
Chapter 4: server services. The Complete Guide to Linux System Administration2 Objectives Configure network interfaces using command- line and graphical.
Process-to-Process Delivery:
Configuring and Managing the DHCP Server Role. DHCP overview RARP – one of the first ways to assign addresses BOOTP – Another legacy way to assign addresses.
1 Kyung Hee University Chapter 16 Host Configuration : BOOTP and DHCP.
Dynamic Host Configuration Protocol
6. The Open Network Lab Overview and getting started
Configuring ALSMS Remote Navigation
Chapter 3 Internet Applications and Network Programming
BOOTP and DHCP Objectives
Net 323: NETWORK Protocols
Chapter 18 Host Configuration : DHCP
Multimedia and Networks
Process-to-Process Delivery:
Chapter 16 Host Configuration : BOOTP and DHCP
Chapter 18 Host Configuration : DHCP
Presentation transcript:

Monitoring Dynamic IOC Installations Using the alive Record Dohn Arms Beamline Controls & Data Acquisition Group Advanced Photon Source

Rationale for the alive Record  Issue: Want convenient central resource for IOCs operational statuses.  Issue: Want adding a new IOC to system to need no central configuration.  Issue: Want to not have to worry about being on the same subnet as IOCs.  Solution: Use centralized heartbeating system as failure detection model. –alive record on the IOC sends UDP heartbeats to the central database server. –Database server accepts any IOC that sends heartbeat, but it can always filter. –Not using CA, so no subnet issues. EPICS Collaboration Meeting, Spring

Rationale for the alive Record  Issue: Know details of IOCs that have constantly changing configurations automatically. –Beamline wants latest version of hardware or software. –Detector is moved between beamlines.  Solution: Allow database server to remotely query the alive record for configuration information. –The record has a TCP port that only the database server can access. –Usually only done when a new alive session is seen. EPICS Collaboration Meeting, Spring

alive Record Design  Has two parts –Thread with timer that sends a UDP heartbeat once a period to database server. –Thread that binds a TCP port, waiting for information requests from the database server.  Uses a custom networking protocol.  Processing record doesn’t actually do anything, as it uses internal timer. Has fields for turning things off if necessary.  Heartbeat period, local TCP port, and heartbeat value only things that can’t be changed. EPICS Collaboration Meeting, Spring

alive Record Fields  Version (string)  Remote address and port  Heartbeat value  Heartbeat period  User message (next slide)  Magic number for allowing database server to filter UDP packets  Remote Port –Status –Port number –Read request flag –Read suppression flag  Environment variables to send EPICS Collaboration Meeting, Spring

User Message  MSG field  Unsigned 32-bit integer  Sent with each heartbeat UDP  Changing MSG value does not trigger a heartbeat to be sent.  Allows simple messages to be passed along with heartbeat messages.  Meant for debugging IOC issues, by passing flags back to the database server and its clients.  Use is up to IOC maintainer and database clients. –A calc record could set a bit in this value if the CPU usage crosses a threshold. EPICS Collaboration Meeting, Spring

Heartbeat Service  Set by HPRD field value (defaults to 15 seconds)  Can toggle sending heartbeats with HRTBT field  VAL field increments with each heartbeat sent  Heartbeat UDP Packet Contents –Magic number (for filtering at database server) –Protocol Version (5 currently) –Incarnation (uses boot time) and current time –Heartbeat value –Flags (used for information port) –IOC information port number –User message –IOC name EPICS Collaboration Meeting, Spring

Information Port Service  Port number can be set manually, or be automatically assigned by OS. –If port can’t be bound, thread terminates and sets status (IPSTS) to “Inoperable”.  Connection initialized by database server. –Queries only allowed from IP address of remote database (in RHOST). –Record can turn off allowing connections with ISUP field, a flag is sent in heartbeat message signifying that the port is turned off.  Record can ask the database server to read information with ITRG field. –This is automatically done when fields are changed. –User can do this in case environmental value has been changed. EPICS Collaboration Meeting, Spring

Information Port Data  Protocol Version (5 currently)  IOC type (currently only vxWorks, Linux, Darwin, and Windows)  Environmental Variables set in ENVxx fields  IOC specific information –Vxworks: boot configuration –Linux and Darwin: user, group, and hostname –Windows: user and machine EPICS Collaboration Meeting, Spring

Implementing Database Server  Heartbeat processing –Filter against magic number –Filter against support protocol versions –Find or create IOC entry If entry exists, and incarnation different, read IOC information. If heartbeat value is lower, toss (old packet). Calculate uptime from time values sent. Record arrival time (database clock)  Information Reading –Open TCP port (from heartbeat) at IOC. –Attached information to IOC record. EPICS Collaboration Meeting, Spring

IOC Status Change  Boot –When a new incarnation is seen.  Failure –Periodically check each IOC for failure. –Failure time is set by number of missing heartbeats and heartbeat period. Four heartbeats with default 15 second period is one minute. –Check elapsed time from last heartbeat against failure time.  Recovery –Failure happens, then heartbeats seen with incarnation last seen (network link went down. EPICS Collaboration Meeting, Spring

BCDA implementation  Has over 100 IOCs in system, from beamlines and detector pool.  Any IOC allowed to join (added more ways to differentiate IOCs).  Design –Written in C as threaded daemon –In-memory database using autobalancing binary tree uses many-reader, single write model (preferring write) –Clients access data over TCP port, using API code –Records state of each IOC in case of daemon restart –Records each boot of an IOC –Does failure determination EPICS Collaboration Meeting, Spring

BCDA clients  They use API to talk to database server over the network.  Have web page that lists the database (CGI). –Can select on filters for ENGINEER, GROUP, and subnet. –Can select an IOC to see details.  Command line client –Can specify what type of information sent back. –Useful for scripts that can use up-to-date information. I have script that takes me to latest TOP directory for an IOC.  XML clients –Can be run as command-line or as webpage (CGI). EPICS Collaboration Meeting, Spring

Conclusion  Has been working well for over a year at APS. –There have been no issues with IOCs from running alive record.  Released as version recently.  It is in synApps 5.8.  Release the database code soon –Need to fix a few minor issues/inconveniences. –Simplify some of the state logic. –The code has some paths that need to be changed to compile-time options. EPICS Collaboration Meeting, Spring