Unterschiede zwischen den Revisionen 121 und 149 (über 28 Versionen hinweg)
Revision 121 vom 2021-09-04 20:12:39
Größe: 5034
Kommentar:
Revision 149 vom 2021-11-09 21:05:03
Größe: 5550
Kommentar:
Gelöschter Text ist auf diese Art markiert. Hinzugefügter Text ist auf diese Art markiert.
Zeile 2: Zeile 2:

= Leeren von s2n =

 * `acme.int.thinkmo.de`:
  * (./) Verschieben.
  * (./) Konvertieren zu `plain`.

 * `backup.int.thinkmo.de`: (./) Entfernen nachdem den Daten bei tw gelandet sind.
  * rsync der repos ist fertig.
  * borg check des resultats laeuft noch, bisher aber unauffaellig.

 * `dnsmaster.int.thinkmo.de`: (./) Konvertieren zu `plain`.

 * `git.int.thinkmo.de`: (./) Konvertieren zu `plain`.

 * `gitlab-runner.int.thinkmo.de`:
  * (./) Verschieben.
  * (./) Konvertieren zu `plain`.

 * `ldap.int.thinkmo.de`:
  * (./) Verschieben.
  * (./) Konvertieren zu `plain`.

 * `mail.thinkmo.de`: (./) Konvertieren zu `plain`.

 * `monitor.int.thinkmo.de`:
  * (./) Verschieben.
  * (./) Konvertieren zu `plain`.

 * `mx.thinkmo.de`: (./) Konvertieren zu `plain`.

 * `news.thinkmo.de`:
  * (./) DNS und Netz anpassen.
  * (./) Verschieben.

 * `postgres.int.thinkmo.de`: (./) PostgreSQL-Replikation entfernen.
 * `postgres-repl.int.thinkmo.de`: (./) Entfernen.
 * `s2-dns.thinkmo.de`: (./) Entfernen.
 * `s2-httprelay.thinkmo.de`: (./) Entfernen, auch DNS für viele andere.
 * `s2-smtprelay.thinkmo.de`: (./) Entfernen.

 * `shell.thinkmo.de`:
  * (./) Reverse-Eintrag für `2a01:4f8:a1:6e:0:22:0:1` erstellen.
  * (./) DNS und Netz anpassen.
  * (./) Verschieben.

 * `single.int.thinkmo.de`: (./) Konvertieren zu `plain`.
 * `vpn.thinkmo.de`: (./) Konvertieren zu `plain`.
 * `web-moin.int.thinkmo.de`: (./) Konvertieren zu `plain`.
 * `web.int.thinkmo.de`: (./) Konvertieren zu `plain`.

 * (./) Node aus Ganeti werfen.
 * `/dev/sd[ab]1`: Überschreiben.
 * `/dev/sd[ab]2`: Überschreiben.
 * `/dev/sd[ab]3`: Überschreiben.
 * `/dev/sd[ab]3`: LUKS-Superblock entfernen (`cryptsetup luksErase`) und überschreiben so weit geht.

== Verschieben ==

 * `gnt-instance shutdown example.thinkmo.de`
 * `gnt-instance modify -t drbd -n s1n example.thinkmo.de`
 * `gnt-instance failover example.thinkmo.de`
 * `gnt-instance modify -t plain example.thinkmo.de`
 * `gnt-instance start example.thinkmo.de`
Zeile 70: Zeile 6:
 * BB -> 4.9. oder 18.9.  * TBD
Zeile 73: Zeile 9:
 * Mainboard z.B. Asus Pro WS 565-ACE (Hetzner hat aber auch schon andere verwendet)  * Mainboard s3: Asus Pro WS 565-ACE
 * BIOS (F2 oder Entf):
  * Chassis Intrusion Detection -> Kiste hängt und lässt einen nicht mehr in's BIOS
  * SR-IOV: war disabled, hab's enabled.
  * Temp. Bootauswahl per F11/F12 hat nicht funktioniert.
 * Hetzner's KVM Console ist etwas lahm beim VGA-Sync, man sieht oft nur schwarz beim POST. Mit Server Power Off->On geht es etwas besser.
Zeile 83: Zeile 24:
  * idee: hetzner backups nehmen (1 pro tag, 7 stueck, kosten < 1 EUR im Monat), qemu guest agent fsfreeze. dann braucht s4 kein backup mit borg und daher keinen schreibzugriff auf den backup-server. da man s4 fuer monitoring zugriff auf alle repos geben muss (solange es kein --read-only gibt eben --append-ony), waere das einfacher.
  * unklar: wie sicher sind hetzner's backups/snapshots? verschluesselung?
Zeile 86: Zeile 29:
 * wollen wir ne kvm-console? https://docs.hetzner.com/de/robot/dedicated-server/maintainance/kvm-console
  * BIOS-Settings checken
  * memtest86+?
   * tut nicht mit aktueller hardware und unnötig da ECC
  * Debian von eigenen Medien booten/installieren?
   * debootstrap reicht
 * Hetzner bootet mit UEFI-CSM ("BIOS")
 * Grub kann nur 512b Sektoren für BIOS-Boot.
 * Die SSD ließ mich keine 2 Namespaces fuer 512b und 4096b machen, nur seltsame Fehlercodes...
 * (./) Hab das System mit Hetzner's installimage installiert.
 * (./) Partitionierung:
   {{{
Disk /dev/nvme1n1: 3.49 TiB, 3840755982336 bytes, 7501476528 sectors
Disk model: SAMSUNG MZQL23T8HCLS-00A07
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 131072 bytes / 131072 bytes
Disklabel type: gpt
Disk identifier: CB18E410-BF73-4B18-A019-97A279585E78
Zeile 93: Zeile 43:
 * partitionierung (GPT)
  * /boot/efi, /boot/efi2 : EFI boot partition (ESP == EF00)
  * / : mdraid + ext4 (minimalsystem debian 11, minimum 8GB)
  * swap : mdraid (wegen overcommit: 64GB? 128GB? oder overcommit anpassen?)
  * rest für zfs (setup via ansible)
Device Start End Sectors Size Type
/dev/nvme1n1p1 4096 2101247 2097152 1G Linux RAID /boot
/dev/nvme1n1p2 2101248 35655679 33554432 16G Linux RAID /
/dev/nvme1n1p3 35655680 169873407 134217728 64G Linux RAID swap
/dev/nvme1n1p4 2048 4095 2048 1M BIOS boot
/dev/nvme1n1p5 169873408 7501476494 7331603087 3.4T Solaris /usr & Apple ZFS
Zeile 99: Zeile 50:
 * IPSec (nicht automatisiert). Disk /dev/nvme0n1: 3.49 TiB, 3840755982336 bytes, 7501476528 sectors
Disk model: SAMSUNG MZQL23T8HCLS-00A07
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 131072 bytes / 131072 bytes
Disklabel type: gpt
Disk identifier: E6BACAF4-DE40-427B-9DD1-3CB46529E67D

Device Start End Sectors Size Type
/dev/nvme0n1p1 4096 2101247 2097152 1G Linux RAID
/dev/nvme0n1p2 2101248 35655679 33554432 16G Linux RAID
/dev/nvme0n1p3 35655680 169873407 134217728 64G Linux RAID
/dev/nvme0n1p4 2048 4095 2048 1M BIOS boot
/dev/nvme0n1p5 169873408 7501476494 7331603087 3.4T Solaris /usr & Apple ZFS
}}}
 * (./) grub-install /dev/nvme0n1 ; grub-install /dev/nvme1n1
 * (./) zfs-dkms, kernel-headers, rest zfs via ansible, encryption feature enabled.

 * --(IPSec (nicht automatisiert).--)
 * (./) VLAN
Zeile 106: Zeile 76:
 * Inhalt von `ssh://git@ssh.git.thinkmo.de:2226/thinkmo/ganeti-os-thinkmo.git` nach `/usr/local/lib/ganeti/os/thinkmo/` kopieren.
 * Platz für /var/lib/ganeti/export schaffen
 * (./) Inhalt von `ssh://git@ssh.git.thinkmo.de:2226/thinkmo/ganeti-os-thinkmo.git` nach `/usr/local/lib/ganeti/os/thinkmo/` kopieren.
 * (./) Platz für /var/lib/ganeti/export schaffen
 * VLAN, nur manuell: {{{
ip link add link eth0 name int type vlan id 4000
ip link set int up
}}}
Zeile 111: Zeile 85:
 * --(VM: TODO: grub-config anpassen für serielle Console auf KVM.)-- [[https://git.thinkmo.de/thinkmo/ansible/-/commit/4ded2243086638f499b6eef454c84a8cbdb91774|Erledigt]] (./)
 * VM: TODO: Netzkonfiguration anpassen.
 * Alt: `gnt-instance modify -o thinkmo s1-smtprelay.thinkmo.de`
 * Alt: `gnt-backup export --node s2n s1-smtprelay.thinkmo.de`
 * Kopieren von `s2n:/var/lib/ganeti/export/s1-smtprelay.thinkmo.de` auf neuen Host (nach `/var/lib/ganeti/export/`).
 * `config.ini` modifizieren: `instance.hypervisor = kvm`, `hypervisor` leeren.
 * Neu: TODO: `gnt-backup import -t file --net 0:mode=routed,link=vm,ip=fc01:2345::23:1 --src-node debian --no-name-check --no-ip-check s1-smtprelay.thinkmo.de`
 * (./) --(VM: TODO: grub-config anpassen für serielle Console auf KVM.)-- [[https://git.thinkmo.de/thinkmo/ansible/-/commit/4ded2243086638f499b6eef454c84a8cbdb91774|Erledigt]]
 * (./) (bis auf `shell.thinkmo.de`) --(VM: TODO: Netzkonfiguration anpassen.)--
 * (./) --(Alt: `gnt-instance modify -o thinkmo s1-smtprelay.thinkmo.de`)--
 * (./) --(/etc/fstab anpassen (da kann /dev/xvdb drin stehen) auf UUID=…)--
 * Leeren Platz mit Nullen überschreiben, da Xen kein Discard kann (`dd bs=1M if=/dev/zero of=zeros.img status=progress; rm zeros.img`)
 *
Alt:
  * `gnt-instance shutdown s1-smtprelay.thinkmo.de`
  *
`gnt-backup export --node s1n s1-smtprelay.thinkmo.de`
  * `gnt-instance modify --submit --offline s1-smtprelay.thinkmo.de`
 
* Kopieren von `s1n:/var/lib/ganeti/export/s1-smtprelay.thinkmo.de` auf neuen Host (nach `/var/lib/ganeti/export/`).
 * `ansible-playbook ganeti_import_instance.yml -l s1-smtprelay.thinkmo.de`
 * Im Ansible
: Im Host-Eintrag in `inventories/prod/hosts` die Variablen `network_addresses` und `network_gateways` löschen.

Hier gehört alles hin, was an Programmen oder Skripten auf dem Server selber eingerichtet/installiert werden muss.

Umzug auf s3

Zeitplan

  • TBD

Hardware

  • Mainboard s3: Asus Pro WS 565-ACE
  • BIOS (F2 oder Entf):
    • Chassis Intrusion Detection -> Kiste hängt und lässt einen nicht mehr in's BIOS

    • SR-IOV: war disabled, hab's enabled.
    • Temp. Bootauswahl per F11/F12 hat nicht funktioniert.
  • Hetzner's KVM Console ist etwas lahm beim VGA-Sync, man sieht oft nur schwarz beim POST. Mit Server Power Off->On geht es etwas besser.

Backup

  • Ziel: erstmal zu tw nach Hause, 2TB Platte exclusiv dafür. finaler ssh key eintragen, force append-only, repo segment size 50MB?
  • (./) thinkmo: repos initialisieren mit repokey-blake2 (random borg key passphrase), backups mit zstd (level=?)

  • (./) erste tests mit s1/s2-httprelay sehen gut aus: hatte ca jede stunde ein backup gemacht

  • (./) check --one-file-system option - haben wir irgendwo mehr als 1 fs? -> es wird dann fuer z.B. /srv separates script erzeugt.

  • (./) exclude .ansible/tmp/ - wieso bleibt da soviel schrott liegen?

  • (./) merge PR / deploy -> alle VMs

  • backup s4
    • idee: hetzner backups nehmen (1 pro tag, 7 stueck, kosten < 1 EUR im Monat), qemu guest agent fsfreeze. dann braucht s4 kein backup mit borg und daher keinen schreibzugriff auf den backup-server. da man s4 fuer monitoring zugriff auf alle repos geben muss (solange es kein --read-only gibt eben --append-ony), waere das einfacher.

    • unklar: wie sicher sind hetzner's backups/snapshots? verschluesselung?
  • backup monitoring (nagios plugin / conf / test-script siehe ~root@monitoring.int)

Setup neuer Hosts

  • Hetzner bootet mit UEFI-CSM ("BIOS")
  • Grub kann nur 512b Sektoren für BIOS-Boot.
  • Die SSD ließ mich keine 2 Namespaces fuer 512b und 4096b machen, nur seltsame Fehlercodes...
  • (./) Hab das System mit Hetzner's installimage installiert.

  • (./) Partitionierung:

    • Disk /dev/nvme1n1: 3.49 TiB, 3840755982336 bytes, 7501476528 sectors
      Disk model: SAMSUNG MZQL23T8HCLS-00A07              
      Units: sectors of 1 * 512 = 512 bytes
      Sector size (logical/physical): 512 bytes / 4096 bytes
      I/O size (minimum/optimal): 131072 bytes / 131072 bytes
      Disklabel type: gpt
      Disk identifier: CB18E410-BF73-4B18-A019-97A279585E78
      
      Device             Start        End    Sectors  Size Type
      /dev/nvme1n1p1      4096    2101247    2097152    1G Linux RAID /boot
      /dev/nvme1n1p2   2101248   35655679   33554432   16G Linux RAID /
      /dev/nvme1n1p3  35655680  169873407  134217728   64G Linux RAID swap
      /dev/nvme1n1p4      2048       4095       2048    1M BIOS boot
      /dev/nvme1n1p5 169873408 7501476494 7331603087  3.4T Solaris /usr & Apple ZFS
      
      Disk /dev/nvme0n1: 3.49 TiB, 3840755982336 bytes, 7501476528 sectors
      Disk model: SAMSUNG MZQL23T8HCLS-00A07              
      Units: sectors of 1 * 512 = 512 bytes
      Sector size (logical/physical): 512 bytes / 4096 bytes
      I/O size (minimum/optimal): 131072 bytes / 131072 bytes
      Disklabel type: gpt
      Disk identifier: E6BACAF4-DE40-427B-9DD1-3CB46529E67D
      
      Device             Start        End    Sectors  Size Type
      /dev/nvme0n1p1      4096    2101247    2097152    1G Linux RAID
      /dev/nvme0n1p2   2101248   35655679   33554432   16G Linux RAID
      /dev/nvme0n1p3  35655680  169873407  134217728   64G Linux RAID
      /dev/nvme0n1p4      2048       4095       2048    1M BIOS boot
      /dev/nvme0n1p5 169873408 7501476494 7331603087  3.4T Solaris /usr & Apple ZFS
  • (./) grub-install /dev/nvme0n1 ; grub-install /dev/nvme1n1

  • (./) zfs-dkms, kernel-headers, rest zfs via ansible, encryption feature enabled.

  • IPSec (nicht automatisiert).--)

  • (./) VLAN

  • ansible-playbook site.playbook

  • ansible-playbook ganeti_setup_node.yml

  • ansible-playbook ganeti_setup_cluster.yml

Setup alte Hosts

  • (./) Inhalt von ssh://git@ssh.git.thinkmo.de:2226/thinkmo/ganeti-os-thinkmo.git nach /usr/local/lib/ganeti/os/thinkmo/ kopieren.

  • (./) Platz für /var/lib/ganeti/export schaffen

  • VLAN, nur manuell:

    ip link add link eth0 name int type vlan id 4000
    ip link set int up

Umzug einzelne VM

  • (./) --(VM: TODO: grub-config anpassen für serielle Console auf KVM. Erledigt

  • (./) (bis auf shell.thinkmo.de) VM: TODO: Netzkonfiguration anpassen.

  • (./) Alt: gnt-instance modify -o thinkmo s1-smtprelay.thinkmo.de

  • (./) /etc/fstab anpassen (da kann /dev/xvdb drin stehen) auf UUID=…

  • Leeren Platz mit Nullen überschreiben, da Xen kein Discard kann (dd bs=1M if=/dev/zero of=zeros.img status=progress; rm zeros.img)

  • Alt:
    • gnt-instance shutdown s1-smtprelay.thinkmo.de

    • gnt-backup export --node s1n s1-smtprelay.thinkmo.de

    • gnt-instance modify --submit --offline s1-smtprelay.thinkmo.de

  • Kopieren von s1n:/var/lib/ganeti/export/s1-smtprelay.thinkmo.de auf neuen Host (nach /var/lib/ganeti/export/).

  • ansible-playbook ganeti_import_instance.yml -l s1-smtprelay.thinkmo.de

  • Im Ansible: Im Host-Eintrag in inventories/prod/hosts die Variablen network_addresses und network_gateways löschen.

Umzug auf s4

s4.thinkmo.de = hetzner cloud instance 2 vcpus, 2GB RAM, 40GB SSD

  • (./) debian 11 vorinstalliert von hetzner

  • (./) ssh keys tw + bb, kein pw login

  • (./) swap 2GB

  • (./) s4.thinkmo.de A / AAAA

  • (./) secondary dns

  • monitoring von s3

ServerTodo (zuletzt geändert am 2021-11-09 21:05:03 durch ThomasWaldmann)