zpool remove geht nicht

DocMAX

Member
Jan 30, 2023
233
18
23
Bremen
Warum funktioniert das nicht? Was muss ich tun damit es klappt?
Code:
root@pve:~# zpool remove zpool sdd
cannot remove sdd: invalid config; all top-level vdevs must have the same sector size and not be raidz.

root@pve:~# zpool status
  pool: zpool
 state: ONLINE
config:

        NAME        STATE     READ WRITE CKSUM
        zpool       ONLINE       0     0     0
          sda       ONLINE       0     0     0
          sdb       ONLINE       0     0     0
          sdd       ONLINE       0     0     0

root@pve:~# zfs list
NAME                      USED  AVAIL     REFER  MOUNTPOINT
zpool                     144G  2.48T       86K  /zpool
zpool/subvol-100-disk-0  18.3G   110G     18.3G  /zpool/subvol-100-disk-0
zpool/subvol-101-disk-0  17.4G  14.6G     17.4G  /zpool/subvol-101-disk-0
zpool/subvol-102-disk-0  6.43G  25.6G     6.43G  /zpool/subvol-102-disk-0
zpool/subvol-103-disk-0  4.87G  11.1G     4.87G  /zpool/subvol-103-disk-0
zpool/subvol-104-disk-0  2.21G   126G     2.21G  /zpool/subvol-104-disk-0
zpool/subvol-105-disk-0  9.28G   119G     9.28G  /zpool/subvol-105-disk-0
zpool/subvol-106-disk-0  10.4G   118G     10.4G  /zpool/subvol-106-disk-0
zpool/subvol-107-disk-0   838M  7.18G      838M  /zpool/subvol-107-disk-0
zpool/subvol-108-disk-0  15.6G  16.4G     15.6G  /zpool/subvol-108-disk-0
zpool/vm-200-disk-0       556K  2.48T      556K  -
zpool/vm-200-disk-1      20.5G  2.48T     20.5G  -
zpool/vm-200-disk-2      21.5K  2.48T     21.5K  -
zpool/vm-201-disk-0       565K  2.48T      565K  -
zpool/vm-201-disk-1      15.8G  2.48T     15.8G  -
zpool/vm-201-disk-2      21.5K  2.48T     21.5K  -
zpool/vm-202-disk-0       562K  2.48T      562K  -
zpool/vm-202-disk-1      21.1G  2.48T     21.1G  -
 
Hi,
was ist hier das Ziel? Ein entfernen der Disk würde hier das gesamte Pool unbrauchbar machen, da keine Redundanz vorhanden ist.

Edit: geht unter bestimmten Voraussetzungen
 
Last edited:
Hi,
was ist hier das Ziel? Ein entfernen der Disk würde hier das gesamte Pool unbrauchbar machen, da keine Redundanz vorhanden ist.
Das Ziel ist eine Platte zu entfernen. (Die Kapazität der restlichen Platten würden ausreichen).
Ich dachte ZFS würde dann einfach die Daten an die anderen Platten rüberscheffeln!?
 
Hmm ja, dafür müssen aber Vorraussetztungen erfüllt sein
Code:
Top-level vdevs can only be removed if the primary pool storage does not contain a top-level raidz vdev, all top-level vdevs have the same sector size, and the keys for all encrypted datasets are loaded.
. Siehe https://openzfs.github.io/openzfs-docs/man/8/zpool-remove.8.html

Vermutlich ist dies für die sector size nicht erfüllt?
 
Verstehe das mit der Sector size nicht. Er hat also Probleme mit den VDEVs. Ich könnte die löschen und neu anlegen, aber wie stelle ich sicher dass die sector size gleich ist??
 
root@pve:~# zpool remove zpool sdd cannot remove sdd: invalid config; all top-level vdevs must have the same sector size and not be raidz.
Wahrscheinlich ist die Meldung ernst gemeint?

Haben die Platten gemischt 512 Byte und 4K Sektoren?


PS: "non-redundant primary top-level vdev removal" soll tatsächlich funktionieren :)
Code:
NAME
     zpool-remove — remove devices from ZFS storage pool

DESCRIPTION
     zpool remove [-npw] pool device…
             Removes the specified device from the pool.  This command supports removing hot
             spare, cache, log, and both mirrored and non-redundant primary top-level vdevs, in‐
             cluding dedup and special vdevs.


Edit: man sollte keine Posts anfangen und erst viel später absenden... die zwischenzeitlichen Posts habe ich schlicht nicht gesehen. Egal...
 
Last edited:
Folgendes bekomme ich mit fdisk -l


Code:
Disk /dev/sda: 1,82 TiB, 2000398934016 bytes, 3907029168 sectors
Disk model: ST2000LM003 HN-M
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: C638FC65-5ED2-844C-B443-612C05A4BD54

Device          Start        End    Sectors  Size Type
/dev/sda1        2048 3907012607 3907010560  1,8T Solaris /usr & Apple ZFS
/dev/sda9  3907012608 3907028991      16384    8M Solaris reserved 1


Disk /dev/sdb: 465,76 GiB, 500107862016 bytes, 976773168 sectors
Disk model: ST9500420AS
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 40732857-79DD-3148-9FFC-8266B09E04EB

Device         Start       End   Sectors   Size Type
/dev/sdb1       2048 976756735 976754688 465,8G Solaris /usr & Apple ZFS
/dev/sdb9  976756736 976773119     16384     8M Solaris reserved 1


Disk /dev/sdd: 447,13 GiB, 480103981056 bytes, 937703088 sectors
Disk model: SanDisk SDSSDHII
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: C4961062-1326-4D45-AE11-16F05EAACAE5

Device         Start       End   Sectors   Size Type
/dev/sdd1       2048 937684991 937682944 447,1G Solaris /usr & Apple ZFS
/dev/sdd9  937684992 937701375     16384     8M Solaris reserved 1

Tatsächlich haben die Platten gemischte Sektorengrösse. Also muss ich VERHER schauen was für eine Größe die Sektoren haben?!?
 
Last edited:
Code:
zpool create zpool /dev/sda /dev/sdb /dev/sdd
aber auch nur weil die PVE GUI das so im single disk mode nicht zulässt.
vielleicht auch weil es ashift=12 macht? ich muss mir das nochmal genau anschauen...

kann ja nicht sein dass ich festplatten nicht einfach so entfernen kann. btrfs zickt da deutlich weniger rum.

https://www.reddit.com/r/zfs/comments/l3njm1/cant_remove_any_device_from_pool_cannot_remove/
hier wird auch darüber diskutiert. wie kann ich in meiner jetzigen situation ein laufwerk entfernen?!?

Code:
root@pve:~# zdb -C zpool

MOS Configuration:
        version: 5000
        name: 'zpool'
        state: 0
        txg: 4
        pool_guid: 11181035982634146984
        errata: 0
        hostid: 1026165574
        hostname: 'pve'
        com.delphix:has_per_vdev_zaps
        vdev_children: 3
        vdev_tree:
            type: 'root'
            id: 0
            guid: 11181035982634146984
            create_txg: 4
            children[0]:
                type: 'disk'
                id: 0
                guid: 8373593658624596545
                path: '/dev/sda1'
                devid: 'ata-ST2000LM003_HN-M201RAD_S321J9BFB01917-part1'
                phys_path: 'pci-0000:00:17.0-ata-1.0'
                whole_disk: 1
                metaslab_array: 149
                metaslab_shift: 34
                ashift: 12
                asize: 2000384688128
                is_log: 0
                create_txg: 4
                com.delphix:vdev_zap_leaf: 129
                com.delphix:vdev_zap_top: 130
            children[1]:
                type: 'disk'
                id: 1
                guid: 12977854591349312716
                path: '/dev/sdb1'
                devid: 'ata-ST9500420AS_5VJFBZ69-part1'
                phys_path: 'pci-0000:00:17.0-ata-2.0'
                whole_disk: 1
                metaslab_array: 143
                metaslab_shift: 32
                ashift: 9
                asize: 500093681664
                is_log: 0
                create_txg: 4
                com.delphix:vdev_zap_leaf: 131
                com.delphix:vdev_zap_top: 132
            children[2]:
                type: 'disk'
                id: 2
                guid: 25693209310635737
                path: '/dev/sdd1'
                devid: 'ata-SanDisk_SDSSDHII480G_153801801631-part1'
                phys_path: 'pci-0000:00:17.0-ata-4.0'
                whole_disk: 1
                metaslab_array: 135
                metaslab_shift: 32
                ashift: 9
                asize: 480088948736
                is_log: 0
                create_txg: 4
                com.delphix:vdev_zap_leaf: 133
                com.delphix:vdev_zap_top: 134
        features_for_read:
            com.delphix:hole_birth
            com.delphix:embedded_data

toll, hab nun einmal ashift 12 und 2 mal 9

auch hier eine riesendiskussion:
https://github.com/openzfs/zfs/issues/6373
 
Last edited:
Deshalb sagt man immer, ZFS geht nur erweitern und kein verkleinern.
Ceph ist da viel flexibler.
Wenn dir die BTRFS Features reichen, warum machst du dann kein BTRFS?
In der GUI geht Single Disk mit mehreren (Span Bauen) vermutlich nicht, weil das ja auch keinen Sinn macht und oft viele Probleme mit sich bringt.
 
ZFS hab ich genommen da es mehr oder weniger besser in Proxmox integriert ist (Punkt Disks->ZFS). Bin auch zwischen Dateisystemen immer hin- und hergerissen. Da weiss man garnicht wirklich wo man bleiben will. Ein Punkt wäre noch dass ZFS NFS und Deduplication integriert hat.
 
Dedup solltest du bei VMs eh nie benutzen.
Hast du die SSD wenigstens als Special Device hinzugefügt?
Bei einem Span über 3 verschiedene Disks, hast du eine stark variierende Performance und 3x so hohe Ausfallwahrscheinlichkeit.
 
Also, so sieht es aus wenn ich nur Single Disk nehme. (Will einfach nur alle kombinieren).
1681230843144.png

Mach ich es aber per zpool create -o ashift=12 zpool /dev/sda /dev/sdb /dev/sdd, funktioniert es UND jetzt geht auch ein zpool add/remove zpool sdd.
 
ach ich es aber per zpool create -o ashift=12 zpool /dev/sda /dev/sdb /dev/sdd, funktioniert es UND jetzt geht auch ein zpool add/remove zpool sdd.
Das wird Proxmox zum Schutz vor Nutzerfehlern so limitiert haben, damit man nicht ein Raid0 nutzt und sich dann wundert, warum alles an Daten verloren ist, wenn da irgendeine Disk von plötzlich ausfällt (und das wird sie immer früher oder später). Ein Raid0 ist halt nichts, was man für einen Server nutzen sollte, außer man will echt nur einen Pool für temporäre Daten, wo es absolut egal ist, wenn da alles weg ist.
In 99% der Fälle sollte man immer ein Raid10 für VMs/LXCs nutzen und ein Raid10/raidz2/raidz3 als Cold Storage.
 
Last edited:
  • Like
Reactions: Johannes S
OK wär ne Erklärung. Die Nachteile von Raid0 sind mir bewusst.
Ich finde das sollte möglich gemacht werden in Proxmox. Man könnte ja noch einen Warnhinweis einbauen.
 
So baust du nicht einmal ein echtes Raid0, das ist nur ein Span. Der verteilt die Daten schon etwas nur nie gleichmäßig, da die Disks verschieden groß sind.
Außerdem wird die SSD dabei auf den Speed der langsamsten HDD gebremst.
Schön zum ausprobieren, aber nicht zum benutzen.