devplayground
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| devplayground [2023/10/17 19:35] – pdonnell | devplayground [2026/09/14 14:23] (current) – djgalloway | ||
|---|---|---|---|
| Line 8: | Line 8: | ||
| ^ Name ^ Notes ^ | ^ Name ^ Notes ^ | ||
| - | | [[hardware: | ||
| - | | [[hardware: | ||
| - | | [[hardware: | ||
| | [[hardware: | | [[hardware: | ||
| | [[hardware: | | [[hardware: | ||
| Line 19: | Line 16: | ||
| ==== Playing Nice ==== | ==== Playing Nice ==== | ||
| - | Developer playgrounds should be able to build the '' | + | Developer playgrounds should be able to build the '' |
| 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/ | 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/ | ||
| Line 48: | Line 45: | ||
| ******************************************************************************* | ******************************************************************************* | ||
| </ | </ | ||
| + | |||
| ==== Configuring CephFS Mounts ==== | ==== Configuring CephFS Mounts ==== | ||
| - | The following | + | The following |
| + | |||
| + | |||
| + | ==== Teuthology scheduling ==== | ||
| + | |||
| + | Configure the dev playground node to schedule jobs: | ||
| < | < | ||
| - | #!/bin/bash | + | sudo tee /etc/teuthology.yaml << |
| + | default_machine_type: | ||
| + | queue_host: teuthology.front.sepia.ceph.com | ||
| + | queue_port: 11300 | ||
| + | active_machine_types: | ||
| + | - smithi | ||
| + | - trial | ||
| + | - gibba | ||
| + | EOF | ||
| + | </ | ||
| - | HOST=" | + | Note: killing a run is (generally) still necessary on [[services: |
| - | function run { | + | ==== Configuring LVM volumes using spare disks ==== |
| - | printf ' | + | |
| - | " | + | |
| - | } | + | |
| - | function mssh { | + | When setting up a fresh Developer Playground machine, configure an LVM VolumeGroup for use by users. Volumes can be provisioned for a build directory, OSD block device, or anything else needed. |
| - | run ssh " | + | |
| - | } | + | |
| - | mssh sudo mkdir -p -m 755 /etc/ceph | + | Note: no redundancy is configured below (i.e. RAID). If a disk is lost, all volumes will be affected. |
| - | ssh reesi001.front.sepia.ceph.com 'env CEPH_KEYRING=/ | + | |
| - | mssh sudo chmod 644 / | + | |
| - | ssh reesi001.front.sepia.ceph.com 'cat / | + | |
| - | mssh sudo chmod 644 / | + | |
| - | ssh reesi001.front.sepia.ceph.com ' | + | |
| - | mssh sudo chmod 600 / | + | |
| + | < | ||
| + | sudo pvcreate /dev/$DISK | ||
| + | </ | ||
| - | function genmount { | + | Do this for every disk. This is an ad-hoc process because all nodes are different. Also, some disks may have been used in the past so they will need wiped first: |
| - | local secret=$(mssh sudo cat / | + | |
| - | # create mountpoint | + | |
| - | mssh sudo mkdir -p -- " | + | |
| - | # make the mountpoint directory (shadowed) unwriteable to prevent accidental modification | + | |
| - | mssh sudo chmod 000 -- " | + | |
| - | # set it immutable to enforce that even for root | + | |
| - | mssh sudo chattr +i -- " | + | |
| - | printf '172.21.2.201,172.21.2.202, | + | |
| - | } | + | |
| - | genmount /teuthology-archive | + | < |
| - | genmount | + | sudo wipefs |
| - | genmount / /postfile postfile | + | </code> |
| - | mssh sudo systemctl daemon-reload | + | Once all disks are added as physical volumes, it's then possible to add to a VolumeGroup: |
| - | mssh sudo mount /teuthology | + | |
| - | mssh sudo mount /scratch | + | < |
| - | mssh sudo mount /postfile | + | sudo vgcreate DevPlayground $DISKS |
| - | mssh sudo ln -s /teuthology /a | + | |
| </ | </ | ||
| + | |||
| + | Finally make a volume for yourself: | ||
| + | |||
| + | < | ||
| + | sudo lvcreate -L 256G DevPlayground -n $(whoami)-build | ||
| + | sudo mkfs.xfs / | ||
| + | mkdir $HOME/build | ||
| + | chmod 000 $HOME/build | ||
| + | sudo chattr +i $HOME/build | ||
| + | echo "/ | ||
| + | sudo systemctl daemon-reload | ||
| + | sudo mount $HOME/build | ||
| + | </ | ||
| + | |||
| + | and some OSD block devices: | ||
| + | |||
| + | < | ||
| + | for i in `seq 0 8`; do sudo lvcreate -L 16G DevPlayground -n $(whoami)-osd.$i ; done | ||
| + | </ | ||
| + | |||
| + | Make those OSDs owned by you: | ||
| + | |||
| + | < | ||
| + | printf ' | ||
| + | sudo udevadm control --reload-rules | ||
| + | sudo udevadm trigger | ||
| + | </ | ||
| + | |||
| + | Then you can use those devices with vstart.sh: | ||
| + | |||
| + | < | ||
| + | wipefs -a / | ||
| + | shred -v -n 0 -z -s 16M / | ||
| + | env OSD=8 ~/ | ||
| + | --bluestore-devs $(echo / | ||
| + | </ | ||
| + | |||
| + | Feel free to make any other volumes that you require. | ||
devplayground.1697571306.txt.gz · Last modified: by pdonnell
