Server/inber: Unterschied zwischen den Versionen

Aus C3D2
Zur Navigation springen Zur Suche springen
KKeine Bearbeitungszusammenfassung
(→‎Debian mit Bhyve: restructued)
(2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 211: Zeile 211:
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.
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.


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


Wir sollten vermutlich noch mal über die Bezeichnungen reden.
Wir sollten vermutlich noch mal über die Bezeichnungen reden.


==== Vorbereitung ====
=== Vorbereitung ===
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
kldload vmm
cat <EOT >> /boot/loader.conf
kldload nmdm
vmm_load="YES"
nmdm_load="YES"
EOT
</syntaxhighlight>
</syntaxhighlight>


==== Hostnetz ====
==== TAP ====
: <strong>WE DO NOT USE THIS</strong>
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
ifconfig tap0 create
ifconfig tap0 create
sysctl net.link.tap.up_on_open=1
sysctl net.link.tap.up_on_open=1     class=0x020000 card=0x22be103c chip=0x165714e4 rev=0x01 hdr=0x00
ifconfig bridge0 create
ifconfig bridge0 create
ifconfig bridge0 addm bge0 addm tap0
ifconfig bridge0 addm bge0 addm tap0
Zeile 229: Zeile 234:
</syntaxhighlight>
</syntaxhighlight>


====== Außerdem ======
===== PCI Passthru =====
* PCI Passthru [https://wiki.freebsd.org/bhyve/pci_passthru]
HowTo: [[freebsd:bhyve/pci_passthru]]


==== Debian runterladen ====
Mit <code>pciconf -v -l</code> findet man herraus welchen Slot der Netzwerk-Controller hat.
 
<syntaxhighlight lang="bash">
pciconf -v -l
# [... lange liste ...]
# bge0@pci0:2:0:0: 
</syntaxhighlight>
 
Diesen überträgt man in die  ''/boot/loader.conf''
 
<syntaxhighlight lang="bash">
cat <EOF >> /boot/loader.conf
pptdevs="2/0/0"
EOF
</syntaxhighlight>
 
pptdev ist ein String und kann auch die anderen Netzwerk-Controller über die gleiche art markieren.
<pre>
<pre>
# wget -O /root/debian-testing-amd64-netinst.iso http://cdimage.debian.org/cdimage/weekly-builds/amd64/iso-cd/debian-testing-amd64-netinst.iso
pptdev="2/0/0 2/0/1"
</pre>
</pre>


==== Dataset anlegen ====
als Ergebis zeigt einem
<pre>
<syntaxhighlight lang="bash">
# zfs create -V32G -o volmode=dev zroot/inber
pciconf -v -l | grep -O ^.*pci0:2:0:0:
</pre>
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 ====
=== Device mapping ===
<pre>
<syntaxhighlight lang="bash">
# cat device.map
cat device.map
(hd0) /dev/zvol/zroot/inber
(hd0) /dev/zvol/zroot/inber
(cd0) /root/debian-testing-amd64-netinst.iso
(cd0) /root/debian-testing-amd64-netinst.iso
</pre>
</syntaxhighlight>


==== Debian Installieren ====
=== Debian Installieren ===
<pre>
<syntaxhighlight lang="bash">
# grub-bhyve -m device.map -r cd0 -M 32678M inber
grub-bhyve -m device.map -r cd0 -M 32678M inber
</pre>
</syntaxhighlight>
Install wählen.  
Install wählen.  


<pre>
<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
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
</pre>
</syntaxhighlight>
Install machen.
Install machen.


==== Reset von vmm ====
=== Reset von vmm ===


An diesem Punkt muss die VM gelöscht werden. Der Progress bleibt im Dataset erhalten.
An diesem Punkt muss die VM gelöscht werden. Der Progress bleibt im Dataset erhalten.
<pre>
<syntaxhighlight lang="bash">
# bhyvectl --destroy --vm=inber
bhyvectl --destroy --vm=inber
</pre>
</syntaxhighlight>
 
=== Debian starten ===


==== Debian starten ====
==== Boot ====
<syntaxhighlight lang="bash">
grub-bhyve -m device.map -M 32678M -r hd0,msdos1 inber
</syntaxhighlight>


Boot
==== VM starten ====
<pre>
===== mit tap =====
# grub-bhyve -m device.map -M 32678M -r hd0,msdos1 inber
<syntaxhighlight lang="bash">
</pre>
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.


VM starten
<syntaxhighlight lang="bash">
<pre>
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
# 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>
</pre>


==== Login ====
=== Login ===
<pre>
<syntaxhighlight lang="bash">
# cu -l /dev/nmdm0B -s 9600
cu -l /dev/nmdm0B -s 9600
</pre>
</syntaxhighlight>


[[Kategorie:Projekt]]
[[Kategorie:Projekt]]
[[Kategorie:Server]]
[[Kategorie:Server]]
[[Kategorie:Infrastruktur]]
[[Kategorie:Infrastruktur]]

Version vom 24. Februar 2017, 00:36 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 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
# [... lange liste ...]
# 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 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

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