Interested in Linux, FOSS, data storage systems, unfucking our society and a bit of gaming.

Nixpkgs committer.

https://github.com/Atemu
https://reddit.com/u/Atemu12 (Probably won’t be active much anymore.)

  • 0 Posts
  • 13 Comments
Joined 4 years ago
cake
Cake day: June 25th, 2020

help-circle
  • Your home router probably has no clue where that is, so it goes to its upstream router and asks if they know, this process repeats until one figures it out and you get a route.

    That’s not how that works. The router merely sends the packet to the next directly connected router.

    Let’s take a simplified example:

    If you were in the middle of bumfuck nowhere, USA and wanted to send a packet to Kyouto, Japan, your router would send the packet to another router it’s connected to on the west coast*. From your router’s perspective, that’s it; it just sends it over and never “thinks” about that packet again.
    The router on the west coast receives the packet, looks at the headers, sees that its supposed to go to Japan and sends it over a link to Hawaii.
    The router in Hawaii again looks at the packet, sees that it’s supposed to go to Japan and sends it over its link to Toukyou.
    The router in Toukyou then sends it over its link to Kyouto and it’ll be locally routed further to the exact host from there but you get the idea.

    This is generally how IP routing works; always one hop to the next.

    What I haven’t explained is how your router knows that it can reach Kyouto via the west coast or how the west coast knows that it can reach Kyouto via Hawaii.
    This is where routing protocols come in. You can look up how exactly these work in detail but what’s important is their purpose: Build a “map” of the internet which you can look at to tell which way to send a packet at each intersection depending on its destination.

    In operation, each router then simply looks at the one intersection it represents on the “map” and can then decide which way (link) to send each individual packet over.
    The “map” (routing table) is continuously updated as conditions change.

    Never at any point do routers establish a fixed route from one point to another or anything resembling a connection; the internet protocol is explicitly connectionless.

    * in reality, there will be a few local routers between the gateway router sitting in your home and the big router that has a big link to the west coast



  • Note that all of this is in the context of backups; duplicates for the purpose of restoring the originals in case something happens to them. Though it is at least possible to use an index cold storage system like what I describe for more frequent access, I would find that very inconvenient for “hot” data.

    how would you use an index’d storage base if the drives weren’t connected

    You take a look at your index where the data you need is located, connect to that singular location (i.e. plug in a drive) and then copy it into the place it went missing from.

    The difference is that, with an Index, you gain granularity. If you only need file A, you don’t need to connect all 12 backup drives, just the one that has file A on it.


  • The problem is that i didn’t mean to write to the hdd, but to a usb stick; i typed the wrong letter out of habit from the old pc.

    For that issue, I recommend never using unstable device names and always using /dev/disk/by-id/.

    As for the hard drives, I’m already trying to do that, for bigger files i just break them up with split. I’m just waiting until i have enough disks to do that.

    I’d highly recommend to start backing up the most important data ASAP rather than waiting to be able to back up all data.


  • That would require all of those disks to be connected at once which is a logistical nightmare. It would be hard with modern drives already but also consider that we’re talking IDE drives here; it’s hard enough to connect one of them to a modern system, let alone 12 simultaneously.

    With an Index, you also gain the ability to lose and restore partial data. With a RAID array it’s all or nothing; requiring wasting a bunch of space for being able to restore everything at once. Using an index, you can simply check which data was lost and prepare another copy of that data on a spare drive.




  • I’m trying to do that; but all of the newer drives i have are being used in machines, while the ones that arent connected to anything are old 80gb ide drives, so they aren’t really practical to backup 1tb of data on.

    It’s possible to make that work; through discipline and mechanism.

    You’d need like 12 of them but if you’d carve your data into <80GB chunks, you could store every chunk onto a separate scrap drive and thereby back up 1TB of data.

    Individual files >80GB are a bit more tricky but can also be handled by splitting them into parts.

    What such a system requires is rigorous documentation where stuff is; an index. I use git-annex for this purpose which comes with many mechanisms to aid this sort of setup but it’s quite a beast in terms of complexity. You could do every important thing it does manually without unreasonable effort through discipline.

    For the most part i prevented myself from doing the same mistake again by adding a 1gb swap partition at the beginning of the disk, so it doesn’t immediatly kill the partition if i mess up again.

    Another good practice is to attempt any changes on a test model. You’d create a sparse test image (truncate -s 1TB disk.img), mount via loopback and apply the same partition and filesystem layout that your actual disk has. Then you first attempt any changes you plan to do on that loopback device and then verify its filesystems still work.




  • Languages simply don’t agree on how to split the usage of words. Or grammatical case. Or if, when and how to do agreement.

    Just for the sake of example: how are they going to keep track of case in a way that doesn’t break Hindi, or Basque, or English, or Guarani? Or grammatical gender for a word like “milk”? (not even the Romance languages agree in it.) At a certain point, it gets simply easier to write the article in all those languages than to code something to make it for you.

    I don’t know what the WMF is planning here but what you’re pointing out is precisely what abstraction would solve.

    If you had an abstract way to represent a sentence, you would be independent of any one order or case or whatever other grammatical feature. In the end you obviously do need actual sentences with these features. To get these, you’d build a mechanism that would convert the abstract sentence representation into a concrete sentences for specific languages that is correctly constructed according to those specific languages’ rules.

    Same with gender. What you’d store would not be that e.g. some german sentence is talking about the feminine milk but rather that it’s talking about the abstract concept of milk. How exactly that abstract concept is represented in words would then be up to individual languages to decide.

    I have absolutely no idea whether what I’m talking about here would be practical to implement but it in theory it could work.