wiki/infrastructure.md

98 lines
3.5 KiB
Markdown

---
title: Infrastructure
description: The hardware and software powering it all
published: true
date: 2019-06-12T23:02:23.235Z
tags:
---
# Basic overview
- Entrypoint to network is a Linksys WRT1200AC
- Main HP DL380 G6 server
- File server is a Custom Intel SC5000 BASE
# Router
Self assigned WAN IP address, easily probed via our true domain `fosc.etsit.upct.es`
Running latest Openwrt trunk, updated every handful of weeks
Performance can be overviewed at:
[router.fosc.space](https://router.fosc.space)
# Main Server
Its hostname is just `fosc`
Runs NixOS with some nice configs and acts as a docker server. As usual for NixOS, it is configured from .nix files in `/etc/nixos`
These configs are not intended to be touched by mortals, but can be seen by members so they can help in home server setups
An extensive docker-compose setup is present at `/var/docker/`
Go there if you have been given access to deploy a stack
## RAID setup
NixOS boots from an independent f2fs 250GB SSD.
Real storage is available in a ZFS "RAID10" composed of the 4 mechanical disks. Due to RAID card annoyances, replacing a disk requires a reboot (and probably more intervention)
```
pool: tank
state: ONLINE
scan: scrub repaired 0B in 0 days 00:10:44 with 0 errors on Mon Jun 3 13:53:46 2019
config:
NAME STATE READ WRITE CKSUM
tank ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
scsi-3600508b1001c2d61e4e90873322fc373 ONLINE 0 0 0
scsi-3600508b1001cbb53e902f820f105614f ONLINE 0 0 0
mirror-1 ONLINE 0 0 0
scsi-3600508b1001cdacdaa62eca0df4ed607 ONLINE 0 0 0
scsi-3600508b1001cfd528529622e93c7f74f ONLINE 0 0 0
errors: No known data errors
```
## Traefik
SSL terminator / HTTP proxy for the network, hogs port 80 and 443 (among others) and will fetch different webpages based on domain
All HTTP(S) services must be accessed over this proxy
## Long term storage
Files served by the web servers and backups are stored at `/mnt/gordo`
## Backups
Backups occur weekly at `04:00` using the `restic` software
Encryption key has been shared among the head members
# File Server
As you would have expected, `gordo`
Also runs NixOS, using a simpler configuration than the main server.
Its primary function is running an NFS server and beinbg a torrent seedbox. It also has a dormant traefik+docker setup, ready to replace the main server in case of emergency.
## RAID setup
Three 1TB SATA disks in raidz (RAID5). The first disk seen by the BIOS contains the GRUB bootloader and a small boot partition aside from one of the three ZFS partitions
Only one disk can fail at the same time. Be careful out there
```
pool: tank
state: ONLINE
scan: scrub in progress since Wed Jun 12 16:44:20 2019
584G scanned at 406M/s, 209G issued at 146M/s, 959G total
0B repaired, 21.84% done, 0 days 01:27:43 to go
config:
NAME STATE READ WRITE CKSUM
tank ONLINE 0 0 0
raidz1-0 ONLINE 0 0 0
ata-ST31000528AS_9VP0TRE9 ONLINE 0 0 0
ata-ST31000528AS_9VP0TRYB ONLINE 0 0 0
ata-ST31000528AS_9VP0TS1L-part3 ONLINE 0 0 0
errors: No known data errors
```