Host:Vm: Difference between revisions

From Chaosdorf Wiki
m (pixl)
m (clearer instruction)
 
(28 intermediate revisions by 5 users not shown)
Line 1: Line 1:
{{Host
{{Host
|name=vm.chaosdorf.dn64
|name=vm.chaosdorf.de
|image=HP SE1220.jpg
|os=Debian 12 amd64
|os=Debian jessie amd64
|location=PlusServer
|location=OpenIT
|purpose=VM-Host
|purpose=VM-Host
|disk=146GB
|disk=1.8TB
|ram=48GiB
|ram=128GiB
|admin_toolkit=Yes
|admin_toolkit=No
|ssh_root_keys=/var/cache/ssh
|ssh_root_keys=~/.ssh
|ssh_pam=No
|ssh_pam=No
|ssh_userlogin=No
|ssh_userlogin=No
|admins=byte, derf, feuerrot
|ownership=club
|admins=byte, derf, dfjera, feuerrot
}}
}}
Wird hoffentlich bald {{H|Vm}} ersetzen, das Wiki wird dann geupdated. Bisherige Fakten:
Steht seit dem 6.6.2023 im PlusServer-Rechenzentrum in [https://www.openstreetmap.org/#map=18/51.18761/6.86670 Düsseldorf]. Historisch handelt es sich um ein offenes Rack für befreundete Vereine bei OpenIT, inzwischen laufen wir bei PlusServer als Legacy-Vertrag. Das Hosting ist kostenfrei, wir zahlen lediglich den Zeitaufwand für Hands-On-Termine.
 
* Netzwerk kommt nicht auf die Onboardports (wegen eines Silikonunfalls), sondern auf den von hinten gesehen linken der beiden Extraports oben rechts. Ist auf der Karte mit ACTIVEA gelabelt
* Festplatten sind 2x146GB SAS in einem Hardware-RAID1
* Gehäuse ist 4HE, genau so wie das alte vm.chaosdorf.de


== Hardware ==
== Hardware ==


* RAID Controller: HP Smart Array G6, wird von <tt>check_raid</tt> unterstützt, Statusinformationen gibts ansonsten mit <tt>cciss_vol_status /dev/sg1</tt>
* System: 1HE Dell R630
* CPU: 2x Intel Xeon E5-2640 v3
* RAM: 128GB
* HDD: 4x 1,8TB SSD
* iDRAC: Vorhanden und mit einem Edge Router Lite verbunden → nur per SSH-Jumphost oder Wireguard erreichbar


== Festplattenaufteilung ==
== Festplattenaufteilung ==


Das System hat Platz für 25 SAS-Festplatten. (5 Spalten zu je 5 Festplatteneinschüben). Wir verwenden derzeit nur die ersten beiden Einschübe.
Wir verwenden 4 von 8 Festplatteneinschüben. Die SSDs werden durchgereicht und einzelne Partitionen darauf mittels mdraid verwaltet.
 
Im System befinden sich zwei Festplatten, die vom Controller in Hardware zu einem RAID 1 zusammengefasst sind — Das Betriebssystem sieht nur <tt>/dev/sda</tt>. Auf <tt>sda1</tt> liegt ein Physical Volume für LVM, weitere Partitionen gibt es nicht.
 
In der Volume Group gibt es zwei Volumes für jede VM: Einmal Swap, einmal normal. Jedes Volume ist ein eigener dm-crypt-Container. Zusätzlich gibt es ein Volume für <tt>/</tt> des VM-Hosts selbst, hier liegt ohne Crypto direkt ein ext4.
 
=== Keyslots ===


''TODO'': Updaten
* sd[abcd]1: RAID 1 für /boot/efi
* sd[abcd]2: RAID 1 für /boot
* sd[abcd]3: RAID 5 für LUKS


==== /dev/mapper/vg-backend ====
Das LUKS-Volume stellt ein LVM Physical Volume für eine Volume Group dar, die sowohl ein Logical Volume für / als auch LVs für unsere VMs enthält. Derzeit (11.6.) haben feuerrot und derf LUKS-Keys eingerichtet.
 
2. derf
4. mxey
5. byte
 
=== /dev/mapper/vg-extern ===
 
2. derf
4. mxey
5. byte
 
==== /dev/mapper/vg-intern ====
 
2. derf
4. mxey
5. byte
 
==== /dev/mapper/vg-shells ====
 
0. Alter Adminkey
2. derf
4. mxey
5. byte


== Virtualisierung ==
== Virtualisierung ==
Line 70: Line 43:
(`/etc/network/interfaces`) gemacht.
(`/etc/network/interfaces`) gemacht.


Zum Starten der VMs wird das Skript `/root/bin/start-vm`
Zum Starten der VMs wird eventuell noch das Skript `/root/bin/start-vm`
verwendet. Dieses öffnet die dm-crypt-Container, startet die VMs und
verwendet. Dieses öffnet die dm-crypt-Container, startet die VMs und
verbindet sich in einer screen-Sitzung mit den seriellen Konsolen.
verbindet sich in einer screen-Sitzung mit den seriellen Konsolen.
Neue VM anlegen (hier beispielhaft mit 160GB Storage und 4GiB RAM):
* root@vm shell
lvcreate -n meinevm.chaosdorf.de -L 160g vg0
* <local shell with [https://virt-manager.org/ virt-manager] installed>
virt-install --connect qemu+ssh://root@vm.chaosdorf.de/system -n meinevm --memory 4096 --network network=default --cpu model=host-model --os-variant debian12 -l http://ftp.de.debian.org/debian/dists/stable/main/installer-amd64/ --disk source.dev=/dev/vg0/meinevm.chaosdorf.de,target.dev=vda
Wir haben keinen IPv4-space übrig und nutzen derzeit kein NAT, d.h. neue VMs sind IPv6only.


=== libvirt-Update ===
=== libvirt-Update ===
Line 78: Line 60:
Nach Update: ferm-Regeln neu einlesen.
Nach Update: ferm-Regeln neu einlesen.


= Routing und Paketfilter =
= IP =
 
Wir haben drei Netze aus dem IP Range von OpenIT/PlusServer
 
* 217.69.82.240/29 (IPv4 Access)
* 2001:aa8:fff5::/64 (IPv6 Access)
* 2001:aa8:ffff:2::fff5:0/112 (IPv6 Routing)


Zu beachten ist, dass OpenIT unser Subnet nicht zu uns routet, sondern
217.69.82.240/29 und 2001:aa8:ffff:2::fff5:0/112 werden nicht geroutet, sondern direkt in unserem VLAN am Switchport erwartet. Damit die VMs von außen per IPv4 erreichbar sind, verwenden wir Proxy ARP.
alle IPs direkt in unserem LAN-Segment erwartet. Damit die VMs von
außen erreichbar sind verwenden wir deswegen Proxy ARP.


Traffic zwischen Internet und Server sowie zwischen den VMs wird mit
Traffic zwischen Internet und Server sowie zwischen den VMs wird mit
Line 98: Line 84:
}}
}}


== Kontakt zu OpenIT ==
== Kontakt zu PlusServer ==
 
Nur per Online-Ticketsystem, die Details ändern sich mit erstaunlicher Regelmäßigkeit. derf weiß meist mehr.
 
[https://www.plusserver.com/kontakt https://www.plusserver.com/kontakt]
 
== Administration ==
 
Login per root; es gibt keine User-Accounts und keine LDAP-Anbindung. Zugriffsrechte werden ausschließlich per /root/.ssh/authorized_keys verwaltet. Jede:r Admin hat zusätzlich einen individuellen Key für LUKS (<tt>cryptsetup luksAddKey /dev/md/root</tt> in gemeinsamem screen).
 
Key Slots:


{{Mailto|support@openit.de}}
* 0: feuerrot
* 1: derf
* 2: ?
* 3: ?
* 4: dfjera


[[Category:Administration]]
[[Category:Administration]]

Latest revision as of 11:14, 10 July 2025

vm.chaosdorf.de
Ort PlusServer
Zweck VM-Host
OS Debian 12 amd64
Disks 1.8TB1,800 GB <br />1,800,000 MB <br />1,800,000,000 kB <br />
RAM 128GiB131,072 MiB <br />134,217,728 kiB <br />137,438,953,472 B <br />0.125 TiB <br />137,438.953 MB <br />
Admin-Toolkit No
ssh key path ~/.ssh
PAM? No
SSH user login? No
Besitzstatus Club-Eigentum
Admins byte, derf, dfjera, feuerrot

Steht seit dem 6.6.2023 im PlusServer-Rechenzentrum in Düsseldorf. Historisch handelt es sich um ein offenes Rack für befreundete Vereine bei OpenIT, inzwischen laufen wir bei PlusServer als Legacy-Vertrag. Das Hosting ist kostenfrei, wir zahlen lediglich den Zeitaufwand für Hands-On-Termine.

Hardware[edit source]

  • System: 1HE Dell R630
  • CPU: 2x Intel Xeon E5-2640 v3
  • RAM: 128GB
  • HDD: 4x 1,8TB SSD
  • iDRAC: Vorhanden und mit einem Edge Router Lite verbunden → nur per SSH-Jumphost oder Wireguard erreichbar

Festplattenaufteilung[edit source]

Wir verwenden 4 von 8 Festplatteneinschüben. Die SSDs werden durchgereicht und einzelne Partitionen darauf mittels mdraid verwaltet.

  • sd[abcd]1: RAID 1 für /boot/efi
  • sd[abcd]2: RAID 1 für /boot
  • sd[abcd]3: RAID 5 für LUKS

Das LUKS-Volume stellt ein LVM Physical Volume für eine Volume Group dar, die sowohl ein Logical Volume für / als auch LVs für unsere VMs enthält. Derzeit (11.6.) haben feuerrot und derf LUKS-Keys eingerichtet.

Virtualisierung[edit source]

Die virtuellen Machinen werden mit QEMU/KVM betrieben und von libvirt verwaltet. Die Netzwerkanbindung ist über Point-to-Point realisiert, damit der Traffic zwischen den VMs sich bequem filtern lässt. Netz und Disk via virtio.

Auf Hostseite wird die Netzkonfiguration mit ifupdown (`/etc/network/interfaces`) gemacht.

Zum Starten der VMs wird eventuell noch das Skript `/root/bin/start-vm` verwendet. Dieses öffnet die dm-crypt-Container, startet die VMs und verbindet sich in einer screen-Sitzung mit den seriellen Konsolen.

Neue VM anlegen (hier beispielhaft mit 160GB Storage und 4GiB RAM):

  • root@vm shell
lvcreate -n meinevm.chaosdorf.de -L 160g vg0
virt-install --connect qemu+ssh://root@vm.chaosdorf.de/system -n meinevm --memory 4096 --network network=default --cpu model=host-model --os-variant debian12 -l http://ftp.de.debian.org/debian/dists/stable/main/installer-amd64/ --disk source.dev=/dev/vg0/meinevm.chaosdorf.de,target.dev=vda

Wir haben keinen IPv4-space übrig und nutzen derzeit kein NAT, d.h. neue VMs sind IPv6only.

libvirt-Update[edit source]

Nach Update: ferm-Regeln neu einlesen.

IP[edit source]

Wir haben drei Netze aus dem IP Range von OpenIT/PlusServer

  • 217.69.82.240/29 (IPv4 Access)
  • 2001:aa8:fff5::/64 (IPv6 Access)
  • 2001:aa8:ffff:2::fff5:0/112 (IPv6 Routing)

217.69.82.240/29 und 2001:aa8:ffff:2::fff5:0/112 werden nicht geroutet, sondern direkt in unserem VLAN am Switchport erwartet. Damit die VMs von außen per IPv4 erreichbar sind, verwenden wir Proxy ARP.

Traffic zwischen Internet und Server sowie zwischen den VMs wird mit Netfilter kontrolliert, wobei die Regeln durch ferm generiert werden. Wir filtern sowohl eingehend mit Rate-Limiting als auch ausgehend.


Virtuelle Maschinen[edit source]

 HostnameOperating SystemDisk sizeRAM size
Backendbackend.chaosdorf.deDebian 9 amd6440 GB40,000 MB <br />40,000,000 kB <br />0.04 TB <br />2,048 MiB2,097,152 kiB <br />2,147,483,648 B <br />2 GiB <br />0.00195 TiB <br />2,147.484 MB <br />
Dashboarddashboard.chaosdorf.deDebian 13 amd6416 GB16,000 MB <br />16,000,000 kB <br />0.016 TB <br />4,096 MiB4,194,304 kiB <br />4,294,967,296 B <br />4 GiB <br />0.00391 TiB <br />4,294.967 MB <br />
DockerdockerDebian 12160 GB160,000 MB <br />160,000,000 kB <br />0.16 TB <br />4,096 MiB4,194,304 kiB <br />4,294,967,296 B <br />4 GiB <br />0.00391 TiB <br />4,294.967 MB <br />
Externextern.chaosdorf.deDebian 13 amd6440 GB40,000 MB <br />40,000,000 kB <br />0.04 TB <br />4,096 MiB4,194,304 kiB <br />4,294,967,296 B <br />4 GiB <br />0.00391 TiB <br />4,294.967 MB <br />
Frontierfrontier.chaosdorf.deDebian 1260 GB60,000 MB <br />60,000,000 kB <br />0.06 TB <br />4,096 MiB4,194,304 kiB <br />4,294,967,296 B <br />4 GiB <br />0.00391 TiB <br />4,294.967 MB <br />
Gitlabgitlab.chaosdorf.deDebian 12 amd6450 GB50,000 MB <br />50,000,000 kB <br />0.05 TB <br />8,192 MiB8,388,608 kiB <br />8,589,934,592 B <br />8 GiB <br />0.00781 TiB <br />8,589.935 MB <br />
Internintern.chaosdorf.deDebian 12 amd64100 GB100,000 MB <br />100,000,000 kB <br />0.1 TB <br />4,096 MiB4,194,304 kiB <br />4,294,967,296 B <br />4 GiB <br />0.00391 TiB <br />4,294.967 MB <br />
Nixosnixos.chaosdorf.deNixOS 25.05160 GB160,000 MB <br />160,000,000 kB <br />0.16 TB <br />3,814.697 MiB3,906,250 kiB <br />4,000,000,000 B <br />3.725 GiB <br />0.00364 TiB <br />4,000 MB <br />
Shellsshells.chaosdorf.deDebian 13 amd64100 GB100,000 MB <br />100,000,000 kB <br />0.1 TB <br />2,048 MiB2,097,152 kiB <br />2,147,483,648 B <br />2 GiB <br />0.00195 TiB <br />2,147.484 MB <br />
Wikijswikijs.chaosdorf.deDebian 11 amd6430 GB30,000 MB <br />30,000,000 kB <br />0.03 TB <br />4,096 MiB4,194,304 kiB <br />4,294,967,296 B <br />4 GiB <br />0.00391 TiB <br />4,294.967 MB <br />

Kontakt zu PlusServer[edit source]

Nur per Online-Ticketsystem, die Details ändern sich mit erstaunlicher Regelmäßigkeit. derf weiß meist mehr.

https://www.plusserver.com/kontakt

Administration[edit source]

Login per root; es gibt keine User-Accounts und keine LDAP-Anbindung. Zugriffsrechte werden ausschließlich per /root/.ssh/authorized_keys verwaltet. Jede:r Admin hat zusätzlich einen individuellen Key für LUKS (cryptsetup luksAddKey /dev/md/root in gemeinsamem screen).

Key Slots:

  • 0: feuerrot
  • 1: derf
  • 2: ?
  • 3: ?
  • 4: dfjera