zpool ordem de importação em / dev / disk / by-id

1

Se eu tiver um disco: sdi e houver três entradas em /dev/disk/by-id :

scsi-SATA_WDC_WD6001FSYZ-_WD-WXB1HB4SFS7W -> ../../sdi
ata-WDC_WD6001FSYZ-01SS7B0_WD-WXB1HB4SFS7W -> ../../sdi
wwn-0x50014ee004032d28 -> ../../sdi

Agora eu uso zpool import -d /dev/disk/by-id zpoolname . Como o zpool decide a ordem das três entradas? Eu executo o comando e escolho ata-WDC_WD6001FSYZ-01SS7B0_WD-WXB1HB4SFS7W . Mas eu quero saber como.

Eu verifico o código: link

Parece que usa readdir ? Mas readdir não garante a ordem de digitalização, certo? E acho que isso não faz sentido.

Obrigado.

    
por 黃健瑋 10.03.2016 / 10:29

1 resposta

1

Bem, você viu o código, que usa readdir , o que não garante a ordem em que as entradas são lidas.

Mas isso não importa.

O ZFS não se importa se o nó do dispositivo é referido de uma forma ou de outra. O que importa é saber se os dados no disco estão acessíveis ou não. E se não for, então essa entrada de diretório específica não será candidata à importação do pool, então não faz diferença.

A única razão pela qual você se importa se deseja que um nome específico seja exibido na saída zpool status . E, nesse caso, você não deve importar de / dev / disk / by-id (que, como você observou, tem várias maneiras de se referir à mesma partição), mas, ao invés disso, configura / etc / zfs / vdev_id. conf e depois importar de / dev / disk / by-vdev. (Você provavelmente precisará executar novamente udevadm trigger .)

Geralmente, não se preocupe com os detalhes da implementação, a menos que você realmente tenha algum uso real dos detalhes da implementação, porque a próxima versão pode mudar completamente o comportamento que você está observando. Em vez disso, use as interfaces documentadas para obter o efeito desejado.

Isso poderia ter sido evitado se alguém colocasse o tipo em um componente de caminho separado, de modo que tivéssemos algo como / dev / disk / by-id / scsi / SATA_WDC_WD6001FSYZ-_WD-WXB1HB4SFS7W, / dev / disco / by-id / ata / WDC_WD6001FSYZ-01SS7B0_WD-WXB1HB4SFS7W e / dev / disk / by-id / wwn / 0x50014ee004032d28 em vez disso. Mas, infelizmente. Você poderia fazer isso em seu próprio sistema, mas isso confundiria todos os outros e seus scripts ...

    
por 16.03.2016 / 21:31

Tags