Server/inber
| Server/inber Status: obsolete | |
|---|---|
| Beschreibung | Ein Server in Berlin |
| Ort | IN-Berlin |
| Hostname | inber |
| Owner | C3D2 |
| Maintainer | C3D2 |
| Operating System | Debian |
| Architecture | amd64 |
| Instanz von | Server |
Entscheidung
| Grundlage | Frage | Antwort | Gründe |
|---|---|---|---|
| faktisch | Welches Betriebssystem wird installiert? | FreeBSD | |
| 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
- 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 mehr.
Plan
- #caches ausbinden
- #geli auf den partitionen einrichten
- #crypted partitions wieder einbinden
- #profit!
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 errorszpool remove zroot gpt/cache0zpool remove zroot gpt/cache1geli auf den partitionen einrichten
geli init -b -s 4096 /dev/da4p2Enter 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/da4p2geli init -b -s 4096 /dev/da5p2crypted partitions wieder einbinden
geli attach /dev/da4p2Enter passphrase:geli attach /dev/da5p2Enter 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 errorszpool add zroot cache /dev/da4p2.elizpool add zroot cache /dev/da5p2.eliprofit!
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 errorszil
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 errorsDebian 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.confvmm_load="YES"
nmdm_load="YES"
EOTHostnetz
TAP
- WE DO NOT USE THIS
ifconfig tap0 createsysctl net.link.tap.up_on_open=1 class=0x020000 card=0x22be103c chip=0x165714e4 rev=0x01 hdr=0x00ifconfig bridge0 createifconfig bridge0 addm bge0 addm tap0ifconfig bridge0 upPCI Passthru
Mit pciconf -v -l findet man herraus welchen Slot der Netzwerk-Controller hat.
pciconf -v -lbge0@pci0:2:0:0:Diesen überträgt man in die /boot/loader.conf
cat <EOF >> /boot/loader.confpptdevs="2/0/0"
EOFpptdev 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.isoDataset anlegen
zfs create -V32G -o volmode=dev zroot/inberDevice mapping
cat <EOF >> device.map(hd0) /dev/zvol/zroot/inber
(cd0) /root/debian-testing-amd64-netinst.iso
EOFDebian Installieren
grub-bhyve -m device.map -r cd0 -M 32678M inberInstallation 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 inberInstallation durchführen
Reset von vmm
An diesem Punkt muss die VM gelöscht werden. Der Progress bleibt im Dataset erhalten.
bhyvectl --destroy --vm=inberDebian starten
Boot
grub-bhyve -m device.map -M 32678M -r hd0,msdos1 inberVM 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 inbermit 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 inberLogin
cu -l /dev/nmdm0B -s 9600