# CONFIGURATION VARIABLES: # # Change the first four variables below to match the volume names on the machine # you are configuring the SDP on. # # In the SDP variable below, the sdp directory needs to contain the contents of: # //guest/perforce_software/sdp/main/... # # Do not prefix these paths with a / # Make sure these volumes exist in the filesystem. # DB1 = Root metadata during install. Paths will switch during recreate_db_checkpoint.sh run. # DB2 = Offline metadata during install # If you do not have separate volumes for root and offline, just set DB1 and DB2 to the same volume. DB1=hxmetadata1 DB2=hxmetadata2 DD=hxdepots LG=hxlogs # CN is the volume for /p4/common. It is separated here so that you can set it to a different # volume if you are installing other instances on different depots volumes than where the # common folder is located. CN=$DD # Set the remaining variables appropriately. The meaning of each should be obvious. # The SDP is typically on the same volume as the common folder, so we default to that volume. SDP=/$CN/sdp # If you are sharing the depotdata volume with a replica, change this value to TRUE SHAREDDATA=FALSE OSUSER=perforce OSGROUP=perforce # CASE_SENSITIVE settings: # 0 -- Server will run '-C1' mode, forcing case-insensitive mode on normally case-sensitive platforms # 1 -- Server will run with case sensitivity default of the underlying platform (Unix is case sensitive). CASE_SENSITIVE=1 # Admin user's account name. ADMINUSER=perforce # Admin user's password P4ADMINPASS=adminpass # Email address from which emails are sent. This must be exactly one email address. Depending on the # configuration of the email server, it may or may not be a distribution list. More strict email # server configurations require it to be an email associated with an individual account. MAILFROM="admin@example.com" # Email to receive emails from SDP scripts. This can be a comma-separated list and/or contain a distribution # list email (e.g. PerforceAdmin@MyCompany.com). If you want something other than $MAILFROM, just # remove $MAILFROM and create your own list in quotes. MAILTO=$MAILFROM # Mail Host Address MAILHOST=mail.example.com # SSL_PREFIX should be blank to not use SSL, otherwise ssl: # # If you are planning to use SSL, you need to put certificates in /p4/ssl after the SDP install or # you can generate a self signed certificate as follows: # Edit /p4/ssl/config.txt to put in the info. for your company. # Then run: /p4/common/bin/p4master_run <instance> /p4/<instance>/p4d_<instance> -Gc # For example using instance 1: # /p4/common/bin/p4master_run 1 /p4/1/bin/p4d_1 -Gc # SSL_PREFIX=ssl: # Set MASTERINSTANCE to the first instance in your installation. # This is used for linking the license and ssl dir to the other instances to avoid duplication. MASTERINSTANCE=1 P4_PORT=${SDP_INSTANCE}666 P4BROKER_PORT=${SDP_INSTANCE}667 P4WEB_PORT=808${SDP_INSTANCE} P4FTP_PORT=202${SDP_INSTANCE} # If your SDP_INSTANCE is non numeric, then uncomment the items below to set the PORT setting. # Port for this Perforce server to listen on. # P4_PORT=1666 # If your proxy listening port is different from its master listening port, set the master's target port below P4P_TARGET_PORT=1666 # Ignore the broker port if you are not running a broker. # P4BROKER_PORT=1667 # P4WEB_PORT=80 # P4FTP_PORT=21 # DNS Name or IP address of master or edge server # A DNS Name is much easier to manage for failover purposes. P4DNSNAME=DNS_name_of_master_server # Replication service user's password P4SERVICEPASS=servicepass # The server.id of the master server. Or, if configuring # an edge server or replica of an edge server, set this # to the server.id of the edge server. MASTER_ID=master.${SDP_INSTANCE} # Set SERVER_TYPE to one of: master, replica, standby, edge, broker, proxy # p4d_master - A master/commit server. # p4d_replica - A replica (readonly or forwarding, possibly filtered). # p4d_standby - A standby replica using journalcopy # p4d_edge - An edge server # p4broker - An SDP host running only a broker, with no p4d. # p4proxy - An SDP host running a proxy (maybe with a broker in front), with no p4d. SERVER_TYPE=p4d_master # Replica server.id name REPLICA_ID=replica # Email address for p4review complaints for each instance # look something like P4Review_1666@example.com. Set # the COMPLAINFROM_PREFIX (e.g. "P4Review") and # COMPLAINFROM_DOMAIN (e.g. "example.com)" here. Instance # specific values are substituted below. COMPLAINFROM_DOMAIN=example.com COMPLAINFROM="${SSL_PREFIX}${P4DNSNAME}:${P4_PORT}_P4Review\@${COMPLAINFROM_DOMAIN}"
# | Change | User | Description | Committed | |
---|---|---|---|---|---|
#1 | 23960 | noe_gonzalez | "Forking branch Dev of perforce-software-sdp to noe_gonzalez-sdp." | ||
//guest/perforce_software/sdp/dev/Server/Unix/setup/mkdirs.cfg | |||||
#6 | 23266 | C. Thomas Tyler |
Fixes and Enhancements: * Enabled daily_checkpoint.sh operate on edge servers, to keep /p4/N/offline_db current on those hosts for site-local recovery w/o requiring a site-local replica (though having a site-local replica can still be useful). * Disabled live_checkpoint.sh for edge servers. * More fully support topologies using edge severs, in both geographically distributed and horizaontal scaling "wokspace server" solutions. * Fix broken EDGESERVER value definition. * Modified name of SDP counter that gets set when a checkpoint is taken to incorporate ServerID, so now the counter name will look like lastSDPCheckpoint.master.1, or lastSDPCheckpoint.p4d_edge_sfo, rather than just lastSDPCheckpoint. There will be multiple such counters in a topology that uses edge servers, and/or which takes checkpoints on replicas. * Added comments for all functions. For the master server, journalPrefix remains: /p4/N/checkpoints/p4_N The /p4/N/checkpoints is reserved for writing by the master/commit server only. For non-standby (possibly filtered) replicas and edge serves, journalPrefix is: /p4/N/checkpoints.<ShortServerID>/p4_N.<ShortServerID> Here, ShortServerID is just the ServerID with the 'p4d_' prefix trimmed, since it is redundant in this context. See mkrep.sh, which enshines a ServerID (server spec) naming standard, with values like 'p4d_fr_bos' (forwarding replica in Boston) and p4d_edge_blr (Edge server in Bangalore). So the journalPrefix for the p4d_edge_bos replica would be: /p4/N/checkpoints.edge_bos/p4_N.edge_bos For "standby" (aka journalcopy) replicas, journalPrefix is set to /p4/N/journals.rep. which is written to the $LOGS volume, due to the nature of standby replicas using journalPrefix to write active server logs to pre-rotated journals. Some take-away to be updated in docs: * The /p4/N/checkpoints folder must be reserved for checkpoints that originate on the master. It should be safe to rsync this folder (with --delete if desired) to any replica or edge server. This is consistent with the current SDP. * I want to change 'journals.rep' to 'checkpoints.<ShortServerID>' for non-standby replicas, to ensure that checkpoints and journals taken on those hosts are written to a volume where they are backed up. * In sites with multiple edge serves, some sharing achive files ('workspace servers'), multiple edge servers will share the same SAN. So we one checkpoints dir per ServerID, and we want that dir to be on the /hxdepots volume. Note that the journalPrefix for replicas was a fixed /p4/N/journals.rep. This was on the /hxlogs volume - a presumably fast-for-writes volume, but typically NOT backed up and not very large. This change puts it under /p4/N/checkpoints.* for edge servers and non-standby replicas, but ensures other replica types and edge servers can generate checkpoints to a location that is backed up and has plenty of storage capacity. For standby replicas only (which cannot be filtered), the journalPrefix remains /p4/N/journals.rep on the /hxlogs volume. |
||
#5 | 22957 | C. Thomas Tyler |
Merged two changes initiated on main down to: Change @22826 by robert_cowham: Ignore some files on Mac. Change @22950 by awkan/ttyler: Provide an override for difference between proxy listening port and target port |
||
#4 | 22571 | C. Thomas Tyler |
Changed default (and defacto standard) value for server.id of a master server to make it unique by incorporating the SDP_INSTANCE name. So for instance 'fgs', the server.id would not be 'master.fgs' instead of just 'master'. This is necessary to enable remote depots, which won't work if two servers involved in remote depot sharing have the same server.id. Affects Unix SDP. |
||
#3 | 22333 | Russell C. Jackson (Rusty) |
The service user always needs to be defined since the proxy base script uses it as well. Added note about making sure to leave replica FALSE when setting up a proxy. If you don't the instance vars script will create an empty database by running the cshow commands. |
||
#2 | 22145 | Robert Cowham | Update mkdirs to help testing. | ||
#1 | 22070 | Russell C. Jackson (Rusty) |
Pull the configuration items out into mkdirs.cfg and source that file in mkdirs.sh. Makes it a little cleaner, and less likely for someone to mess up the mkdirs.sh script. Also preps for potential future configure_sdp.sh script to ask questions and create the mkdirs.cfg file. |