Apakah mungkin untuk mengubah ukuran sektor partisi untuk zfs raidz pool di linux?

9

Saya telah memigrasi kumpulan zfs raidz di linux ke cakram baru melalui perangkat virtual yang merupakan file yang jarang. Saya telah menggunakan partisi pada disk karena ukuran disk masing-masing 1.9T. Disk terakhir yang ditambahkan adalah disk 4Tb dan saya mempartisi itu sebagai yang lain dengan partisi 1,9T untuk ditambahkan ke kumpulan. Itu menggunakan tabel partisi GPT. Ketika saya mencoba mengganti file terakhir dengan partisi 1.9T pada disk 4T saya mendapatkan yang berikut

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

Bagaimana saya bisa mengubah ukuran sektor partisi menjadi 512 seperti yang lain, atau gagal itu mungkin untuk mengubah perangkat kumpulan lain ke 4024? Rupanya ukuran sektor logis semuanya 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

Karena saya telah mempartisi ulang disk yang berisi perangkat berbasis file ke-4 asli yang saya coba ganti tetapi tidak berhasil, saya membuat ulang file perangkat sehingga saat ini sedang melakukan resilver.

output status 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)
barrymac
sumber
Tidak bisakah kamu melakukan zfs melampirkan zfs_raid <file> <device> dan setelah sinkronisasi zfs lepaskan zfs_raid <file>
BitsOfNix
tidak akan melampirkan perangkat ke-5 memperluas array secara permanen? atau mungkin Anda bermaksud sesuatu seperti menambahkan cadangan?
barrymac
Tidak menambahkan cadangan atau menambahkan disk baru, melakukan zpool attach pool old_device new_device, ini akan mencerminkan old_device ke new_device, lalu Anda melepaskan old_device dari cermin Anda setelah resilver: docs.oracle.com/cd/E26502_01/html/E29007/ gayrd.html # scrolltoc <- info tentang attach / detach dan perbedaan antara add dan attach.
BitsOfNix
Itu memang terlihat menjanjikan dengan sayangnya mengembalikan "tidak dapat melampirkan / dev / sdd1 ke /zfs_jbod/zfs_raid/zfs.2: hanya dapat melampirkan ke mirror dan disk tingkat atas"
barrymac
Bisakah Anda menempatkan output zpool status saat ini zfs_raid Anda, untuk melihat tata letak serangan?
BitsOfNix

Jawaban:

4

Saya menemukan opsi yang diperlukan! pool saat ini resilver partisi baru setelah mengeluarkan perintah berikut:

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

Meskipun ini mungkin, itu tidak disarankan karena Anda mendapatkan kinerja yang buruk dengan memaksa drive tipe 4k ditulis sebagai 512b. Saya telah belajar dengan cara yang sulit bahwa seseorang harus menambahkan

-o ashift=12 

saat membuat kumpulan untuk menghindari keharusan membuat ulang nanti karena saat ini tidak mungkin untuk 'bermigrasi' ke ukuran sektor 4k.

barrymac
sumber