Skip to content

mdadm

Verschoben Linux
  • Info

    raid_pool0 = sda1 = /dev/mapper/raid_pool0
    raid_pool1 = sdb1 = /dev/mapper/raid_pool1
    

    Verschlüsseln

    sudo cryptsetup --key-size 512 --hash sha256 --iter-time 5000 --use-random luksFormat /dev/sda1
    sudo cryptsetup --key-size 512 --hash sha256 --iter-time 5000 --use-random luksFormat /dev/sdb1
    

    Platten entschlüsseln

    sudo cryptsetup open /dev/sda1 raid_pool0
    sudo cryptsetup open /dev/sdb1 raid_pool1
    

    RAID1 anlegen

    sudo mdadm --create /dev/md0 --auto md --level=1 --raid-devices=2 /dev/mapper/raid_pool0 /dev/mapper/raid_pool1 
    
    sudo mkfs.ext4 /dev/md0
    

    Script zum Entschlüsseln und Mounten

    #!/bin/bash
    ###############################################################################$
    #       Autor: Frank Mankel
    #       Verschlüsseltes Raid1 einbinden!
    #
    #       Hardware:
    #       ROCKPro64v2.1
    #       PCIe SATA Karte
    #       2St. 2,5 Zoll HDD Platten a 2TB
    #
    #       Software:
    #       bionic-minimal 0.7.9
    #
    ###############################################################################$
    
    #Passwort abfragen
    echo "Passwort eingeben!"
    read -s password
    echo "Bitte warten......"
    
    #Passwörter abfragen
    echo -n $password | cryptsetup open /dev/sda1 raid_pool0 -d -
    echo -n $password | cryptsetup open /dev/sdb1 raid_pool1 -d -
          
    #Raid1 mounten
    mount /dev/md0 /mnt/raid
    
    echo "Laufwerke erfolgreich gemountet!"
    
  • Wir möchten dieses vorhandene Raid1 auf einem neuen Betriebssystem wieder aktivieren!

    Erstmal was installieren

    sudo apt install cryptsetup
    sudo apt install mdadm
    

    Danach ließ sich das Device /dev/md0 nicht mounten.

    frank@rockpro64:~$ sudo mount /dev/md0 /mnt/raid
    mount: special device /dev/md0 does not exist
    

    Irgendwie logisch. Das haben wir beim letzten Mal ja auch angelegt, ist jetzt aber natürlich nicht angelegt. Ok, wie bekommen wir das jetzt wieder an den Start?

    sudo mdadm --assemble --scan
    

    Danach ist das Device wieder vorhanden und das Script funktioniert wieder wie gewohnt.

  • Mein RAID1 war mal wieder nicht komplett 😞

    Da beide Platten verschlüsselt sind, werden diese erst mal entsperrt.

    cryptsetup open /dev/sda1 raid_pool0
    cryptsetup open /dev/sdb1 raid_pool1
    

    Danach geht es weiter...

    Nach fdisk -l

    Disk /dev/mapper/raid_pool0: 1,8 TiB, 2000395771392 bytes, 3907022991 sectors
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 4096 bytes
    I/O size (minimum/optimal): 4096 bytes / 4096 bytes
    
    
    Disk /dev/md0: 1,8 TiB, 2000260497408 bytes, 3906758784 sectors
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 4096 bytes
    I/O size (minimum/optimal): 4096 bytes / 4096 bytes
    
    
    Disk /dev/mapper/raid_pool1: 1,8 TiB, 2000395771392 bytes, 3907022991 sectors
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 4096 bytes
    I/O size (minimum/optimal): 4096 bytes / 4096 bytes
    

    Mir fehlt das Device /dev/md1 Warum??? Keine Ahnung!!!

    Schauen wir mal nach, was noch lebt.

    root@rockpro64v_2_1:~# mdadm --examine --scan
    ARRAY /dev/md/0  metadata=1.2 UUID=33ac7964:473fe590:3682dd85:a979b336 name=rockpro64v_2_1:0
    

    So, Device md0 lebt 🙂

    Wir mounten das noch lebende Laufwerk.

    mount /dev/md0 /mnt/raid
    

    Danach geschaut, ob mit NFS die Daten erreichbar sind. Alles OK.

    Kurz checken

    root@rockpro64v_2_1:~# cat /proc/mdstat
    Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] 
    md0 : active raid1 dm-0[2]
          1953379392 blocks super 1.2 [2/1] [U_]
          bitmap: 7/15 pages [28KB], 65536KB chunk
    
    unused devices: <none>
    

    Da sieht man das ein Laufwerk fehlt. Dann wollen wir mal adden 😉

    root@rockpro64v_2_1:~# mdadm /dev/md0 --manage --add /dev/mapper/raid_pool1
    mdadm: re-added /dev/mapper/raid_pool1
    

    Jetzt läuft das Recovery

    root@rockpro64v_2_1:~# cat /proc/mdstat
    Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] 
    md0 : active raid1 dm-1[1] dm-0[2]
          1953379392 blocks super 1.2 [2/1] [U_]
          [>....................]  recovery =  1.2% (25185728/1953379392) finish=604.2min speed=53184K/sec
          bitmap: 7/15 pages [28KB], 65536KB chunk
    
    unused devices: <none>
    

    Und Fertig 🙂

    root@rockpro64v_2_1:~# cat /proc/mdstat
    Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] 
    md0 : active raid1 dm-1[1] dm-0[2]
          1953379392 blocks super 1.2 [2/2] [UU]
          bitmap: 0/15 pages [0KB], 65536KB chunk
    
    unused devices: <none>
    

    Daten kontrolliert, noch alles da. Puuuuuh! Aber, warum das Ganze???? Ich bin übrigens jetzt wieder auf Kamils Image und dabei ist mir aufgefallen, das das Recovery wesentlich schneller ging als bei meinem letzten Versuch. Hmm???????

    Zum Schluß noch was aus dem dmesg

    [    8.612039] ata1: SATA max UDMA/133 abar m512@0xfa010000 port 0xfa010100 irq 231
    [    8.612047] ata2: SATA max UDMA/133 abar m512@0xfa010000 port 0xfa010180 irq 231
    [    9.085894] ata1: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
    [    9.123159] ata1.00: ATA-10: ST2000LM015-2E8174, SDM1, max UDMA/133
    [    9.123169] ata1.00: 3907029168 sectors, multi 16: LBA48 NCQ (depth 32), AA
    [    9.172776] ata1.00: configured for UDMA/133
    [    9.173235] scsi 0:0:0:0: Direct-Access     ATA      ST2000LM015-2E81 SDM1 PQ: 0 ANSI: 5
    [    9.173782] sd 0:0:0:0: [sda] 3907029168 512-byte logical blocks: (2.00 TB/1.82 TiB)
    [    9.173792] sd 0:0:0:0: [sda] 4096-byte physical blocks
    [    9.173889] sd 0:0:0:0: [sda] Write Protect is off
    [    9.173896] sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
    [    9.173933] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
    [    9.239218]  sda: sda1
    [    9.240144] sd 0:0:0:0: [sda] Attached SCSI disk
    [    9.649853] ata2: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
    [    9.687095] ata2.00: ATA-10: ST2000LM015-2E8174, SDM1, max UDMA/133
    [    9.687104] ata2.00: 3907029168 sectors, multi 16: LBA48 NCQ (depth 32), AA
    [    9.696476] NFSD: starting 45-second grace period (net f00000a1)
    [    9.736698] ata2.00: configured for UDMA/133
    [    9.737137] scsi 1:0:0:0: Direct-Access     ATA      ST2000LM015-2E81 SDM1 PQ: 0 ANSI: 5
    [    9.739557] sd 1:0:0:0: [sdb] 3907029168 512-byte logical blocks: (2.00 TB/1.82 TiB)
    [    9.739568] sd 1:0:0:0: [sdb] 4096-byte physical blocks
    [    9.739592] sd 1:0:0:0: [sdb] Write Protect is off
    [    9.739597] sd 1:0:0:0: [sdb] Mode Sense: 00 3a 00 00
    [    9.739631] sd 1:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
    [    9.803472]  sdb: sdb1
    [    9.804397] sd 1:0:0:0: [sdb] Attached SCSI disk
    [   22.550770] rk_gmac-dwmac fe300000.ethernet eth0: Link is Up - 100Mbps/Full - flow control off
    [   22.550820] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
    [   42.132977] device-mapper: uevent: version 1.0.3
    [   42.133199] device-mapper: ioctl: 4.39.0-ioctl (2018-04-03) initialised: dm-devel@redhat.com
    [  141.047476] md/raid1:md0: active with 1 out of 2 mirrors
    [  141.061140] md0: detected capacity change from 0 to 2000260497408
    [  522.183161] EXT4-fs (md0): mounted filesystem with ordered data mode. Opts: (null)
    [  559.062705] nfsd: last server has exited, flushing export cache
    [  559.084203] NFSD: starting 45-second grace period (net f00000a1)
    [  840.473519] md: recovery of RAID array md0
    [ 1141.650170] md: md0: recovery done.
    
  • Ok, öfter was Neues 🙂

    Mein Device md0 war weg, das hieß nun /dev/md127 !?!?!

    Gut, etwas gelesen, dann neugestartet.

    Die Datei /etc/mdadm/mdadm.conf geändert

    # mdadm.conf
    #
    # !NB! Run update-initramfs -u after updating this file.
    # !NB! This will ensure that initramfs has an uptodate copy.
    #
    # Please refer to mdadm.conf(5) for information about this file.
    #
    
    # by default (built-in), scan all partitions (/proc/partitions) and all
    # containers for MD superblocks. alternatively, specify devices to scan, using
    # wildcards if desired.
    #DEVICE partitions containers
    
    # automatically tag new arrays as belonging to the local system
    HOMEHOST <system>
    
    # instruct the monitoring daemon where to send mail alerts
    MAILADDR root
    
    # definitions of existing MD arrays
    
    # This configuration was auto-generated on Sat, 20 Oct 2018 09:01:46 +0200 by mkconf
    ARRAY /dev/md0 level=raid1 num-devices=2 metadata=1.20 UUID=33ac7964:473fe590:3682dd85:a979b336
    

    An die Daten, was man da eintragen muss kommt man mit

    rock64@rp64v_2_1_NAS:~$ sudo mdadm --detail /dev/md0
    mdadm: metadata format 1.20 unknown, ignored.
    /dev/md0:
               Version : 1.2
         Creation Time : Sat Oct 20 09:05:51 2018
            Raid Level : raid1
            Array Size : 1953379392 (1862.89 GiB 2000.26 GB)
         Used Dev Size : 1953379392 (1862.89 GiB 2000.26 GB)
          Raid Devices : 2
         Total Devices : 2
           Persistence : Superblock is persistent
    
         Intent Bitmap : Internal
    
           Update Time : Thu Feb  7 20:10:12 2019
                 State : clean 
        Active Devices : 2
       Working Devices : 2
        Failed Devices : 0
         Spare Devices : 0
    
    Consistency Policy : bitmap
    
                  Name : rockpro64v_2_1:0
                  UUID : 33ac7964:473fe590:3682dd85:a979b336
                Events : 66932
    
        Number   Major   Minor   RaidDevice State
           2     252        1        0      active sync   /dev/dm-1
           1     252        0        1      active sync   /dev/dm-0
    

    Nach dem Eintragen der Änderungen den Befehl hier nicht vergessen 😉

    update-initramfs -u
    

    Mal schauen ob das jetzt mal was länger klappt 🙂

  • Nachdem ich die SATA-Karte gewechselt habe, sind meine Probleme verschwunden. Mein NAS läuft seit Monaten einwandfrei.

    rock64@rp64v_2_1_NAS:~$ uptime
     21:57:50 up 73 days,  4:44,  1 user,  load average: 0,00, 0,00, 0,00
    

    https://forum.frank-mankel.org/topic/299/sata-karte-marvell-88se9230-chipsatz/16

  • Update 1.32.4 - Security Fixes!

    Vaultwarden
    1
    0 Stimmen
    1 Beiträge
    90 Aufrufe
    Niemand hat geantwortet
  • Redis ConnectionPool

    Redis
    2
    0 Stimmen
    2 Beiträge
    221 Aufrufe
    FrankMF
    Die Antwort von ChatGPT wie der Redis ConnectionPool funktioniert. Ein paar Dinge finde ich komisch. https://chat.openai.com/share/b10fdadc-2c9b-404a-bc99-c883d110d6af
  • Missing npm on debian 12

    NodeBB
    1
    0 Stimmen
    1 Beiträge
    203 Aufrufe
    Niemand hat geantwortet
  • Redis Insight - Desktop UI

    Redis
    1
    +2
    0 Stimmen
    1 Beiträge
    116 Aufrufe
    Niemand hat geantwortet
  • Crowdsec - Ein fail2ban Ersatz?

    Linux
    2
    +0
    0 Stimmen
    2 Beiträge
    820 Aufrufe
    FrankMF
    Ich kann jetzt hier von meiner ersten Erfahrung berichten und wie CrowdSec mich gebannt hat Was war passiert? Ich war gestern sehr intensiv mit der Konfiguration von Nextcloud <-> Collabora Online beschäftigt. Nachdem ich irgendwie nicht weiterkam habe ich mich der Erstellung eines Dokumentes gewidmet. Nach einiger Zeit war die Nextcloud nicht mehr erreichbar. Ok, hatte ich bei der Konfiguration auch schon mal, den Server einmal neugestartet und fertig. Doch jetzt kam es, Server neugestartet - hilft nicht. Gut, schauen wir mal nach, Der SSH Login ging auch nicht Jetzt war guter Rat gefragt. Zu diesem Zeitpunkt ging ich noch davon aus, das auf diesem Server kein CrowdSec installiert war, sondern fail2ban. Und fail2ban hatte eine sehr kurze Bantime vom 10M. Also blieb wohl nur noch das Rescue System von Hetzner. [image: 1694411392066-488866bc-3dcf-4abc-9e98-6107d65aa4c7-grafik.png] Da hatte ich ja so gut wie gar keine Erfahrung mit. Also mal kurz den Nico angetriggert und es kam folgender Link. https://docs.hetzner.com/de/robot/dedicated-server/troubleshooting/hetzner-rescue-system/ Das Laufwerk war schnell bestimmt und schnell nach /tmp gemountet. Danach musste man sich noch mit chroot in diese Umgebung anmelden. chroot-prepare /mnt chroot /mnt Nachdem das klappte, habe ich eben fail2ban disabled. sysmctl disable fail2ban Danach das Rescue beendet. Der Server startete wieder und ich kam wieder per SSH drauf. Puuh. Bei meiner ersten Kontrolle fiel mir was auf root@:~# pstree systemd─┬─2*[agetty] ├─atd ├─cron ├─crowdsec─┬─journalctl │ └─8*[{crowdsec}] ├─crowdsec-firewa───9*[{crowdsec-firewa}] Wie? Da läuft CrowdSec? Da ich dabei bin die Server auf CrowdSec umzustellen, war das wohl hier schon gemacht, aber leider nicht vernünftig. fail2ban hätte mindestens disabled werden müssen und in meiner Dokumentation war das auch nicht enthalten. 6 setzen! CrowdSec besteht ja aus zwei Diensten, CrowdSec und dem Firewall-Bouncer. Der CrowdSec Dienst lief aber nicht, der war irgendwie failed. Ok, starten wir ihn und schauen was passiert. Nachdem er gestarte war mal die Banliste angeschaut. cscli decisions list ergab diesen Eintrag. 2551501 │ crowdsec │ Ip:5.146.xxx.xxx │ crowdsecurity/http-crawl-non_statics │ ban │ │ │ 53 │ 1h5m55.391864693s │ 1671 Meine IP war gebannt. Dann wissen wir ja , woher die Probleme kamen. cscli decisions delete --id 2551501 Nach Eingabe war der Ban entfernt. Na gut, aber da ich aktuell immer noch an der richtigen Konfiguration von NC <-> CODE bastel, könnte das ja wieder passieren. Was machen? Kurz gegoogelt. Es gibt eine Whitelist. Aha! /etc/crowdsec/parsers/s02-enrich/whitelists.yaml name: crowdsecurity/whitelists description: "Whitelist events from private ipv4 addresses" whitelist: reason: "private ipv4/ipv6 ip/ranges" ip: - "127.0.0.1" - "::1" - "5.146.XXX.XXX" cidr: - "192.168.0.0/16" - "10.0.0.0/8" - "172.16.0.0/12" # expression: # - "'foo.com' in evt.Meta.source_ip.reverse" Danach den Dienst neustarten. Jetzt hoffen wir mal, das es hilft. Zum Schluss noch was, was mir aufgefallen war und was mich auch sehr verwirrt hatte. CrowdSec hatte wegen einem crowdsecurity/http-crawl-non_statics gebannt. Dadurch konnte ich meine subdomain.<DOMAIN> nicht erreichen. Ok, logisch, wenn der Ban von da ausgeht. Ich konnte aber gleichzeitig eine andere subdomain mit derselben <DOMAIN> auch nicht erreichen. Komplett verwirrte es mich dann, als ich eine andere <DOMAIN> auf dem selben Server erreichen konnte. Und zum Schluss ging auch der SSH nicht. Also, wieder viel gelernt..
  • NodeBB - v3.3.0

    NodeBB
    1
    0 Stimmen
    1 Beiträge
    102 Aufrufe
    Niemand hat geantwortet
  • Docker & Redis Datenbank

    Verschoben Linux
    2
    0 Stimmen
    2 Beiträge
    211 Aufrufe
    FrankMF
    @FrankM sagte in Docker & Redis Datenbank: save 60 1 #save 900 1 save 300 10 save 60 10000 Hier kann man auch noch schön sehen, wie ich gekämpft habe, bis ich mal eine dump.rdb gesehen habe. Auch irgendwie logisch, das ich nie eine gesehen hatte, wenn man weiß das save 900 1 bedeutet, das er alle 900 Sekunden speichert, wenn mindestens eine Änderung vorhanden ist. Das kann dann schon was dauern. Ich habe das dann mal verkürzt, damit ich schneller ein Ergebnis habe. save 60 1 Das brachte mich dann dem Ziel näher. Danach konnte ich die dump.rdb auch finden. Bitte keine Redis DB ohne Passwort laufen lassen!
  • ROCKPro64 - Debian Bullseye Teil 2

    Verschoben ROCKPro64
    3
    0 Stimmen
    3 Beiträge
    457 Aufrufe
    FrankMF
    Gestern mal das Ganze mit einem Cinnamon Desktop ausprobiert. Eine verschlüsselte Installation auf eine PCIe NVMe SSD. So weit lief das alles reibungslos. Der Cinnamon Desktop hat dann leider keine 3D Unterstützung. Sieht so aus, als wenn keine vernünftigen Grafiktreiber genutzt würden. Da ich auf diesem Gebiet aber eine Null bin, lassen wir das mal so. Außerdem mag ich sowieso keine Desktops auf diesen kleinen SBC. Da fehlt mir einfach der Dampf Gut, was ist mir so aufgefallen? Unbedingt die Daten des Daily Images erneuern, keine alten Images nutzen. Ich hatte da jetzt ein paar Mal Schwierigkeiten mit. Da das ja nun keine Arbeit ist, vorher einfach neu runterladen und Image bauen. Warum zum Henker bootet eigentlich. außer meiner Samsung T5, nichts vom USB3 oder USB-C Port??