Mengapa `daftar zfs` dan` daftar zpool` melaporkan ukuran yang sangat berbeda untuk kumpulan raidz2 saya?

11

Saya memiliki server ZFS dengan 8 zpool. Setiap kumpulan adalah 12 disk 6TB dalam konfigurasi RAIDZ 10 + 2. Jadi, setiap kumpulan memiliki ruang penyimpanan baku 12 * 6 = 72 TB dan ruang yang dapat digunakan 10 * 6 = 60 TB. Namun, saya melihat hasil yang berbeda ketika saya menanyakannya menggunakan zfs listvs. menggunakan zpool listseperti di bawah ini:

# zfs list
NAME     USED  AVAIL  REFER  MOUNTPOINT
intp1    631K  48.0T   219K  /intp1
intp2    631K  48.0T   219K  /intp2
intp3    631K  48.0T   219K  /intp3
jbodp4   631K  48.0T   219K  /jbodp4

# zpool list
NAME     SIZE  ALLOC   FREE  EXPANDSZ   FRAG    CAP  DEDUP  HEALTH  ALTROOT
intp1     65T  1.02M  65.0T         -     0%     0%  1.00x  ONLINE  -
intp2     65T  1020K  65.0T         -     0%     0%  1.00x  ONLINE  -
intp3     65T  1.02M  65.0T         -     0%     0%  1.00x  ONLINE  -
jbodp4    65T  1.02M  65.0T         -     0%     0%  1.00x  ONLINE  -

Bisakah seseorang membantu saya memahami mengapa perbedaan ini?

mkc
sumber

Jawaban:

10

Saya terkejut Anda memiliki pengaturan yang besar. Apakah Anda membuat array ini? Ini berpotensi pengaturan yang buruk untuk kinerja karena desain kolam renang.

Either way, zpoolhalaman manual menjelaskan ini. zfs listakan menunjukkan ruang Anda yang dapat digunakan. The zpoolmenunjukkan daftar paritas ruang sebagai ruang penyimpanan.

   used                Amount of storage space used within the pool.

   The  space  usage properties report actual physical space available to the storage pool. The physical
   space can be different from the total amount of space that any contained datasets can  actually  use.
   The  amount  of  space used in a raidz configuration depends on the characteristics of the data being
   written. In addition, ZFS reserves some space for internal accounting that the zfs(8)  command  takes
   into  account, but the zpool command does not. For non-full pools of a reasonable size, these effects
   should be invisible. For small pools, or pools that are close to being completely  full,  these  dis-
   crepancies may become more noticeable.
putih
sumber
1
Untuk kebutuhan akuntansi Anda, gunakan zfs list. Itu yang terpenting. Untuk desain kolam, itu tergantung pada use case. Apa yang ingin kamu capai? Apa persyaratan kinerja dan kapasitas Anda? Secara umum, untuk raidz2, jangan gunakan kurang dari 6 disk, atau lebih dari 10 disk di setiap vdev (8 adalah rata-rata tipikal).
ewwhite
1
@Wewite Bagus baca, tapi mengapa mengikuti saran itu? Ini bukan dari Oracle atau orang-orang zfsonlinux. Berdasarkan apakah batasan 6-10 ini?
Ryan Babchishin
2
@RyanBabchishin Penulis adalah seorang insinyur di Nexenta , vendor perangkat lunak penyimpanan ZFS komersial. Rekomendasi tersebut didasarkan pada pengalaman, kinerja, dan pemahaman menyeluruh tentang sistem file. Saya tidak mengatakan orang tidak dapat mengonfigurasi hal-hal seperti yang mereka inginkan atau itu tidak akan berhasil: Hanya saja tidak optimal. Dalam kasus OP, kinerja I / O-nya acak akan menderita di bawah desain 12-disk.
ewwhite
3
Saya pikir Anda lupa bahwa disk 6Tb tidak benar-benar 6Tb, karena ada konspirasi di antara produsen disk, karena mereka berpikir bahwa satu gigabyte bukan 1 073 741 824 byte, sebagaimana mestinya, tetapi lebih dari 1.000.000 byte byte. Ini membutuhkan ruang yang signifikan dari akuntansi.
drookie
1
@drookie, Anda tepat. lsblk -bmemberi saya ukuran byte setiap disk yang 5.4TB dan bukan 6TB seperti yang saya pikirkan sebelumnya.
mkc