É possível alterar o tamanho do setor de uma partição para o zfs raidz pool no linux?

9

Eu tenho migrado um pool de zid raidz no linux para novos discos através de dispositivos virtuais que eram arquivos esparsos. Eu usei partições nos discos como os discos são diferentes tamanhos de 1,9T cada. O último disco a adicionar é um disco de 4 TB e participoi-o como os outros com uma partição 1.9T para adicionar ao conjunto. Está usando uma tabela de partições GPT. Quando eu tento substituir o último arquivo com a partição 1.9T no disco 4T eu recebo o seguinte

zpool replace -f zfs_raid /zfs_jbod/zfs_raid/zfs.2 /dev/sdd1 
cannot replace /zfs_jbod/zfs_raid/zfs.2 with /dev/sdd1: devices have different sector alignment

Como posso alterar o tamanho do setor de partição para ser 512 como os outros, ou, se isso falhar, é possível alterar os outros dispositivos do pool para 4024? Aparentemente, os tamanhos do setor lógico são todos 512

cat /sys/block/sdd/queue/hw_sector_size
Disk /dev/sdd: 4000.8 GB, 4000787030016 bytes, 7814037168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes

Como particionei o disco que continha o dispositivo original baseado no 4º arquivo que estou tentando substituir, mas ele não funcionou, recriou o arquivo do dispositivo para que ele esteja atualizando isso.

saída de status do zpool:

NAME                            STATE     READ WRITE CKSUM
zfs_raid                        DEGRADED     0     0     0
  raidz1-0                      DEGRADED     0     0     0
    sda3                        ONLINE       0     0     0
    sdc2                        ONLINE       0     0     0
    sdb1                        ONLINE       0     0     0
    replacing-3                 OFFLINE      0     0     0
      /zfs_jbod/zfs_raid/zfs.2  OFFLINE      0     0     0
      /mnt/butter2/zfs.4        ONLINE       0     0     0  (resilvering)
    
por barrymac 10.09.2013 / 22:50

1 resposta

4

Eu encontrei a opção necessária! o conjunto está atualmente atualizando a nova partição depois de emitir o seguinte comando:

 zpool replace  -o ashift=9 zfs_raid <virtual device> /dev/sdd1

Embora isso seja possível, não é aconselhável porque você obtém um desempenho terrível ao forçar uma unidade do tipo 4k a ser escrita como 512b. Eu aprendi da maneira mais difícil que se deve adicionar

-o ashift=12 

ao criar o pool para evitar a necessidade de recriá-lo mais tarde, pois atualmente não é possível "migrar" para o tamanho do setor de 4k.

    
por 14.09.2013 / 16:54