惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

宝玉的分享
宝玉的分享
T
Threat Research - Cisco Blogs
H
Hacker News: Front Page
N
News and Events Feed by Topic
Know Your Adversary
Know Your Adversary
Cisco Talos Blog
Cisco Talos Blog
SecWiki News
SecWiki News
C
Cisco Blogs
D
Darknet – Hacking Tools, Hacker News & Cyber Security
T
Tor Project blog
K
Kaspersky official blog
Forbes - Security
Forbes - Security
Webroot Blog
Webroot Blog
Schneier on Security
Schneier on Security
P
Privacy & Cybersecurity Law Blog
H
Heimdal Security Blog
Y
Y Combinator Blog
The GitHub Blog
The GitHub Blog
S
SegmentFault 最新的问题
V
Vulnerabilities – Threatpost
T
Tenable Blog
T
Tailwind CSS Blog
P
Privacy International News Feed
WordPress大学
WordPress大学
大猫的无限游戏
大猫的无限游戏
小众软件
小众软件
博客园 - Franky
Hacker News: Ask HN
Hacker News: Ask HN
Jina AI
Jina AI
C
Cybersecurity and Infrastructure Security Agency CISA
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
雷峰网
雷峰网
Vercel News
Vercel News
A
About on SuperTechFans
爱范儿
爱范儿
Simon Willison's Weblog
Simon Willison's Weblog
AWS News Blog
AWS News Blog
The Last Watchdog
The Last Watchdog
Engineering at Meta
Engineering at Meta
Spread Privacy
Spread Privacy
Security Archives - TechRepublic
Security Archives - TechRepublic
博客园 - 司徒正美
量子位
博客园 - 三生石上(FineUI控件)
J
Java Code Geeks
Hacker News - Newest:
Hacker News - Newest: "LLM"
Recorded Future
Recorded Future
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Martin Fowler
Martin Fowler
Project Zero
Project Zero

Posts on Noah Bailey

How to turn anything into a router Deploy to Cloudfront from GitHub using OpenID Connect Backup Postgres databases with Kubernetes CronJobs The spelling error made 200 billion times a day Restarting Kubernetes pods using a CronJob You've just bought a new domain. Now what? Who Sawed My Motherboard??? Linux on the P8 Aliexpress Mini Laptop Recovering Mysql/Mariadb after a nasty crash Using EXIF data to pick my next lens Converting and developing RAW photos on Linux automatically Thank you, 2016 iPhone Don't Make It Work Self-hosted Surveillance with ZoneMinder Backups, Monitoring, and Security for small Mastodon servers Block web scanners with ipset & iptables Executing commands over SSH with GitHub Actions Debian Sid on encrypted ZFS Protect your dangerously insecure redis server Debian: the luxurious boring lifestyle Monitor radiation with a Raspberry Pi Simple Linux server alerts: Know your performance, errors, security, syslog, and security NUC crashes on debian 11 - How I fixed it Basic Linux server security with fail2ban, ossec, and firewall Windows 11 will create heaps of needless trash Domesticated Kubernetes Networking The Cursed Certificate Our mostly disposable and entirely stupid world Trying out OpenBSD (as a Linux geek) Making VoIP Calls with Antique Rotary Phones Monitoring WAN speed with speedtest-cli and ElasticSearch Monitoring WAN latency with InfluxDB The Zeroshell botnet returns Installing Gentoo on a vintage Thinkpad T60 Malware emails 2: Russian boogaloo TP-Link Device Weirdness ElasticSearch broke all my nice things (a story of cascading failure) A New Botnet is Targeting Network Infrastructure Malware on the Wire: Monitoring Network Traffic with Suricata and ClamAV Cloud Threat Protection with OSSEC and Suricata Malware Emails From Jerks Surviving the Apocalypse with an Offline Wikipedia Server Being Attacked by Bots Linux Router, Firewall and IDS Appliance You Probably Don't Need a VPN Fix an Oversharded Elasticsearch Cluster Automating KVM Virtualization Update all your linux servers as fast as possible Cleanup Systemd Journald Storage Stop Putting Your SSH Keys on Github! Clustering KVM with Ceph Storage Stealing Windows Sessions FreeRadius Active Directory Integration Retrieving WPA2 Keys on Windows Deploy MDT Litetouch on Linux with TFTPD and Syslinux Generating MSI transform files with Orca The Inflatable Dinghy Generating Cisco IOS config files with Python Getting Cloudy
Homebrew SAN
2018-09-18 · via Posts on Noah Bailey

Everybody and their aunt has a NAS at home, but what about something with a bit more pizzazz? How about if I build a system out of standard, off the shelf, ‘surplus sale’ gear and spin it into a really neat storage appliance?

The Gear

At Fanshawe College, the ‘Asset Sale’ is a proud tradition. IT students line up around the block to get good deals on retired and scratch-and-dent electronics. I compare it heavily to the types of auction sales that happen when an old farmer retires; it’s not just an opportunity to buy some used gear, it’s a community event. In 2017 I managed to walk away with a retired lab workstation, a Dell Precision T3500. With 12 GiB of memory and a couple crevices to squeeze hard drives into, I was off to the races.

The storage machine was built atop the FreeNAS platform to leverage the ZFS file system and the robust replication and backup features that it gives. With memory in excess, I originally planned on using the deduplication feature, though after a test found that I had minimal gains on my particular dataset.

The Network

A key piece of a storage system networking capability. I opted to… gasp Buy new! As it turns out, the MikroTik CSS-326 series switch is hard to beat for home networking. Not only is it cheap, low power, and fairly reliable; it’s dead silent. Using only 19W at full power, it was question of buying back my sanity (after running a Dell PowerConnect 5448 with three 9000 RPM fans). When considering TCO it’s great as well, over the course of its lifetime it will easily save me the $150 it cost in energy savings. Not bad!

Sticking it together

On the other end of the fire hose is the virtual host. In my case, it’s a HP ML150G6 server that was trash-picked by my colleague ‘Dave’ and wrestled into the back of my Jetta back in 2016. After about $40 in upgrades (a second quad-core CPU, a RAM upgrade, and a dual network interface), it was ready to go! On a topographical layout, the system looks like this:

+-----+                    +------+                        +----+
| SAN |e0 -- MGMT ----- e8 |Switch| e7 -- Dot1Q Trunk -- e0| HV |
|     |e1 -- VLAN 91 -- e21|CSS326|e22 -- VLAN 91 ------ e1| 01 |
|     |e2 -- VLAN 92 -- e23|      |e23 -- VLAN 92 ------ e2|    |
+-----+                    +------+                        +----+
                            /   \
            <-- WAN -- e1 -+     +- e9-20 -- Internal Network-->

iSCSI traffic travels between the SAN and the hypervisor over VLANs 91 and 92. Both have a dedicated port on a dedicated VLAN for performance and reliability, but also so that someday when more hardware falls into my hands I will have the ability to add a second server to the cluster and have failover and HA capabilities. Neat!

Now the important part of this configuration is to set up iSCSI to make use of MPIO, or Multipath-IO. This means that rather than just using a single network interface and VLAN, the server will load balance its traffic between links. In theory, this doubles my throughput to the SAN. In reality, it depends heavily on the workload. Since the SAN is using mirrored vdevs (essentially RAID 10), some streaming operations will go above gigabit speed. Other workloads that are easily cached in ARC (memory) will have good performance as well, in particular bursts of async writes.

Conclusion

I’m quite satisfied with the system I’ve set up! Considering all the gear combined cost around $300 CAD, I’ve made a very capable system on pocket change.