[Beowulf] Fault tolerance & scaling up clusters (was Re: Bright Cluster Manager)
Roland Fehrenbacher
rf at q-leap.de
Thu May 17 06:00:39 PDT 2018
>>>>> "J" == Lux, Jim (337K) <james.p.lux at jpl.nasa.gov> writes:
J> The reason I hadn't looked at "diskless boot from a
J> server" is the size of the image - assume you don't have a high
J> bandwidth or reliable link.
This is not something to worry about with Qlustar. A (compressed)
Qlustar 10.0 image containing e.g. the core OS + slurm + OFED + Lustre is
just a mere 165MB to be transferred (eating 420MB of RAM when unpacked
as the OS on the node) from the head to a node. Qlustar (and its
non-public ancestors) were never using anything but RAMDisks (with real
disks for scratch), the first cluster running this at the end of 2001 was on
Athlons ... and eaten-up RAM in the range of 100MB still mattered a lot
at that time :)
So over the years, we perfected our image build mechanism to achieve a
close to minimal (size-wise) OS, minimal in the sense of: Given required
functionality (wanted kernel modules, services, binaries/scripts, libs),
generate an image (module) of minimal size providing it. That is maximum
light-weight by definition.
Yes, I know, you'll probably say "well, but it's just Ubuntu ...". Not for
much longer though: CentOS support (incl. OpenHPC integration) coming
very soon ... And all Open-Source and free.
Best,
Roland
-------
https://www.q-leap.com / https://qlustar.com
--- HPC / Storage / Cloud Linux Cluster OS ---
J> On 5/12/18, 12:33 AM, "Beowulf on behalf of Chris Samuel"
J> <beowulf-bounces at beowulf.org on behalf of chris at csamuel.org>
J> wrote:
J> On Wednesday, 9 May 2018 2:34:11 AM AEST Lux, Jim (337K)
J> wrote:
>> While I’d never claim my pack of beagles is HPC, it does share
>> some aspects – there’s parallel work going on, the nodes need to
>> be aware of each other and synchronize their behavior (that is,
>> it’s not an embarrassingly parallel task that’s farmed out from a
>> queue), and most importantly, the management has to be scalable.
>> While I might have 4 beagles on the bench right now – the idea is
>> to scale the approach to hundreds. Typing “sudo apt-get install
>> tbd-package” on 4 nodes sequentially might be ok (although pdsh
>> and csshx help a lot) it’s not viable for 100 nodes.
J> At ${JOB-1) we moved to diskless nodes and booting RAMdisk
J> images from the management node back in 2013 and it worked
J> really well for us. You no longer have the issue about nodes
J> getting out of step because one of them was down when you ran
J> your install of a package across the cluster, removed HDD
J> failures from the picture (though that's likely less an issue
J> with SSDs these days) and did I mention the peace of mind of
J> knowing everything is the same? :-)
J> It's not new, the Blue Gene systems we had (BG/P 2010-2012
J> and BG/Q 2012-2016) booted RAMdisks as they were designed to
J> scale up to huge systems from the beginning and to try and
J> remove as many points of failure as possible - no moving
J> parts on the node cards, no local storage, no local state,
J> Where I am now we're pretty much the same, except instead of
J> booting a pure RAM disk we boot an initrd that pivots onto an
J> image stored on our Lustre filesystem instead. These nodes
J> do have local SSDs for local scratch, but again no real local
J> state.
J> I think the place where this is going to get hard is on the
J> application side of things, there were things like
J> Fault-Tolerant MPI (which got subsumed into Open-MPI) but it
J> still relies on the applications being written to use and
J> cope with that. Slurm includes fault tolerance support too,
J> in that you can request an allocation and should a node fail
J> you can have "hot-spare" nodes replace the dead node but
J> again your application needs to be able to cope with it!
J> It's a fascinating subject, and the exascale folks have been
J> talking about it for a while - LLNL's Dona Crawford keynote
J> was about it at the Slurm User Group in 2013 and is well
J> worth a read.
J> https://slurm.schedmd.com/SUG13/keynote.pdf
J> Slide 21 talks about the reliability/recovery side of things:
J> # Mean time between failures of minutes or seconds for
J> # exascale
J> [...]
J> # Need 100X improvement in MTTI so that applications can run
J> # for many hours. Goal is 10X improvement in hardware
J> # reliability. Local recovery and migration may yield another
J> # 10X. However, for exascale, applications will need to be
J> # fault resilient
J> She also made the point that checkpoint/restart doesn't
J> scale, you will likely end up spending all your compute time
J> doing C/R at exascale due to failures and never actually
J> getting any work done.
More information about the Beowulf
mailing list