Sist helg hadde Tech:Net en dag i Vikingskipet hvor vi installerte et par rutere og servere. Vi koblet opp Internett linjen og sjekket at servere og utstyr var nåbare fra utsiden.
Det ble kanskje litt vel mye utstyr inne på det lille rommet, for nå er det godt og varmt der inne 🥵
sjurtf@r1.tele> show chassis environment | match Intake CB 0 Intake OK 48 degrees C / 118 degrees F CB 1 Intake OK 49 degrees C / 120 degrees F FPC 2 Intake OK 49 degrees C / 120 degrees F FPC 3 Intake OK 50 degrees C / 122 degrees F FPC 4 Intake OK 50 degrees C / 122 degrees F FPC 5 Intake OK 51 degrees C / 123 degrees F
Selv om det nå er mulig å steke bacon på MXen som står der så har vi fått brukt uken til å gjøre en del forarbeid.
Fredag som kommer så drar vi til Hamar og opprigget vårt starter for fullt lørdag morgen.
Stats og stream
Gondul (Overvåkingsverktøyet) vårt er nå i drift og den offentlige versjonen er tilgjengelig. Vi har også et weathermap som man kan følge med på.
Nytt av året er selvbetjening av VMer, også til deltakere med plass i skipet.
Med en bruker på Geekevents (eller Wannabe for crew) kan du logge inn og opprette både virtuelle maskiner og ferdig oppsatte spillservere.
Alt av detaljer er ikke klart. Planen er å tilby siste Debian, Ubuntu og Rocky Linux. Mangler vi din favoritt distribusjon? Gi beskjed i vår Discord server
Ferdig installert spill-servere leveres via Pterodactyl.
Presise maskinvarespesifikasjoner er fortsatt under utvikling. Målet vårt er å tilby kraftige nok maskiner til å kjøre de fleste spillservere og annen lab, samtidig som vi ønsker så mange brukere som mulig.
Forrige helg hadde Tech-crewet årets store samling, Tech:Gathering, der det var mye møteaktivitet, sosialisering og ymse. Denne helgen, har Tech:Net samlet seg for en ren arbeidshelg. Utstyret fra Juniper har kommet, den første serveren fra Nextron er i hus og vi begynner å konfe utstyr og teste at det vi vil ha fungerer!
Av ting vi har gjort i helga:
Sette opp core-ruteren
Softwareoppgradere distro-svitsjer, sette basisconfig på dem, teste
Forsøke og feile å få opp Mist Edge i en VM (…)
Confe brannvegger
Gjøre klar ringen til bruk
Teste Multirate
Knote med “nytt” southcam
Teste utrullingsautomatikk
Også har vi tatt sikringen på frivillighetshuset på grunn av overbelastning da.
To ganger.
Men uansett sikringer eller ei, vi er straks klar for “pre-opprigget” – en tur opp til vikingskipet for å sette opp utstyr et par uker før det ordinære opprigget til tg starter.
Etter fler år uten å få bygge et stort nettverk i påskehytta vår, Vikingskipet, så er det endelig snart tid for TG igjen.
Partnere
Vi viderefører det gode samarbeidet med våre venner i nLogic og Juniper Networks, og skal i år, som tidligere bygge kjernen i nettverket på Juniper MX-plattformen. Nytt av året så vil Juniper Networks også levere det trådløse nettverket basert med Juniper Mist. Vi gleder oss veldig til å prøve ut dette og det fortjener sin egen blogpost.
Vi fortsetter med Telenor som ISP og de vil som tidligere år levere oss 50G fordelt på 5x10GbE linker mot Telenor sin ruter i Hamar.
Nextron vil som tidligere stå for server leveransene.
Første dataparty med 10G til deltakere på bordene?
Fler og fler hovedkort og laptoper kommer nå med nettverkskort som har NBASE-T støtte. Det vil si at nettverksporten kan oppnå en linkhastighet på 2.5G, 5G og 10G (som regel i tillegg til 10/100/1000). TG var tidlig ute med gigabit til deltakerene, nå vil vi være tidlig med også høyere hastigheter på bordradene. Vi ønsker å se hvor utbredt dette er i utstyret som tas med på TG, og hvordan etterspørselen på dette er, samt legge tilrette for mer bruk av båndbredde i nettverket vårt. Bruk mer båndbredde!
Juniper Networks har derfor latt oss låne et lite knippe EX4300-48MP svitsjer som støtter 2.5GbE, 5GbE og 10GbE i tillegg til gode gamle 1GbE. Noen av disse kommer vi til å plassere ut på noen deltakerbord, såklart uten ekstra kost for deltakeren. Nøyaktig hvilke rader disse blir plassert på håper vi å kunne si noe om innen det åpnes opp for seating, men plasseringen av disse avhenger av hvordan ting blir plassert fysisk i Vikingskipet.
Design
Årets design bygger videre på designet og erfaringer fra TG19, samt planarbeidet vi rakk før TG20 ble avlyst. Justeringer vi har gjort:
Gjøre (omtrent) alt av L3 på MX480 som nå vil stå fysisk plassert på tele (derav nytt navn r1.tele)
Utskutte distribusjonsswitcher fra ringen for å redusere behov for mange lange parallelle kabelstrekk (eksempelvis d1.bird)
Aggregering av uplinkene til distribusjonsswitchene på gulvet med 2 stk QFX5120 i taket (d1.roof) for å redusere fiberstrekk til taket.
Et SRX4600 cluster for å gjøre NAT av ymse og litt eksperimentering.
En av VC-distribusjonsswitchene på gulvet blir basert på EX4300-48MP. Denne skal håndtere uplinkene til tilsvarende switcher på bordene. Denne vil få 2x40G uplink til taket. På tegningen heter denne d1.floor, men det er ikke sikkert den vil stå fysisk der den er tegnet inn.
Når vi først fikk muligheten til å sette opp et TG-nettverk i Vikingskipet etter mange år uten, ble det såklart overkill.
Som du ser er det mindre en et vanlig TG. Nesten hele nettverket er bygd på KANDU sitt eget Juniper utstyr (EX2200, EX3300 og EX4300). Unntaket er Fortinet FortiGate 1100E som ble brukt som brannmur.
Fiber patch i NOC. Her går det fiber til TeleNOC (Network Operations Center) som i år er delt med Creative studioPatch på Tele (Fiber fra NOC kommer inn her)
Vi er også så heldig at tidligere TG crew har installert “ringen” i skipet. Det gjør at vi kan patche fiber rundt hele skipet. Som også gjør at vi kan kjøre alt av distribusjon på Tele og bare patche fiber ditt vi trenger det. Core er 4 stk Juniper EX4300 i VC og EX3300 for kant.
c1-tele
Behovet for servere er ikke veldig stort, men vi hadde noen fysiske servere fra Håvard/Casual Gaming. Det ble stort bare brukt til lek og litt lab. DHCP kjørte på FortiGaten og vi hadde en VPN til KANDU/Systemstøtte for litt annet.
Tech er på plass i Vikingskipet og vi har internett!
Litt speedtesting
Vi kommer også til å ha en stream på TGTVCreative hvor vi skal snakke litt om dataparty og hva vi har gjort på årets arrangement. Tune in på Twitch fredag 14:30!
Til dere som har søkt crew til TG22 har nok merket noe nytt med Wannabe. Nettopp! Wannabe kjører i Kubernetes (og vi har darkmode!). Mer om Kubernetes og Wannabe5 må bli en annen bloggpost. Denne korte posten handler om vår blogg.
Med ny versjon av Wannabe ble det klart vi ønsket mer automatisering og DevOps. Denne bloggen ble egentlig planlagt som den første produksjons-workload i det nye clusteret. Men på grunn av litt dårlig planlegging ble Wannabe5 først. Ca 2 måneder etter vi gikk live med Wannabe ble det denne bloggen sin tur.
Vi bruker Argo CD for å få “Infrastructure as Code” og “GitOps”
Bloggen er en ganske liten deployment, kun 1 pod (container) for selve wordpress. Traefik for ingress og MOCO som MySQL Operator.
MOCO er litt av grunnen til vi valgte å flytte Tech-bloggen, både Wannabe og Gathering.org bruker MySQL som database. Vi har et ønske om å bygge de mest kritiske tjenestene våre redudant og et steg på veien er å teste ut MySQL Clustering i Kubernetes.
Takk til Nextron for nye servere til vårt driftsmiljø <3
2 nye servere; hver med 384 GB ram og 2 stk Intel Xeon Gold 6258R. Allerede i full sving for TG:Online. Der skal dei blant annet brukes til Minecraft, video streaming og Tech:Online.
Heisann! Selv om det ikke ble et TG21 i Vikingskipet i år, jobber vi i Systemstøtte videre med vår driftsløsning. For del 1 se The Gathering’s driftsløsninger
FortiGatene kjører i et Active/Passive cluster. Switchene satt opp med FortiLink. Dette gjør at vi kan styre hele nettverket fra et sted. Alt er selvfølgelig satt opp med IPv6 (og IPv4).
For å sikre redundans på switchene er de satt opp med MCLAG (Multi-Chassis Link Aggregation Group) og alle servere er koblet med minst 1 10Gbps link til hver switch (LACP). Internett fra Nexthop er koblet til begge switchene. Dette gjør at vi kan miste en FortiSwitch og en FortiGate uten at det merkes på tjenestene vi leverer. Alt har redundant strømforsyninger tilkoblet UPS og aggregat.
For å sikre at de mest kritiske løsningene vi har, har vi starter å leke med last balansere i FortiGate. Dette gjør at vi kan kjøre 2 eller flere servere som svarer på 1 IP adresse. Med helsesjekker blir servere som ikke svarer tatt ut av drift automatisk og tilbake når de responderer og er anset som friske.
Eksempelvis så kjører gathering.org med et slikt oppsett i dag. En “Virtual Server” som videresender trafikken til 2 servere. Dette gjør at vi i teorien kan miste en fysisk server uten at nettsiden går ned. Dessverre er vi ikke helt i mål med å få alle tjenester som kreves for nettsiden redundante. Vi snuser i tillegg på Kubernetes, men mer om det senere. De fleste tjenestene våre kjører som konteinere i Docker.
FortiAnalyzer
Vi bruker FortiAnalyzer for å følge med på trafikken som treffer nettverket vårt. Det er ikke veldig mye brukt, men alltid kult å kunne se hva som skjer ute på internett. Pluss veldig nyttig for feilsøking.
Har du spørsmål? Du finner flere av oss i #tech på TG sin Discord server. Vi snakkes!
Dei fleste fekk vel med seg avlysinga av The Gathering 2020, som da opna eit prosjekt for å dempe TG-abstinensane frå både crew og deltakarar, nemleg TG:Online. TG:Online bestod då av litt konkurransar, mykje streaming, litt stemning på discord og ein tøff Minecraft server, som me skal fordjupe oss i her!
Det starta med at eg kom med eit forslag til den interne ide-gruppa til TG:Online den 17 mars, som lød slik:
Den stjerna skal eigentlig blinke gul og raud
Som da trigga ein del respons. Sjølv om forslaget mitt då var halvveis på kødd, viste det seg at samtlege crewmedlemmar var gira, og at Nextron, so gode som dei er, kunne stille opp med hardware til prosjektet. 12 dagar etter forslaget starta det første møtet der me drøfta korleis prosjektet skulle sjå ut, deretter hadde me to veker til det blei live, og slik blei det:
Hardware
Vi hadde alt ein bestilling på diverse serverar som blei bygd i forkant av avlysinga, som Nextron var gira på å låne vekk til TG:Online i staden for. Me fekk da 2(!) av desse specsa:
2x Intel Xeon Platinum 8280L – 28-Core 2.7Ghz Base 4Ghz Turbo 512GB RAM 2x 256GB M.2 SSD i RAID-1 (boot) 6x 480GB SATA SSD 2x10GbE SFP+
Det er gøy.
Men kor skal vi ha serveren? Vanligvis har me jo alle maskinene våre i vikingskipet, men ettersom den planen gjekk vestover måtte vi går til ein av KANDU sine samarbeidspartnere, nemleg colocation hos Nexthop! Der har me og ein Fortigare brannmur som fort kan komme til nytte! Tidlegare har Ole Mathias posta bilete frå installasjonen av serverane
Software
I beskrivelsa av software til prosjektet snakkar me om alt av rein software som gjorde prosjektet mogleg, og startar kronologisk med det som er i botnen.
For i botnen starta me med Proxmox til kvar av serverane. Proxmox har blitt veldig populært inna TG sitt tech-miljø, og har opna for lett skalering, IPA, flytting av VM utan downtime med meir, so det var eit sjølvfølgje for oss!
Deretter kjem game sin favoritt, nemleg pterodactyl! Pterodactyl opnar da for veldig lett administering av docker containers av spel, deriblant forskjellige variantar av Minecraft serverar. Det har eit kult API, kjapp deployment muligheit for serverar, brukaradministrering av serverar, tilgang til filsystem og CLI til containerar, administrering av database og mykje meir!
Eksempel oppsett, her er alle “likesida” firkantane VM’ar, og dei avlange er Minecraft server instancesi eigne docker containers
Deretter går me til det som er sjølve Minecraft serverane, og det har kanskje behov for ein liten forklaring.
“Vanleg” Minecraft køyrar java som dei fleste veit. Grunna det pluss Minecraft sin utvikling dei siste ti åra brukar Minecraft server instansen hovudsakleg kun ein CPU kjerne, som gjer da eit 56 core beist som me har litt ubrukeleg dersom me skulle berre hatt ein server instance. Difor gjor me som det fleire andre større serverar, nemleg å ha eit proxy oppsett. Det fungerar med at me har ein proxy, som bungeecord eller waterfall, som då i klienten sine auge ser ut som ein heilt vanleg Minecraft server. Om klienten prøvar å kople seg til proxyen, vil den då bli sendt til eit av serverane under proxyen. Proxyen lagar og ein bru for å kople seg mellom serverar, og kan bli konfigurert til å gjer mykje gøy!
Eksempel på proxy blokkdiagram, der waterfall er ein proxy server
Der har me valt å bruke waterfall som proxy server, som då er ein fork av bungeecord, og Tuinity som Minecraft server, som er ein fork av PaperMC, som er ein fork av Spigot. Phew. Me valgte da waterfall og tuinity rett og slett for at internettet sa dei skulle gi betre ytelse, noko som me tenkte me sårt trengte då CPU’en vår ikkje har like god single-core ytelse som dei fleste profesjonelle Minecraft serverar har. Med Tuinity arbeida me internt for å få best mogleg ytelse og optimalisering, og me var veldig bleeding edge med Tuinity verisjonen me køyrde i produksjon.
Litt anna som er verdt å nemne er at me konfigurerte ein close-to autodeploy av forskjellige Minecraft server instances, som gjer at dersom det hadde komt hundrevis, eller tusenvis av folk, kunne vi kjapt skalere opp anntalet survival, creative og lobby instances.
Plugins
Plugins på Minecraft er essensielle for å drive ein større server. Det kan ver plugins for å administrere moderering og banning på tvers av serverar, plugins for å stenge av spawn område, plugins for å lage portalar mellom server instances, osv osv. Naturligvis har me og behov for nokon plugins.
Plugins me brukte, der dei øverste er for server instances mens dei nedenfor er for proxy server
Me skal ikkje gå inn på alle plugins, ettersom der er mange småting som blei konfigurert. Men vi skal gå inn på det mest spennande!
LuckPerms er nok den viktigaste pluginen me hadde i sin heilheit, då det den gjorde var å passe på server rollar på tvers av instances. Dvs om man har moderator rolle på lobby, har man og moderator rolle på adventure server. Me hadde behov for ein felles database for den pluginen som alle serverane snakka til.
Ein anan plugin som krev database er CoreProtect, som loggar alt av aktivitet på kvar server, har rollback muligheit og mykje meir. Kontra LuckPerms krev den ein database per server, dog.
WorldGuard vart kun brukt på Minecraft Creative konkurranse server instancen, då der ikkje var behov for den andre plassar. WorldBorder blei brukt for å førehandsgenerere survival verdenane våre, som gjer me sparar mykje resursar på generering i produksjon.
Tall
Her kjem det som er gøy!
For vi rakk nemleg å bli ferdig med alt akkurat før tida, og hadde ein opplevelse som gjekk over forventningane når det kom til trøbbel!
Totalt var der 384 unike brukarar som besøkte serveren vår, med ein peak på 54 spelarar som var på serveren samstundes. TPS på alle instances var på 20 (det er perfekt) heile tida, utanom når folk lagde TPS-bombs med vilje. Men det blei kjapt rydda opp i.
Me hadde og ein testdag for å sjekke kor mykje ein server instance taklar med alle pluginsa me planla å bruke, på software oppsettet me tenkte å bruke. Då fekk me nær 50 brukarar som spelte samstundes, med ein TPS på 20, og CPU core load på 30%.
Anntal spelarar per tid
Eg vil gi ein stor takk til Christian Relling og Ole Mathias Aarseth Heggem for å bruke insane med innsats på å løyse plugins og det tekniske rundt prosjektet, og eg vil og takke alle byggarane, moderatorane, og støttespelarane rundt prosjektet som gjor at barn og unge fekk game litt samla i påska i år også <3