ZFS auf größere Platten geklont, Partition vergrößern, wie?

inDane

Active Member
Jan 11, 2019
34
1
28
34
Guten Morgen zusammen,

ich habe meine PVE Installation via CloneZilla auf größere Platten umgezogen. Das hat soweit auch gut funktioniert.

Das Problem ist, dass die Partitionen zu klein sind und ich nicht weiß, wie ich diese vergrößern kann. Wie kann ich das anstellen?

Infos dazu:

- root ist auf dem ZFS-Pool
- die alten Platten waren 1TB groß


...

sdg 8:96 0 1.8T 0 disk
├─sdg1 8:97 0 1007K 0 part
├─sdg2 8:98 0 931.5G 0 part
└─sdg9 8:105 0 8M 0 part
sdh 8:112 0 1.8T 0 disk
├─sdh1 8:113 0 1007K 0 part
├─sdh2 8:114 0 931.5G 0 part
└─sdh9 8:121 0 8M 0 part
sdi 8:128 0 1.8T 0 disk
├─sdi1 8:129 0 931.5G 0 part
└─sdi9 8:137 0 8M 0 part
sdj 8:144 0 1.8T 0 disk
├─sdj1 8:145 0 931.5G 0 part
└─sdj9 8:153 0 8M 0 part

...


pool: rpool
state: ONLINE
scan: scrub repaired 0B in 5h38m with 0 errors on Sun Jan 13 06:02:47 2019
config:

NAME STATE READ WRITE CKSUM
rpool ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
sdg2 ONLINE 0 0 0
sdh2 ONLINE 0 0 0
mirror-1 ONLINE 0 0 0
ata-ST2000DM001-9YN164_W2F09M1X ONLINE 0 0 0
ata-ST2000DM001-9YN164_S2F059XM ONLINE 0 0 0
mirror-3 ONLINE 0 0 0
ata-WDC_WD20EARX-00PASB0_WD-WCAZAE409851 ONLINE 0 0 0
ata-WDC_WD20EARX-00PASB0_WD-WCAZAE409190 ONLINE 0 0 0
mirror-4 ONLINE 0 0 0
ata-WDC_WD20EARX-008FB0_WD-WCAZAK893655 ONLINE 0 0 0
ata-WDC_WD20EARX-00PASB0_WD-WCAZAE485814 ONLINE 0 0 0
logs
ata-KINGSTON_SV300S37A120G_50026B767100C260-part1 ONLINE 0 0 0
cache
ata-Intenso_SSD_Sata_III_HYC2017050300427-part1 ONLINE 0 0 0

errors: No known data errors


Viele Grüße
inDane
 
Generell so (online Weg):

1) Autoexpand anschalten: zpool set autoexpand=on rpool
2) Jeweils die Partitionen 9 löschen, danach die anderen Partitionen (2 bzw. 1) auf maximale Größe minus ein paar MB vergrößern
3) Eine Disk mittels 'detach' abhängen, danach neu anhängen und Scrub abwarten, dann sollte schon zu sehen sein, dass sich die Plattengröße geändert hat, jedoch wird der Pool erst größer bis alle Disks in einem vdev vergrößert wurden.

Hier mal ein Beispiel - und bitte auch vorher mal selbst in einer VM probieren und nicht gleich am Produktivsystem:

Code:
$ zpool set autoexpand=on rpool

$ zpool status
  pool: rpool
 state: ONLINE
  scan: none requested
config:

       NAME        STATE     READ WRITE CKSUM
       rpool       ONLINE       0     0     0
         mirror-0  ONLINE       0     0     0
           sda2    ONLINE       0     0     0
           sdb2    ONLINE       0     0     0

errors: No known data errors

$ zpool detach rpool sdb2

$ parted /dev/sdb
GNU Parted 3.2
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) p
Warning: Not all of the space available to /dev/sdb appears to be used, you can fix the ↩
  GPT to use all of the space (an extra 33554432 blocks) or continue with the current setting?

Fix/Ignore? Fix
Model: ATA QEMU HARDDISK (scsi)
Disk /dev/sdb: 34.4GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number  Start   End     Size    File system  Name  Flags
 1      17.4kB  1049kB  1031kB                     bios_grub
 2      1049kB  17.2GB  17.2GB  zfs          zfs
 9      17.2GB  17.2GB  8389kB

(parted) rm 9
(parted) resizepart 2 -1
(parted) p
Model: ATA QEMU HARDDISK (scsi)
Disk /dev/sdb: 34.4GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number  Start   End     Size    File system  Name  Flags
 1      17.4kB  1049kB  1031kB                     bios_grub
 2      1049kB  34.4GB  34.4GB  zfs          zfs

$ zpool attach rpool sda2 sdb2
Make sure to wait until resilver is done before rebooting.

$ zpool detach rpool sda2
$ parted /dev/sda
$ zpool attach rpool sdb2 sda2

$ zpool list
NAME    SIZE  ALLOC   FREE  EXPANDSZ   FRAG    CAP  DEDUP  HEALTH  ALTROOT
rpool  31.9G   738M  31.2G         -     1%     2%  1.00x  ONLINE  -
 
Vielen Dank, das scheint zu funktionieren!

Ich habe bei der Gelegenheit dann mal sdX mit der ID ausgetauscht.

Code:
root@pve-server:~# zpool status
  pool: rpool
 state: ONLINE
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 Wed Jan 16 14:35:41 2019
   40.4M scanned out of 1.65T at 2.88M/s, 167h3m to go
   12.9M resilvered, 0.00% done
config:

   NAME                                                 STATE     READ WRITE CKSUM
   rpool                                                ONLINE       0     0     0
     mirror-0                                           ONLINE       0     0     0
       sdg2                                             ONLINE       0     0     0
       ata-ST2000DM001-9YN164_W1F0D9BT-part2            ONLINE       0     0     0  (resilvering)
     mirror-1                                           ONLINE       0     0     0
       ata-ST2000DM001-9YN164_W2F09M1X                  ONLINE       0     0     0
       ata-ST2000DM001-9YN164_S2F059XM                  ONLINE       0     0     0  (resilvering)
     mirror-3                                           ONLINE       0     0     0
       ata-WDC_WD20EARX-00PASB0_WD-WCAZAE409851         ONLINE       0     0     0
       ata-WDC_WD20EARX-00PASB0_WD-WCAZAE409190         ONLINE       0     0     0
     mirror-4                                           ONLINE       0     0     0
       ata-WDC_WD20EARX-008FB0_WD-WCAZAK893655          ONLINE       0     0     0
       ata-WDC_WD20EARX-00PASB0_WD-WCAZAE485814         ONLINE       0     0     0
   logs
     ata-KINGSTON_SV300S37A120G_50026B767100C260-part1  ONLINE       0     0     0
   cache
     ata-Intenso_SSD_Sata_III_HYC2017050300427-part1    ONLINE       0     0     0

errors: No known data errors
 
Mir ist aufgefallen, dass wenn ich dem nicht die "whole disk" gebe, dann erstellt er nicht die Partition 9 von selbst. Ist das in irgendeiner Form nachteilig?

Code:
 zpool attach rpool /dev/sdg2 ata-ST2000DM001-9YN164_W1F0D9BT-part2

VG
inDane
 
Mir ist aufgefallen, dass wenn ich dem nicht die "whole disk" gebe, dann erstellt er nicht die Partition 9 von selbst. Ist das in irgendeiner Form nachteilig?

Die "letzte" Partition ist dafür gedacht etwas freien Speicher am Ende zu haben falls du die Platte mal tauschen musst und eine Platte mit "angeblich" gleicher Größe kaufst, die dann aber eben ein paar MB kleiner ist.

Wie gut performt dein ZFS mit der Kingston SV300 als SLOG?
 
Alles klar, also kein wirklicher Einfluss.

Wie gut performt dein ZFS mit der Kingston SV300 als SLOG?
Tja, für mein Heim-Lab reichts ;-) Wenn Du mir sagst, wie ich das quantifizieren kann, dann würde ich das machen. Benchmark?

Impliziert deine Frage, dass es ohne die Kingston als SLOG zu benutzen, besser laufen könnte?

Ich lasse auf dem Gespann eine GETH (Go Ethereum) node laufen, um die Blockchain zu verteilen. Das Programm verursacht einen riesen Haufen IOPS. Es wird eigentlich emfpholen, die Blockchain ausschließlich auf SSDs zu hosten. Mein Gespann kommt jedenfalls hinterher und hält auch den aktuellsten Block ohne alles auf der SSD zu haben. Optimierungsmöglichkeiten gibt es aber bestimmt.
 
Impliziert deine Frage, dass es ohne die Kingston als SLOG zu benutzen, besser laufen könnte?

Das kommt immer auf die Workload an, da die SLOG ja nur bei synchronen I/Os verwendet wird. Das kann man überwachen, in dem man entweder generell die I/Os pro überwacht oder einfach folgendes aufruft:

Code:
zpool iostat -v 5

und schaut, wieviel I/Os am SLOG ankommen. Aber generell sollte ein SLOG auf einer SSD immer schneller sein als ohne, wenn man langsame Platten verwendet. Der Unterschied kann dann sehr stark variieren je nach SSD Typ für die SLOG, aber schneller sollte es immer sein (bei passender Workload).

Wenn Du mir sagst, wie ich das quantifizieren kann, dann würde ich das machen. Benchmark?

Generell hab ich mal eine Benchmark-Seite im Wiki angefangen, aber dort sind noch keine ZFS-spezifischen Tests drin. Ich glaube das iostat von oben ist zumindest mal ein guter Indikator.
 
Code:
                                                       capacity     operations     bandwidth
pool                                                 alloc   free   read  write   read  write
---------------------------------------------------  -----  -----  -----  -----  -----  -----
rpool                                                1.70T  5.55T     65    997  4.60M  82.9M
  mirror                                              899G   957G     11    130   562K  8.63M
    ata-ST2000DM001-9YN164_W1F0D9BT-part2                -      -      8     61   358K  4.32M
    ata-ST2000DM001-9YN164_S2F059L4-part2                -      -      3     69   204K  4.32M
  mirror                                              696G  1.13T     16    224  1.14M  16.9M
    ata-ST2000DM001-9YN164_S2F059XM                      -      -     10    115   610K  8.47M
    ata-ST2000DM001-9YN164_W2F09M1X                      -      -      6    108   557K  8.47M
  mirror                                             74.4G  1.74T     18    224  1.57M  16.4M
    ata-WDC_WD20EARX-00PASB0_WD-WCAZAE409851             -      -      8    112   744K  8.21M
    ata-WDC_WD20EARX-00PASB0_WD-WCAZAE409190             -      -      9    112   861K  8.21M
  mirror                                             69.7G  1.74T     17    176  1.34M  13.3M
    ata-WDC_WD20EARX-008FB0_WD-WCAZAK893655              -      -     10     89   770K  6.64M
    ata-WDC_WD20EARX-00PASB0_WD-WCAZAE485814             -      -      7     87   602K  6.64M
logs                                                     -      -      -      -      -      -
  ata-KINGSTON_SV300S37A120G_50026B767100C260-part1  99.5M  55.4G      0    240      0  27.6M
cache                                                    -      -      -      -      -      -
  ata-Intenso_SSD_Sata_III_HYC2017050300427-part1    41.5G  42.4G    264    109  23.0M  12.1M
---------------------------------------------------  -----  -----  -----  -----  -----  -----

sie wird jedenfalls benutzt...
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!