Server/inber: Unterschied zwischen den Versionen

Aus C3D2
Zur Navigation springen Zur Suche springen
(Änderung 31646 von Winzlieb (Diskussion) rückgängig gemacht.)
 
(20 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
= inber =
{{Vorlage:anachronistisch}}


Das fürs Serverhousing bei [https://in-berlin.de/ In-Berlin] geplante Gerät.
{{beinhaltet Redundanz|Server/inbert|übertragen}}
== Entscheidung ==


== cache encryption ==
{| class="wikitable"
|-
|+ Abbildung von Realitäten als Normative des Faktischen (eigentlich sollen Entscheidungen durch Votum getroffen werden)
|-
! Grundlage
! Frage
! Antwort
! Gründe
|-
| faktisch
| Welches Betriebssystem wird installiert?
| [[FreeBSD]]
|
* kann per Hypervisor ([[bhyve]]) [[Debian]] bereitstellen
* kann (lang erprobt) [[ZFS]]
|-
| offen
| Wie ist die Bezeichnung (Ruf- und Hostname)?
| ?
|
|-
|
|
|
|
|-
|}


Nach dem was über den Installer eingestellt wurde, wurden auch ein ZIL und ein Cache dem Pool zugeordnet.
== Bezeichnung ==
Die Caches waren jedoch nicht verschlüsselt.


=== also der plan ===
Es gibt noch keine "finale" Bezeichnung. Innerhalb der ersten 10 Tage war [[#inber]] die wohl gängigste Bezeichnung vom Projekt.
* caches ausbinden
* geli auf den partitionen einrichten
* crypted partitions wieder einbinden
* profit!


<pre>
=== LOIC ===
# zpool status zroot
: in Anlehnung an [[wikipedia:de:Low Orbit Ion Cannon]]
 
=== inber ===
: in Anlehnung an das Leben [[IN-Berlin]]
 
== Zweck ==
 
* Ersatz von [[wetu]]
* Betreiben von eigener Hardware (Server) des [[C3D2]] in ein einer [[wikipedia:de:Colocation]]
 
== Einrichtung ==
 
=== Einrichtung vom Massenspeicher ===
 
==== nachträgliche Verschlüsslung vom Massenspeicher fürs Puffern ====
: cache encryption
: aka ''Verschlüsslung ''
 
Bei der Installation wurde die Massenspeicher fürs Puffern (caching) dem Pool zugeordnet. Der Massenspeicher (für ZFS Intent Log (ZIL) und L2ARC (Cache)) wurde dabei nicht verschlüsselt. Das ist mittlerweile umgesetzt [[#zil|mehr]].
 
===== Plan =====
* [[#caches ausbinden]]
* [[#geli auf den partitionen einrichten]]
* [[#crypted partitions wieder einbinden]]
* [[#profit!]]
 
===== Implementierung =====
 
====== caches ausbinden ======
 
<syntaxhighlight lang="bash">zpool status zroot</syntaxhighlight>
<syntaxhighlight lang="bash">
   pool: zroot
   pool: zroot
  state: ONLINE
  state: ONLINE
Zeile 37: Zeile 90:


errors: No known data errors
errors: No known data errors
</pre>
</syntaxhighlight>


<pre>
<syntaxhighlight lang="bash">zpool remove zroot gpt/cache0</syntaxhighlight>
# zpool remove zroot gpt/cache0
<syntaxhighlight lang="bash">zpool remove zroot gpt/cache1</syntaxhighlight>
# zpool remove zroot gpt/cache1
</pre>


====== geli auf den partitionen einrichten ======


<pre>
<syntaxhighlight lang="bash">geli init -b -s 4096 /dev/da4p2</syntaxhighlight>
# geli init -b -s 4096 /dev/da4p2
<syntaxhighlight lang="bash">
Enter new passphrase:
Enter new passphrase:
Reenter new passphrase:
Reenter new passphrase:
Zeile 53: Zeile 105:
can be restored with the following command:
can be restored with the following command:


        # geli restore /var/backups/da4p2.eli /dev/da4p2
</syntaxhighlight>
<syntaxhighlight lang="bash">geli restore /var/backups/da4p2.eli /dev/da4p2</syntaxhighlight>
<syntaxhighlight lang="bash">geli init -b -s 4096 /dev/da5p2</syntaxhighlight>
<syntaxhighlight lang="bash">
</syntaxhighlight>


====== crypted partitions wieder einbinden ======


# geli init -b -s 4096 /dev/da5p2
<syntaxhighlight lang="bash">geli attach /dev/da4p2</syntaxhighlight>
[...]
<syntaxhighlight lang="bash">
</pre>
 
<pre>
# geli attach /dev/da4p2
Enter passphrase:
Enter passphrase:
# geli attach /dev/da5p2
</syntaxhighlight>
<syntaxhighlight lang="bash">geli attach /dev/da5p2</syntaxhighlight>
<syntaxhighlight lang="bash">
Enter passphrase:
Enter passphrase:
</pre>
</syntaxhighlight>


<pre>
<syntaxhighlight lang="bash">
zpool status zroot
zpool status zroot
   pool: zroot
   pool: zroot
Zeile 87: Zeile 142:


errors: No known data errors
errors: No known data errors
</pre>
</syntaxhighlight>


<pre>
<syntaxhighlight lang="bash">zpool add zroot cache /dev/da4p2.eli</syntaxhighlight>
# zpool add zroot cache /dev/da4p2.eli
<syntaxhighlight lang="bash">zpool add zroot cache /dev/da5p2.eli</syntaxhighlight>
# zpool add zroot cache /dev/da5p2.eli
</pre>


<pre>
====== profit! ======
# zpool status zroot
<syntaxhighlight lang="bash">zpool status zroot</syntaxhighlight>
<syntaxhighlight lang="bash">
   pool: zroot
   pool: zroot
  state: ONLINE
  state: ONLINE
Zeile 117: Zeile 171:


errors: No known data errors
errors: No known data errors
</syntaxhighlight>
====== zil ======
<syntaxhighlight lang=bash>
zpool remove zroot mirror-1
geli init -b -s 4096 /dev/da4p1
[... passwordfoo]
geli init -b -s 4096 /dev/da5p1
[... passwordfoo]
geli attach /dev/da4p1
[... password bla]
geli attach /dev/da5p1
[... passwordfoo]
zpool add zroot log mirror da4p1.eli da5p1.eli
zpool status zroot
  pool: zroot
state: ONLINE
  scan: none requested
config:
        NAME          STATE    READ WRITE CKSUM
        zroot          ONLINE      0    0    0
          raidz2-0    ONLINE      0    0    0
            da0p5.eli  ONLINE      0    0    0
            da1p5.eli  ONLINE      0    0    0
            da2p5.eli  ONLINE      0    0    0
            da3p5.eli  ONLINE      0    0    0
        logs
          mirror-1    ONLINE      0    0    0
            da4p1.eli  ONLINE      0    0    0
            da5p1.eli  ONLINE      0    0    0
        cache
          da4p2.eli    ONLINE      0    0    0
          da5p2.eli    ONLINE      0    0    0
errors: No known data errors
</syntaxhighlight>
== Debian mit Bhyve ==
Grob gesagt man braucht sich lediglich an die [https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/virtualization-host-bhyve.html Anleitung im FreeBSD-Handbuch] halten.
Die folgenden Abschnitte handeln von Debian virtualisiert von byhve '''angepasst für unseren Anwendungsfall'''.
Wir sollten vermutlich noch mal über die Bezeichnungen reden.
=== Vorbereitung ===
<syntaxhighlight lang="bash">cat <EOT >> /boot/loader.conf</syntaxhighlight>
<syntaxhighlight lang="bash">
vmm_load="YES"
nmdm_load="YES"
EOT
</syntaxhighlight>
==== Hostnetz ====
==== TAP ====
: <strong>WE DO NOT USE THIS</strong>
<syntaxhighlight lang="bash">ifconfig tap0 create</syntaxhighlight>
<syntaxhighlight lang="bash">sysctl net.link.tap.up_on_open=1    class=0x020000 card=0x22be103c chip=0x165714e4 rev=0x01 hdr=0x00</syntaxhighlight>
<syntaxhighlight lang="bash">ifconfig bridge0 create</syntaxhighlight>
<syntaxhighlight lang="bash">ifconfig bridge0 addm bge0 addm tap0</syntaxhighlight>
<syntaxhighlight lang="bash">ifconfig bridge0 up</syntaxhighlight>
===== PCI Passthru =====
; HowTo: [[freebsd:bhyve/pci_passthru]]
Mit <code>pciconf -v -l</code> findet man herraus welchen Slot der Netzwerk-Controller hat.
<syntaxhighlight lang="bash">pciconf -v -l</syntaxhighlight>
<syntaxhighlight lang="bash">
bge0@pci0:2:0:0: 
</syntaxhighlight>
Diesen überträgt man in die  ''/boot/loader.conf''
<syntaxhighlight lang="bash">cat <EOF >> /boot/loader.conf</syntaxhighlight>
<syntaxhighlight lang="bash">
pptdevs="2/0/0"
EOF
</syntaxhighlight>
pptdev ist ein String und kann auch die anderen Netzwerk-Controller über die gleiche Art markieren.
<pre>
pptdev="2/0/0 2/0/1"
</pre>
</pre>
als Ergebis zeigt einem
<syntaxhighlight lang="bash">pciconf -v -l | grep -O ^.*pci0:2:0:0:</syntaxhighlight>
<syntaxhighlight lang="bash">
ppt0@pci0:2:0:0:
</syntaxhighlight>
[[#mit_ppt | Weiter]] geht damit dann in die VM.
=== Debian runterladen ===
<syntaxhighlight lang="bash">wget -O /root/debian-testing-amd64-netinst.iso http://cdimage.debian.org/cdimage/weekly-builds/amd64/iso-cd/debian-testing-amd64-netinst.iso</syntaxhighlight>
=== Dataset anlegen ===
<syntaxhighlight lang="bash">zfs create -V32G -o volmode=dev zroot/inber</syntaxhighlight>
=== Device mapping ===
<syntaxhighlight lang="bash">cat <EOF >> device.map</syntaxhighlight>
<syntaxhighlight lang="bash">
(hd0) /dev/zvol/zroot/inber
(cd0) /root/debian-testing-amd64-netinst.iso
EOF
</syntaxhighlight>
=== Debian Installieren ===
<syntaxhighlight lang="bash">grub-bhyve -m device.map -r cd0 -M 32678M inber</syntaxhighlight>
Installation wählen
<syntaxhighlight lang="bash">bhyve -s 0:0,hostbridge -s 1:0,lpc -s 2:0,virtio-net,tap0 -s 3:0,virtio-blk,/dev/zvol/zroot/inber -s 4:0,ahci-cd,./debian-8.7.1-amd64-netinst.iso -l com1,stdio -c 8 -m 32768M inber</syntaxhighlight>
Installation durchführen
=== Reset von vmm ===
An diesem Punkt muss die VM gelöscht werden. Der Progress bleibt im Dataset erhalten.
<syntaxhighlight lang="bash">bhyvectl --destroy --vm=inber</syntaxhighlight>
=== Debian starten ===
==== Boot ====
<syntaxhighlight lang="bash">grub-bhyve -m device.map -M 32678M -r hd0,msdos1 inber</syntaxhighlight>
==== VM starten ====
===== mit tap =====
<syntaxhighlight lang="bash">bhyve -A -H -P -s 0:0,hostbridge -s 1:0,lpc -s 2:0,virtio-net,tap0 -s 3:0,virtio-blk,/dev/zvol/zroot/inber -l com1,/dev/nmdm0A -c 12 -m 32678M inber</syntaxhighlight>
===== mit ppt =====
muss die VM etwas anders gestartet werden.
<syntaxhighlight lang="bash">bhyve -A -H -P -s 0:0,hostbridge -s 1:0,lpc -s 2:0,passthru,2/0/0 -s 3:0,virtio-blk,/dev/zvol/zroot/inber -l com1,/dev/nmdm0A -c 12 -m 32678M inber</syntaxhighlight>
=== Login ===
<syntaxhighlight lang="bash">cu -l /dev/nmdm0B -s 9600</syntaxhighlight>
[[Kategorie:Projekt]]
[[Kategorie:Server]]
[[Kategorie:Infrastruktur]]
[[Kategorie:FreeBSD]]

Aktuelle Version vom 23. September 2020, 04:31 Uhr



Vorlage:anachronistisch
Achtung!
Anachronistisch!
Dieser Artikel enthält keine relevanten Informationen zu den aktuellen Verhältnissen. Ferner handelt es sich um einen archivierten Artikel.


obsolete



Vorlage:beinhaltet Redundanz
Hinweis!
Redundanz!
Es besteht Redundanz mit dem Artikel Server/inbert.

Inhalte von diesem Artikel sollten in den Artikel Server/inbert übertragen werden.




Entscheidung

Abbildung von Realitäten als Normative des Faktischen (eigentlich sollen Entscheidungen durch Votum getroffen werden)
Grundlage Frage Antwort Gründe
faktisch Welches Betriebssystem wird installiert? FreeBSD
  • kann per Hypervisor (bhyve) Debian bereitstellen
  • kann (lang erprobt) ZFS
offen Wie ist die Bezeichnung (Ruf- und Hostname)? ?

Bezeichnung

Es gibt noch keine "finale" Bezeichnung. Innerhalb der ersten 10 Tage war #inber die wohl gängigste Bezeichnung vom Projekt.

LOIC

in Anlehnung an wikipedia:de:Low Orbit Ion Cannon

inber

in Anlehnung an das Leben IN-Berlin

Zweck

Einrichtung

Einrichtung vom Massenspeicher

nachträgliche Verschlüsslung vom Massenspeicher fürs Puffern

cache encryption
aka Verschlüsslung

Bei der Installation wurde die Massenspeicher fürs Puffern (caching) dem Pool zugeordnet. Der Massenspeicher (für ZFS Intent Log (ZIL) und L2ARC (Cache)) wurde dabei nicht verschlüsselt. Das ist mittlerweile umgesetzt mehr.

Plan
Implementierung
caches ausbinden
zpool status zroot
  pool: zroot
 state: ONLINE
  scan: none requested
config:

        NAME           STATE     READ WRITE CKSUM
        zroot          ONLINE       0     0     0
          raidz2-0     ONLINE       0     0     0
            da0p5.eli  ONLINE       0     0     0
            da1p5.eli  ONLINE       0     0     0
            da2p5.eli  ONLINE       0     0     0
            da3p5.eli  ONLINE       0     0     0
        logs
          mirror-1     ONLINE       0     0     0
            gpt/log0   ONLINE       0     0     0
            gpt/log1   ONLINE       0     0     0
        cache
          gpt/cache0   ONLINE       0     0     0
          gpt/cache1   ONLINE       0     0     0

errors: No known data errors
zpool remove zroot gpt/cache0
zpool remove zroot gpt/cache1
geli auf den partitionen einrichten
geli init -b -s 4096 /dev/da4p2
Enter new passphrase:
Reenter new passphrase:

Metadata backup can be found in /var/backups/da4p2.eli and
can be restored with the following command:
geli restore /var/backups/da4p2.eli /dev/da4p2
geli init -b -s 4096 /dev/da5p2
crypted partitions wieder einbinden
geli attach /dev/da4p2
Enter passphrase:
geli attach /dev/da5p2
Enter passphrase:
zpool status zroot
  pool: zroot
 state: ONLINE
  scan: none requested
config:

        NAME           STATE     READ WRITE CKSUM
        zroot          ONLINE       0     0     0
          raidz2-0     ONLINE       0     0     0
            da0p5.eli  ONLINE       0     0     0
            da1p5.eli  ONLINE       0     0     0
            da2p5.eli  ONLINE       0     0     0
            da3p5.eli  ONLINE       0     0     0
        logs
          mirror-1     ONLINE       0     0     0
            gpt/log0   ONLINE       0     0     0
            gpt/log1   ONLINE       0     0     0

errors: No known data errors
zpool add zroot cache /dev/da4p2.eli
zpool add zroot cache /dev/da5p2.eli
profit!
zpool status zroot
  pool: zroot
 state: ONLINE
  scan: none requested
config:

        NAME           STATE     READ WRITE CKSUM
        zroot          ONLINE       0     0     0
          raidz2-0     ONLINE       0     0     0
            da0p5.eli  ONLINE       0     0     0
            da1p5.eli  ONLINE       0     0     0
            da2p5.eli  ONLINE       0     0     0
            da3p5.eli  ONLINE       0     0     0
        logs
          mirror-1     ONLINE       0     0     0
            gpt/log0   ONLINE       0     0     0
            gpt/log1   ONLINE       0     0     0
        cache
          da4p2.eli    ONLINE       0     0     0
          da5p2.eli    ONLINE       0     0     0

errors: No known data errors
zil
zpool remove zroot mirror-1
geli init -b -s 4096 /dev/da4p1
[... passwordfoo]
geli init -b -s 4096 /dev/da5p1
[... passwordfoo]
geli attach /dev/da4p1
[... password bla]
geli attach /dev/da5p1
[... passwordfoo]
zpool add zroot log mirror da4p1.eli da5p1.eli
zpool status zroot
  pool: zroot
 state: ONLINE
  scan: none requested
config:

        NAME           STATE     READ WRITE CKSUM
        zroot          ONLINE       0     0     0
          raidz2-0     ONLINE       0     0     0
            da0p5.eli  ONLINE       0     0     0
            da1p5.eli  ONLINE       0     0     0
            da2p5.eli  ONLINE       0     0     0
            da3p5.eli  ONLINE       0     0     0
        logs
          mirror-1     ONLINE       0     0     0
            da4p1.eli  ONLINE       0     0     0
            da5p1.eli  ONLINE       0     0     0
        cache
          da4p2.eli    ONLINE       0     0     0
          da5p2.eli    ONLINE       0     0     0

errors: No known data errors

Debian mit Bhyve

Grob gesagt man braucht sich lediglich an die Anleitung im FreeBSD-Handbuch halten.

Die folgenden Abschnitte handeln von Debian virtualisiert von byhve angepasst für unseren Anwendungsfall.

Wir sollten vermutlich noch mal über die Bezeichnungen reden.

Vorbereitung

cat <EOT >> /boot/loader.conf
vmm_load="YES"
nmdm_load="YES"
EOT

Hostnetz

TAP

WE DO NOT USE THIS
ifconfig tap0 create
sysctl net.link.tap.up_on_open=1     class=0x020000 card=0x22be103c chip=0x165714e4 rev=0x01 hdr=0x00
ifconfig bridge0 create
ifconfig bridge0 addm bge0 addm tap0
ifconfig bridge0 up
PCI Passthru
HowTo
freebsd:bhyve/pci_passthru

Mit pciconf -v -l findet man herraus welchen Slot der Netzwerk-Controller hat.

pciconf -v -l
bge0@pci0:2:0:0:

Diesen überträgt man in die /boot/loader.conf

cat <EOF >> /boot/loader.conf
pptdevs="2/0/0"
EOF

pptdev ist ein String und kann auch die anderen Netzwerk-Controller über die gleiche Art markieren.

pptdev="2/0/0 2/0/1"

als Ergebis zeigt einem

pciconf -v -l | grep -O ^.*pci0:2:0:0:
ppt0@pci0:2:0:0:

Weiter geht damit dann in die VM.

Debian runterladen

wget -O /root/debian-testing-amd64-netinst.iso http://cdimage.debian.org/cdimage/weekly-builds/amd64/iso-cd/debian-testing-amd64-netinst.iso

Dataset anlegen

zfs create -V32G -o volmode=dev zroot/inber

Device mapping

cat <EOF >> device.map
(hd0) /dev/zvol/zroot/inber
(cd0) /root/debian-testing-amd64-netinst.iso
EOF

Debian Installieren

grub-bhyve -m device.map -r cd0 -M 32678M inber

Installation wählen

bhyve -s 0:0,hostbridge -s 1:0,lpc -s 2:0,virtio-net,tap0 -s 3:0,virtio-blk,/dev/zvol/zroot/inber -s 4:0,ahci-cd,./debian-8.7.1-amd64-netinst.iso -l com1,stdio -c 8 -m 32768M inber

Installation durchführen

Reset von vmm

An diesem Punkt muss die VM gelöscht werden. Der Progress bleibt im Dataset erhalten.

bhyvectl --destroy --vm=inber

Debian starten

Boot

grub-bhyve -m device.map -M 32678M -r hd0,msdos1 inber

VM starten

mit tap
bhyve -A -H -P -s 0:0,hostbridge -s 1:0,lpc -s 2:0,virtio-net,tap0 -s 3:0,virtio-blk,/dev/zvol/zroot/inber -l com1,/dev/nmdm0A -c 12 -m 32678M inber
mit ppt

muss die VM etwas anders gestartet werden.

bhyve -A -H -P -s 0:0,hostbridge -s 1:0,lpc -s 2:0,passthru,2/0/0 -s 3:0,virtio-blk,/dev/zvol/zroot/inber -l com1,/dev/nmdm0A -c 12 -m 32678M inber

Login

cu -l /dev/nmdm0B -s 9600