Quoted Strings

Servers

  2026/03/21

Category: Linux

I am going to talk about the servers I use for file storage being one server for an occasional virtual machine or docker container.

I previously have tried out ESXI and Proxmox but mainly ESXI basically so I could teach ESXI to myself. Well until Broadcom bought VMWare and killed the free version of ESXI. Can't get a link to ESXI anymore either. But this forced some companies to Proxmox with support. Broadcom went to a subscription model for their software now. I got tired of all this and went back to what is tried and true for me and free.

It is Ubuntu Sever LTS with ZFS minus snap. Why they bundle snap with server software I have no idea. Here is how I remove it and keep it from installing again. I ignore a few other things too my server does not need.

sudo su

systemctl disable snapd.service
systemctl disable snapd.socket
systemctl disable snapd.seeded.service
rm -rf /var/cache/snapd/
apt autoremove --purge snapd
rm -rf ~/snap

cat << EOF > /etc/apt/preferences.d/ignored-packages
Package: snapd cloud-init landscape-common popularity-contest ubuntu-advantage-tools
Pin: release *
Pin-Priority: -1
EOF

exit

Honestly I would use my everyday destro Arch Linux but with Ubuntu Server LTS I can install ZFS, a very good software based raid type file system. This is how I setup two 6T disc mirrors with ZFS. Yes I use log and cache SSDs but frankly I do not think I need them. Just have not removed them yet. I will remove them when I need more CMR hard drives and not SMR drives.

sudo su

ls /dev/disk/by-id/

ata-Samsung_SSD_860_EVO_500GB_S3Z1NY0M536552L-part1
ata-Samsung_SSD_860_EVO_500GB_S3Z1NY0M536552L-part2

ata-Samsung_SSD_860_EVO_500GB_S3Z1NY0M536554E-part1
ata-Samsung_SSD_860_EVO_500GB_S3Z1NY0M536554E-part2

# dozer

ata-WDC_WD60EFZX-68B3FN0_WD-C82GDWTK
ata-WDC_WD60EFZX-68B3FN0_WD-C82GWB6K

# tank

ata-WDC_WD60EFRX-68L0BN1_WD-WX21DC74D464
ata-WDC_WD60EFRX-68L0BN1_WD-WX21DC74DHNN

# 364G Log Mirrors -

Partition ata-Samsung_SSD_860_EVO_500GB_S3Z1NY0M536552L partitions part1 182G for log mirror, part 2 182G for log mirror. bf00

Partition ata-Samsung_SSD_860_EVO_500GB_S3Z1NY0M536554E partitions part1 182G for log mirror, part 2 182G for log mirror. bf00

# tank

zpool create -o ashift=12 tank mirror ata-WDC_WD60EFRX-68L0BN1_WD-WX21DC74D464 ata-WDC_WD60EFRX-68L0BN1_WD-WX21DC74DHNN

zpool status tank

zfs set atime=off tank

zpool add tank log mirror ata-Samsung_SSD_860_EVO_500GB_S3Z1NY0M536552L-part1 ata-Samsung_SSD_860_EVO_500GB_S3Z1NY0M536554E-part1

# dozer

zpool create -o ashift=12 dozer mirror ata-WDC_WD60EFZX-68B3FN0_WD-C82GDWTK ata-WDC_WD60EFZX-68B3FN0_WD-C82GWB6K

zpool status dozer

zfs set atime=off dozer

zpool add dozer log mirror ata-Samsung_SSD_860_EVO_500GB_S3Z1NY0M536552L-part2 ata-Samsung_SSD_860_EVO_500GB_S3Z1NY0M536554E-part2

exit

What I really like about ZFS is if a disc dies I just swap it out and ZFS automatically re-strips the new one. You can not know it ever happens operationally. This the status of mirror tank. The cache was a late add-on.

zpool status tank

pool: tank
state: ONLINE
status: Some supported and requested features are not enabled on the pool.
	    The pool can still be used, but some features are unavailable.
action: Enable all features using 'zpool upgrade'. Once this is done,
	    the pool may no longer be accessible by software that does not support
	    the features. See zpool-features(7) for details.
 scan: resilvered 16.2M in 00:00:03 with 0 errors on Sat Apr 11 14:50:24 2026
config:
NAME                                                     STATE     READ WRITE CKSUM
tank                                                     ONLINE       0     0     0
  mirror-0                                               ONLINE       0     0     0
    ata-WDC_WD60EFRX-68L0BN1_WD-WX21DC74D464             ONLINE       0     0     0
    ata-WDC_WD60EFRX-68L0BN1_WD-WX21DC74DHNN             ONLINE       0     0     0
logs	
  mirror-2                                               ONLINE       0     0     0
    ata-Samsung_SSD_860_EVO_500GB_S3Z1NY0M536552L-part1  ONLINE       0     0     0
    ata-Samsung_SSD_860_EVO_500GB_S3Z1NY0M536554E-part1  ONLINE       0     0     0
cache
  sde3                                                   ONLINE       0     0     0
errors: No known data errors

I use disc mirrors verses raids with multiple disc because of the server case and money. I simply do not need anything else, at least not right now.

Here I setup NFS shares. Yes I am hiding my server IP address.

sudo su

apt install nfs-kernel-server

cat << EOF >> /etc/exports

tank/ 192.168.?.?/24(rw,no_root_squash,no_subtree_check,anonuid=1000,anongid=1000)
dozer/ 192.168.?.?/24(rw,no_root_squash,no_subtree_check,anonuid=1000,anongid=1000)
EOF

service nfs-kernel-server restart

exit

Almost done here but you can setup ZED and email notifications to your liking for ZFS pool monitoring.

For virtual machines on one server. The other server is really a backup file server.

sudo su

apt install qemu-kvm libvirt-daemon-system libvirt-clients virtinst cpu-checker libguestfs-tools libosinfo-bin

exit

The final thing I do is a have a APC UPS.

sudo su

apt install apcupsd

nano /etc/apcupsd/apcupsd.conf

UPSCABLE usb
...
UPSTYPE usb
...

DEVICE <blank>


nano /etc/default/apcupsd
...
ISCONFIGURED=yes
...


systemctl restart apcupsd.service

# To get UPS status
apcaccess

exit

Now I do not like the Ubuntu operating system. I like Cinnamon desktop mainly because I used the Cinnamon desktop option with Linux Mint for a few years and coming from Windows ® it is most similar to it. I use my bash script Stings to install the Cinnamon desktop on Arch Linux.

Wish to add a comment? Please include your name to display in your comment or anonymous.

Your email address will never be shared with anyone.

Email me a comment to post it.