Server Documentation: file.server.england
System Overview
- Hostname: file.server.england
- IP Address: 192.168.0.139
- Primary Role: Centralized Storage (NAS), Block Storage (iSCSI), and Web-based File Management.
Storage Architecture
The server manages a hybrid storage array totaling approximately 6.5 TB of raw capacity.
- High-Performance Tier: 2.5 TB SSD storage, managed via ZFS for data integrity and snapshot capabilities.
- Mass Storage Tier: 4 TB External HDD storage.
- Pool Management: Utilizes ZFS (
zfs-zed.service) for the primary "storage" pool. - Protocols:
- Samba (SMB/CIFS): Managed by
smbdandnmbdfor cross-platform file sharing. - iSCSI: Managed by
tgt.serviceon Port 3260 for block-level storage presentation. - Web/HTTPS: Caddy acts as a reverse proxy/web server, with File Browser providing a GUI (Ports 80, 8080, 8081).
- Samba (SMB/CIFS): Managed by
Automation and Backup Logic
This server employs a specialized backup suite in /usr/local/bin to manage data redundancy while navigating the system's aggressive power-saving (suspend) schedule.
Systemd Timers & Services
The backup lifecycle is orchestrated by systemd rather than standard cron, allowing for better logging and dependency management.
| Timer | Service | Schedule | Function |
|---|---|---|---|
| fileserver-backup.timer | fileserver-backup.service | 23:00 Daily | Triggers the primary file server backup logic. |
| dpkg-db-backup.timer | dpkg-db-backup.service | 00:00 Daily | Backs up the dpkg database for system recovery. |
Backup Script Orchestration
- backup_runner: The primary engine. It calculates the day of the year to maintain a 3-day interval. It creates a ZFS snapshot, disables system suspension, and pipes a compressed stream (
zstd -19) to a mounted Samba share at/mnt/backup_data. - backup_watchdog: Monitors long-running
zfs sendprocesses. If a backup exceeds 30 minutes, it automatically extends thedisablesuspendlock to prevent data corruption. - backup_wrapper: Uses
systemd-inhibitto provide a kernel-level lock against sleep states whilebackup_fileserver(the legacy tar-based backup) is active. - compareDir: A custom utility for verifying file integrity, metadata, and SHA-256 hashes between source and destination directories.
Maintenance Schedule (Cron)
- Nightly Suspend: (00:01)
nightly_suspend.sh. - Morning Maintenance: (05:08)
morning_maintenance.sh. Includes network connectivity checks and automated package audits viadaily_apt_check.sh.
Network Configuration and Listening Ports
- Port 445 / 139 (TCP): Samba / NetBIOS File Sharing.
- Port 3260 (TCP): iSCSI Target Daemon (
tgt). - Port 80 (TCP): HTTP (Caddy).
- Port 8080 / 8081 (TCP): File Browser Web Interface.
- Port 22 (TCP): SSH Administrative Access.
Critical Configuration Paths
The following paths are tracked for structural reference. Actual data is excluded via .gitignore.
- ZFS Pool Configuration: Managed via
zpoolandzfsutilities. - Samba Configuration:
/etc/samba/smb.conf - systemd Units:
/etc/systemd/system/fileserver-backup.* - Caddyfile: Configuration for web routing and reverse proxying.
Live Status
Status
CPU
--
CPU Temp
--
RAM
-- (--)
Uptime
--
Last Seen
--
Raw Hardware Specifications
System: Kernel: redacted arch x86_64 bits: 64 compiler: gcc v: 13.3.0 Console: pty pts/1 Distro: Ubuntu 24.04.4 LTS (Noble Numbat) Machine: Type: Laptop System: Hewlett-Packard product: HP ENVY dv7 Notebook PC v: 0883120014305910000620120 serial: redacted Mobo: Hewlett-Packard model: 1833 v: 55.24 serial: redacted UEFI: Insyde v: redacted date: redacted Battery: ID-1: BAT0 charge: N/A condition: N/A volts: 11.1 min: N/A model: Hewlett-Packard Primary status: not charging CPU: Info: quad core model: AMD A10-4600M APU with Radeon HD Graphics bits: 64 type: MT MCP arch: Piledriver rev: 1 cache: L1: 192 KiB L2: 4 MiB Speed (MHz): avg: 1400 min/max: 1400/2300 boost: enabled cores: 1: 1400 2: 1400 3: 1400 4: 1400 bogomips: 18366 Flags: avx ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 Graphics: Device-1: AMD Trinity [Radeon HD 7660G] vendor: Hewlett-Packard driver: radeon v: kernel arch: TeraScale-3 bus-ID: 00:01.0 Device-2: Realtek HP Truevision HD driver: uvcvideo type: USB bus-ID: 2-4:4 Display: server: No display server data found. Headless machine? tty: 235x60 API: EGL v: 1.5 drivers: r600,swrast platforms: active: gbm,surfaceless,device inactive: wayland,x11 API: OpenGL v: 4.5 vendor: mesa v: 25.2.8-0ubuntu0.24.04.1 note: console (EGL sourced) renderer: AMD ARUBA (DRM 2.50.0 / 6.8.0-110-generic LLVM 20.1.2), llvmpipe (LLVM 20.1.2 256 bits) Audio: Device-1: AMD Trinity HDMI Audio vendor: Hewlett-Packard driver: snd_hda_intel v: kernel bus-ID: 00:01.1 Device-2: AMD FCH Azalia vendor: Hewlett-Packard driver: snd_hda_intel v: kernel bus-ID: 00:14.2 API: ALSA v: k6.8.0-110-generic status: kernel-api Network: Device-1: Qualcomm Atheros AR9485 Wireless Network Adapter vendor: Hewlett-Packard AR9485/HB125 802.11bgn 1x1 Wi-Fi driver: ath9k v: kernel bus-ID: 02:00.0 IF: wlo1 state: down mac: redacted Device-2: Realtek RTL8111/8168/8211/8411 PCI Express Gigabit Ethernet vendor: Hewlett-Packard RTL8111/8168/8411 driver: r8169 v: kernel port: 2000 bus-ID: 04:00.0 IF: eno1 state: up speed: 1000 Mbps duplex: full mac: redacted RAID: Device-1: storage type: zfs status: ONLINE level: linear raw: size: 2.63 TiB free: 2.21 TiB zfs-fs: size: 2.55 TiB free: 2.13 TiB Components: Online: 1: sda 2: sdb4 3: sdc1 Drives: Local Storage: total: raw: 6.39 TiB usable: 6.3 TiB lvm-free: 10 GiB used: 394.16 GiB (6.1%) ID-1: /dev/sda model: 1InsigniaNS-PACS2B25\x28-C\x29 size: 953.87 GiB type: USB ID-2: /dev/sdb vendor: Samsung model: ST1000LM024 HN-M101MBB size: 931.51 GiB ID-3: /dev/sdc vendor: Western Digital model: WD10SPZX-60Z10T1 size: 931.51 GiB ID-4: /dev/sdd vendor: Western Digital model: WD40NDZW-11BCSS0 size: 3.64 TiB type: USB Partition: ID-1: / size: 97.87 GiB used: 11.23 GiB (11.5%) fs: ext4 dev: /dev/dm-0 mapped: ubuntu--vg-ubuntu--lv ID-2: /boot size: 1.9 GiB used: 200.5 MiB (10.3%) fs: ext4 dev: /dev/sdb2 ID-3: /boot/efi size: 1.05 GiB used: 6.1 MiB (0.6%) fs: vfat dev: /dev/sdb1 Swap: Alert: No swap data was found. Sensors: System Temperatures: cpu: 51.4 C mobo: N/A gpu: radeon temp: 49.0 C Fan Speeds (rpm): N/A Info: Memory: total: 8 GiB note: est. available: 7.23 GiB used: 2.23 GiB (30.9%) Processes: 235 Uptime: 13d 5h 34m Init: systemd target: graphical (5) Packages: 957 Compilers: gcc: 13.3.0 Shell: Sudo v: redacted