Uit Hack42
Ga naar: navigatie, zoeken
Project: Virtualisatie
Schroefje24.png
Schroefje24.png
Schroefje24.png
Schroefje24.png
Virtualisatie Picture.jpg

Virtualisatie

Naam Virtualisatie
Door BugBlue, SA007, Dvanzuijlekom
Status Uitvoer
Madskillz Knutselen, (Linux) Systeembeheer, Networking, Storage
Doel / Omschrijving
Een virtualisatieplatform voor containers/VM's in de space
Alle Projecten - Project Toevoegen
File:Virtualisatie_Picture.jpg noez


Voor het draaien van containers en/of virtuele machines hebben we een virtualisatieplatform ingericht. Momenteel is dit hornby.space.hack42.nl. De host is vernoemd naar Frank Hornby, uitvinder van Meccano. Dit vanwege het feit dat Meccano een integraal en cruciaal onderdeel is van de serverbehuizing.

Doel

Deze host is bedoeld om containers/VM's te draaien die kunnen worden ingezet voor (bijvoorbeeld) space-infra zaken en allerhande hackerspace-gerelateerde activiteiten/doeleinden. In plaats van allerlei (niet-gerelateerde) functionaliteiten in een enkele 'superserver' te consolideren is het juist de bedoeling om dit, waar mogelijk, zoveel mogelijk uit te spreiden over individuele containers/VM's. Dit heeft als voordeel dat de hypervisor zelf zo 'clean' mogelijk wordt gehouden, wat upgrades vergemakkelijkt, maar ook dat individuele VM's geen oerwoud van maatwerk-dependencies worden (wat ook weer OS upgrades/patches vergemakkelijkt).

Hardware

  • HP xw6600 Workstation voorzien van laatste BIOS (v1.46) en een verse CMOS batterij
  • 2x Intel Xeon E5430 CPU's, 8 cores (2x 4) @2.66GHz
  • 32GB RAM (8x 4GB DIMMs) DDR2-667, Fully Buffered, 72-bit ECC
  • 6x 250GB Hitachi Deskstar harddisks (in ZFS RAID-Z2)
    • Hebben enkele jaren 24/7 als Virtual Tape Library gedraaid in een datacenter
    • Vooraf met 'badblocks -wvs' getest, 0 bad blocks (te zien aan "OK" geschreven op de drive)

Firmware

In het BIOS is de RTC in UTC geconfigureerd. Tevens is 'last state' geconfigureerd voor de setting After Power Loss. Daarnaast is Network Service Boot uitgeschakeld, Intel Virtualization Technology (VTx) en Intel IO Virtualization zijn ingeschakeld.
Ondanks dat dit workstation zou moeten kunnen booten vanaf een USB stick, lijkt deze problemen te hebben met sommige Operating Systems en/of sticks. Proxmox wordt bijvoorbeeld niet herkend, maar Tails wel. Uiteindelijk is een externe USB DVD-ROM drive gebruikt om het OS te installeren.

Software

De server draait Proxmox Virtual Environment. Dit is een open-source virtualisatieplatform op basis van Debian GNU/Linux. Het geeft de mogelijkheid om zowel Linux Containers (LXC) als full-blown VM's te draaien onder KVM-technologie. Hackerspace NURDspace gebruikt ook Proxmox en heeft inmiddels enkele jaren goede ervaringen met haar virtualisatieplatform.

Maatwerk

Na installatie is het volgende gedaan:

SSH Login Accounts

Op het systeem zijn enkele gebruikersaccounts aangemaakt voor beheerders. Deze zijn handmatig in de groepen adm, sudo, operator en users geplaatst. Homedirectories zijn iets verder dichtgezet qua permissies.

root@hornby:~# useradd -c "<Voornaam Achternaam>" -s /bin/bash -m <username>
root@hornby:~# gpasswd -a <username> <groupname> # 4x
root@hornby:~# chgrp operator /home/<username>
root@hornby:~# chmod o-rx /home/<username>

Deactiveren Enterprise Repo

In /etc/apt/sources.list.d/pve-enterprise.list is de Enterprise repository uitgecomment, aangezien we hier geen licentie voor hebben. Dit voorkomt de '401 Unauthorized' foutmelding tijdens het draaien van 'apt-get update'.

Activeren No-Subscription Repo

Op basis van de tips in Proxmox VE No Subscription Repo is de no-subscription repository geconfigureerd in /etc/apt/sources.list

Deactiveren 'nag' popup

Onderstaand is niet meer van toepassing, na iedere update wordt de wijziging namelijk weer ongedaan gemaakt. Handmatig bijhouden is teveel werk en levert te weinig voordeel op.
Middels de tip op deze website is /usr/share/pve-manager/js/pvemanagerlib.js aangepast zodat de webinterface niet meer de 'nag' popup toont ivm de ontbrekende licentie. Voor de wijzigingen is er een backup van deze file gemaakt naar /var/backups/. Na de wijziging dient Proxmox herstart te worden.

Extra Packages

Om beheer te vergemakkelijken zijn de volgende extra packages geïnstalleerd:

  • sudo
  • vim-nox

SSHD Login Banner

Er is een loginbanner in /etc/issue.net geplaatst en deze is geactiveerd in /etc/ssh/sshd_config.

Message Of The Day

Voor interactieve logins is /etc/motd aangepast met een stukje trivia uit de Wikipedia pagina van de persoon waar de server naar is vernoemd.

Logrotatie

In /etc/logrotate.conf en diverse files in /etc/logrotate.d/ zijn de rotatiesettings getuned om langer inzage te kunnen hebben in logfiles. Voor de files in de include-directory zijn alle relevante rotatiesettings verwijderd zodat deze uit de defaults worden overgenomen. Het gaat hier om ceph-common, glusterfs-common, pve, pve-firewall en rsyslog.

NTP

Om accurate systeemtijd bij te houden is /etc/systemd/timesyncd.conf voorzien van de (NL) NTP servers via ntp.org. Fallback is enabled, maar wel de default gelaten.

Postfix Mail

Om het systeem uitgaande email te kunnen laten verzenden, in geval van gedetecteerde issues, is het volgende aangepast aan de /etc/postfix/main.cf:

myorigin = hack42.nl
relayhost = turing.hack42.nl

Storage

Voor opslag van backups, VM's/containers en ISO's/templates zijn (via de commandline) aparte ZFS pools gemaakt. Deze zijn vervolgens via de webinterface gemapped aan de juiste targets. De automatisch aangemaakte 'local' mappings zijn verwijderd en/of disabled.

root@hornby:~# zfs create rpool/data/backup
root@hornby:~# zfs create rpool/data/image
root@hornby:~# zfs create rpool/data/iso

Dit ziet er als volgt uit:

root@hornby:~# cat /etc/pve/storage.cfg 
dir: local
        disable
        path /var/lib/vz
        content iso,rootdir,vztmpl,images
        maxfiles 0
        shared 0

zfspool: image
        pool rpool/data/image
        content rootdir,images
        sparse 1

dir: iso
        path /rpool/data/iso
        content iso,vztmpl
        shared 0

dir: backup
        path /rpool/data/backup
        content backup
        maxfiles 1
        shared 0

ISO's kunnen via de webinterface worden geupload. Als alternatief kunnen deze via secure copy worden geupload naar /rpool/data/iso/template/iso/. Momenteel zijn de volgende beschikbaar:

root@hornby:~# ls -lah /rpool/data/iso/template/iso/
root@hornby:~# ls -lah /rpool/data/iso/template/iso/
total 4.6G
drwxr-xr-x 2 root root    6 Jul 23 19:19 .
drwxr-xr-x 4 root root    4 Jan  6  2018 ..
-rw------- 1 root root 4.2G Jul 23 19:20 CentOS-7-x86_64-DVD-1804.iso
-rw------- 1 root root 291M Jul 23 19:06 debian-9.5.0-amd64-netinst.iso
-rw------- 1 root root 108M Jan  6  2018 openSUSE-Leap-42.3-NET-x86_64.iso
-rw------- 1 root root 122M Mar 13  2018 openSUSE-Tumbleweed-NET-x86_64-Snapshot20180312-Media.iso

Groups

Er is een nieuwe group admins ("Hack42 PVE Cluster Administrators") aangemaakt en deze is op groupniveau de (PVE) rol "Administrator" toegekend. Individuele users zijn in die group geplaatst.

Backups

Iedere zondag om 05:00 worden er backups gemaakt van alle VM's en containers, naar het backup volume (/rpool/data/backup/). Er wordt één backup bewaard per VM/container, dit in verband met de geringe hoeveelheid vrije schijfruimte.

Netwerk

De server is middels de Cisco SRW 2048 aangesloten op het Hack42 Managed Hardware VLAN via de PCI NIC. De onboard NIC is momenteel ongebruikt.

Toegang

Fysiek

De server ligt in het 19" rack in het serverhok op de begane grond en is zowel aan de koude kant als aan de warme kant gemarkeerd met een CI-label.

Logisch

De hypervisor is toegankelijk via SSH en de webinterface. Die laatste heeft de voorkeur. Merk op dat deze een self-signed certificaat zal aanbieden. Middels de HTML5 webinterface is het mogelijk om containers en VM's aan te maken, maar bijvoorbeeld ook om een (grafische) console te openen naar een container/VM of zelfs die van de host zelf.

Containers / Virtual Machines

Momenteel draaien de volgende images:

ID Hostname Type OS Sizing (CPU/RAM/HDD) Contact Doel
100 phoney VM Debian (amd64) 1x / 512MB / 16GB SA007 Asterisk PBX server voor spacefoon telefonie-netwerk
101 postgresql VM Debian (amd64) 4x / 4GB / 100GB dvanzuijlekom PostgreSQL databaseserver voor algemeen gebruik
102 mariadb VM Debian (amd64) 4x / 4GB / 100GB dvanzuijlekom MariaDB (MySQL) databaseserver voor algemeen gebruik
103 mercator VM Debian (amd64) 1x / 512MB / 32GB dvanzuijlekom Ansible testomgeving
104 betamax VM Debian (amd64) 8x / 2GB / 200GB BugBlue ZoneMinder Video Surveillance Software System

Aanvraagprocedure Container/VM

Om onze ISO 9001 certificering te behouden, zal je een (origineel exemplaar, geen kopie) "Aanvraagformulier CI Container/VM" (formulier 251-B) moeten overleggen bij iedere container/VM-aanvraag. Deze formulieren zijn in de space te vinden, op de gebruikelijke locatie. Let wel dat dit formulier enkel op persoonlijke basis wordt uitgegeven. Legitimatie is verplicht, doe dit door middel van twee identiteitsdocumenten: minstens één geldig officieel identiteitsdocument en daarnaast (bijvoorbeeld) een bankpas/afschrift. Ten behoeve van het validatieproces dien je een creditcardnummer op te geven (op naam van de aanvrager). Deze zal alleen worden belast indien je container/VM de limieten in de Fair Use Policy overschrijdt, zoals bijvoorbeeld (niet gelimiteerd tot) harddisk IOPS, netwerkverkeer, CPU cycles/interrupts, uptime en supportaanvragen. Zie hiervoor het aanvraagformulier voor meer informatie. Tevens dien je een recent (lees: maximaal 1 maand oud) afgegeven Verklaring Omtrent het Gedrag (VOG) te kunnen overleggen (op basis van: natuurlijk persoon/algemeen screeningsprofiel/8 risicogebieden). Er wordt maximaal één formulier per lopende aanvraagprocedure uitgegeven en in behandeling genomen.

Voor toegang tot de host of voor het (laten) deployen van een container/VM op de host kan je, op dinsdag, donderdag en vrijdag, tijdens kantoortijden, contact opnemen met één van de onderstaande sysadmins. Zorg wel dat je in het bezit bent van een compleet en correct ingevuld formulier 251-B, uiteraard voorzien van ondertekening door tenminste één bestuurslid en één van de onderstaande personen (maximaal één signatuur per rol):

Hou rekening met een doorlooptijd van zo'n drie tot zes maanden na ontvangstbevestiging van je aanvraag. Een screening kan onderdeel uitmaken van het proces.

Build POIDH

www.flickr.com - tags:hack42 hornbyspacehack42nl (random) (max: 4)