User Tools

Site Tools


devplayground

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
devplayground [2023/10/06 18:11]
pdonnell created
devplayground [2023/10/17 19:35] (current)
pdonnell
Line 1: Line 1:
 ====== Developer Playgrounds ====== ====== Developer Playgrounds ======
 +
 +Developer playground machines are used for developing Ceph.
 +
 +All machines have [[services:​cephfs]] mounts for accessing the teuthology, scratch, and postfile file systems. It is encouraged to use these machines to view teuthology logs as they will be significantly faster than the [[services:​teuthology|teuthology VM]], which is often memory/CPU starved.
  
 ===== Machines ==== ===== Machines ====
  
-^ Name Notes ^ +^ Name                                             ^ Notes            
-| [[hardware:​senta|senta01.front.sepia.ceph.com]] ​ | General purpose | +| [[hardware:​senta|senta01.front.sepia.ceph.com]] ​ | General purpose ​ 
-| [[hardware:​senta|senta02.front.sepia.ceph.com]] ​ | General purpose | +| [[hardware:​senta|senta02.front.sepia.ceph.com]] ​ | General purpose ​ 
-| [[hardware:​senta|senta03.front.sepia.ceph.com]] ​ | General purpose | +| [[hardware:​senta|senta03.front.sepia.ceph.com]] ​ | General purpose ​ 
-| [[hardware:​vossi|vossi01.front.sepia.ceph.com]] ​ | General purpose | +| [[hardware:​vossi|vossi01.front.sepia.ceph.com]] ​ | General purpose ​ 
-| [[hardware:​vossi|vossi04.front.sepia.ceph.com]] ​ | CephFS Team     ​+| [[hardware:​vossi|vossi04.front.sepia.ceph.com]] ​ | CephFS Team      
-| [[hardware:​vossi|vossi04.front.sepia.ceph.com]] ​ | RADOS Team      +| [[hardware:​vossi|vossi06.front.sepia.ceph.com]] ​ | RADOS Team       ​
-| [[hardware:​folio|folio02.front.sepia.ceph.com]] ​ | General purpose |+| [[hardware:​folio|folio02.front.sepia.ceph.com]] ​ | General purpose ​ | 
 +| [[hardware:​folio|folio13.front.sepia.ceph.com]] ​ | General purpose ​ | 
 + 
 +==== Playing Nice ==== 
 + 
 +Developer playgrounds should be able to build the ''​main''​ branch. It is okay to use ''​./​install-deps.sh''​ top-level scrip from the ceph source tree to update dependencies. Do not run that script from an older release of Ceph as it may break other developer'​s work. If you need to build an older release, lock a throwaway node like [[hardware:​smithi]] and build there. Or, use a container to do the build/​testing! 
 + 
 +Using the developer machines to look at teuthology QA artifacts is encouraged. Try to avoid using a text editor to look at large (1GB+) debug logs as this can be RAM intensive/​disruptive. Instead, prefer ''​less''​ or use ''​tail -c xM | $EDITOR -''​ to look at portions of the log in a text editor. 
 + 
 +Many of the developer playground nodes have extra disks for testing Ceph. It's okay to use these for ''​vstart''​ clusters but it may be more flexible to build LVM volumes on top of these devices so others may use them too. 
 + 
 +==== MOTD ==== 
 + 
 +Please use this MOTD for these playground machines: 
 + 
 +<​code>​ 
 +******************************************************************************* 
 + 
 +                                Welcome! 
 + 
 +      This machine is a Ceph Developer Playground for shared use.  Please 
 +          see the following wiki document for guidelines and a list of 
 +                              available machines. 
 + 
 +             ​https://​wiki.sepia.ceph.com/​doku.php?​id=devplayground 
 + 
 +                           ​Create support tickets at: 
 + 
 +                     ​https://​tracker.ceph.com/​projects/​lab 
 + 
 +                                    Thanks! 
 + 
 +******************************************************************************* 
 +</​code>​ 
 + 
 +==== Configuring CephFS Mounts ==== 
 + 
 +The following script can be run to setup CephFS mounts on a new developer playground machines: 
 + 
 +<​code>​ 
 +#​!/​bin/​bash 
 + 
 +HOST="​$1"​ 
 + 
 +function run { 
 +  printf '​%s\n'​ "​$*"​ >&​2 
 +  "​$@"​ 
 +
 + 
 +function mssh { 
 +  run ssh "​$HOST"​ -- "​$*"​ 
 +
 + 
 +mssh sudo mkdir -p -m 755 /etc/ceph 
 +ssh reesi001.front.sepia.ceph.com 'env CEPH_KEYRING=/​etc/​ceph/​client.sepian.keyring ceph --id sepian config generate-minimal-conf'​ | mssh sudo tee /​etc/​ceph/​ceph.conf 
 +mssh sudo chmod 644 /​etc/​ceph/​ceph.conf 
 +ssh reesi001.front.sepia.ceph.com 'cat /​etc/​ceph/​client.sepian.keyring'​ | mssh sudo tee /​etc/​ceph/​client.sepian.keyring 
 +mssh sudo chmod 644 /​etc/​ceph/​client.sepian.keyring 
 +ssh reesi001.front.sepia.ceph.com '​ceph-authtool /​etc/​ceph/​client.sepian.keyring -n client.sepian -p' | mssh sudo tee /​etc/​ceph/​client.sepian.secret 
 +mssh sudo chmod 600 /​etc/​ceph/​client.sepian.secret 
 + 
 + 
 +function genmount { 
 +  local secret=$(mssh sudo cat /​etc/​ceph/​client.sepian.secret) 
 +  # create mountpoint 
 +  mssh sudo mkdir -p -- "​$2"​ 
 +  # make the mountpoint directory (shadowed) unwriteable to prevent accidental modification 
 +  mssh sudo chmod 000 -- "​$2"​ 
 +  # set it immutable to enforce that even for root 
 +  mssh sudo chattr +i -- "​$2"​ 
 +  printf '​172.21.2.201,​172.21.2.202,​172.21.2.203:​%s\t%s\tceph\tname=sepian,​secret=%s,​mds_namespace=%s,​_netdev\t0\t2\n'​ "​$1"​ "​$2"​ "​$secret"​ "​$3"​ | mssh sudo tee -a /​etc/​fstab 
 +}
  
 +genmount /​teuthology-archive /teuthology teuthology
 +genmount / /scratch scratch
 +genmount / /postfile postfile
  
 +mssh sudo systemctl daemon-reload
 +mssh sudo mount /teuthology
 +mssh sudo mount /scratch
 +mssh sudo mount /postfile
 +mssh sudo ln -s /teuthology /a
 +</​code>​
devplayground.1696615891.txt.gz · Last modified: 2023/10/06 18:11 by pdonnell