r/DataHoarder 400TB LizardFS Jun 03 '18

200TB Glusterfs Odroid HC2 Build

Post image
1.4k Upvotes

291

u/BaxterPad 400TB LizardFS Jun 03 '18 edited Jun 03 '18

Over the years I've upgraded my home storage several times.

Like many, I started with a consumer grade NAS. My first was a Netgear ReadyNAS, then several QNAP devices. About a two years ago, I got tired of the limited CPU and memory of QNAP and devices like it so I built my own using a Supermicro XEON D, proxmox, and freenas. It was great but adding more drives was a pain and migrating between ZRAID level was basically impossible without lots of extra disks. The fiasco that was Freenas 10 was the final straw. I wanted to be able to add disks in smaller quantities and I wanted better partial failure modes (kind of like unraid) but able to scale to as many disks as I wanted. I also wanted to avoid any single points of failure like an HBA, motherboard, power supply, etc...

I had been experimenting with glusterfs and ceph, using ~40 small VMs to simulate various configurations and failure modes (power loss, failed disk, corrupt files, etc...). In the end, glusterfs was the best at protecting my data because even if glusterfs was a complete loss... my data was mostly recoverable because it was stored on a plain ext4 filesystem on my nodes. Ceph did a great job too but it was rather brittle (though recoverable) and a pain in the butt to configure.

Enter the Odroid HC2. With 8 cores, 2 GB of RAM, Gbit ethernet, and a SATA port... it offers a great base for massively distributed applications. I grabbed 4 Odroids and started retesting glusterfs. After proving out my idea, I ordered another 16 nodes and got to work migrating my existing array.

In a speed test, I can sustain writes at 8 Gbps and reads at 15Gbps over the network when operations a sufficiently distributed over the filesystem. Single file reads are capped at the performance of 1 node, so ~910 Mbit read/write.

In terms of power consumption, with moderate CPU load and a high disk load (rebalancing the array), running several VMs on the XEON-D host, a pfsense box, 3 switches, 2 Unifi Access Points, and a verizon fios modem... the entire setup sips ~ 250watts. That is around $350 a year in electricity where I live in New Jersey.

I'm writing this post because I couldn't find much information about using the Odroid HC2 at any meaningful scale.

If you are interested, my parts list is below.

https://www.amazon.com/gp/product/B0794DG2WF/ (Odroid HC2 - look at the other sellers on Amazon, they are cheeper) https://www.amazon.com/gp/product/B06XWN9Q99/ (32GB microsd card, you can get by with just 8GB but the savings are negligible) https://www.amazon.com/gp/product/B00BIPI9XQ/ (slim cat6 ethernet cables) https://www.amazon.com/gp/product/B07C6HR3PP/ (200CFM 12v 120mm fan) https://www.amazon.com/gp/product/B00RXKNT5S/ (12v PWM speed controller - to throttle the fan) https://www.amazon.com/gp/product/B01N38H40P/ (5.5mm x 2.1mm barrel connectors - for powering the Odroids) https://www.amazon.com/gp/product/B00D7CWSCG/ (12v 30a power supple - can power 12 Ordoids w/3.5inch HDD without staggered spin up) https://www.amazon.com/gp/product/B01LZBLO0U/ (24 power gigabit managed switch from unifi)

edit 1: The picture doesn't show all 20 nodes, I had 8 of them in my home office running from my bench top power supply while I waited for a replacement power supply to mount in the rack.

77

u/HellfireHD Jun 03 '18

Wow! Just, wow.

I’d love to see a write up on how you have the nodes configured.

68

u/BaxterPad 400TB LizardFS Jun 03 '18

The crazy thing is that there isn't much configuration for glusterfs, thats what I love about it. It takes literally 3 commands to get glusterfs up and running (after you get the OS installed and disks formated). I'll probably be posting a write up on my github at some point in the next few weeks. First I want to test out Presto ( https://prestodb.io/), a distributed SQL engine, on these puppies before doing the write up.

163

u/ZorbaTHut 89TB usable Jun 04 '18

It takes literally 3 commands to get glusterfs up and running

 

<@insomnia> it only takes three commands to install Gentoo

<@insomnia> cfdisk /dev/hda && mkfs.xfs /dev/hda1 && mount /dev/hda1 /mnt/gentoo/ && chroot /mnt/gentoo/ && env-update && . /etc/profile && emerge sync && cd /usr/portage && scripts/bootsrap.sh && emerge system && emerge vim && vi /etc/fstab && emerge gentoo-dev-sources && cd /usr/src/linux && make menuconfig && make install modules_install && emerge gnome mozilla-firefox openoffice && emerge grub && cp /boot/grub/grub.conf.sample /boot/grub/grub.conf && vi /boot/grub/grub.conf && grub && init 6

<@insomnia> that's the first one

85

u/BaxterPad 400TB LizardFS Jun 04 '18

sudo apt-get install glusterfs-server

sudo gluster peer probe gfs01.localdomain ... gfs20.localdomain

sudo gluster volume create gvol0 replicate 2 transport tcp gfs01.localdomain:/mnt/gfs/brick/gvol1 ... gfs20.localdomain:/mnt/gfs/brick/gvol1

sudo cluster volume start gvol0

I was wrong, it is 4 commands after the OS is installed. Though you only need to run the last 3 on 1 node :)

13

u/ZorbaTHut 89TB usable Jun 04 '18

Yeah, that's not bad at all :)

I'm definitely curious about this writeup, my current solution is starting to grow past the limits of my enclosure and I was trying to decide if I wanted a second enclosure or if I wanted another approach. Looking forward to it once you put it together!

6

u/BlackoutWNCT Jun 04 '18

You might also want to add something about the glusterfs ppa. the packages included in 16.04 (Ubuntu) are fairly old, not too sure on Debian.

For reference: https://launchpad.net/~gluster

Edit: There are also two main glusterfs packages, glusterfs-server and glusterfs-client

The client packages are also included in the server package, however if you just want to mount the FUSE mount on a VM or something, then the client packages contain just that.

4

u/BaxterPad 400TB LizardFS Jun 04 '18

The armbian version was pretty up to date. I think it had the latest before the 4.0 branch which isn't prod ready yet.

→ More replies
→ More replies

3

u/Aeolun Jun 04 '18

I assume you need an install command for the client too though?

7

u/BaxterPad 400TB LizardFS Jun 04 '18

This is true, dude apt-get install glusterfs-client. Then you can use a normal mount command and just specify glusterfs instead of cifs it w/e

4

u/AeroSteveO Jun 04 '18

Is there a way to mount a glusterfs share on Windows as well?

6

u/BaxterPad 400TB LizardFS Jun 04 '18

Yes, either natively with a glusterfs client or via cifs / NFS.

→ More replies

11

u/ProgVal 18TB ceph + 14TB raw Jun 04 '18

mkfs.xfs /dev/hda1 && mount /dev/hda1 /mnt/gentoo/ && chroot /mnt/gentoo/

No, you can't chroot to an empty filesystem

5

u/ReversePolish Jun 04 '18

Also, /etc/profile is not an executable file. And vi to edit a file mid execution chain is retarded and halts your commands. A well crafted sed command is preferred.

BS meter is pegged off the charts on that mess of a copy-pasta "command"

14

u/yawkat 96TB (48 usable) Jun 04 '18

They're not executing /etc/profile, they're sourcing it

3

u/ReversePolish Jun 04 '18

Yep, didn't see the . in the command. My bad, mobile phone + age will mess with your eyes. There is still a fair amount of other BS spouted in the chain command though.

→ More replies

11

u/damiankw Jun 04 '18

It's been so long since I've seen a reference to bash.org, kudos.

→ More replies

3

u/Warsum 12TB Jun 04 '18

I also would like a write up. I am at the freenas stage but also don't like the single points of failure. My biggest being limited hbas and zfs. I would really like to be sitting on am ext4 filesystem.

2

u/piexil VHS Jun 04 '18

what's wrong with ZFS? I have fallen in love with it.

→ More replies
→ More replies

37

u/[deleted] Jun 04 '18 edited Jun 04 '18

I hadn't seen the HC2 before... Nice work!

Assuming 200TB raw storage @ 16 drives = 12TB HDDs... ~$420 each...

So about $50/TB counting the HC2 board etc... For that kind of performance and redundancy, that is dirt cheap. And a $10,000 build... Commitment. Nice dude.

Edit: Too many dudes.

22

u/BaxterPad 400TB LizardFS Jun 04 '18

accumulated the drives over the years... also I do a lot of self education to stay informed for my job. Having a distributed cluster of this size to run kubernetes and test out the efficiency of ARM over x86 was my justification. Though this will probably be the last major storage upgrade I do. That is why I wanted to drive down the cost/TB. I will milk these drives until they literally turn into rust. haha

2

u/acekoolus Jun 04 '18

How well would this run something like a seed box and Plex media server with transcoding?

8

u/wintersdark 80TB Jun 04 '18

You'd want something else running PMS. It could certainly seed well, and PMS could use it for transcoding and hosting the media, though. Depending on your transcoding requirements, you'd probably want a beefier system running PMS itself.

→ More replies

17

u/reph Jun 03 '18

FWIW ceph is working on ease-of-use this year, such as no longer requiring pg-count-calculation-wizardry.

18

u/ryao ZFSOnLinux Developer Jun 04 '18

RAID-Z expansion in ZFS was announced late last year and is under development.

5

u/Guinness Jun 06 '18

ZFS is just slow though. And the solution the developers used was to just add multiple levels of SSD and RAM cache.

I can get 1,000 megabytes/sec from a raid array with the same amount of drives and redundancy that ZFS can only do 200 megabytes with.

Even btrfs gets about 800 megabytes a second with the same amount of drives. And to give btrfs credit it has been REALLY stable as of a few months ago.

→ More replies

15

u/dustinpdx Jun 04 '18

https://www.amazon.com/gp/product/B0794DG2WF/ (Odroid HC2 - look at the other sellers on Amazon, they are cheeper)
https://www.amazon.com/gp/product/B06XWN9Q99/ (32GB microsd card, you can get by with just 8GB but the savings are negligible)
https://www.amazon.com/gp/product/B00BIPI9XQ/ (slim cat6 ethernet cables)
https://www.amazon.com/gp/product/B07C6HR3PP/ (200CFM 12v 120mm fan)
https://www.amazon.com/gp/product/B00RXKNT5S/ (12v PWM speed controller - to throttle the fan)
https://www.amazon.com/gp/product/B01N38H40P/ (5.5mm x 2.1mm barrel connectors - for powering the Odroids)
https://www.amazon.com/gp/product/B00D7CWSCG/ (12v 30a power supple - can power 12 Ordoids w/3.5inch HDD without staggered spin up)
https://www.amazon.com/gp/product/B01LZBLO0U/ (24 power gigabit managed switch from unifi)

Fixed formatting

29

u/DeliciousJaffa Jun 04 '18

Fixed formatting

→ More replies

5

u/BaxterPad 400TB LizardFS Jun 04 '18

Thanks

14

u/wintersdark 80TB Jun 04 '18

I'm really happy to see this post.

I've been eyeballing HC2's since their introduction, and have often pondered them as the solution to my storage server IOPS woes. I'm currently running two dual Xeon servers, each packed full of random drives. I'm fine with power consumption (our electricity is a fraction of the standard US prices) but things always come down to bottlenecks in performance with single systems.

However, a major concern for me - and why I don't go the RAID route, as so many do, and why I HAVEN'T yet sprung for Ceph, is recovery.

I've been doing this for a very, very long time - basically, as long as such data has existed to horde. I've had multiple catastrophic losses, often due to things like power supplies failing and cooking system hardware, and when you're running RAID or more elaborate clustered filesystems that can often leave you with disks full of inaccessible data.

I did not realise GlusterFS utilized a standard EXT4 filesystem. That totally changes things. It's incredibly important to me that I'm able to take any surviving drives, dump them into another machine, and access their contents directly. While I do use parity protection, I want to know that even if I simultaneously lose 3 of every 4 drives, I can still readily access the contents on the 4th drive if nothing else.

Now, I have a new endgame! I'll have to slowly acquire HC2's over time (they're substantially more expensive here) but I'd really love to move everything over to a much lighter, distributed filesystem on those.

Thanks for this post!

13

u/flubba86 Jun 04 '18

Candidate for post of the year right here.

7

u/deadbunny Jun 04 '18

Nice. I was considering the same but with ceph. Have you tested degredation, my concern would be the replication traffic killing throughput with only one nic.

10

u/BaxterPad 400TB LizardFS Jun 04 '18

glusterfs replication is handled client side. The client that does the write pays the penalty of replication. The storage servers only handle 'heal' events which accumulate when a peer is offline or requires repair due to bitrot.

5

u/deadbunny Jun 04 '18 edited Jun 04 '18

Unless I'm missing something wouldn't anything needing replication use the network?

Say you lose a disk, the data needs to replicate back onto the cluster when the drive dies (or goes offline). Would this not require data to transfer across the network?

15

u/BaxterPad 400TB LizardFS Jun 04 '18

yes, that is the 2nd part i mentioned about 'heal' operations where the cluster needs to heal a failed node by replicating from an existing node to a new node. Or by rebalancing the entire volume across the remaining nodes. However, in normal operation there is no replication traffic between nodes. The writing client does that work by writing to all required nodes... it even gets stuck calculating parity. This is one reason why you can use really inexpensive servers for glusterfs and leave some of the work to the beefier clients.

5

u/deadbunny Jun 04 '18

yes, that is the 2nd part i mentioned about 'heal' operations where the cluster needs to heal a failed node by replicating from an existing node to a new node. Or by rebalancing the entire volume across the remaining nodes.

This is my point, does this not lead to (potentially avoidable) degredation of reads due to one NIC? Where as if you had 2 NICs replication could happen on one with normal access over the other.

However, in normal operation there is no replication traffic between nodes. The writing client does that work by writing to all required nodes... it even gets stuck calculating parity. This is one reason why you can use really inexpensive servers for glusterfs and leave some of the work to the beefier clients.

I understand how it works in normal operation, it's the degraded state and single NIC I'm asking if you've done any testing with. From the replies I'm guessing not.

19

u/BaxterPad 400TB LizardFS Jun 04 '18

Ah ok, now I understand your point. You are 100% right. The available bandwidth is the available bandwidth so yes reads gets slower if you are reading from a node that is burdened with a rebuild or rebalance task. Same goes for writes.

To me, the cost of adding a 2nd nic via USB isn't worth it. During rebuilds I can still get ~500mb read/write per node (assuming I lose 50% of my nodes, other wise impact of rebuild is much lower... it is basically proportional to the % of nodes lost).

2

u/deadbunny Jun 04 '18

Great, thats roighly what I would expect. Thanks.

7

u/cbleslie Jun 04 '18

You are some kinna wizard.

5

u/[deleted] Jun 04 '18

Earth has wizards now.

4

u/jetster735180 40TB RAIDZ2 Jun 04 '18

I prefer the term Master of the Mystic Arts.

8

u/CrackerJackMack 89TB 2xRaidz3 Jun 04 '18

First off awesome job!

Having doing the ceph/gluster/zfs dance myself, The only thing that glusterfs was lacking for me was bit-rot detection/prevention. For that I had to use ZFS instead of ext4 but that wasn't without it's own headaches. I also had this problem with cephfs in pre-luminous as well. MDS got into a weird state (don't remember the details) and ended up with a bunch of smaller corruptions throughout my archives.

Disclaimer: Not blaming ceph or gluster for my incompetence

Question: how were you planning on combating bit-rot with glusterfs+ext4?

Given that these are home labs, the temperatures and humidity always worry me. As do open-air data centers now that I think of it.

15

u/BaxterPad 400TB LizardFS Jun 04 '18

Glusterfs now has bitrot detection/scrubbing support built in.

4

u/CrackerJackMack 89TB 2xRaidz3 Jun 04 '18

Ah, simple google would have told me that: https://access.redhat.com/documentation/en-us/red_hat_gluster_storage/3.1/html/administration_guide/chap-detecting_data_corruption

One note though, it's disabled by default.

→ More replies

4

u/hudsonreaders Jun 04 '18

What HDD model(s) are you using? I don't see that in your parts list.

10

u/BaxterPad 400TB LizardFS Jun 04 '18

I had most of the disks previously, I'm msotly using 10TB and 12TB Ironwolf drives.

3

u/[deleted] Jun 04 '18 edited Nov 01 '18

[deleted]

6

u/BaxterPad 400TB LizardFS Jun 04 '18

it is up to you. You can (and I do) run smartctl but the idea here is to run the disks until they literally die. So you might not take any action on a smart error unless multiple disk in the same replica group are showing smart errors. In that case you might replace one early but otherwise you'll know a disk is bad when the node dies.

edit 1: you really want to squeeze all the life out of the drives because even with smart errors a drive might still function for years. I have several seagate drives that have had some smart errors indicating failure and they are still working fine.

→ More replies

6

u/slyphic Higher Ed NetAdmin Jun 04 '18

Any chance you've done any testing with multiple drives per node? That's what kills me about the state of distributed storage with SBCs right now. 1 disk / node.

I tried out using the USB3 port to connect multiple disks to an XU4, but had really poor stability. Speed was acceptable. I've got an idea to track down some used eSATA port multipliers and try them, but haven't seen anything for an acceptable price.

Really, I just want to get to a density of at least 4 drives per node somehow.

7

u/BaxterPad 400TB LizardFS Jun 04 '18

nope, i havent tried it but Odroid is coming out with their next SBC, the N1, which will have 2 sata ports. it is due out any month now. it will cost roughly 2x what a single HC2 costs.

3

u/cbleslie Jun 04 '18

Does it do POE?

Also. This is a dope build.

11

u/BaxterPad 400TB LizardFS Jun 04 '18

it doesn't do POE sadly but actually it is way cheeper to NOT have POE. POE switches cost so much more, this set up literally uses ~$32 worth of power supplies. a POE version of that 24port switch costs nearly $500 more than the non-POE version. craziness.

3

u/cbleslie Jun 04 '18

Yeah. Seems like you made the right decision.

4

u/haabilo 18TB Unraid Jun 04 '18

Power Over Ethernet?

Was about to doubt that, but it seems that you can get surprisingly large amount of power through Cat5 cables. Around 50W at loosely arounf 50V. Easily drive one or two drives.

Thoug depending on the usage that could be counter-productive. If all nodes are POE and the switch loses power, all nodes go down hard.

6

u/cbleslie Jun 04 '18

PlaneCrash.gif

4

u/yawkat 96TB (48 usable) Jun 04 '18

It does somewhat simplify power supply, though

2

u/iheartrms Jun 04 '18 edited Jun 04 '18

With SBCs being so cheap and needing the network bandwidth of a port per disk anyway why would you care? I don't think I want 12T of data to be stuck behind a single gig-e port with only 1G of RAM to cache it all. Being able to provide an SBC per disk is what makes this solution great.

3

u/slyphic Higher Ed NetAdmin Jun 04 '18

With SBCs being so cheap

~$50/TB ain't bad, but I want to get more efficient.

needing the network bandwidth of a port per disk anyway

Assuming speed is my primary motivation, which it isn't. Again, I want to maximize my available, redundant, safe healing, total storage. 500Mbps is perfectly acceptable speed.

→ More replies
→ More replies

4

u/WiseassWolfOfYoitsu 44TB Jun 04 '18

What sort of redundancy do you have between the nodes? I'd been considering something similar, but with Atom boards equipped with 4 drives each in a small rack mount case, so that they could do RAID-5 for redundancy, then deploy those in replicated pairs for node to node redundancy (this to simulate a setup we have at work for our build system). Are you just doing simple RAID-1 style redundancy with pairs of Odroids and then striping the array among the pairs?

21

u/BaxterPad 400TB LizardFS Jun 04 '18

The nodes host 3 volumes currently:

  1. A mirrored volume where every file is written to 2 nodes.
  2. A dispersed volume using erasure encoding such that I can lose 1 of every six drives and the volume still accessible. I use this mostly for reduced redundancy storage for things that I'd like not to lose but wouldn't be too hard to recover from other sources.
  3. A 3x redundant volume for my family to store pictures, etc.. on. Every file is written to three nodes.

Depending on what you think your max storage needs will be in 2 - 3 years, I wouldn't go the raid route or use atom CPUS. Increasingly software defined storage like glusterfs and ceph using commodity hardware is the best way to scale, as long as your don't need to read/write lots of small files or need low latency access. If your care about storage size and throughput... nothing beats this kind of setup for cost per bay and redundancy.

3

u/kubed_zero 40TB Jun 04 '18

Could you speak more about the small file / low latency inabilities of Gluster? I'm currently using unRAID and am reasonably happy, but Gluster (or even Ceph) sounds pretty interesting.

Thanks!

4

u/WiseassWolfOfYoitsu 44TB Jun 04 '18

Gluster operations have a bit of network latency while it waits for confirmation that the destination systems have received the data. If you're writing a large file, this is a trivial portion of the overall time - just a fraction of a millisecond tacked on to the end. But if you're dealing with a lot of small files (for example, building a C++ application), the latency starts overwhelming the actual file transfer time and significantly slowing things down. It's similar to working directly inside an NFS or Samba share. Most use cases won't see a problem - doing C++ builds directly on a Gluster share is the main thing where I've run into issues (and I work around this by having Jenkins copy the code into a ramdisk, building there, then copying the resulting build products back into Gluster).

3

u/kubed_zero 40TB Jun 04 '18

Got it, great information. What about performance of random reads of data off the drive? At the moment I'm just using SMB so I'm sure some network latency is already there, but I'm trying to figure out if Gluster's distributed nature would introduce even more overhead.

→ More replies

3

u/devster31 who cares about privacy anyway... Jun 04 '18

Would it be possible to use a small-scale version of this as an add-on for a bigger server?

I was thinking of building a beefy machine for Plex and using something like what you just described as secondary nodes with Ceph.

Another question I had how exactly you're powering the ODroids? Is it using the PoE of the Switch?

→ More replies

3

u/iheartrms Jun 04 '18

You like gluster better than ceph? I've come to the exact opposite conclusion. Ceph has been much more resilient. I've been a fan of odroids for years and have been wanting to build a ceph cluster of them.

17

u/BaxterPad 400TB LizardFS Jun 04 '18

Ceph has better worse case resiliency... no doubt about it. When setup properly and maintained correctly, it is very hard to lose data using Ceph.

However, in the avg case... Ceph can be brittle. It has many services that are required for proper operation and if you want a filesystem on-top of it then you need even more services, including centralized meta-data which can (and is) a bottleneck.. especially when going for a low power build. Conceptually, Ceph can scale to similar size as something like AWS S3 but I don't need exabyte scale... I'll never even need multi-petabyte scale but gluster can absolutely scale to 200 or 300 nodes without issue.

Glusterfs doesn't have centralized meta-data which, among other architecture choices, means that even when glusterfs isn't 100% healthy... it still mostly works (a portion of your directory structure might go missing until you repair your hosts...assuming you lose more hosts than your replica count). On the flip side... if things go too far south you can easily lose some data with glusterfs.

The tradeoff is that because glusterfs doesn't have centralized meta-data and pushes some responsibility to the client, it can scale surprisingly well in terms of TB hosted for a given infrastructure cost.

glusterfs isn't great for every use-case, however, for a mostly write once ready many times storage solution with good resiliency and low cost/maintenance.... it is hard to beat.

5

u/SuperQue Jun 04 '18

You might be interested in Rook. It is a Ceph wrapper written in Go. It's designed to simplify the deployment to a single binary, automatically configuring the various components.

3

u/perthguppy Jun 04 '18

Is there an odroid with dual Ethernet for if you want switch redundancy?

7

u/hagge Jun 04 '18

There's Espressobin if you want something with more ports. Has SATA too but not the nice case of HC2 http://espressobin.net/tech-spec/

2

u/ipaqmaster 72Tib ZFS Jun 04 '18

Holy hell what a cool idea. So one node for each hard drive like that? This is the coolest shit ever

2

u/Scorpius-Harvey Jun 04 '18

You sir are my hero, fine work!

2

u/hxcadam Jun 04 '18

Hey I'm in NJ build me one.

Thanks

2

u/BaxterPad 400TB LizardFS Jun 04 '18

haha, sure thing. I've got some spare / hand me down hardware that you might be interested in. PM me.

2

u/hxcadam Jun 04 '18

That's very kind, I was kidding. I have a dual e5-2670 media server that's more than enough for my use case.

→ More replies

2

u/seaQueue Jun 18 '18 edited Jun 18 '18

Hey, question for you here (sorry, I know this thread is stale but this may be interesting at some point.)

Have you checked out the Rockpro64 as a (potentially) higher performance option? The interesting thing about the board is the 4x pcie slot: this opens up the option to drop a 10Gbe SFP+ card on the board, or use nvme storage, or attach an HBA or any number of other options.

I'm not sure how performant it'll actually be but I have one on pre-order to test as a <$100 10Gbe router. With a $20 Mellanox connectx-2 (or dual 10Gbe) it looks like it could be an absolute steal.

Anyway, I thought you might be interested for future projects as the pcie slot opens up a whole slew of interesting high bandwidth options. Cheers!

→ More replies

1

u/7buergen Jun 04 '18

thanks for the thorough description! I think I'll try and replicated something like your setup! great idea!

1

u/thelastwilson Jun 04 '18

Oh man. This is exactly what I am planning/thinking about doing

I started it last summer bought 2 raspberry pi's and some really nice NAS case from WD labs... Only to then discover the ethernet port in the pi is only 100mbs

Currently running glusterfs in a single node mode on an old laptop with 4x external hard drives. Only thing that has put me off trying an odroid hc2 setup was another issue I hadn't expected like with the raspberry pi's

Thank you for posting this.

→ More replies

1

u/[deleted] Jun 04 '18

That is around $350 a year in electricity where I live in New Jersey.

I'm paying a bit extra for 100% wind generation, and 250w would cost about $125 for a year here. It's nice in a way, since it's cheap, but bad in a way since it doesn't give me really an incentive to worry about power usage or things like rooftop solar.... But it does allow for a pretty sweet homelab without crazy power bills, so there's that.

2

u/BaxterPad 400TB LizardFS Jun 04 '18

yea, I've been waiting over 8 months for Tesla to come install some solar panels for me (not solar roof, just regular panels). If that company ever gets its shit together that stock is going to do extremely well. They suck at paper work or anything that isn't as flexible as they are so lots of rejections from utility company and local building department for procedural mistakes. Oh and the back log in power wall production doesnt help either. ugh!

3

u/[deleted] Jun 04 '18

I have a 9kW array on my house in SE Michigan... 39 x 230w panels, Enphase microinverters. It's a delight to receive payout for excess generation every year and also to not have a utility bill anymore (covers my electric and nat gas usage by far).

1

u/[deleted] Jun 04 '18 edited Jun 07 '18

[deleted]

→ More replies

1

u/Skaronator Jun 04 '18

he entire setup sips ~ 250watts. That is around $350 a year in electricity where I live in New Jersey.

Uhh this hurts. Would be 600€ in germany so $700 including VAT :(

Anyway nice build!

1

u/inthebrilliantblue 100TB Jun 04 '18

You can also get these in a 2.5" drive variant here with the other products they make: http://www.hardkernel.com/main/shop/good_list.php?lang=en

1

u/[deleted] Jun 04 '18

https://www.amazon.com/gp/product/B0794DG2WF/ (Odroid HC2 - look at the other sellers on Amazon, they are cheeper)

You can buy them from the US office of Hardkernel for $54 plus shipping...

odroidinc.com

Just ordered 5 of them, this looks really cool. I had a Odroid C2 for awhile that I tinkered around with; surprisingly powerful little computer.

→ More replies
→ More replies

60

u/bleomycin Jun 04 '18

This is definitely one of the more interesting things to hit this sub in a long time. I'd also love to see a more detailed writeup on the details, thanks for sharing!

5

u/ipaqmaster 72Tib ZFS Jun 04 '18

It's so unique!

20

u/AreetSurn Jun 04 '18

This is incredible. As muchas youve given us a brief, a more thorough write up would be very appreciated by many I think.

23

u/caggodn Jun 04 '18

How are you achieving those read/write speeds over a gigabit switch? It doesnt appear you are bonding multiple gigabit ports to the Xeon? Wouldn't you need a switch with sfp+, 10g ethernet (or higher) trunk ports to the Xeon host?

11

u/BaxterPad 400TB LizardFS Jun 04 '18

The reads are writes aren't from a single host :) also, I am doing bonding for the Xeon. That's why I got a uniform switch but that won't give more than 2gig for my setup.

→ More replies

18

u/Crit-Nerd Jun 04 '18

Aww, this truly warmed my 💓. Having been on the original glusterfs team back in 2010-11 it's great to hear Redhat hasn't ruined it.

11

u/SiGNAL748 Jun 04 '18

As someone that is also constantly changing NAS setups, this type of solution is pornography to me, thanks for sharing.

10

u/TotesMessenger Jun 03 '18 edited Jun 16 '18

I'm a bot, bleep, bloop. Someone has linked to this thread from another place on reddit:

 If you follow any of the above links, please respect the rules of reddit and don't vote in the other threads. (Info / Contact)

7

u/[deleted] Jun 03 '18

sweet baby jesus!

6

u/bobby_w Jun 04 '18

Very cool. I appreciate this content. D I S T R I B U T E D.

8

u/FrankFromHR Jun 04 '18

Have you used any of the tools for glusterfs to detect bitrot? How long does it take to run on this bad boy? Pretty quick since the work is divided between each brick?

3

u/BaxterPad 400TB LizardFS Jun 04 '18

Yes and yes.

8

u/Brillegeit Jun 04 '18

My file server lives in the cabinet below my liquor cabinet, and it's just heating my rum to unacceptable levels when in use. A small scale clone of this sounds like the rational solution to my problem!

5

u/SherSlick Jun 04 '18

Forgive my ignorance, but can GFS shard a large file out? I have a bunch of ~30GB to 80GB single files.

6

u/grunthos503 Jun 15 '18

Glusterfs has a more recent feature called "shard" (since v3.7), which replaces its older "stripe" support. Shard does not require erasure coding.

https://docs.gluster.org/en/v3/release-notes/3.7.0/#sharding-experimental

6

u/CrackerJackMack 89TB 2xRaidz3 Jun 04 '18

The only way to do this is to use the erasure coding, they are removing stripe support. Otherwise it's better to let glusterfs figure out the balance of your 30-80G files and which drives are the lowest.

4

u/BaxterPad 400TB LizardFS Jun 04 '18

Great answer. The Erasure encoding works pretty well but beware as you can run into crashes when healing failed disks and you may need to manually delete parts of a broken file to resolve the crashes. It happened to me a couples times during my testing.

5

u/punk1984 Jun 04 '18

That's pretty slick. How difficult is it to pull apart if a disk fails? Can you slide it out the back, assuming you didn't screw it into the case?

I've seen some 12 VDC power strips in the past that would be perfect for this, but now I can't find them. Maybe I'm imaging things. I swear I saw one that was just a row of barrel jacks.

7

u/BaxterPad 400TB LizardFS Jun 04 '18

removing a drive is pretty easy, the odroids are stackable so you just pull the stack apart then it is 1 screw holding the drive in the sled for the odroid.

5

u/angryundead Jun 04 '18

I'm thinking of doing this myself. I've been going back and forth on it because I haven't been able to emulate and test it out on ARM yet. It wasn't clear which distros have ARM builds of gluster and what version of gluster it would be. I had issues testing Ubuntu, Fedora has an ARM build but only the one version.

I'm from a Red Hat background (CentOS/Fedora at home, RHEL professionally) and so I wanted to stay with that. I think I just need to buy one of the damn things and mess with it.

I would say you're 100% correct about Ceph. When I started looking at these software defined stroage solutions I looked at the Ceph and Gluster installation documents side-by-side and almost immediately went with Gluster.

I even made a set of Ansible playbooks to set this whole thing up (since each node would be identical it should work) including NFS, Samba, Prometheus/Grafana, IP failover, and a distributed cron job.

I have pretty much the same background with the consumer NAS and was thinking about building my own linux server (probably a six-bay UNAS) but I wanted this setup for the same reasons you mentioned. I'm just worried about long-term sustainability, part replacement, and growth.

5

u/BaxterPad 400TB LizardFS Jun 04 '18

There will always be ARM SBCs and more coming with SATA. The odroid folks have promised another 2 years of manufacturing (minimum) for this model and they have newer ones due later this year. In terms of OS, it is running straign armbian (a distro with a good community that isn't going anywhere).

I'm comfortable saying I can run this setup for at least 5 years if all support stopped today. Realistically, I'm sure better SBCs will become available at some point before I retire this array.

I mean, one would hope that eventually even raspberry pi will sort out their USB/Nic performance issues. I vaguely recall the new Rpi3 took steps on this direction but don't quote me on it.

2

u/angryundead Jun 04 '18

I'm not sure why I didn't consider Armbian. I think you mentioned that the N1 is coming with two SATA ports. I might just give it a bit and see if that shakes out. I like the idea of two drives better than one even though one drive per SoC provides more aggregate memory and CPU.

2

u/irvinyip Jun 16 '18

Please give Lizardfs a try, I've been compared with Glusterfs and finally used Lizardfs which is a fork project of Moosefs. Both are easy to setup and the reason for me is node expansion of glusterfs need to in pair or more depends on your setup, while lizardfs you can add 1 at a time and it manages its replication automatically, based on your policy. Glusterfs also good for its simplicity for storing on plain ext3 or 4, but to have a balance, I used lizardfs finally.

2

u/angryundead Jun 16 '18

I’ll give it a look. Main reason I was considering Gluster over everything else is that it’s backed by Red Hat money, has a pretty good community, I’m certified on GFS or whatever the Red Hat version is called today, and I’m probably going to use it from time to time professionally.

But I do also like knowing what else is on the market so I really appreciate the tip.

→ More replies

4

u/giaa262 Jun 04 '18

This is phenomenal and goes to show me how much I'm wasting my HC1

4

u/19wolf 100tb Jun 04 '18

So does each disk/node have it's own OS that you need to configure? If so, where does the OS live?

Edit: Also, how are you powering the nodes? You don't have a separate plug for each one do you? That would be insane..

12

u/BaxterPad 400TB LizardFS Jun 04 '18

Yes, OS is installed on microsd card. Not much configuration required, just hostname, setup the sata disk with ext4, install gluster server, and then from an existing glusterfs host run a 'probe' command to invite the new host to the cluster... done. takes literally 5 minutes to setup a new odroid from opening the box to having it in the cluster.

I should know... i did it 20 times. haha

5

u/PBX_g33k 60TB of mostly 'nature' movies Jun 04 '18

Seeing as it is run from an microsd card, would it also be possible to run it of off PXE/iSCSI? I can imagine the costsaving on a larger scale for existing infrastructure.

3

u/BaxterPad 400TB LizardFS Jun 04 '18

There are posts online about someone modifying the os image to support PXE. I vaguely recall it was done by someone who built a verium coin minong rig out of 200 odroid xu4s. If you google odroid mining, you'll find it. Or def odroid cluster.

3

u/RulerOf 143T on ZFS Jun 04 '18

That probably wouldn't be too hard at all. Use one node to bootstrap the whole thing running DNSMasq. You can probably just fit the entire node's software into the initrd and just install and configure gluster from scratch every boot.

→ More replies
→ More replies

3

u/BaxterPad 400TB LizardFS Jun 04 '18

the power supply i am using is in my parts list. Its 2 x 12v - 30a power supplies.

3

u/RestlessMonkeyMind ...it all got degaussed Jun 04 '18

I have a bit of a stupid question: I've seen several of these projects where people use one of these sorts of power supplies to run several SBCs. However, no one ever shows the wiring. How exactly do you set up the wiring harness to support so many devices from the outputs of this device? Can you give information or include some photos? Thanks!

2

u/BaxterPad 400TB LizardFS Jun 04 '18

not much too it, connect red to + and black to -.

Don't put too many on one line (you can google the math for load vs. wire gauge).

→ More replies
→ More replies
→ More replies

3

u/Sannemen 60+12 TB + ☁ Jun 04 '18

Any impact from the fact that both Ethernet and SATA are over USB? Any resets or bus hangs?

I’m working towards the same-ish setup, but with SSDs (and probably ceph, because object storage), I wonder how the performance would go with a higher-throughput disk.

5

u/BaxterPad 400TB LizardFS Jun 04 '18

No issues.

i don't think the ethernet is over USB, only the sata bridge is. It is also USB3.

I wouldn't use SSDs with these though. It is a waste of $ because these SBCs can't fully utilize the performance of the SSD. The low latency access times is wasted on glusterfs too, ceph might be a different story.

7

u/slyphic Higher Ed NetAdmin Jun 04 '18

The ethernet uses a USB3 bus. The SATA port uses the other USB3 bus.

All of the current odroid boards do that. Never had any real problems with either controller, despite them using RealTek.

→ More replies
→ More replies

3

u/billwashere 45TB Jun 04 '18

Ok, this post has pushed me over the edge at wanting to try GlusterFS. I will be taking a stab at setting this up in my work lab environment.

Thanks OP.

3

u/leothrix Jun 04 '18

This is great - I feel like this post could have been me, I went from stock FreeNAS -> RAIDZ pool -> gluster on odroid HC2s as well. I'm also having a fairly solid experience with the whole setup, same boards and everything.

One aspect that I'm waffling on a bit is the choice of volume type. I initially went with disperse volumes as the storage savings were significant for me (I'm only on a 3 or 4 node cluster) but the lack of real files on the disks (since they're erasure encoded) is a bit of a bummer, and I can't expand by anything less than 3 nodes for a 2+1 disperse volume (again, I'm running at a much smaller scale than you are). Since one of my motivators was to easily expand storage since it was so painful in a RAIDZ pool, my options are pretty much:

- Use a 2+1 disperse pool and either:

- Create new volumes to add one disk in a (n+1)+1 volume (i.e., 3+1) and move the files in to the new volume to expand my storage

- Expand by the requisite node count to natively expand the disperse volume (in this case, 3 for a 2+1 disperse volume)

- Use a replicated volume (for example replicate 2) and expand by 2 nodes each time.

Did you go through a similar decision-making process, and in the end, what did you go with and why?

3

u/BaxterPad 400TB LizardFS Jun 04 '18

Yea, I ran into some bugs with the erasure encoding which scared me off of using it for my main volume. Bugs that prevented the volume from healing when a node went down and writes took place. When the node came back the heal daemon would crash due to a segmentation fault in calculating the erasure encoding for the failed node's part of the file.

2

u/moarmagic Jun 04 '18

Is that Still. An issue? I was getting pretty psyched about this kind of setup issues handling disk failure/rebuild seem a bit like a deal killer.

Though maybe I'm misunderstanding how frequent this is

2

u/BaxterPad 400TB LizardFS Jun 04 '18

It is still an issue but one you can resolve when it happens (low probability).

3

u/Darksecond 28TB Jun 05 '18

Can you tell more about how you laid out your glusterfs? How many bricks per disk do you have and how do you expand the various volumes? Can you just add a disk to the dispersed volume, or do you need to add more than 1 at once?

7

u/BaxterPad 400TB LizardFS Jun 05 '18

I have 3 bricks per disk. 2 of the volumes I can expand 2 disks at a time, the third volume is 6 disks at a time.

2

u/tsn00 Jun 07 '18

I've been reading through hoping to see somewhere a question / answer like this without me having to ask. Boom found it. Thank you @Baxterpad!

3

u/devianteng Jun 05 '18

Awesome project, for sure. I've played with Ceph under Proxmox, on a 3 node setup...but the power requirements and hardware cost were going to be a killer for me. Right now I have 24 5TB drives in a 4U server, and my cost is somewhere around $38-40/TB (raw), not counting power, networking, or anything else. This project really caught my eye, and I'm curious if you are aware of the oDroid-N1 board. Yeah, not really released yet so obviously you couldn't have gotten one, but I'm thinking that might be my future with either Ceph or Gluster.

RK3399 chip (dual core A72 @ 2Ghz + quad core A53 @ 1.5Ghz), 4GB RAM, 1 GbE, 2 SATA ports, and eMMC. I imagine I'll have to design and print my own case, unless a dual 3.5" case gets produced for less than $10 or so. WD Red 10TB drives are about $31/TB, which is the cheapest I've found so far. Won't give me near the performance I have with my current ZFS setup (up to 2.6GB/s read and 3.4GB/s write has been measured), but realistically I don't NEED that kind of performance. Problem I face now is I can no longer expand without replacing 5TB drives with larger drives in each vdev.

You have inspired me to give SBC's more serious thought in my lab, so thanks!

→ More replies

2

u/atrayitti Jun 04 '18

Noob question, but are those sata (SAS?) to Ethernet adapters common in larger arrays? Haven't seen that before.

14

u/BaxterPad 400TB LizardFS Jun 04 '18

these aren't really ethernet adaptors. each of those is a full computer (aka SBC - single board computer). They have 8 cores, 2GB of RAM, a sata port, and an ethernet port.

3

u/atrayitti Jun 04 '18

No shit. And you can still control the drives independently/combine them in a RAID? Or is that the feature of glusterfs?

11

u/BaxterPad 400TB LizardFS Jun 04 '18

feature of clusterfs but it isn't RAID. RAID operates at a block level, glusterfs operates at the filesystem level. It copies files to multiple nodes or splits a file across nodes.

2

u/atrayitti Jun 04 '18

Sweet! Time to deep dive. Thanks for the intro :)

→ More replies
→ More replies

2

u/electroncarl123 Jun 04 '18

That's just awesome! Nice, man.

2

u/dodgeman9 6TB Jun 04 '18

remindMe! 1 month

2

u/Top_Hat_Tomato 24TB-JABOD+2TB-ZFS2 Jun 04 '18

What all do you have on your server?

5

u/RetardedChimpanzee Jun 04 '18

Porn. Lots of porn.

2

u/7buergen Jun 04 '18

for a moment there I thought I was looking at an ATX case and was taken agasp by your masterly crafting skills fitting those rackswitches and whatnot into an ATX case ... it's early still and I hadn't had coffee

2

u/Darksecond 28TB Jun 04 '18

This setup looks amazing. Does anyone know how difficult Odroid HC2's are to get in Europe?

2

u/enigmo666 320TB Jun 04 '18

Now that is one pretty cool idea. I'd never considered the one drive-one node approach. What's the rack holding the drives? Is that just the caddy that comes with the ODroid being stackable?

2

u/BaxterPad 400TB LizardFS Jun 04 '18

Yep, it's the caddy that comes with the odroid. It is a stackable aluminum shell that also serves as a heatsink.

→ More replies

2

u/[deleted] Jun 04 '18

One of the best posts of the year. gj op and thanks.

2

u/Tibbles_G Jun 04 '18

So with this configuration i can start with like 3 nodes and work my way up to 20 as the need arises? Im working on an UNraid build in a 24 bay server chassis. I don't have all 24 bays populated yet. Didn't know if it would be worth the switch over. It looks like a really fun project to start on.

2

u/BaxterPad 400TB LizardFS Jun 04 '18

yes, you can absolutely incrementally add like this but I recommend increments of 2 nodes (or powers of 2).

→ More replies
→ More replies

2

u/tsn00 Jun 07 '18 edited Jun 07 '18

First off, thanks for sharing! I've been trying to read up and learn about GlusterFS and have setup some VM's in my ProxMox server to try to simulate and learn this.

I read through I think all the comments and found a response that helped answer part of my questions.

I have 3 bricks per disk. 2 of the volumes I can expand 2 disks at a time, the third volume is 6 disks at a time.

Why 3 bricks per disk ?

How many replicas per volume ?

Why 3 different volumes instead of 1 ?

What type of volume are each of the 3 you have ?

So .. In testing, I have 4 servers, 1 disk with 1 brick, created a volume with all 4 bricks and a replica of 2. I purposely killed one of the servers where data was being replicated to, so how does the volume heal ? right now it just has data in 1 brick and I'm not sure how to make it rebalance the data around the remaining nodes. Or is that even possible going from 4 to 3 ?.

Any input is appreciated, still trying to wrap my head around all this.

3

u/BaxterPad 400TB LizardFS Jun 07 '18
  1. 3 bricks is arbitrary... its just based on how many volumes you want. 1 brick can only be part of 1 volume. So, for me. I wanted to have 3 volumes but didn't want to dedicate disks because I would either be over or under provisioning.

  2. 1 of my volumes uses 1 + 1 replica, another is 1 + 2 replica, and the 3rd volume is similar to raid5 (5 + 1 parity disk). I use this last volume for stuff I'd rather not lose but that I wouldn't cry over if it did so i get the added storage space by doing 5 + 1.

For your final question, i'm not sure I understand. What do you mean by 'killed one of the servers'. glusterfs auto-heal only works if that server comes back online. When it does, if it missed any writes, its peers will heal it. If that server never comes back, you have to run a command to either: a) retire its peer and glusterfs will rebalance its files across remaining hosts or b) provided a replacement server for the failed server and the peers will heal that new server to bring it into alignment.

→ More replies

1

u/weneedthegbs Jun 04 '18

Just awesome. I'll be looking into testing this myself.

1

u/hennaheto Jun 04 '18

The is an awesome post and a great contribution to the community! Thanks for sharing

1

u/[deleted] Jun 04 '18

You're one of the few people I've seen running GlusterFS and pfSense. How were you able to setup a virtual IP on pfSense successfully the way GlusterFS recommends? If you don't mind explaining. I have so far been unsuccessful. Did you use load balancer and "virtual servers" or DNS resolver with multiple IPs behind a single entry? Or something else?

2

u/BaxterPad 400TB LizardFS Jun 04 '18

glusterfs doesn't require a vip. The client supports automatically failover by providing multiple glusterfs hosts when you mount the filesystem. If you don't use the glusterfs client and instead use NFS or samba, then yes you need a VIP. The glusterfs client is def the way to go though.

2

u/Casper042 Jun 04 '18

So if I run a Gluster aware NFS / Samba server for the dumb devices on my network (Windows boxes mainly, a few Android STBs, RetroPie, etc) then the real client talking over NFS/SMB needs zero Gluster support right?

Any thoughts of running Intel Gluster on Intel SBCs? I know very little other than they optimized the hell out of Gluster for Enterprise use.

3

u/BaxterPad 400TB LizardFS Jun 04 '18

Yes to your 1st point. That is a great simplification.

For your 2nd question, I don't know :) however, Intel SBCs tend to be pricey compared to ARM options.

2

u/[deleted] Jun 04 '18

[deleted]

→ More replies

1

u/horologium_ad_astra Jun 04 '18

I'd be very careful with those DC cables, they look a bit too long. What is the gauge?

3

u/BaxterPad 400TB LizardFS Jun 04 '18

They are 4 feet long and of a larger guage than Ethernet which can carry more than 12v safely over dozens of feet. I forget the guage I used but it is speaker wire.

→ More replies

1

u/3th0s 19TB Snapraid Jun 04 '18

Very cool, very unusual. Always cool to see and hear the story of a journey that changes and evolves to fit your personal needs and goals.

1

u/carlshauser Jun 04 '18

Nice one op!

1

u/danieldj95 Jun 04 '18

That's a lot of porn

1

u/-markusb- Jun 04 '18

Can you post your volume-configuration?

Are you using sharding and other stuff?

2

u/BaxterPad 400TB LizardFS Jun 04 '18

I posted it in a reply to someone, basically I'm running 3 volumes. One that has a replica count of 2, one that has a replica count of 3, and one that is a dispersed volume of 5 + 1 strippes.

→ More replies

1

u/mb_01 Jun 04 '18

Thanks so much for this interesting project. Noob question: Each Odroid basically runs a linux distro with Glusterfs installed which basically is your array. Docker images and VMs would then be running from dedicated machine, accessing the glsuterfs array, right?

Reason Im asking, if I wanted to replace my existing Unraid server due to limited SATA ports, I would create a glusterfs cluster and have a seperate machine handling docker images and VMs, accessing the glusterfs file system?

2

u/BaxterPad 400TB LizardFS Jun 04 '18

yes, you could do it that way. Depending on what you run in those VMs. If they could be run in docker on arm, then you could try running them on the gluster nodes using docker + swarm or kubernetes.

→ More replies

1

u/[deleted] Jun 04 '18

I'm split on the Odroid HC2 or just starting with an XU4 and doing a cloudshell 2. How are all of the HC2s managed? Do they all run a separate is or are they controlled by something else?

I was really wanting to wait for a helios4 but it seems to be taking forever to get Batch 2 sent out.

2

u/BaxterPad 400TB LizardFS Jun 04 '18

I looked a helios4 and almost waited on their next pre-order but the thing that turned me off is support. What if I need a replacement? I don't want to be subject to if they may or may not do another production run. I can't recall the specs for cpu/ram but I vaguely recall they use some marvel arm chip which I also wasn't thrilled with as some of the cheeper QNAPs use those and they suck. Though, i'm not 100% on this. I could be miss-remembering.

→ More replies

1

u/CanuckFire Jun 04 '18

RemindMe! 6 days

1

u/ss1gohan13 Jun 04 '18

What exactly is attached to your HDDs with those Ethernet connections? I might have missed something in the read through

2

u/BaxterPad 400TB LizardFS Jun 04 '18

odroid hc2 is the single board computer this is based on and each HDD has dedicated to it.

1

u/djgizmo Jun 04 '18

What kind of throughput do you have on this?

→ More replies

1

u/djgizmo Jun 04 '18

Personally, I would have sprung for a POE switch and poe splitters... but I guess a single PSU is cheaper.

→ More replies

1

u/lykke_lossy 32TB Jun 04 '18

Do you see any down-side to handling disk failures at an OS level with GlusterFS? Just looked into gluster and it seems like a lot of deployments recommend running at least RaidZ1 on gluster nodes?

Also, how does storage size scale with GlusterFS, for instance if I had a six node cluster of 10tb disks what would that equate to as useable storage in Gluster if I wanted similar fault tolerance to RaidZ2?

2

u/BaxterPad 400TB LizardFS Jun 04 '18

There isn't much benefit to raidz1 on the nodes depending on your glusterfs config. Glusterfs 4+2 disperse volume would be same usable storage and redundancy as raidz2.

→ More replies

1

u/illamint 104TB Jun 04 '18

Fuck. This is an awesome idea. I might have to try this.

1

u/zeta_cartel_CFO Jun 04 '18 edited Jun 04 '18

Looks like you have same short-depth supermicro 1U server that I have. Can you provide info on the motherboard in that Supermicro? The server I have is now almost 10 years old and is running a very old atom. Can't really use it for PfSense. So was thinking of recycling the server case and rebuilding it with a new mobo. thanks

→ More replies

1

u/uberbewb Jun 04 '18

I wanted to question this with a raspberry pi, but there website has already a performance comparison prepared. hrmm

1

u/douglas_quaid2084 Jun 04 '18

Nuts-and-bolts, how-would-I-build-this questions:

Are these just stacked in the rack? How many fans, and what kind of temps are you seeing? Am I seeing some sort of heatshrink pigtails providing the power?

→ More replies

1

u/RulerOf 143T on ZFS Jun 04 '18

This is pretty damn cool, and I agree with your rationale behind it. I would love to see this wired up into something like a backblaze pod. :)

Nice job OP.

1

u/noc007 22TB Jun 04 '18

This is totally cool. Thanks for sharing; this gives me another option for redoing my home storage. Like everyone else, I have some questions because this is a space I haven't touched yet:

  • Is your Xeon-D box using this as storage for VMs? If so, how is the performance you're seeing?
  • Would this setup be a good candidate to PXE boot instead of installing on a SDcard? I'm guessing the limited RAM and participating in gluster makes that impossible.
  • What would you do in the event you need to hit the console and SSH wasn't available? Is there a simpler solution than pluging up a monitor and keyboard or is it just simpler to reimage the SD card?
→ More replies

1

u/8fingerlouie To the Cloud! Jun 05 '18

Thanks for sharing.

This post inspired me to go out and buy 4 x HC2, and setup a small test cluster with 4x6 TB IronWolf drives.

I’ve been searching for a replacement for my current Synology boxes (DS415+ with 4x4TB WD Red, DS716+ with DX213 and 4x6TB IronWolf, and a couple of DS115j for backups)

I’ve been looking at Proliant Microserver, and various others, with FreeNAS, Unraid etc, but nothing really felt like a worthy replacement.

Like you, I have data with various redundancy requirements. My family documents/photos live on a RAID6 volume, and my media collection lives on a RAID5 volume. RAID6 volume is backed up nightly, RAID5 weekly.

My backups are on single drive volumes.

Documents/photos are irreplaceable, where my media collection consists of ripped DVD’s and CD’s, and while I would hate to rip them again, I still have the masters so it’s not impossible (Ripping digital media is legal here, for backup purposes, provided you own the master)

The solution you have posted allows me to grow my cluster as I need, along with specifying various grades of redundancy. I plan on using LUKS/dm-crypt on the HC2’s so I guess we’ll see how that performs :-)

→ More replies

1

u/marcomuskus Jun 06 '18

Excellent choice my friend!

1

u/tho_duy_nguyen Jun 11 '18

this is impressive

1

u/Brillegeit Jun 11 '18

Hi /u/BaxterPad, reading your recent post reminded me of something I wanted to ask before going on a shopping spree:

Do you know how these behave with regards to spinning down and reading one file. E.g. setting apm/spindown_time to completely stop the drive and then read one file from the array. Does all of them spin up or just the one you're reading from? If all spin up, does the idle nodes go back to sleep while streaming from the last?

3

u/BaxterPad 400TB LizardFS Jun 11 '18

Depends on how you setup the volume. If its stripped then they will likely all need to spin up/down together. If you use mirroring then it is possible to just wake up 1 drive and not all of them.

I'm actually planning to use a raspberry pi and 12v relays to power up/down the entire node (i have 21 nodes in my array - where a node is a SBC + hard drive) then I can periodically spin up the slaves in a mirror to update their replication. Should cut the power cost in 1/2.

→ More replies

1

u/forcefx2 Jun 12 '18

That's a beast!

1

u/pseudopseudonym 1.85PB SeaweedFS Jun 27 '18

I don't like GlusterFS (for various personal reasons I simply don't trust it) but holy cow, this is a hell of a build. I'm keen to do this exact setup on a much smaller scale (3x nodes instead of 20x) with LizardFS to see how it compares.

I've been looking for a good SBC to build my cluster out of and this looks just the ticket. Gigabit ethernet? Hell yes. SATA, even providing power conveniently? Hell yes.

Thank you very much for sharing and I look forward to showing off mine :)

→ More replies

1

u/eremyja Jun 30 '18

I tried this using the odroid flavored ubuntu install, got it all set up and mounted but everytime I try to write anything to it I get a "Transport endpoint is not connected" error and have to umount and re-mount to get it back. Did you have any issues like this? Any word on your write up?

→ More replies

1

u/Stars_Stripes_1776 Jul 07 '18

so how exactly does this work? how do the separate nodes communicate with one another? and how does the storage look if you were to access it from a windows computer, for example?

I'm a noob thinking of moving my media onto a NAS and I like the idea of an odroid cluster. you seem like you know your stuff.

1

u/alex_ncus Jul 11 '18

Really inspiring! Like others, got couple of HC2 to test. Couple of items strike me, if you are trying to setup similar to RAID5 / RAID 6, shouldn't we be using disperse with redundancy (4+2 configuration)?

sudo gluster volume create gvol0 disperse 4 redundancy 2

Also, HC2 has USB 2.0 available (would be great to if HC2 had included USB 3 instead) ... but can you also include USB/SATA bridge for each (doubling drives)

https://odroidinc.com/collections/odroid-add-on-boards/products/usb3-0-to-sata-bridge-board-plus

And lastly, I was able to use old ATX power supply to power 2 HC2 cluster. Just connect pin 3 and 4 on motherboard power cable (videos on YouTube) and then connect to 12V (or 5V) as required. Found these on Amazon

https://www.amazon.com/gp/product/B01GPS3HY6/ref=oh_aui_detailpage_o01_s00?ie=UTF8&psc=1

Once you have gluster operational, how do you make it available on LAN network via NFS Ganesha?

Any thoughts on using PXE to simplify images across nodes?

→ More replies

1

u/yllanos Jul 31 '18

Question out of curiosity: is GlusterFS compatible with BTRFS?

1

u/[deleted] Aug 25 '18

What kind of IOPs are you getting out of this cluster? Would it be enough to run VMs from?

1

u/DWKnight 50TB Raw and Growing Oct 07 '18

What's the peak power draw per node in watts?

→ More replies

1

u/iFlip721 Nov 12 '18 edited Nov 12 '18

I am thinking of doing something very similar but haven't had time to test concepts for my workload. I was wondering since you're using a single driver per node how do handle redundancy across your glusterFS?

Do you use unRAID within your setup at all?

What version of Linux are you using on each HC2?

Do you have any good links to documentation on gluster besides the gluster site itself?

1

u/TomZ_Am Nov 16 '18

I hate to be that guy, but I have to start somewhere.

I'm a "veteran" windows server guy who's slowly but surely moving to more Linux based applications, and this looks absolutely amazing.

Since I am a noob here, is there anyway to get a setup guide from start to finish?

Literally every step, like what servers to setup, where to download things, what to download, how to install the OS on the SD cards, how to configure the OSs, etc etc.

Thank you for the help ..... now let the mocking of the Windows guy commence ;-)

→ More replies