Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
raid [14/03/2024 - 14:02] – admin | raid [17/08/2024 - 07:06] (aktuell) – Externe Bearbeitung 127.0.0.1 | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | ====== Array umbenennen ====== | ||
+ | |||
====== Basis Tools ====== | ====== Basis Tools ====== | ||
- | blkid zeigt Info über Block Devices, ua. UUID und PTUIID | + | [[https:// |
+ | blkid zeigt Info über Block Devices, ua. UUID und PTUIID | ||
< | < | ||
+ | |||
'' | '' | ||
</ | </ | ||
+ | |||
smartctl -a devcice_name liest die Smart Daten der Platte aus. | smartctl -a devcice_name liest die Smart Daten der Platte aus. | ||
< | < | ||
hdparm -I /dev/xxx | hdparm -I /dev/xxx | ||
+ | |||
+ | zeigt die Seriennummer der Hardware (wichtig zur Indentifikation bei Fehlern in smartctl) | ||
</ | </ | ||
- | zeigt die Seriennummer der Hardware (wichtig zur Indentifikation bei Fehlern in smartctl) | + | ====== mdadm ====== |
- | ====== | + | Löschen der **Metatdaten** für das RAID Array < |
+ | |||
+ | —examine analysiert einzelne physische Partitonen in einem Array. –detail zeigt dagegen ein gesamtes Array an. | ||
+ | |||
+ | < | ||
+ | mdadm --examine --brief --scan | ||
+ | |||
+ | </ | ||
+ | |||
+ | Wenn man ein Array ganz neu aufbauen will, müssen die Referenzen darauf aus der fstab entfernt werden. Sicherheitshalber schreibt man auch das initramfs neu: | ||
+ | |||
+ | < | ||
+ | < | ||
+ | |||
+ | </ | ||
+ | |||
+ | RAiD Array manuell aufbauen | ||
+ | |||
+ | < | ||
+ | sudo mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1 | ||
+ | mdadm: Note: this array has metadata at the start and | ||
+ | may not be suitable as a boot device. | ||
+ | store '/ | ||
+ | your boot-loader understands md/v1.x metadata, or use --metadata=0.90 | ||
+ | mdadm: size set to 5860389440K | ||
+ | mdadm: automatically enabling write-intent bitmap on large array | ||
+ | |||
+ | Continue creating array? y | ||
+ | mdadm: Defaulting to version 1.2 metadata | ||
+ | mdadm: array /dev/md0 started. | ||
+ | |||
+ | </ | ||
+ | |||
+ | Check: Resyn läuft | ||
+ | |||
+ | < | ||
+ | cat / | ||
+ | Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10] | ||
+ | md0 : active raid1 sdc1[1] sdb1[0] | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | </ | ||
- | Welche Platte | + | Welche Platte |
''# | ''# | ||
Zeile 26: | Zeile 76: | ||
'' | '' | ||
- | Mit mdadm /dev/md0 -r /dev/sdb1 lässt sich einen Platte gezielt aus dem Array entfernen. Das geht aber nur, wenn das Ding icht gerade aktiv synctz. Dann kann man den Array auch so auflösen: | + | Mit mdadm /dev/md0 -r /dev/sdb1 lässt sich einen Platte gezielt aus dem Array entfernen. Das geht aber nur, wenn das Ding icht gerade aktiv synct. Dann kann man den Array auch so auflösen: |
- | < | + | '' |
Ab jetzt läuft das RAID Array nu noch mit einer Platte | Ab jetzt läuft das RAID Array nu noch mit einer Platte | ||
< | < | ||
- | < | + | < |
Version : 1.2 | Version : 1.2 | ||
Creation Time : Thu Dec 1 18:32:25 2016 | Creation Time : Thu Dec 1 18:32:25 2016 | ||
Zeile 66: | Zeile 116: | ||
'' | '' | ||
- | Sobald die neue Platte ins System eingebaut ist, muss die Partitionstabelle von der **alten** auf die **neue** Platte kopiert werden. | + | Sobald die neue Platte ins System eingebaut ist, muss die Partitionstabelle von der **alten** auf die **neue** Platte kopiert werden: hier NEU (sdb) << ALT (sda). |
'' | '' | ||
Zeile 76: | Zeile 126: | ||
Danach werden die Arrays wieder neu aufgebaut | Danach werden die Arrays wieder neu aufgebaut | ||
- | '' | + | '' |
+ | |||
+ | '' | ||
+ | |||
+ | '' | ||
+ | |||
+ | '' | ||
Die Partitionen werden jetzt automatisch wieder synchronisiert. Den Fortschritt/ | Die Partitionen werden jetzt automatisch wieder synchronisiert. Den Fortschritt/ | ||
Zeile 82: | Zeile 138: | ||
'' | '' | ||
- | Der Bootloader sollte neu installiertden, da sich ja die Device Map geändert hat: Im gebooteten System reicht ein | + | Der Bootloader sollte neu installiert werden, da sich ja die Device Map geändert hat: Im gebooteten System reicht ein |
'' | '' | ||
Zeile 92: | Zeile 148: | ||
Referenzen: [[http:// | Referenzen: [[http:// | ||
- | ====== Datenrettung von einem RAID Array ====== | ||
- | |||
- | Manueller Array Build mit einem Laufwerk | ||
- | |||
- | '' | ||
====== Plattentausch in einem RAID1 Array in Open Media Vault (NAS) ====== | ====== Plattentausch in einem RAID1 Array in Open Media Vault (NAS) ====== | ||
Zeile 150: | Zeile 201: | ||
lrwxrwxrwx 1 0 0 10 Mär 11 12:16 ata-WDC_WD60EFRX-68L0BN1_WD-WX11D3678FVK-part1 -> ../../sdc1 | lrwxrwxrwx 1 0 0 10 Mär 11 12:16 ata-WDC_WD60EFRX-68L0BN1_WD-WX11D3678FVK-part1 -> ../../sdc1 | ||
lrwxrwxrwx 1 0 0 10 Mär 11 12:16 ata-WDC_WD60EFRX-68L0BN1_WD-WX11D3678FVK-part2 -> ../../sdc2 | lrwxrwxrwx 1 0 0 10 Mär 11 12:16 ata-WDC_WD60EFRX-68L0BN1_WD-WX11D3678FVK-part2 -> ../../sdc2 | ||
- | lrwxrwxrwx 1 0 0 9 Mär 11 12:16 **ata-WDC_WD60EFRX-68L0BN1_WD-WXB1HB4YS7K3** -> ../../sda | + | lrwxrwxrwx 1 0 0 9 Mär 11 12:16 **ata-WDC_WD60EFRX-68L0BN1_WD-WXB1HB4YS7K3** |
+ | -> ../../sda | ||
lrwxrwxrwx 1 0 0 10 Mär 11 12:16 ata-WDC_WD60EFRX-68L0BN1_WD-WXB1HB4YS7K3-part1 -> ../../sda1 | lrwxrwxrwx 1 0 0 10 Mär 11 12:16 ata-WDC_WD60EFRX-68L0BN1_WD-WXB1HB4YS7K3-part1 -> ../../sda1 | ||
lrwxrwxrwx 1 0 0 10 Mär 11 12:16 ata-WDC_WD60EFRX-68L0BN1_WD-WXB1HB4YS7K3-part2 -> ../../sda2 | lrwxrwxrwx 1 0 0 10 Mär 11 12:16 ata-WDC_WD60EFRX-68L0BN1_WD-WXB1HB4YS7K3-part2 -> ../../sda2 | ||
Zeile 279: | Zeile 331: | ||
</ | </ | ||
- | Jetzt kann die alte Platte ausgebaut werden. Auf der neuen Platte mit gparted oder mkfs die Partitionierung analog anlegen (erst die Paritionstabelle gpt, dann die Partition selbst, in der Regel ext4). | + | Jetzt kann die alte Platte ausgebaut werden. Auf der neuen Platte mit gparted oder mkfs die Partitionierung analog anlegen (erst die Paritionstabelle gpt, dann die Partition selbst, in der Regel ext4). Nach dem Umbau quittiert smartctl das Array als degraded: |
- | + | ||
- | Nach dem Umbau quittiert smartctl das Array als degraded: | + | |
< | < | ||
Zeile 309: | Zeile 359: | ||
</ | </ | ||
- | Das sw raid beginnt danach, die Dateien zwischen beiden Platten zu synchronisieren: | + | Danach beginnt das sw raid, die Dateien zwischen beiden Platten zu synchronisieren: |
< | < | ||
Zeile 343: | Zeile 393: | ||
</ | </ | ||
+ | |||
+ | ====== Variante: wenn das Array crasht ====== | ||
+ | |||
+ | **SDB new** | ||
+ | < | ||
+ | Disk model: WDC WD6003FFBX-6 | ||
+ | Units: sectors of 1 * 512 = 512 bytes | ||
+ | Sector size (logical/ | ||
+ | I/O size (minimum/ | ||
+ | Disklabel type: gpt | ||
+ | Disk identifier: DF00632A-03F7-46B4-A2D4-15C5DCE3930F | ||
+ | |||
+ | </ | ||
+ | |||
+ | **SDC OLD** | ||
+ | < | ||
+ | Disk model: WDC WD60EFPX-68C | ||
+ | Units: sectors of 1 * 512 = 512 bytes | ||
+ | Sector size (logical/ | ||
+ | I/O size (minimum/ | ||
+ | Disklabel type: gpt | ||
+ | Disk identifier: 7BC40B3C-3226-40CE-84DB-844942ED7944 | ||
+ | |||
+ | Device | ||
+ | / | ||
+ | |||
+ | </ | ||
+ | |||
+ | RAID member einzeln analysieren | ||
+ | |||
+ | < | ||
+ | root@nas:~# mdadm --examine /dev/sdc1 | ||
+ | /dev/sdc1: | ||
+ | Magic : a92b4efc | ||
+ | Version : 1.2 | ||
+ | Feature Map : 0x2 | ||
+ | Array UUID : 6a3e6f11: | ||
+ | Name : thommienas: | ||
+ | Creation Time : Thu Dec 1 18:32:25 2016 | ||
+ | Raid Level : raid1 | ||
+ | Raid Devices : 2 | ||
+ | |||
+ | Avail Dev Size : 11721041039 (5589.03 GiB 6001.17 GB) | ||
+ | Array Size : 5860021112 (5588.55 GiB 6000.66 GB) | ||
+ | Used Dev Size : 11720042224 (5588.55 GiB 6000.66 GB) | ||
+ | Data Offset : 2048 sectors | ||
+ | Super Offset : 8 sectors | ||
+ | Recovery Offset : 9190785664 sectors | ||
+ | | ||
+ | State : clean | ||
+ | Device UUID : 71a7b2c3: | ||
+ | |||
+ | Update Time : Mon Mar 25 00:31:32 2024 | ||
+ | Bad Block Log : 512 entries available at offset 264 sectors | ||
+ | | ||
+ | | ||
+ | |||
+ | | ||
+ | Array State : AA (' | ||
+ | |||
+ | </ | ||
+ | |||
+ | Dann ein loop device mit "Data Offset : 2048 sectors" | ||
+ | |||
+ | < | ||
+ | losetup --find --show --offset=$((2048*512)) /dev/sdc1 | ||
+ | |||
+ | root@nas:~# losetup | ||
+ | NAME | ||
+ | / | ||
+ | |||
+ | </ | ||
+ | |||
+ | Danach read only mounten | ||
+ | |||
+ | < | ||
+ | mount -o ro /dev/loop0 /mnt/sdc1 | ||
+ | |||
+ | root@nas:/ | ||
+ | aquota.group | ||
+ | |||
+ | </ | ||
+ | |||
+ | Jetzt brauchen wir ein neues RAID array mit nur einem member auf der neuen Platte\\ | ||
+ | Die Paritition wird mit fdisk /dev/sdb angelegt. Als partition type nimmt man 29 "Linux RAID". | ||
+ | |||
+ | Danach findet mdadm die Partition. Bei gpt ist der Parititon type " | ||
+ | |||
+ | < | ||
+ | root@nas:/ | ||
+ | /dev/sdb: | ||
+ | MBR Magic : aa55 | ||
+ | Partition[0] : | ||
+ | |||
+ | </ | ||
+ | |||
+ | Danach wird manuell ein RAID Array mit einem member erzeugt: | ||
+ | |||
+ | < | ||
+ | sudo mdadm --create /dev/md0 --level=mirror --raid-devices=2 /dev/sdb1 missing | ||
+ | |||
+ | root@nas:/ | ||
+ | mdadm: Note: this array has metadata at the start and | ||
+ | may not be suitable as a boot device. | ||
+ | store '/ | ||
+ | your boot-loader understands md/v1.x metadata, or use | ||
+ | --metadata=0.90 | ||
+ | Continue creating array? | ||
+ | |||
+ | mdadm: Defaulting to version 1.2 metadata | ||
+ | mdadm: array /dev/md1 started. | ||
+ | |||
+ | </ | ||
+ | |||
+ | Danach sieht man das neue md1 array und das alte (kaputte) md0: | ||
+ | |||
+ | < | ||
+ | root@nas:/ | ||
+ | Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] | ||
+ | md1 : active raid1 sdb1[0] | ||
+ | 5860389440 blocks super 1.2 [2/1] [U_] | ||
+ | bitmap: 0/44 pages [0KB], 65536KB chunk | ||
+ | |||
+ | md0 : inactive sdc1[3](S) | ||
+ | 5860520519 blocks super 1.2 | ||
+ | |||
+ | </ | ||
+ | |||
+ | Jetzt brauchts noch ein filesystem: | ||
+ | |||
+ | < | ||
+ | mkfs.ext4 /dev/md1 | ||
+ | |||
+ | mount /dev/md1 /mnt/md1/ | ||
+ | |||
+ | </ | ||
+ | |||
+ | Danach kann man die Daten vom alten array, das read-only läuft, ins neue umkopieren: | ||
+ | |||
+ | cp -R * /mnt/md1 & progress -mp $! | ||
+ | |||
+ | mit progress sieht man einen Fortschrittsbalken | ||