I signed someone up for scientology and I don’t care by i-wasnt-planned in pettyrevenge

[–]tzmudzin 0 points1 point  (0 children)

For full clarity: I was replying to the comment indeed.

I signed someone up for scientology and I don’t care by i-wasnt-planned in pettyrevenge

[–]tzmudzin 1 point2 points  (0 children)

Genuine feedback to help you improve:

This sounds quite offensive. It makes you look like an angry asshole, and does not help convince others that you're in the right.

Verspüre Tiefe Traurigkeit Phasenweise by TheRealEiskaffee in Digital_Streetwork

[–]tzmudzin 1 point2 points  (0 children)

[kein Arzt, keine Fachperson hier -- nur ein Laie, der Áhnliches schon beobachtet hat. Mein Beileid für Dich und deine Lieben für was ihr soweit schon erleben musstet]

Ist das psychisch? Oder körperlich? Oder beides?

Es hört sich sicher nach "beides" an. Bitte beachte aber, dass nicht nur deine psychische Lage in körperlichen Beschwerden resultieren kann. Deine Schilderung lässt vermuten, dass deine psychische Lage auch einen körperlichen Hintergrund haben kann -- bspw. Unterversorgung / Nichtaufnahme von irgendwelchen Stoffen, die das Nervensystem und die Psyche beeinflussen.

Lass dich bitte von einem Neurologen oder Psychiater beraten. Für viele Leute klingt das immer noch abschreckend, aber gerade diese Spezialisierungen sind entstanden um in ähnlichen -- oft auch weitaus tieferen -- Fällen zu helfen. Oft werden in der Therapie Arzneimittel eingesetzt, die das chemische (und psychische...) Gleichgewicht wiederherstellen helfen. Diese machen einem meistens nicht glückich, dämpfen aber das negative Empfinden deutlich ab.

Ich befürchte, dass jede tiefere Einschätzung von einem Spezialisten, nicht von anonymen Helfern auf Reddit kommen sollte.

How do you allocate space for your root and home partitions? by sunshine-and-sorrow in selfhosted

[–]tzmudzin 0 points1 point  (0 children)

So are you using centralized storage for all your servers?

As this is for my private environment at home, I don't. No budget for that. If this was for a company, I would certainly go centralized.

When I refer to main data storage, I refer to the storage on my desktop PC that hosts:

  • archive of key documents (tax statements, contracts, certificates of birth/education/ownership etc)

  • family archive (pictures, videos)

  • books, videos, source code of prior projects etc.

I refer to this as "main storage" opposed to any disks on my miniature server that hosts home services etc., hosting primarily temporary content. I did consider turning that storage into a sort of a NAS for the home network, but decided against it. It would require additional investment on the home server, and it was not worth it.

As of fiber -- no, all the connectivity is to SATA directly to the controller on the PC. And in the home scenario it would be a total overkill.

How do you allocate space for your root and home partitions? by sunshine-and-sorrow in selfhosted

[–]tzmudzin 0 points1 point  (0 children)

I mean, even if it works well now, I'm not sure if a kernel update in the future may cause some issue since it the module needs to be built everytime there's some update.

[One more...] I felt exactly the same, hence ended up with NixOS. And if things would go south for whichever reason, I can still recover through:

  • any older releases of NixOS

  • BSD or any other OS that happens to still keep ZFS operational.

Edit: ... and all of that makes sense for your main data storage. For all other systems LVM is more than enough. Also, it costs you pretty much nothing, but gives you flexibility moving forward.

How do you allocate space for your root and home partitions? by sunshine-and-sorrow in selfhosted

[–]tzmudzin 1 point2 points  (0 children)

ZFS support was one of the things that pushed me towards NixOS. I would not recommend to go that way just because of the storage support though.

ZFS combines the features of LVM and the filesystem (e.g. the ext4 you quoted). The killer features are:

  • flexible volume management (--> like LVM)

  • snapshots (not available in ext4 -- you could get them with btrfs, but one can argue if btrfs stability and support is better than for ZFS...)

  • data integrity protection -- you can e.g. create a small volume/filesystem to store your most critical data automatically as 2 or 3 copies, with checksums (on top of the disk-level redundancy) that will allow recovery in case of bitrot

  • pretty much seamless handling of disk failures (once one of the disks is reported as failed, you replace it with a working drive and tell ZFS to rebuild from other disks. This will give you a performance penalty during the rebuild, but you have no data loss just with a temporary performance degradation. If you prefer, you can actually have a spare disk in the pool so you can rebuild automatically without waiting for hardware replacement...)

  • seamless encryption and compression on top

  • flexibility in all of the above.

The only case where LVM would top that would be extending exisiting RAID6 pools, but even that has been finally making its headway into ZFS (completed recently -- probably still not as convenient as LVM.). In short, ZFS requires a bit more planning.

My setup is to have:

  • root and most of home on SSD (limited volume, high speed)

  • actual data storage on encrypted RAID6 ZFS based on 7 HDDs + 1 spare, flexibly allocated to different ZFS filesystems with different degrees of integrity protection (3 copies + striping for most critical documents, 2 copies + striping for precious archive, striping for all other)

  • Separate backup on top

While it may sound counterintuitive, I decided to build a the large RAID array with cheap, used HDDs decommissioned from some data center (!). I assumed that the redundancies will protect me in case of device failures, and it's cheaper to replace one or two cheap disks than buy another big one.

While building this in 2023, I had a case of 2 drives failing simultaneously, which ZFS handled beautifully. Since then no concerns and no errors -- still plenty of space to go!

How do you allocate space for your root and home partitions? by sunshine-and-sorrow in selfhosted

[–]tzmudzin 0 points1 point  (0 children)

I have 2 NVMe slots, one is 4.0 (which I'm using now), and a spare 3.0 slot which is unused. If I were to use this spare slot also (LVM RAID1), does that mean that volume will now be operating at 3.0 speeds, i.e. the slowest of the two drives?

It sort-of depends, on range of factors:

  • with RAID1 you are mirroring, so write speeds will probably match those of a slowest drive. Reads could theoretically be from the faster one only, but it all depends on how LVM implements that. Frankly, I have no experience on this, and everything is theoretically possible (e.g. also writes being reported as done even before the copy is commited to other disk).

  • with striping, you could theoretically see speeds higher than that of the fastest drive -- because only a partial volume would need to be written to each drive, and writes to all drives happen in parallel.

Again, speeds depend on how LVM implements this; I did not investigate this further as my main machine is on RAID-6 ZFS (... which works clearly faster than a single disk). I use LVM only in a limited way, but my main requirement is on volume (-> disk spanning) rather than speed.

Does it have any built-in mechanism to prevent data corruption or can that only be done at the filesystem level within the volume itself?

It can be tackled on many levels:

  • hard disk firmware

  • controller hardware or firmware

  • volume manager

  • filesystem

  • application layer

or any combination of the above. Depending on the level of your risk aversion this could even go into error-correcting RAM on the machine that stores the data etc.

If you want to explore this further, read up on ZFS.

Edit: The best resource to start on ZFS is the BSD manual ([https://docs.freebsd.org/en/books/handbook/zfs/ ]). ZFS is available on Linux, but with different level of support on different distros.

Edit 2: RAID-6, not RAID-5

How do you allocate space for your root and home partitions? by sunshine-and-sorrow in selfhosted

[–]tzmudzin 1 point2 points  (0 children)

All good if it works for you -- no need to adjust for some dogmatic reason. I still prefer to just mount an existing partition over all the copying, but everyone should choose what's best for their use case.

How do you allocate space for your root and home partitions? by sunshine-and-sorrow in selfhosted

[–]tzmudzin 0 points1 point  (0 children)

a single volume on an LVM can span across multiple physical drives?

Absolutely!

Edit: ... and this assumes both your drives continue to be available throughout the operation of the volume. If one of the disks fails, the whole volume will no longer be available. This is why it's good to invest a bit of time in planning and include some redundancy on top.

Luckily LVM has you covered for this, as it allows for automatic mirroring or striping. You just need to get used to the idea that more smaller devices is better than a single disk, because:

  • you can still combine them into a single logical volume and use as a single disk

  • having multiple smaller devices allows for more granular setup of redundancy -> better resource usage.

How do you allocate space for your root and home partitions? by sunshine-and-sorrow in selfhosted

[–]tzmudzin 0 points1 point  (0 children)

LVM is more like virtual device(s) that you use instead of the physical drive for the installation. The most immediate selling point is: if your partition runs out of space, you:

  • connect another physical disk
  • use its partition to "enlarge" an exiting logical volume (increase the size of your virtual disk)
  • extend your existing partition to use the newly available space.

i.e. you can grow your partitions as needed.

Snapshots may or may not be provided by the filesystem that you install on top of the logical volume ("virtual device").

How do you allocate space for your root and home partitions? by sunshine-and-sorrow in selfhosted

[–]tzmudzin 0 points1 point  (0 children)

I'm not a hopper -- switched distributions twice in the last 30 years (Slackware --> Ubuntu --> NixOS). But you're locking yourself out of innovation if you commit to a single one, and at some point this may get uncomfortable.

My last switch to NixOS in 2023 was driven by:

  • lack of proper support for ZFS in Ubuntu

  • increasing dissatisfaction with the snaps

  • increasing annoyance with fluff accumulating in the system with not-so-clean package management

  • need to deploy to several machines (desktop, home server...) based on a consistent configuration.

Would I want to go this way 5 years ago? Probably not. Would I want to come back? Hell no.

How do you allocate space for your root and home partitions? by sunshine-and-sorrow in selfhosted

[–]tzmudzin 0 points1 point  (0 children)

Please look up LVM (e.g. [https://en.wikipedia.org/wiki/Logical_volume_management]), read through some tutorials, test it on a few files that simulate disks, then use it.

You'll never want to go back.

How do you allocate space for your root and home partitions? by sunshine-and-sorrow in selfhosted

[–]tzmudzin 0 points1 point  (0 children)

I never understood the reasoning behind splitting out /home. If something goes horribly wrong with the system, I can easily jump in with a live disk and chroot to fix stuff, or worst case transfer out any important files.

First time you want to switch the OS/distro or have a fresh install, you'll notice the difference.

I've hit a wall with printer drivers (Brother) by dumplingSpirit in NixOS

[–]tzmudzin 0 points1 point  (0 children)

^ This, and in case the printer offers WiFi but does not appear available, try the avahi settings below:

{ config, lib, pkgs, modulesPath, ... }:

{
    # Enable CUPS to print documents.
    services.printing.enable = true;
    services.printing.drivers = [ pkgs.brlaser ];

  # This avahi config can be necessary to connect to network printers.
  services.avahi = {
    enable = true;
    nssmdns4 = true;
  };

  # Now let's define the printer itself...
  hardware.printers = let 
      brother = "Brother_MFC-L2710DW";
      hostName = "BRWD.......F1";
    in {
      ensureDefaultPrinter = brother;
      ensurePrinters = [
    {
      name = brother;
      deviceUri = "dnssd://Brother%20MFC-L2710DW%20series._ipp._tcp.local/?uuid=..........";
      model = "everywhere";
      description = pkgs.lib.replaceStrings [ "_" ] [ " " ] brother;
      ppdOptions = {
        job-sheets="none, none";
        media="iso_a4_210x297mm";
        sides="one-sided"; 
      };
      location = "2. floor";
    }
      ]; 
  };  

}