4 votes

Créer un pool ZFS à partir d'un liveCD avec ashift=9 devient ashift=12 lors du redémarrage dans un nouvel OS

Je ai créé un zpool tout en étant démarré sur un liveCD Linux Mint (avec tous les paquets ZFS temporairement installés) et créé un zpool avec la ligne de commande contenant ashift=9 parce que mes unités ST4000NM0033 (8 chaque) ont des secteurs de 512B. J'ai également créé quelques systèmes de fichiers ZFS sur le pool tout en étant en LiveCD

Alors que je tournais encore sur le liveCD, j'ai pu vérifier que le pool utilisait ashift=9 en exécutant zdb -e -C pool0 | grep ashift. J'ai dû utiliser les options -e -C pool0 car sans elles, j'obtenais l'erreur cannot open /etc/zfs/zpool.cache

Mais une fois que j'ai installé et redémarré dans le vrai système d'exploitation, qui est ZFS sur root, et que j'ai relancé zdb | grep ashift, il indique ashift=12

J'utilise également LUKS sous les vdevs. Chacun a un en-tête détaché et un fichier clé et je démarre le système à partir d'une clé USB avec grub/efi/boot dessus.

Le zpool est un arrangement RAIDZ1 4x en bande.

Détails du zpool :

cliquez pour une image détaillée. elle ne collait pas correctement

Voici les résultats de zdb sur le système en cours d'exécution

version: 5000
name: 'pool0'
state: 0
txg: 331399
pool_guid: 4878817387727202324
errata: 0
hostname: 'shop'
com.delphix:has_per_vdev_zaps
vdev_children: 1
vdev_tree:
    type: 'root'
    id: 0
    guid: 4878817387727202324
    children[0]:
        type: 'raidz'
        id: 0
        guid: 4453362395566037229
        nparity: 1
        metaslab_array: 138
        metaslab_shift: 36
        ashift: 12
        asize: 7996794994688
        is_log: 0
        create_txg: 4
        com.delphix:vdev_zap_top: 129
        children[0]:
            type: 'disk'
            id: 0
            guid: 17425041855122083436
            path: '/dev/mapper/luks_root_sda'
            whole_disk: 0
            DTL: 179
            create_txg: 4
            com.delphix:vdev_zap_leaf: 130
        children[1]:
            type: 'disk'
            id: 1
            guid: 14306620094487281535
            path: '/dev/mapper/luks_root_sdb'
            whole_disk: 0
            DTL: 178
            create_txg: 4
            com.delphix:vdev_zap_leaf: 131
        children[2]:
            type: 'disk'
            id: 2
            guid: 16566898459604505385
            path: '/dev/mapper/luks_root_sdc'
            whole_disk: 0
            DTL: 177
            create_txg: 4
            com.delphix:vdev_zap_leaf: 132
        children[3]:
            type: 'disk'
            id: 3
            guid: 542095292802891028
            path: '/dev/mapper/luks_root_sdd'
            whole_disk: 0
            DTL: 176
            create_txg: 4
            com.delphix:vdev_zap_leaf: 133
        children[4]:
            type: 'disk'
            id: 4
            guid: 14142266371747430354
            path: '/dev/mapper/luks_root_sde'
            whole_disk: 0
            DTL: 175
            create_txg: 4
            com.delphix:vdev_zap_leaf: 134
        children[5]:
            type: 'disk'
            id: 5
            guid: 9998698084287190219
            path: '/dev/mapper/luks_root_sdf'
            whole_disk: 0
            DTL: 174
            create_txg: 4
            com.delphix:vdev_zap_leaf: 135
        children[6]:
            type: 'disk'
            id: 6
            guid: 9268711926727287907
            path: '/dev/mapper/luks_root_sdg'
            whole_disk: 0
            DTL: 173
            create_txg: 4
            com.delphix:vdev_zap_leaf: 136
        children[7]:
            type: 'disk'
            id: 7
            guid: 16360862201213710466
            path: '/dev/mapper/luks_root_sdh'
            whole_disk: 0
            DTL: 172
            create_txg: 4
            com.delphix:vdev_zap_leaf: 137
features_for_read:
    com.delphix:hole_birth
    com.delphix:embedded_data

MISE À JOUR : Semble que vérifier la valeur ashift directement sur le périphérique montre une valeur ashift=9 attendue. Pas sûr pourquoi la valeur au niveau supérieur est différente

zdb -l /dev/mapper/luks_root_sda

ÉTIQUETTE 0

version: 5000
name: 'pool0'
state: 0
txg: 2223
pool_guid: 13689528332972152746
errata: 0
hostname: 'shop'
top_guid: 8586701185874218688
guid: 11289841240384277392
vdev_children: 2
vdev_tree:
    type: 'raidz'
    id: 0
    guid: 8586701185874218688
    nparity: 1
    metaslab_array: 142
    metaslab_shift: 37
    ashift: 9
    asize: 15901962272768
    is_log: 0
    create_txg: 4
    children[0]:
        type: 'disk'
        id: 0
        guid: 11289841240384277392
        path: '/dev/mapper/luks_root_sda'
        whole_disk: 0
        create_txg: 4
    children[1]:
        type: 'disk'
        id: 1
        guid: 7916996642850715828
        path: '/dev/mapper/luks_root_sdb'
        whole_disk: 0
        create_txg: 4
    children[2]:
        type: 'disk'
        id: 2
        guid: 5366943858334839242
        path: '/dev/mapper/luks_root_sdc'
        whole_disk: 0
        create_txg: 4
    children[3]:
        type: 'disk'
        id: 3
        guid: 3110382675821028014
        path: '/dev/mapper/luks_root_sdd'
        whole_disk: 0
        create_txg: 4
features_for_read:
    com.delphix:hole_birth
    com.delphix:embedded_data
labels = 0 1 2 3

1voto

GenerationTech Points 51

Ce problème a été causé par un/etc/zfs/zpool.cache obsolète qui a été copié en place lorsque j'ai remplacé la configuration 8x1TB par le nouveau tableau 8x4TB et copié le/d'origine en place.

Il semble que ZFS n'ait pas mis à jourzpool.cache etzdb -l lit à partir de ce fichier alors quezdb -l /dev/DEVICE | grep ashift lit directement à partir du zdev et a montré la valeur ashift=9 attendue.

Pour corriger l'ensemble du problème, j'ai supprimézpool.cache et exécutézpool set cachefile=/etc/zfs/zpool.cache pool0

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X