ZFS - Skapa mirror från enskild disk

Permalänk
Medlem

ZFS - Skapa mirror från enskild disk

Hej!

Har en enskild disk med zfs. Dock så saknar denna redundans i dagsläget vilket jag hade tänkt att försöka åtgärda genom att skapa en mirror.

Utgångspunkten är följande (massa kod):

$ zpool status pool: ncdata state: ONLINE scan: scrub repaired 0B in 0 days 00:03:50 with 0 errors on Sun Sep 13 00:27:52 2020 config: NAME STATE READ WRITE CKSUM ncdata ONLINE 0 0 0 8439916330605280079 ONLINE 0 0 0 $ zdb ncdata: version: 5000 name: 'ncdata' state: 0 txg: 2044834 pool_guid: 8439916330605280079 errata: 0 hostid: 183228725 hostname: 'nextcloudsthlm' com.delphix:has_per_vdev_zaps vdev_children: 1 vdev_tree: type: 'root' id: 0 guid: 8439916330605280079 create_txg: 4 children[0]: type: 'disk' id: 0 guid: 8226824548892140475 path: '/dev/disk/by-uuid/8439916330605280079' devid: 'scsi-350014ee2b707b6bb-part1' phys_path: 'pci-0000:0b:00.0-sas-phy6-lun-0' whole_disk: 1 metaslab_array: 68 metaslab_shift: 34 ashift: 12 asize: 4000771997696 is_log: 0 DTL: 2304 create_txg: 4 com.delphix:vdev_zap_leaf: 66 com.delphix:vdev_zap_top: 67 features_for_read: com.delphix:hole_birth com.delphix:embedded_data

Dold text

Där efter körde jag följande kommando där jag tänkte att det skulle skapas en mirror

$ sudo zpool add ncdata /dev/sdc

vilket gav följande resultat (längre utskrict):

$ zpool status ncdata pool: ncdata state: ONLINE scan: scrub repaired 0B in 0 days 00:03:50 with 0 errors on Sun Sep 13 00:27:52 2020 config: NAME STATE READ WRITE CKSUM ncdata ONLINE 0 0 0 8439916330605280079 ONLINE 0 0 0 sdc ONLINE 0 0 0 $ zdb ncdata: version: 5000 name: 'ncdata' state: 0 txg: 2379493 pool_guid: 8439916330605280079 errata: 0 hostid: 183228725 hostname: 'nextcloudsthlm' com.delphix:has_per_vdev_zaps vdev_children: 2 vdev_tree: type: 'root' id: 0 guid: 8439916330605280079 create_txg: 4 children[0]: type: 'disk' id: 0 guid: 8226824548892140475 path: '/dev/disk/by-uuid/8439916330605280079' devid: 'scsi-350014ee2b707b6bb-part1' phys_path: 'pci-0000:0b:00.0-sas-phy6-lun-0' whole_disk: 1 metaslab_array: 68 metaslab_shift: 34 ashift: 12 asize: 4000771997696 is_log: 0 DTL: 2304 create_txg: 4 com.delphix:vdev_zap_leaf: 66 com.delphix:vdev_zap_top: 67 children[1]: type: 'disk' id: 1 guid: 7012011183503106809 path: '/dev/sdc1' devid: 'scsi-350014ee261b1a756-part1' phys_path: 'pci-0000:0b:00.0-sas-phy7-lun-0' whole_disk: 1 metaslab_array: 114 metaslab_shift: 34 ashift: 12 asize: 4000771997696 is_log: 0 create_txg: 2379491 com.delphix:vdev_zap_leaf: 112 com.delphix:vdev_zap_top: 113 features_for_read: com.delphix:hole_birth com.delphix:embedded_data

Dold text

Dock förefaller inte detta vara någon mirror som jag hade tänkte mig så nu är jag öppen för förslag för att se hur jag ska lyckas med att åstadkomma detta!

Tack för hjälpen.

/z

Permalänk
Medlem

Det är nog "zpool attach" du skulle använda för att göra en mirror/lägga till fler lagringsenheter till en mirror, men hur man ogör det där du redan gjort är däremot mer än jag vet.

Permalänk
Medlem

Man bygger om sin pool om man måste göra om något, med andra ord, gör inte fel.

Men ovan är korrekt

Syntax
Zpool attach poolnamn uuid1 uuid2

Typo
Permalänk
Medlem
Skrivet av evil penguin:

Det är nog "zpool attach" du skulle använda för att göra en mirror/lägga till fler lagringsenheter till en mirror, men hur man ogör det där du redan gjort är däremot mer än jag vet.

Skrivet av moire:

Man bygger om sin pool om man måste göra om något, med andra ord, gör inte fel.

Men ovan är korrekt

Syntax
Zpool attach poolnamn uuid1 uuid2

Tack för att ni lägger ner lite tid på att putta mig i rätt riktning!

Japp det var ett misstag! Dock funkade det fint att med

$ zpool remove ncdata sdc $ zpool status pool: ncdata state: ONLINE scan: scrub repaired 0B in 0 days 00:03:50 with 0 errors on Sun Sep 13 00:27:52 2020 remove: Removal of vdev 1 copied 960K in 0h0m, completed on Mon Sep 21 17:13:37 2020 2.51K memory used for removed device mappings config: NAME STATE READ WRITE CKSUM ncdata ONLINE 0 0 0 8439916330605280079 ONLINE 0 0 0 errors: No known data errors

Men nu fastnar jag i den ursprungliga frågan, hur omvandlar jag detta till en mirror?

$ zpool attach ncdata 8439916330605280079 /dev/sda cannot attach /dev/sda to 8439916330605280079: can only attach to mirrors and top-level disks

Detta försöket indikerar att jag gör på fel sätt nämligen. Några fler förslag?

Edit: Nu blev det lite för spännande. Insåg i en tråd långt bort på internet att jag kanske använder fel GUID, det vill säga poolens GUID istället för disken GUID.

Så jag uppdaterade mitt försök

$ zpool status pool: ncdata state: ONLINE scan: scrub repaired 0B in 0 days 00:03:50 with 0 errors on Sun Sep 13 00:27:52 2020 remove: Removal of vdev 1 copied 960K in 0h0m, completed on Mon Sep 21 17:13:37 2020 2.51K memory used for removed device mappings config: NAME STATE READ WRITE CKSUM ncdata ONLINE 0 0 0 8439916330605280079 ONLINE 0 0 0 errors: No known data errors $ zpool attach ncdata 8226824548892140475 /dev/sdc $ zpool status pool: ncdata state: DEGRADED status: One or more devices is currently being resilvered. The pool will continue to function, possibly in a degraded state. action: Wait for the resilver to complete. scan: resilver in progress since Mon Sep 21 17:53:03 2020 248M scanned at 237K/s, 696K issued at 664B/s, 23.5G total 0B resilvered, 0.00% done, no estimated completion time remove: Removal of vdev 1 copied 960K in 0h0m, completed on Mon Sep 21 17:13:37 2020 2.51K memory used for removed device mappings config: NAME STATE READ WRITE CKSUM ncdata DEGRADED 0 0 0 mirror-0 DEGRADED 408K 0 0 8439916330605280079 FAULTED 0 0 0 corrupted data sdc ONLINE 0 0 408K errors: 5102 data errors, use '-v' for a list

Så något gick uppenbarligen på tok? Någon som har koll på vad som gick fel? Klart det är lite jobbigt men jag ska ha en backup på min data.
/z

Permalänk
Medlem

Använd uuidt för resp disc

Permalänk
Medlem
Skrivet av moire:

Använd uuidt för resp disc

Insåg det och bytte! Men om du kollar i min edit gick det inte enligt plan.

Någon idé om varför hastigheten är 400 kb/s resilver?

mvh
/z

Permalänk
Medlem

OS-kärnor brukar trottla farten för att det inte skall påverka 'övrig verksamhet' för mycket - men 400 kB/s verkar onekligen lite. Har du SMR-diskar på någon av diskarna, i så fall vet du orsaken då ZFS och SMR-diskar kan gå väldigt illa ihop.

Fans någon grafisk illustration i annan tråd där man jämförde PMR-diskar och SMR-diskar i en resilveringsprocess i ZFS - det var typ en faktor 13 gånger långsammare med SMR-disk i jämförlse med en PMR-disk (med mdadm-RAID i RAID5 så är resynktiden typisk dubbla tiden med SMR-disk i jämförelse med en PMR-disk).

Permalänk
Medlem

@zonar: det tar lite tid i början men sen brukar hastigheten gå upp.

Permalänk
Medlem
Skrivet av xxargs:

OS-kärnor brukar trottla farten för att det inte skall påverka 'övrig verksamhet' för mycket - men 400 kB/s verkar onekligen lite. Har du SMR-diskar på någon av diskarna, i så fall vet du orsaken då ZFS och SMR-diskar kan gå väldigt illa ihop.

Fans någon grafisk illustration i annan tråd där man jämförde PMR-diskar och SMR-diskar i en resilveringsprocess i ZFS - det var typ en faktor 13 gånger långsammare med SMR-disk i jämförlse med en PMR-disk (med mdadm-RAID i RAID5 så är resynktiden typisk dubbla tiden med SMR-disk i jämförelse med en PMR-disk).

Detta är ett par äldre 4 Tb diskar, någon Hitach och något Seagate tror jag och jag har för mig att SMR dök upp senare.

/z

Permalänk
Medlem
Skrivet av knorrrhane:

@zonar: det tar lite tid i början men sen brukar hastigheten gå upp.

hehe, nu är jag nere i 56.6 kb/s, 2000-talet nästa? Får kolla hur det går i morgon och se om det har fått upp farten lite i alla fall.

/z

Permalänk
Medlem

@zonar: aj då min resilvering brukar börja lågt och sen komma upp i maxhastighet för diskarna.. får se imorgon då!

Permalänk
Medlem

@knorrhane: Hastigheten fortsätter ner och är nu under 20 kb/s... Min pool innehöll bara 23 Gb data men med denna farten börjar det bli löjligt!

/z

Permalänk
Medlem

@zonar: ja det verkar som om det är något som är fel. det var inget fel på diskarna du satte i? om det är många dåliga sektors så tar det tid för ZFS att gå igenom och märka upp de. sen vet jag inte vad det är för dator du har, är det cpu som inte räcker till?

Permalänk
Medlem

@knorrrhane:

Maskinen som detta kör på är en virtualiserad maskin. Ett HBA kort är monterat i datorn vilket är utdelat till den specifika maskinen med passthrough. Processorn är en Xeon E5-2667 v3 och minnet är av ECC typ.

Maskinen kör i vanliga fall resilvering varje vecka och den kördes i helgen. Den "nya" disken som jag lade till har jag inte kollat närmare på ett tag men den funkade fint i en annan zfs-pool tidigare.

Det jag tycker är lite märkligt är att med kommandot zpool status får jag följande utskrift.

NAME STATE READ WRITE CKSUM ncdata DEGRADED 0 0 0 mirror-0 DEGRADED 1.90M 0 0 8439916330605280079 FAULTED 0 0 0 corrupted data sdc ONLINE 0 0 1.90M

Disken 8439916330605280079 är den ursprungliga disken medans sdc är den nya disken. Det märkliga är att den gamla blir corrupted när jag stoppade in den nya samt att den nya är "online". Om det hade varit tvärt om hade jag förtstått mer. Datan låg på den gamla disken och måste speglas över till den nya. Därför inbildar jag mig att den nya borde varit corrupt eller waiting for data etc. på den nya?

/z

Permalänk
Medlem

Gissar att det är ett Linux system, Ubuntu Server?

Disken som enbart får ett nummer ser ut att inte vara mountad/raderad på rätt vis, kanske innehåller gamla partitioner eller signaturer fortfarande?
-I såfall kan det vara idé att radera disken grundligt, helst i ett annat system som inte försöker starta/mounta de ev. befintliga partitionerna på disken. Kanske även köra något SMART-test på den.
-Kan även hända att disken är kass eller att passthrough/HBA ställer till med bekymmer.

OSB! Nedan anvisningar skall du endast utföra om du har backup på ALL känslig information, då det kommer att radera båda diskarna.

(-Förutsatt att dina diskar som skall ingå i poolen är mountade som sdc och sdd)

Steg 1.
Skulle säga att du enklast flyttar/kopierar datan (23GB) från den aktiva/fungerande disken till annan säker plats, tillfälligt, sedan kör en:

sudo wipefs -a /dev/sdc /dev/sdd

*För att rensa diskarna från gamla partitionssignaturer.

Steg 2.

Sedan skapar du om ZFS-poolen som "mirror" med:

sudo zpool create ncdata mirror /dev/sdc /dev/sdd

alt.

sudo zpool create -f ncdata mirror /dev/sdc /dev/sdd för att tvinga fram skapandet.

Efter det skall du se en felfri ZFS-pool i mirrored mode.

sudo zpool status

Kopiera tillbaka datan som du tog backup på. i 1:a steget.

Permalänk
Medlem

@krigelkorren:

Ett stort tack för hjälpen!

Japp, jag tror det är dags att göra något drastiskt då hastigheten ständigt sjunker...

Eftersom detta är ett nextcloud storage finns all data på clienterna sedan har jag en off-site backup också som jag kan återställa ifrån så jag tror det bara är att kavla upp ärmarna och rocka loss! Inget är bättre än praktisk erfarenhet av att det skiter sig på riktigt!

/z

Permalänk
Medlem

@krigelkorren: Så nu kavlade jag upp armarna och började skyffla!

Kontentan var att något hade nog riktigt spårat ur och zpool kommandona hängde sig. Det slutade med att jag jag fick testa den virtuella restknappen....

När den då hoppade igång igen efter reboot startade allt upp i ett mycket bättre skick helt magiskt och resilver gick med 150 Mb/s och blev klart på ett par minuter.

Använde kommandot, för att lägga till en till disk till mirror:

zpool attach ncdata /dev/sdc /dev/sda

Lät resilverprocessen avsluta och sedan tog jag bort /dev/sdb som föreföll konstigt monterad,

zpool detatch ncdata 8226824548892140475

Rensade disken med:

wipefs -a /dev/sdb

La tillbaka disken till poolen

zpool attach ncdata /dev/sda /dev/sdb

# zpool status pool: ncdata state: ONLINE scan: resilvered 23.6G in 0 days 00:04:36 with 0 errors on Tue Sep 22 11:31:24 2020 remove: Removal of vdev 1 copied 960K in 0h0m, completed on Mon Sep 21 17:13:37 2020 2.51K memory used for removed device mappings config: NAME STATE READ WRITE CKSUM ncdata ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 sdc ONLINE 0 0 0 sda ONLINE 0 0 0 sdb ONLINE 0 0 0 errors: No known data errors

Körde min rsync baklänges och jämförde den återskapade lokala datan vilken var identisk med min backup!

Så jag for nog anse att mitt problem löste sig på något magiskt sätt med en hård reset!

Tack alla för hjälpen!
/z

Permalänk
Medlem
Skrivet av zonar:

@krigelkorren: Så nu kavlade jag upp armarna och började skyffla!

Kontentan var att något hade nog riktigt spårat ur och zpool kommandona hängde sig. Det slutade med att jag jag fick testa den virtuella restknappen....

När den då hoppade igång igen efter reboot startade allt upp i ett mycket bättre skick helt magiskt och resilver gick med 150 Mb/s och blev klart på ett par minuter.

Använde kommandot, för att lägga till en till disk till mirror:

zpool attach ncdata /dev/sdc /dev/sda

Lät resilverprocessen avsluta och sedan tog jag bort /dev/sdb som föreföll konstigt monterad,

zpool detatch ncdata 8226824548892140475

Rensade disken med:

wipefs -a /dev/sdb

La tillbaka disken till poolen

zpool attach ncdata /dev/sda /dev/sdb

# zpool status pool: ncdata state: ONLINE scan: resilvered 23.6G in 0 days 00:04:36 with 0 errors on Tue Sep 22 11:31:24 2020 remove: Removal of vdev 1 copied 960K in 0h0m, completed on Mon Sep 21 17:13:37 2020 2.51K memory used for removed device mappings config: NAME STATE READ WRITE CKSUM ncdata ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 sdc ONLINE 0 0 0 sda ONLINE 0 0 0 sdb ONLINE 0 0 0 errors: No known data errors

Körde min rsync baklänges och jämförde den återskapade lokala datan vilken var identisk med min backup!

Så jag for nog anse att mitt problem löste sig på något magiskt sätt med en hård reset!

Tack alla för hjälpen!
/z

"-Have you tried turning it OFF and ON?"

Ibland kan även de simplaste lösningarna vara de bästa!

Permalänk
Medlem

Norsk reset skall man inte skämta om... ibland är det den enda lösning att ta till för att saker skall hoppa igång igen.