# This is The Helix Topology configuration file. # #----------------------------------------------------------------------------- NAME=P4Demo VERSION=1.0.0 #----------------------------------------------------------------------------- # SDP Instances #----------------------------------------------------------------------------- # Form: INSTANCE|Name|UserPorts|MasterHost|ServerPort|BrokerPort|Managed|Desc # # Name is an SDP Instance name, e.g. matching /p4/<N> and the value used to # with 'source p4_vars' to source the environment for that instance. # Sample Value: fgs # # UserPorts is a comma-delimited list of actual P4PORT values used by users # to access the Perforce Helix versioning engine. These should be # host aliases and should not reference specific hardware. The numeric # part should reference a broker port if a broker is used, otherwise the p4d # port. For distributed installations, this should only reference P4PORT # values used to reference the master p4d server or a "stacked" broker (i.e. # a broker on the same host as p4d). If a list is provided, items after the # first can exclude the numeric portion, as it will be assumed to be the # same. Sample Value: perforce.mycom.com:1666,perforce,scm # # MasterHost is the hostname of the server machine on which the current master # p4d process runs. This name should refer to specific hardware. # Sample Value: bos-helix-01 # # ServerPort is the numeric port on which the p4d process runs on the master # host. Sample Value: 1999 # # BrokerPort is the numeric port on which the p4d process runs on the master # host. Sample Values: 1666 or Unset # # Managed: This is '1' if the instance is managed by HMS, or '0' otherwise. # HMS cannot attempt failover of unmanaged instances, but can be made aware # of them. Unmanaged instances are not required to use the SDP, and thus # random P4D instances can be captured here even thought they cannot be # managed. # Desc: A text description of the instance. # INSTANCE|Name|UserPorts|MasterHost|ServerPort|BrokerPort|Managed|Desc INSTANCE|1|perforce:1666|bos-helix-01|1999|1666|1|Battle School Lab Environment INSTANCE|hms|hms:4737|bos-helix-02|4738|4737|1|Helix Management System #----------------------------------------------------------------------------- # Helix Topology Component Definitions # These extend the definintion of Helix Instance #----------------------------------------------------------------------------- # Form: COMPONENT|Instance|Type|Name|MasterHost|BackupHost|Active|URL|Desc # # Instance is the SDP Instance # # Type is one of: # p4d-mc P4D Master/Commit Server # p4d-e P4D Edge Server # p4d-r P4D Replica # p4broker P4Broker # p4p P4Proxy # p4dtg P4 Defect Tracking Gateway # p4web P4Web # p4gf Perforce Git Fusion # swarm Helix Swarm # # Name is the unique name of the component (unique within a given SDP # Instance). The name can be the same as the type if there is only one # compoment of the given type for the given SDP instance. If there are # multiple, e.g. for replcias, add a numeric tag, e.g. "p4d-e01" # # MasterHost is the primary host for normal operation. # # BackupHost is the backup host in a post-failover situation for the given # component. Exceptions: # a) Set BackupHost to Unset for components of type p4d-mc (master/commit # servers) and p4d-e (edge servers). For these components, the backup # host is determined based on the failover path defined in the FAILOVER # entries below. # b) Set BackupHost to Unset for components of type p4broker, as brokers # don't actually failover. With HMS, brokers are run only in the 'stack' # style, i.e. they are 'bound' to a given p4d/p4p process on the same # machine. They're up and running on all hosts where they live, including # backup machines. In a failover situation, a broker that normally sleeps # just gets busy, and its bound p4d process fails over. # # Managed is 1 or 0. Unmanged components are known to the system but cannot # be interactived with. For example, if there is a p4dtg instance that is # operating in the environment but is not managed with the standard SDP way, # it should be listed as inactive. During failover, inactive things will be # listed with a warning message, but no action will be taken for them. # # URL is the URL to reference the app. For Swarm this is a standard # web URL. For apps that listen on a TCP port only, use just the numeric # port number rather than a URL. # # Desc: An optional text description of the component. # COMPONENT|Instance|Type|Name|MasterHost|BackupHost|Managed|URL|Desc COMPONENT|1|p4d-mc|master|bos-helix-01|Unset|1|1999|Master. COMPONENT|1|p4broker|p4broker01|bos-helix-01|Unset|1|1666|Broker 1. COMPONENT|1|p4broker|p4broker02|bos-helix-02|Unset|1|1666|Broker 2. COMPONENT|1|p4d-r|p4d-r01|bos-helix-02|Unset|1|1999|HA Replica. COMPONENT|1|p4d-r|p4d-r02|nyc-helix-03|Unset|1|1999|DR Replica. COMPONENT|1|p4broker|p4broker03|nyc-helix-03|Unset|1|1666|Broker 3. COMPONENT|1|p4d-e|p4d-e01|syd-helix-04|Unset|1|1999|DR Replica. COMPONENT|1|p4broker|p4broker04|syd-helix-04|Unset|1|1666|Broker 4. COMPONENT|1|p4d-r|p4d-r03|syd-helix-05|Unset|1|1999|DR Replica. COMPONENT|1|p4broker|p4broker05|syd-helix-05|Unset|1|1666|Broker 5. COMPONENT|1|swarm|swarm|bos-helix-01|bos-helix-02|0|http://swarm.p4demo.com|Swarm COMPONENT|hms|p4d-mc|master|bos-helix-01|Unset|1|4738|Master. COMPONENT|hms|p4broker|p4broker01|bos-helix-01|Unset|1|4737|HMS Broker 1. COMPONENT|hms|p4broker|p4broker02|bos-helix-02|Unset|1|4737|HMS Broker 2. COMPONENT|hms|swarm|swarm|bos-helix-01|bos-helix-02|0|http://hms.p4demo.com|Swarm. #----------------------------------------------------------------------------- # Failover Targets #----------------------------------------------------------------------------- # Form: FAILOVER|PathName|Type|MasterHost|BackupHost|InstanceList|Active|Desc # Name is a name of the Failover path. The Name itself is not required to # be unique, however the combination of the Name and any of the instances # in the InstanceList must be unique. That is, if there are two (or more) # entries named "HA" (for example) they cannot have any overlap in their lists # of instances in the InstanceList. # # Type is one of: Local, MO, Full # 'Local' indicates failover using the databases in /p4/<n>/offline_db on the # same machine, as opposed to failoing over to another machine. No host # alias name change is needed for Local failover, and the BackupHost field # should be 'localhost'. # Possible Outcomes for Local Failover: 0 (Success), 1 (Failure) # # 'MO' indicates a Meta-Only failover. The assumption with an MO failover is # that archive files are safely managed on a "too big to fail" SAN or similar # shared storge, and thus that there is no need to be concerned with possible # archive file loss. The BackupHost must be defined for HA Failover. # Possible Outcomes for MO Failover: 0 (Success), 1 (Failure) # # 'Full' indicates a full failover, including metadata and archive files. The # assumption with a Full failover is that "recent" archive files at risk, and # must be verified. Only the most recent 10000 changelists are checked. # Possible Outcomes for Full Failover: 0 (Success), 1 (Failure), 2 (Qualified # Success). A Qualified Success is one in which metdata fails over successfully, # but some archive files are not available post-failover. # # MasterHost is the primary host for normal operation, the designated live # production server. # # BackupHost is the backup host for post-failover operation, the designated # machine to become the live production server when the given failover path is # executed. # # InstanceList is the comma-delimited list of SDP instances for which the # given failover is valid. # # Desc is the description of the given failover. # # Active is 1 (active) or 0 (Inactive). Inactive failover definitions are # presumed to be invalid, e.g. a work-in-progress definintion. Alternately # a given definition can be made inactive to indicated bad hardware. For # example, if a backup host is known to be unavailable, the failover mode # can be made inactive unit it is repaired, to prevent attempted failover # to a known-bad backup host. FAILOVER|local|Local|bos-helix-01|localhost|1,hms|1|Local Failover FAILOVER|ha|Full|bos-helix-01|bos-helix-02|1|1|High Availability FAILOVER|ha|Full|bos-helix-02|bos-helix-01|hms|1|High Availability FAILOVER|dr|Full|bos-helix-01|nyc-helix-03|1|1|Disaster Recovery FAILOVER|dr|Full|bos-helix-02|nyc-helix-03|hms|1|Disaster Recovery FAILOVER|syd_ha|Full|syd-helix-04|syd-helix-05|1,hms|1|Disaster Recovery
# | Change | User | Description | Committed | |
---|---|---|---|---|---|
#3 | 25113 | Robert Cowham | Merge latest changes from dev | ||
#2 | 22477 | Robert Cowham | Bring latest dev changes into test | ||
#1 | 22142 | Robert Cowham | Merge in latest changes from Dev | ||
//guest/perforce_software/sdp/dev/Server/Unix/p4/common/config/HelixTopology.cfg | |||||
#2 | 21720 | C. Thomas Tyler |
Fixed bug where a sophsticated topology with mulitple failover targets defined (e.g. 'ha' and 'dr' options) could failover to the wrong host, using the component backup host rather than the one associated with the specified failover target. Bypassing pre-commit review as this has been tested in the Battle School Lab, and I need to push this fix out. #review-21721 |
||
#1 | 20745 | C. Thomas Tyler |
Approving as is since it isn't changing core SDP functionality, and reviewing it all line by line will take some time. We can do that as we move forward with it. First addition of HMS v1.0 files. This change is a soft launch HMS for initial deployment and testing. Updates to HMS-related files are expected and will bypass pre-commit code review until stabilized. |