Settings

Theme

I'm hosting a website on a RAID0 of 30 floppy drives

totallynormalwebsite.ddns.net

290 points by LarryPage · 160 comments (155 loaded)

Reader

43 threads
Nextgrid

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.

  • LarryPageOP

    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

  • tomxor

    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.

    • Aeolun

      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).

      • genewitch

        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.

      • EvgeniyZh

        I think thumb drives get up to several TB this days

        • Aeolun

          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.

          • semanticist

            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.

          • EUROCARE

            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...

          • EvgeniyZh

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

          • mcpherrinm

            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.

      • genewitch

        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.

    • treve

      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.

      • djbusby

        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.

      • tomxor

        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.

        • eurasiantiger

          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.

        • vintermann

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

      • yencabulator

        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.

    • aetherspawn

      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.

  • reustle

    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?

    • jewel

      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.

      • koverstreet

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

        • rascul

          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.

        • yencabulator

          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.

      • asveikau

        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.

        • Vogtinator

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

          • asveikau

            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.

            • vocram

              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.

              • asveikau

                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.

        • bch

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

          • danachow

            What block layer cache?

            • bch

              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.

  • rootsudo

    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?

    • IntelMiner

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

    • _joel

      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

  • madduci

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

game-of-throws

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.

  • Retr0id

    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...

    • game-of-throws

      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.

      • shakna

        > 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.

        • therein

          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.

          • inDigiNeous

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

      • Retr0id

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

      • birdyrooster

        The link you gave is deleted.

    • q1w2

      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.

      • upwardbound

        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.

    • kop316

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

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

  • _joel

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

    • wahern

      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.... =)

      • kjellsbells

        So rare to see ppl writing about sync.

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

        • yencabulator

          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.

        • aldrich

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

          • znpy

            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”.

        • ericbarrett

          Don't forget to park the hard drive heads!

    • drewzero1

      Oh that write protect could prevent wear and tear!

  • muhammadusman

    that's the point, RAID0 is for speed only

    • Maursault

      > 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.

      • VLM

        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.

hardwaresofton

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

ryanmarr

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.

AnnikaL

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

  • dylan604

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

    • LarryPageOP

      I just do whatever I want

      • dylan604

        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.

    • Ayesh

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

throwaway742

https://web.archive.org/web/20220715175852if_/http://totally...

layer8

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

h2odragon

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.

IncRnd

https://archive.ph/OzYfT

a_c

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

dcambie

Interesting stats at http://totallynormalwebsite.ddns.net/server-status

mikedelago

There's an accompanying video as well:

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

geerlingguy

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

GekkePrutser

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.

deelowe

Not anymore!

hk1337

That has to be one noisy room.

CodeWriter23

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

  • zepearl

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

    Nothing is simple :D

tablespoon

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/

fsiefken

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-...

shortformblog

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

bennyp101

The parcel tape holding bits together is just chefs kiss

lostgame

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.

UberFly

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

iasay

I can hear that dying from here.

Anyone want to try RAID0 on QIC tapes?

dpedu

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

DontchaKnowit

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.

  • justbaker

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

eimrine

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

lizardactivist

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

ISL

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

AddingValue

Well guess not anymore, because the article is down?

pulketo

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

random_savv

Interesting user name

FesterCluck

Totally dig the track, brings back memories.

Zachsa999

Site seems to be really slow currently.

la64710

5.1/4 inch or 3.5 inch ones?

Pakdef

LoL is all I can think of

tolstoshev

The song's not bad!

notnmeyer

all i want to do is see this site :(

> Server uptime: 20 seconds

> Server load: 157.41 158.15 155.66

oh

  • Titan2189

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

mbfg

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

aliqot

pause on the audio doesnt work.

anaganisk

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.

  • fny

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

    • p4bl0

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

    • anaganisk

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

  • murukesh_s

    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..

    • anaganisk

      And edge caching on cloudflare or cloudfront.

      • turdnagel

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

mmh0000

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

MikeAshley178

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

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

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection