MariaDB/Provisioning a host
< MariaDB
![]() | This document is a work in progress and may be partially incorrect / incomplete |
![]() | All patches are to be applied to the operations/puppet repository |
Host preparation
Downtime the host in Icinga
Semi-automatically:
cookbook sre.hosts.downtime DBNAME -D1 -t TXXXXXX -r "provisioning - TXXXXXX"
Manually:
- Open
https://icinga.wikimedia.org/cgi-bin/icinga/status.cgi?search_string=DBNAME
. - Select "Schedule downtime for checked hosts" from the top right menu.
- TBD: next steps
Adding a new host
- TBD
Replacing a failed host
- Identify an available host in the same DC
- TBD: how?
- TBD: What to do if there aren't any?
- Match the OS version the replaced host was running
- Reimage the host to Stretch if needed, following the instructions in Server_Lifecycle/Reimage
Section and replication configuration
Add the host to a section:
- In
manifests/site.pp
:- Add the DBNAME to the appropriate regexps
- Remove the
insetup
role from DBNAME
- In
hieradata/hosts/DBNAME.yaml
add- For single-instance hosts:
mariadb::shard: 'SECTIONNAME'
- For multi-instance hosts:
- For single-instance hosts:
Configure the correct replication mode:
- In
hieradata/hosts/DBNAME.yaml
add:mariadb::binlog_format: 'BINLOG_FORMAT'
, whereBINLOG_FORMAT
is:- (TBD: when?)
STATEMENT
- (TBD: when?)
ROW
- (TBD: when?)
Add the host to dbctl config (example)
- In
conftool-data/dbconfig-instance/instances.yaml
add- DBNAME
in the appropriate location
Add the host to Mediawiki's database loadbalancer configuration (example)
- Log on to one of the cluster management hosts (
cumin1001.eqiad.wmnet, cumin2002.codfw.wmnet
) - Run
sudo dbctl --scope DCNAME instance DBNAME edit
, whereDCNAME
iseqiad
orcodfw
- Fill the template:
- Set
pooled: false
- Replacing a failed host?
- Yes: mirror the replaced host configuration
- No: For now, just ask (TBD: guidelines?)
- Set
- Run
dbctl config commit -m "COMMIT_MESSAGE"
Data population
Cloning
- Clone (TBD: How?)
- Start MariaDB
- Wait until replication has caught up (all green on Icinga)
Restoring from backup
Replication from master
Enabling notifications (example):
- In
hieradata/hosts/DBNAME.yaml
deleteprofile::base::notifications: disabled
Next steps
- Ask other team members about schema changes that were executed since the timestamp of the backup you restored the host from and apply them (if needed)
- Pool the host in (TBD: link needed)
This page is a part of the SRE Data Persistence technical documentation
(go here for a list of all our pages)