Hi Nir, As there is only 1 ATS instance inside an edge server, the port should be a common setting. Currently ATS service will be bind to 0.0.0.0:<port configured>, we do not see any benefit to change this.
Thanks, Zhilin On 05/04/2018, 12:34 AM, "Nir Sopher" <n...@qwilt.com> wrote: Eric, Great, IP as delivery unit. Note that I believe the port is part of this unit, and not a common settings to all IPs in the interface. +1 for Rob's suggestion (stats are collected on the interface level, and health/heartbeat on the ip level) Rob/Jeff I believe we need to verify this entire concept fits well with monitor and router localization. Nir On Wed, Apr 4, 2018, 17:23 Robert Butts <robert.o.bu...@gmail.com> wrote: > @nbaoping > > > So I suggest the change to the current TM to be like: > > 1) Separate the current polling of cache servers into two different > pollings, one for the keep alive, the other for the stat query. > > The Golang Monitor already does this. We call it the "health" and "stat" > polls in the code. The stat poll is the full stats, and the health poll is > just the system stats. Does that work for your keep-alive poll? The health > poll is slightly more than just establishing a TCP connection, but it's > very small, and it also gives us the interface data. > > > We need record the availability for each configured IP so that if it’s > assigned, the router can check if it can redirect the client request to > that assigned IP or not. > > if we have multiple interfaces support, we should check the bandwidth > availability for each interface > > Because the health poll has interface data, I'd suggest modifying Traffic > Monitor to poll a single arbitrary IP for the Stat poll, as you suggest; > and to poll all IPs on the Health poll. Then, because the system stats are > in the health poll, the Monitor can figure out which interface that IP is > on, and track the availability of that interface from that health poll > data. > > If you aren't familiar with the Health vs Stat polls in the new Golang > Monitor, see: > https://traffic-control-cdn.readthedocs.io/en/latest/ > development/traffic_monitor_golang.html#architecture > https://github.com/apache/incubator-trafficcontrol/blob/ > master/traffic_monitor/manager/manager.go > https://github.com/apache/incubator-trafficcontrol/blob/ > master/traffic_monitor/manager/health.go > https://github.com/apache/incubator-trafficcontrol/blob/ > master/traffic_monitor/manager/stat.go > > Does that work? > > > On Wed, Apr 4, 2018 at 5:07 AM, Eric Friedrich (efriedri) < > efrie...@cisco.com> wrote: > > > Hey Nir- > > For our particular use case, we are looking at making an IP the > delivery > > unit. We would like to use a single interface with multiple IPs. DSs > would > > be assigned to one of the IPs on that interface. Interface (or IP) > > priority does not come into play here as there is no failover between IPs > > > > —Eric > > > > > > > On Apr 4, 2018, at 1:23 AM, Nir Sopher <n...@qwilt.com> wrote: > > > > > > +1 > > > Note that beyond the DB, the change should also be reflected into the > > > cr-config. > > > As I see it, a flexible model may be built of the below items: > > > 1 - Edge server. > > > 2- Interface > > > 3. IPs > > > > > > The Interface (or should it be called "delivery unit") is the element > we > > > redirect the traffic to and which is monitored by the traffic-monitor: > > > * Each server may have multiple interfaces > > > * Each interface may have multiple IPs > > > * Interfaces has priorities (abstraction for primary/secondary) > > > * Each interface is given a seperate DNS name by the router. Single > name > > > for the multiple IPs. > > > * Each interface is monitored and reported seperately by the traffic > > > monitor, including health an stats. > > > > > > > > > The router "redirect target decision" may look as follows > > > 0. Select cache as we do today taking into account the consistent > hash. A > > > server is in the selection group only if one of its interfaces is found > > to > > > be healthy > > > 1. Once we have server selected, select an interface out of all > > interfaces > > > of the server with max available priority. > > > > > > An additional improvement, may assign DS to interfaces instead of > > servers. > > > A server serves DS X iff one of its interfaces is assigned to the DS. > > > > > > Nir > > > > > > > > > On Apr 4, 2018 6:56 AM, "Zhilin Huang (zhilhuan)" <zhilh...@cisco.com> > > > wrote: > > > > > > Updated the DB schema in section 3.1.1.4 > > > > > > Thanks, > > > Zhilin > > > > > > > > > > > > On 04/04/2018, 11:02 AM, "Zhilin Huang (zhilhuan)" < > zhilh...@cisco.com> > > > wrote: > > > > > > Good points. I am happy to make this change in the design doc. > > > > > > Thanks, > > > Zhilin > > > > > > > > > On 03/04/2018, 8:17 PM, "Eric Friedrich (efriedri)" < > > efrie...@cisco.com> > > > wrote: > > > > > > I would prefer a consistent way to store all interface and IP > > > address information. Its good database design practice to store similar > > > information in similar tables (i.e. all IP info in 1 table) rather than > > > keep some IPs in the server table and some IPs in another table. > > > > > > I also think this refactoring will give us greater flexibility > for > > > more changes in the future. Outside of this particular use case, we > might > > > have additional features like sharing edges between public/private > > networks > > > or having multiple (equal priority) streaming interfaces on a cache. > > > > > > These future features would be easier if the interface data and > IP > > > data is all organized into separate tables. > > > > > > I’d also like to see the delivery service to IP mapping be a > many > > > to many mapping in the DB. For this particular feature we will only > > assign > > > a single IP (and we can restrict that in the API if we want), but I am > > near > > > certain that in the future we would like the ability to assign a DS to > > > multiple IPs on the same cache. > > > > > > > > > —Eric > > > > > > > > > > > >> On Apr 3, 2018, at 2:42 AM, Zhilin Huang (zhilhuan) < > > > zhilh...@cisco.com> wrote: > > >> > > >> Hi Mark, > > >> > > >> Thanks for your comments. Please check my reply in another thread: > > >> > > >> If we all agreed to use unified tables for all IPs and/or > > > interfaces: primary, management, secondary, then there need to be two > > > tables: IP and interface. > > >> And in the server table, we need to replace the original > > > "interface_xxx", "ip_xxx", "ip6_xxx" fields with a "primary_ip_id" > field. > > > And do similar things to management IP. > > >> > > >> Thanks, > > >> Zhilin > > >> > > >> > > >> On 03/04/2018, 7:08 AM, "Mark Torluemke" <mtorlue...@apache.org> > > > wrote: > > >> > > >> I would support an 'interfaces' table (adding some sort of a > > > 'type' column) > > >> that would include moving the management and lights out > > > management > > >> interfaces to that table as well. > > >> > > >> Cheers, > > >> Mark > > >> > > >> On Mon, Apr 2, 2018 at 2:39 PM, Nir Sopher <n...@qwilt.com> > > > wrote: > > >> > > >>> Hi Zhilin, > > >>> > > >>> I took a quick look into the spec. Hope to have the opportunity > > > to dive > > >>> deeper into it soon so we can further discuss it. > > >>> > > >>> For now I have a 2 questions. > > >>> In the spec, you refer to "secondary interfaces", and you have a > > > list of > > >>> secondary interfaces added. > > >>> IIUC the secondary interfaces are used as long as they are > > > available, and > > >>> when down, you move to the primary interface. > > >>> > > >>> Why not, instead of holding a secondary interfaces table, move > > > all > > >>> interfaces to a separate table? Primary and secondary. > > >>> For each interface you can hold: > > >>> > > >>> - Server id > > >>> - name (e.g. eth0) > > >>> - IPv6 > > >>> - IPv4 > > >>> - Priority (Integer as flexible as you wish: e.g. "1" for > > > "secondary", > > >>> "2" for "primary" in your example,) > > >>> > > >>> > > >>> Additionally, it is not clear to me what happens if one of the > > > interfaces > > >>> fails? > > >>> Does every interface has a unique DNS name? If an interface > > > fails, are > > >>> redirects > > >>> sent only to the available (secondary) interfaces? > > >>> > > >>> Thanks, > > >>> Nir > > >>> > > >>> > > >>> On Mon, Apr 2, 2018 at 10:21 AM, Zhilin Huang (zhilhuan) < > > >>> zhilh...@cisco.com > > >>>> wrote: > > >>> > > >>>> Hi Guys, > > >>>> > > >>>> This was originally posted in another discussion. Resend this > > > in a > > >>>> standalone topic to catch more awareness. The link for the > > > design doc: > > >>>> > > > https://docs.google.com/document/d/1vgq-pGNoLLYf7Y3cu5hWu67TUKpN5hucrp > > >>>> -ZS9nSsd4/edit?usp=sharing > > >>>> > > >>>> > > >>>> Short summary for the feature design: > > >>>> --- > > >>>> There is feature request from market to add secondary IPs > > > support on edge > > >>>> cache servers, and the functionality to assign a delivery > > > service to a > > >>>> secondary IP of an edge cache. > > >>>> > > >>>> This feature requires Traffic Ops implementation to support > > > secondary IP > > >>>> configuration for edge cache, and delivery service assignment to > > >>> secondary > > >>>> IP. > > >>>> > > >>>> Traffic Monitor should also monitor connectivity of secondary > > > IPs > > >>>> configured. And Traffic Router needs support to resolve > > > streamer FQDN to > > >>>> secondary IP assigned in a delivery service. > > >>>> > > >>>> Traffic Server should record the IP serving client request. And > > > should > > >>>> reject request to an unassigned IP for a delivery service. > > >>>> > > >>>> This design has taken compatibility into consideration: if no > > > secondary > > >>> IP > > >>>> configured, or some parts of the system has not been upgraded > > > to the > > >>>> version supports this feature, the traffic will be served by > > > primary IPs > > >>> as > > >>>> before. > > >>>> --- > > >>>> > > >>>> Much appreciated and welcome to any comments. If no major > > > objections, we > > >>>> planned to start coding this week. > > >>>> > > >>>> Thanks, > > >>>> Zhilin > > >>>> > > >>>> > > >>> > > >> > > >> > > > > >