Hacker News new | past | comments | ask | show | jobs | submit login
I'm hosting a website on a RAID0 of 30 floppy drives (ddns.net)
290 points by LarryPage on July 15, 2022 | hide | past | favorite | 151 comments



I'd expect the vast majority of IO requests to be served from the kernel's IO cache (we're talking 30 * 1.44MBs here so just under 50MB, trivial for even an old computer to hold in RAM), thus I wouldn't be surprised for it to be very fast and reliable as long as he sticks to read-only workloads - those would never actually touch the floppies beyond the initial read.


I did watch -n 1 'sync; echo 3 > /proc/sys/vm/drop_caches' to try and get around it. I think it's working, because boy is it noisy lol


I'm used to referring to lots of IO as "noisy" or "chatty", but then I imagine sitting next to 30 floppy drives and that brings it to another level.



This is the greatest thing that anyone has done with any computer hardware anywhere, ever. This is more impressive to me than the moon landing. :-)


Make sure you check out his other videos including other compositions he's done.

Star Wars theme: https://youtu.be/3KS02q0BUnY

I Wat to Break Free: https://youtu.be/lbd06i9B2wU


My favourite hardware music is this Radiohead cover from 2008. Blew my mind at the time

https://www.youtube.com/watch?v=pmfHHLfbjNQ


The scanners!! This is incredible!


Ooh I’d love to see/hear a video of that if you’re willing! :)


Yup, even old computers that booted off floppy drives like the Atari ST and Amiga would often just load the entire data and program into memory, since their memory size was usually larger than the floppy disk. Same for the games, a lot of the loading at the beginning was to do with simply loading the entire disk into memory...

basically system memory size vs block device size was the opposite way around of today... then again people could and did have many individual floppy disks.


If we take any portable media as the comparison, the largest I know of is 50GB for a blueray disk, that’s still something you can ‘almost’ load into 32gb of memory (if your OS and Teams app didn’t take 16gb of course).


i have >100GB blu ray media, and that's writeable. So those exist. My BD-R from 2016 reads them correctly and can write them, so it's not some "recent" thing, except maybe the capability to create the media. I think the largest BD-R available are around 120GB.

Luckily, the gen 7 tapes are 10-100 times that large, depending on who you ask. Each disk costs approximately $2-$5 as well, assuming you get some sort of discount. Tapes are more, they hold more, but at a certain point having a disc in a jewel case is better than having some tape. bluray drives are easy to find, tape readers, not so much.


I think thumb drives get up to several TB this days


That sounded a bit crazy to me, so I checked.

I don’t think those are actually several TB. They’re fakes that are advertised as having several TB.


MicroSD cards - about the size of a fingernail - absolutely come in sizes up to 1TB, that's not controversial or dodgy brands selling fakes. There's many brands selling cards at 512GB, ten times your BluRay example.

Portable flash drives using M.2 drives internally could reasonably be up to 8TB, but being at the high end they're expensive.


Samsung is a reputable brand that makes 256 GB and 512 GB SD cards (EVO Plus) - I have good experience with using it in Raspberry Pi. And "thumb drives" - USB sticks absolutely go into TBs - I'm using a 2 TB one, and I've seen colleagues use bigger. And you can put a modern M.2 NVMe SSD into USB-C casing and it's half the size of an old portable SSD...


Ok maybe not several TB, but 1TB seems legit https://www.bhphotovideo.com/c/product/1701503-REG/lexar_ljd...


It’s maybe a bit big to call it a “thumb drive” but I’ve been putting backups on a 2TB usb “portable ssd”. I’ve also got a 256GB thumb drive, which isn’t too far off.


if you take a dvd (dvd5 or dvd9 either way) on a linux machine with ~16GB of memory, and you read the entire disk once - say dd if=/dev/sr0 of=/dev/null - the entire thing will be in memory. You can then use whatever tools you want as if you had the disk in memory, and it will never touch the physical device again.

If i hadn't seen it myself i would have wondered why it wasn't already possible already.


Is this true? This feels hard to imagine that computers would load the entire diskette into memory. Apparently the Atari ST had up to 4MB of RAM.

I can imagine many programs doing this though.


Old systems only ran one program at a time (basically). So boot floppy for OS into RAM, then load program floppy(s). Do the thing, save work to yet another floppy. Close program, maybe have to re-insert an OS floppy (ala MS-DOS). Then new floppy for next program. Only a king a 20MB RLL drive.


That's right I owned an Atari STFM with 4MB of RAM.

As another example You could easily make RAM disks via a desktop menu, to facilitate the common setup of a single built in floppy drive. So you could copy files off into RAM via the GEM desktop GUI (literally drag and drop) and then put another disk in etc.

Random aside: I accidentally found that this machine would transmit audio over FM radio for a short but very useful range automatically.. blew my mind as a kid. I could never find anything official about this online later so not sure if it was an intentional design, poor EM design of the audio chip, or a hack of my particular 2nd hand franken-tari - either way it was super useful to have wireless audio in the 90s.


That’s really interesting, a quick search provided nothing about FM transmission capabilities.

The ”FM” officially stands for Floppy & (RF) Modulator, but that’s some coincidence that the audio chip emits frequency modulated radio waves at a listenable frequency.


RAM disks were surprisingly common on the Amiga (and apparently the high end Ataris as well).


One disk, sure. 30? Well, the parent made a very biased interpretation of history, depending on what one means by "old". I remember running Linux on a 4 MB RAM computer, and how good upgrading to 8 MB felt.


You can even use mdadm to add a ramdisk as a single disk RAID array with write-through to a physical disk.

Every time you reboot, it will repair the array.


If we hit a lot of random sub folder URLs (that should all 404), would that trigger the webserver to check the drive to see if the file exists and skip the cache?


No. The cache is at the block layer, not the file/directory layer. So the filesystem will look up the directory structure, which will be cached.


Actually, no. There is no general block layer cache - the closest thing is the page cache, which is at the file level.


Are you the Kent Overstreet working on bcachefs? If so, I've been watching it and looking forward for it to get into the kernel. Keep up the good work. I'll have a donation coming in a little while.


The one and only :)


I guess the real question there is, does a directory count as a file for the purposes of this discussion.

It seems necessary that the blocks storing the directory entries are cached too. Otherwise every non-existent lookup (that doesn't hit a negative dentry) would hit disk, each separately.

So yeah, the page cache is keyed by file, but the system should still cache the directory structure.


On top of the block layer cache there's also the namei cache for filename to inode lookups, I'm not sure if that covers a file not found case or just a success path, but it may apply here too.


Yep, that's called a "negative dentry".


But if a negative dentry does not yet exist, and a filename is requested for the first time, does it read from the fs?

The DDoS scenario would be doing GET requests of random nonexistent filenames. You could change the name at every step so that the check for a negative dentry is never a cache hit.


If requesting http paths result in accessing the equivalent fs paths, then yes, you can dos it. But nowadays it’s uncommon for a webserver.


Well the point under discussion is that i/o from a floppy disk is slow. Most servers have much faster disks and it'd be absurd to consider this.

Also the page/buffer cache would probably cache the FAT direntries so probably not a huge issue here.


Still backed by block layer cache for (hopefully) quick response regardless of outcome


What block layer cache?


I think I was wrong, typed too quickly. There’s (potentially) a file buffer block cache available, but that’s not for caching raw disk blocks, but filesystem blocks of content.


Would it be more fun to run a live cd webserver only? piece together an old computer, with an old live linux installation, and either run it unupdated or patched and carrying updates it can only apply w/o reboot?


I (briefly) ran an IRC server on a Sega Dreamcast based on the same ideas


A Knoppix 4 CTF doesn't sound too challenging, tbf mate

edit: thinking about it, there's some good educational value, but maybe via vm than plopped on the interwebs :D


Do people do cyberpunk or sci-fi LARPs? An extravagantly unpatched server running on a raspberry pi or something like that would be a kind of fun prop.


They do! http://cyberpunk.jackalope-larp.com/ is run both in-person and online at the same time and apparently has a pretty high production value.


It depends on what you mean for 'old'. At the beginning of 90s even 16MBytes were pretty a luxury.


You're playing with fire using RAID0. If I had data on 30 floppy drives, I'd want at least 20 of them to be parity drives.


Seems like the bitrot is kicking in already. The main JPEG appears to have bitflip errors: http://totallynormalwebsite.ddns.net/megafloppy.jpg

This is what I get, when I download the full image and convert to PNG: https://i.imgur.com/JF4wtMg.png

During the conversion (with imagemagick), I get these errors:

  convert: Corrupt JPEG data: premature end of data segment `megafloppy.jpg' @ warning/jpeg.c/JPEGWarningHandler/403.
  convert: Corrupt JPEG data: found marker 0x74 instead of RST1 `megafloppy.jpg' @ warning/jpeg.c/JPEGWarningHandler/403.
  convert: Corrupt JPEG data: 206 extraneous bytes before marker 0xfb `megafloppy.jpg' @ warning/jpeg.c/JPEGWarningHandler/403.
  convert: Corrupt JPEG data: found marker 0xfb instead of RST2 `megafloppy.jpg' @ warning/jpeg.c/JPEGWarningHandler/403.
  convert: Unsupported marker type 0xfb `megafloppy.jpg' @ warning/jpeg.c/JPEGErrorHandler/345.
Looking closer, all bytes between offset 0x115C00 and 0x11F800 have been set to 0xf6, and all bytes from there until 0x11FC00 have been set to 0.

Bytes from 0x2EFC00 to 0x2F5C00 have been set to 0, followed by 0xf6's all the way until 0x2FFC00.

I'd be curious to know what failure mode(s) conjured the 0xf6's into existence.

Edit: Original version is here https://web.archive.org/web/20220715175852if_/http://totally...


I managed to grab a (hopefully) uncorrupted version somehow. I'm putting it somewhere other than imgur so they don't recompress the image. MD5 d30fcc384a8e2de4fab3056bde42b00b. [EDIT: Removed dead link, use archive.org instead]

> I'd be curious to know what failure mode(s) conjured the 0xf6's into existence.

Today's fun fact: The MS-DOS `format` command fills the disk with 0xf6, not 0x00. Though this is linux running on Mac hardware, reading a disk that should have actual data, so maybe that isn't the reason.


> Today's fun fact: The MS-DOS `format` command fills the disk with 0xf6, not 0x00.

Another fun fact: That character is ö under Windows-1252, the codepage in use by Windows since about Windows 2.0, and some late MS-DOS.


Wow that explains the öööööööö I remember seeing back in the day when I first ever downloaded a hex editor and opened a drive I had raw.


Funny co-incidence, in the Finnish language when you don't know what to say, you can say "Ööh". Data not found.


Perhaps the read head seeked (sought?) to the wrong offset, causing empty blocks to be read.


The link you gave is deleted.


Thanks, edited. I guess they didn't like all the traffic. Luckily archive.org has a copy too.


hmm... is it possible to correct those errors? I have some old images with errors, and I've always wondered if it were possible to fix the individual corrupted bytes to restore at least the remainder of the photos.


Yes it's possible, the SpaceX subreddit community did that to recover imagery from one of the early rocket landings which was corrupted due to poor antenna alignment between the transmitter on the landing barge and the remote receiver.


heh, that's even worse than when I saw it:

https://i.imgur.com/Z2HwkwY.jpeg


Just quickly remove some drives and set the write protect slider on them, problem solved, no data loss


A few years ago I finally bought a USB drive to read an old 3.5" floppy from the late '90s on which I had archived my e-mail messages before moving away to college. I completely forgot about write protection (as well as atime write-backs). I managed to read a surprising amount of data off of the disk, but I think less than if I had remembered to write-protect the disk before inserting it into the drive. The files were in mbox format, probably from Eudora, but possibly Pine. As is my habit, I first poked around with ls and less before copying the files over, and I'm pretty sure I ended up with more corruption than what I first saw with less.

Oh well. The irony is that to this day I have a tick of idly running `sync` at the command prompt, which I developed dealing with floppy and hard disk corruption running early versions of Linux. A crash or (IIRC) even a simple reboot sometimes resulted in disk corruption preventing Linux from booting. Reinstalling Slackware from floppy disks took quite awhile on its own, especially if installing the X11 disk sets, but half the time at least one of the disks would be corrupted, requiring me to download a fresh copy (using Windows--I was dual booting) over my 2400 baud modem, and then restarting the install from scratch. I probably went through this procedure at least a half dozen times, or at least enough to develop the tick. It was the best of times, it was the worst of times.... =)


So rare to see ppl writing about sync.

sync;sync;halt was once a legit way to shut down ;)


There was a time when the sync CLI exited before the work was done, so you actually didn't want sync;sync;halt, typing it as separate commands gave it the right amount of time to complete.


Or maybe three times sync;sync;sync just to make sure :)


I know of a company whose sysadmins still put sync;sync;sync in the scripts they deploy on customers’ machines… just because “you never know”.


Don't forget to park the hard drive heads!


Oh that write protect could prevent wear and tear!


that's the point, RAID0 is for speed only


> RAID0 is for speed only

In this case, the theoretical maximum bandwidth is 24MBit/s.

The problem is the old, slow usb bottleneck. I'm not sure how much faster, probably hundreds of bps rather than under 24, but a faster RAID0 rig would be to instead have 30x Mac G4 Digital Audios connected via gigabit switch, and share then RAID0 the internal floppies. It would also have whatever advantage running an XGrid PPC cluster on Tiger might provide. These boxes also ran PPC Ubuntu; no doubt Linux would eek out a dozen or so more bps, plus beowulf.


I don't know about that BW claim. Back when mp3 was new and computers usually had floppy drives I did the obvious and mp3 bitrates above 64K or so tended to stutter and significantly below 64K did not stutter.

Something like voice encoded at 32K sounded at least as good as a phone and played back off a 1.44 floppy and IIRC that was about the best that could be done.

You will probably be surprised how long an audio recording can be, if its voice at a low rate on one floppy. If you go variable bit rate and silence detection I subjectively remember "ten minutes" was quite reasonable on a 1.44 disk.

Extrapolating from historical experience, thirty or so in parallel should push over half a meg/sec quite reliably.

If you record speech onto a floppy drive off a cheap mic you'll record the sound of the floppy in the recording, which is funny to me.

I wish I still had those files. Useless, of course, but would be funny.


You also have faster and slower floppy drives. This video by Cathode Ray Dude explores some https://www.youtube.com/watch?v=wWwp3vVtElw

He got results ranging from 25 KB/s - 100 KB/s


This is awesome. I already have some suggestions:

- Put a bird^H^H ZFS on it

- Switch to RAID10 (a stripe of mirrors), and go 2/3 floppys wide so you can have some redundancy in each mirror gropu

- Get some Pis (or other SBCs) and hook those up and run Ceph... if this keeps going we'll have a SAN soon enough.

- ZIP disks?[0]

Also, I don't think I ever want to hear of the "hug of death" for any site ever again -- I don't think this site hosted on 30 floppies was hugged to death.

[0]: https://en.wikipedia.org/wiki/Zip_drive


I've got a Power Mac G5 sitting right beside me if someone else wants to buy it and get into this G5 floppy website business.


Me too. We could start a webring! I just need about 27 more USB floppy drives.


But where will you put are the Warez?


Yo, are you serious about that? This feels so interesting.


That’s more the Zip drive era isn’t it?


Yup


See also: his video about RAIDs of floppy drives (https://www.youtube.com/watch?v=1hc52_PWeU8).


Were the "power my car" and "shingle my roof" bits funny? Is this the level of YT videos to get likes?


I just do whatever I want


That's fine, but being a social platform, I assume everyone is a caricature of themselves. Other creators have discussed here the near moronic poster/thumb images getting more clicks vs less overly dramatic versions. So at this point, I assume that the closer to a program that would fit in Idiocracy television programming is the ultimate goal to get those precious likes.


I know it's fine, because they're my videos and I can do whatever I want in them lol


okay, so you're not a caricature of yourself and it's really you


yes, correct!


Yeah those two parts, and those forced laughs came out a bit sour to me too, but it was entertaining watch nonetheless.




Let’s coordinate our web accesses so that it sounds like Floppotron playing the Imperial March.


turn off the error reporting so you get whats read rather than an error interrupt and watch the bitrot. Never did that in linux but it wouldn't surprise me if its a driver option.



Well, did we just hug it to death? Hope the floppies are doing fine... Look forward to an update


Turns out it was not built to handle the load of a "frontpage of hackernews" situation, hehe.


I doubt most "home" level servers could unless they were serving up nothing but a short text file.


Where is the linux page cache when you need it



There's an accompanying video as well:

https://www.youtube.com/watch?v=1hc52_PWeU8


I want to see this hosted from them


Today there's a follow-up video: https://youtu.be/PGWpGMrroi8


I'm surprised this actually still works. As far as I remember those floppies were super unreliable.

Though this may have been caused by me being in school and having to buy crappy white label ones. Couldn't afford those fancy imation ones with all the games I copied lol.


Not anymore!


<sigh> HackerNews we just can't give you anything nice.


That has to be one noisy room.


Probably quieter than the DL360 I bought a few months ago and put on eBay after two hours :)


Oh, is that the one with like 10 1" fans spinning at 8,000 RPM, so that it sounds like a Harrier jet coming in for a landing?



Who wouldn’t want that in their living room?

Oof.


That’s a very accurate description!


Haha, the good old DL360. That fan noise was loud. Let alone the spinning, whining 15k SCSI disks..


Oh god, flashbacks to an early 2000s machine room absolutely full of the bastards.

Thankfully, all entrance doors had an earplug dispenser...


For my next trick, a website hosted on a RAID0 Array of 60 RAM Disks.


We need details - what about ECC yes/no + un/buffered + raid tech (mdadm/zfs/hardware X/...)?

Nothing is simple :D


This looks like it's a page about a related project, and has a video of the RAID in action: https://hackaday.com/2022/06/30/its-raid-with-floppy-drives/


i'd be also interested in hosting a website on 1 floppy drive, including OS. https://bits.p1x.in/floppinux-an-embedded-linux-on-a-single-...


Sean rules and this may be his craziest experiment yet. That’s all.


The parcel tape holding bits together is just chefs kiss


Hahaha, not for long; not on the front page of HN…I can see it’s got the old ‘Hug of Death’, but I’m curious to how long it lasted and how loud the result was.


I'm guessing the floppies are melting right about now.


I can hear that dying from here.

Anyone want to try RAID0 on QIC tapes?


The main jpeg seems dead already, not Rendering on Firefox mobile.


gonna take some kernel hacking to stretch timeouts or a restricted access pattern to avoid seeking, I think.


How much power do the floppy drives draw? I can't decide if it would be more or less than 30 period hard drives.


project is awesome.

Also-

Tell me you're into Chiodos without telling me you're into Chiodos.

Big ol dose of nostalgia listening to your old metalcore tracks.


That was one of my favorite bands as a kid, looooved All's Well That Ends Well.


So fast website, is it possible to shrink it to one floppy for seeing some slowingness?


It's RAID0. If the OP shrank it to one floppy, it would become faster and more reliable.


RAID0 adds both speed and capacity.


I can't even imagine what defragmenting that file-system would sound like.


This is amazing. Website exceeded the high expectations set by the title.


Well guess not anymore, because the article is down?


I wish I have a dumb idea someday... And win some money


Interesting user name


Totally dig the track, brings back memories.


Site seems to be really slow currently.


5.1/4 inch or 3.5 inch ones?


LoL is all I can think of


The song's not bad!


all i want to do is see this site :(

> Server uptime: 20 seconds

> Server load: 157.41 158.15 155.66

oh


Where did you get that information from? I tried loading the site multiple times, but it times out / exhausted my patience


OP had posted a link to a stats page


and..... the most unsurprising thing ever.....


pause on the audio doesnt work.


Imagine a floppy disk based old server surviving “Hug of deaths” while the latest react based static website hosted on Kubernetes for infinite scalability on baremetal dies in like 5 sec.


Imagine indeed. This has been suffocated already it seems. Images can't even finish loading.


Images do not fully load but here I am 35 minutes after you and the website still responds. That's already better than many.


It stayed alive as long it could start going black carbon, much longer than others I think.


The blame would be on baremetal server. They would move to AWS with multi region EKS clusters and RDS with cross-region disaster recovery. And a multi-cloud strategy is also in place..


And edge caching on cloudflare or cloudfront.


Well, edge caching would almost certainly be enough with a decently high TTL. You don't need all that other junk :)


I've corrected the title: "I was hosting a website on a RAID0 of 30 floppy drives — now my house is on fire"


Yes, exactly. I am trying to get to the store for a few min already (from France) and I lost hope.


Wonder how long until I can ruin it with Python and Requests.

P.S I am not going to and I am drunk.




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: