ZFS: ZPool erstellen für NVMe klappt nicht

Sickboy

Müßiggänger
Hallo allerseits,

nachdem ich viele Jahre sehr gut mit UFS2 ausgekommen bin, wage ich mich bei meinem nächsten Projekt mal in Richtung ZFS. Dafür habe ich einen Supermicro-Server mit folgenden Speichermedien:

1x 64 GB DOM (ada0)
2x 1920 GB SSD (ada1, ada0)
1x 512 GB NVMe (nvme0)

Auf dem DOM habe ich FreeBSD 11 installiert. Meine Pools sehen wie folgt aus:
Code:
# zpool status
  pool: storage
 state: ONLINE
  scan: none requested
config:

    NAME        STATE     READ WRITE CKSUM
    storage     ONLINE       0     0     0
      mirror-0  ONLINE       0     0     0
        ada1    ONLINE       0     0     0
        ada2    ONLINE       0     0     0

errors: No known data errors

  pool: zroot
 state: ONLINE
  scan: none requested
config:

    NAME        STATE     READ WRITE CKSUM
    zroot       ONLINE       0     0     0
      ada0p2    ONLINE       0     0     0

errors: No known data errors

Leider kann ich für das NVMe keinen Pool anlegen:
Code:
# zpool create nvme /dev/nvme0
cannot create 'nvme': no such pool or dataset

Woran kann das liegen?
 
Ich empfehle dir, zuerst mit gpart eine Partition auf den Devices zu erstellen und nicht die Festplatte komplett zu verwenden:
Code:
gpart create -s GPT <DEVICE> 
gpart add -a 4k -t freebsd-zfs -l <LABEL-p1-zfs> <DEVICE>
 
Danke Foxit. Das war aber gar nicht notwendig. Das Device heißt statt nvme0 richtigerweise nvd0. Damit hat es geklappt.
 
Code:
# zdb | grep -Ei 'ashift'
            ashift: 9
            ashift: 12
            ashift: 12
Es scheint, als wäre es Alignment shift nicht korrekt; nämlich das von /dev/nvd0. Da ich dort noch keine Daten liegen habe, kann ich den Pool ja einfach nochmal anlegen.
Code:
# zdb
nvme:
    version: 5000
    name: 'nvme'
    state: 0
    txg: 4
    pool_guid: 12345
    hostid: 12345
    hostname: 'XYZ'
    com.delphix:has_per_vdev_zaps
    vdev_children: 1
    vdev_tree:
        type: 'root'
        id: 0
        guid: 12345
        create_txg: 4
        children[0]:
            type: 'disk'
            id: 0
            guid: 12345
            path: '/dev/nvd0'
            whole_disk: 1
            metaslab_array: 37
            metaslab_shift: 32
            ashift: 9
            asize: 512105381888
            is_log: 0
            create_txg: 4
            com.delphix:vdev_zap_leaf: 35
            com.delphix:vdev_zap_top: 36
    features_for_read:
        com.delphix:hole_birth
        com.delphix:embedded_data
 
Der Alignment shift bleibt für /dev/nvd0 leider bei 9, auch wenn ich mit gpart 4k-Sektoren setze.

Im Wiki steht die Lösung:
Code:
# sysctl vfs.zfs.min_auto_ashift=12
# zpool destroy nvme
# zpool create nvme /dev/nvd0
 
Zurück
Oben