sudo zpool replace pool old-disk new-disk

Byta ut disk i ZFS

Sedan några år tillbaka kör jag filsystemet ZFS både på arbetsdatorn och servrar.

ZFS har många bra funktioner. Och det är byggt för att förhindra dataförlust.
ZFS kollar om data är intakt genom "check-sum" tester.

För några dagar sedan började ZFS upptäcka läs-fel på en av diskarna i min server.
Detta kändes både hemskt och spännande! Hemskt då jag riskerar att förlora data och spännande då detta är första gången jag får ett disk-fel!

På min server kör jag spegling av varje hårddisk. Detta ger bästa prestanda och bästa säkerhet: Data kan läsas från båda diskarna samtidigt och om en disk går sönder finns data'n kvar på den andra.

Guide för att byta ut disk i ZFS

1. Kolla status

Börja med att kolla status för disk-poolen. Skriv in följande kommando i "terminalen":

NAME                        STATE     READ WRITE CKSUM
tank                        ONLINE       0     0     0
mirror-0                    ONLINE       0     0     0
scsi-35000c50058861e77      ONLINE       0     0     0
scsi-35000c50058878dab      ONLINE     852     0   328
mirror-1                    ONLINE       0     0     0
wwn-0x5000c50066b4fe86      ONLINE       0     0     0
wwn-0x5000c50066b4ff00      ONLINE       0     0     0

Det verkar vara problem med disk id scsi-35000c50058878dab.
(Använd alltid disk-id när du lägger till diskar, alltså inte sda, sdb, sdc etc.)

2. Sätt i ny disk

Sätt in den nya disken i datorn.
Här är det bra om du har så kallade "hot-swap" platser så du ej behöver stänga av datorn. Samt lampor dom indikerar när hårddisken används ...

3. Hitta id för den nya disken

lrwxrwxrwx 1 root root   9 Jan 25 10:17 scsi-35000c50058861e77 -> ../../sdc
lrwxrwxrwx 1 root root  10 Jan 25 10:17 scsi-35000c50058861e77-part1 -> ../../sdc1
lrwxrwxrwx 1 root root  10 Jan 25 10:17 scsi-35000c50058861e77-part9 -> ../../sdc9
lrwxrwxrwx 1 root root   9 Jan 25 10:17 scsi-35000c50058878dab -> ../../sdb
lrwxrwxrwx 1 root root  10 Jan 25 10:17 scsi-35000c50058878dab-part1 -> ../../sdb1
lrwxrwxrwx 1 root root  10 Jan 25 10:17 scsi-35000c50058878dab-part9 -> ../../sdb9
lrwxrwxrwx 1 root root   9 Jan 25 10:17 wwn-0x5000c50058861e77 -> ../../sdc
lrwxrwxrwx 1 root root  10 Jan 25 10:17 wwn-0x5000c50058861e77-part1 -> ../../sdc1
lrwxrwxrwx 1 root root  10 Jan 25 10:17 wwn-0x5000c50058861e77-part9 -> ../../sdc9
lrwxrwxrwx 1 root root   9 Jan 25 10:17 wwn-0x5000c50058878dab -> ../../sdb
lrwxrwxrwx 1 root root  10 Jan 25 10:17 wwn-0x5000c50058878dab-part1 -> ../../sdb1
lrwxrwxrwx 1 root root  10 Jan 25 10:17 wwn-0x5000c50058878dab-part9 -> ../../sdb9
lrwxrwxrwx 1 root root   9 Jan 25 10:17 wwn-0x5000c50066b4fe86 -> ../../sde
lrwxrwxrwx 1 root root  10 Jan 25 10:17 wwn-0x5000c50066b4fe86-part1 -> ../../sde1
lrwxrwxrwx 1 root root  10 Jan 25 10:17 wwn-0x5000c50066b4fe86-part9 -> ../../sde9
lrwxrwxrwx 1 root root   9 Jan 25 10:17 wwn-0x5000c50066b4ff00 -> ../../sdd
lrwxrwxrwx 1 root root  10 Jan 25 10:17 wwn-0x5000c50066b4ff00-part1 -> ../../sdd1
lrwxrwxrwx 1 root root  10 Jan 25 10:17 wwn-0x5000c50066b4ff00-part9 -> ../../sdd9
lrwxrwxrwx 1 root root   9 Feb 21 09:27 wwn-0x5000c500a5054a65 -> ../../sdf
lrwxrwxrwx 1 root root   9 Feb 19 21:46 wwn-0x50015179594e9c88 -> ../../sda
lrwxrwxrwx 1 root root  10 Feb 19 21:46 wwn-0x50015179594e9c88-part1 -> ../../sda1
lrwxrwxrwx 1 root root  10 Feb 19 21:46 wwn-0x50015179594e9c88-part2 -> ../../sda2
lrwxrwxrwx 1 root root  10 Feb 19 21:46 wwn-0x50015179594e9c88-part5 -> ../../sda5

Det bör vara någon av diskarna som ännu inte har några partitioner.
I mitt fall är wwn-0x5000c500a5054a65 den nya disken.

Dubbelkolla så att det är den nya disken genom att läsa från den - så att led-lamporna tänds:

4. Tala om för ZFS att byta ut den gamla disken mot den nya

Om det är en ny disk kommer den förmodligen sakna partitions-tabell (GPT). Och ZFS kommer att klaga på detta:

invalid vdev specification
use '-f' to override the following errors:
new-disk does not contain an EFI label but it may contain partition
information in the MBR.

Så vi måste skapa en GPT:

GNU Parted 3.2
Using /dev/sdf
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mklabel GPT
(parted) q
Information: You may need to update /etc/fstab.

Försök sedan igen:

5. För över data till nya disken

ZFS kommer automatiskt att föra över data till den nya disken. Och när det är klart kommer ZFS automatiskt att ta bort den gamla/dåliga disken från disk-poolen.

6. Ta bort den gamla disken

Vänta tills ZFS är klar med "resilvering"

NAME                          STATE     READ WRITE CKSUM
tank                          ONLINE       0     0     0
mirror-0                      ONLINE       0     0     0
scsi-35000c50058861e77        ONLINE       0     0     0
replacing-1                   ONLINE       0     0     0
scsi-35000c50058878dab        ONLINE     852     0   328
wwn-0x5000c500a5054a65        ONLINE       0     0     0  (resilvering)
mirror-1                      ONLINE       0     0     0
wwn-0x5000c50066b4fe86        ONLINE       0     0     0
wwn-0x5000c50066b4ff00        ONLINE       0     0     0

Identifiera sedan vilken disk som är den gamla/dåliga genom att få led-lamporna att lysa:



Blogginlägg skrivet av Johan Zetterberg


Följ mig via RSS:   RSS https://zäta.com/rss.xml (ange adressen i din feed-läsare)