Server/inber: Unterschied zwischen den Versionen

Aus C3D2
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
(3 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
= inber =
== Entscheidung ==


Das fürs Serverhousing bei [https://in-berlin.de/ In-Berlin] geplante Gerät.
{| 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)?
| ?
|
|-
|
|
|
|
|-
|}


== cache encryption ==
== Bezeichnung ==


Nach dem was über den Installer eingestellt wurde, wurden auch ein ZIL und ein Cache dem Pool zugeordnet.
Es gibt noch keine "finale" Bezeichnung. Innerhalb der ersten 10 Tage war [[#inber]] die wohl gängigste Bezeichnung vom Projekt.
Die Caches waren jedoch nicht verschlüsselt.


=== also der plan ===
=== LOIC ===
* [[{{PAGENAME}}#caches_ausbinden|caches ausbinden]]
: in Anlehnung an [[wikipedia:de:Low Orbit Ion Cannon]]
* [[#geli_auf_den_partitionen einrichten|geli auf den partitionen einrichten]]
* [[#crypted_partitions_wieder_einbinden|crypted partitions wieder einbinden]]
* [[#profit!|profit!]]


=== implementierung ===
=== inber ===
==== caches ausbinden ====
: in Anlehnung an das Leben [[IN-Berlin]]
<pre>
 
# zpool status zroot
== Zweck ==
 
* Ersatz von [[wetu]]
* Betreiben von eigener Hardware (Server) des [[C3D2]] in ein einer [[wikipedia:de:Collocation]]
 
== 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 soll geändert werden.
 
===== Plan =====
* [[#caches ausbinden]]
* [[#geli auf den partitionen einrichten]]
* [[#crypted partitions wieder einbinden]]
* [[#profit!]]
 
===== Implementierung =====
 
====== caches ausbinden ======
 
<source lang="bash">zpool status zroot</source>
<source lang="bash">
   pool: zroot
   pool: zroot
  state: ONLINE
  state: ONLINE
Zeile 39: Zeile 87:


errors: No known data errors
errors: No known data errors
</pre>
</source>
 
<source lang="bash">zpool remove zroot gpt/cache0</source>
<source lang="bash">zpool remove zroot gpt/cache1</source>


<pre>
====== geli auf den partitionen einrichten ======
# zpool remove zroot gpt/cache0
# zpool remove zroot gpt/cache1
</pre>


==== geli auf den partitionen einrichten ====
<source lang="bash">geli init -b -s 4096 /dev/da4p2</source>
<pre>
<source lang="bash">
# geli init -b -s 4096 /dev/da4p2
Enter new passphrase:
Enter new passphrase:
Reenter new passphrase:
Reenter new passphrase:
Zeile 55: Zeile 102:
can be restored with the following command:
can be restored with the following command:


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


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


==== crypted partitions wieder einbinden ====
<source lang="bash">geli attach /dev/da4p2</source>
<pre>
<source lang="bash">
# geli attach /dev/da4p2
Enter passphrase:
Enter passphrase:
# geli attach /dev/da5p2
</source>
<source lang="bash">geli attach /dev/da5p2</source>
<source lang="bash">
Enter passphrase:
Enter passphrase:
</pre>
</source>


<pre>
<source lang="bash">
zpool status zroot
zpool status zroot
   pool: zroot
   pool: zroot
Zeile 91: Zeile 139:


errors: No known data errors
errors: No known data errors
</pre>
</source>
 
<pre>
# zpool add zroot cache /dev/da4p2.eli
# zpool add zroot cache /dev/da5p2.eli
</pre>


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


==== profit! ====
====== profit! ======
<pre>
<source lang="bash">zpool status zroot</source>
# zpool status zroot
<source lang="bash">
   pool: zroot
   pool: zroot
  state: ONLINE
  state: ONLINE
Zeile 123: Zeile 168:


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


== Debian mit Bhyve ==
== Debian mit Bhyve ==
Zeile 198: Zeile 243:
# cu -l /dev/nmdm0B -s 9600
# cu -l /dev/nmdm0B -s 9600
</pre>
</pre>
[[Kategorie:Projekt]]
[[Kategorie:Server]]
[[Kategorie:Infrastruktur]]

Version vom 21. Februar 2017, 19:53 Uhr

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 soll geändert werden.

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

Debian mit Bhyve

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

angepasst für unseren Anwendungsfall

Wir sollten vermutlich noch mal über die Bezeichnungen reden.

Vorbereitung

# kldload vmm
# kldload nmdm
# ifconfig tap0 create
# sysctl net.link.tap.up_on_open=1
# ifconfig bridge0 create
# ifconfig bridge0 addm bge0 addm tap0
# ifconfig bridge0 up

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 device.map
(hd0) /dev/zvol/zroot/inber
(cd0) /root/debian-testing-amd64-netinst.iso

Debian Installieren

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

Install 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

Install machen.

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

# 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

Login

# cu -l /dev/nmdm0B -s 9600