ทำไม `zfs list` และ` zpool list` รายงานขนาดที่แตกต่างกันมากสำหรับพูล raidz2 ของฉัน


11

ฉันมีเซิร์ฟเวอร์ ZFS ที่มี 8 zpool แต่ละพูลมีดิสก์ 6 6TB ในการกำหนดค่า 10 + 2 RAIDZ ดังนั้นแต่ละพูลมีพื้นที่เก็บข้อมูลดิบ 12 * 6 = 72 TB และพื้นที่ใช้งาน 10 * 6 = 60 TB อย่างไรก็ตามฉันเห็นผลลัพธ์ที่แตกต่างกันเมื่อฉันค้นหาโดยใช้zfs listและใช้zpool listเป็นด้านล่าง:

# 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  -

ใครช่วยให้ฉันเข้าใจว่าทำไมความแตกต่างนี้คืออะไร?

คำตอบ:


10

ฉันประหลาดใจที่คุณมีการตั้งค่าขนาดใหญ่เช่นนี้ คุณสร้างอาร์เรย์นี้หรือไม่ นี่อาจเป็นข้อตกลงที่ไม่ดีสำหรับประสิทธิภาพเนื่องจากการออกแบบกลุ่ม

ไม่ว่าจะด้วยวิธีzpoolใดหน้า man จะอธิบายสิ่งนี้ zfs listจะแสดงพื้นที่ใช้งานของคุณ zpoolพื้นที่รายการที่แสดงให้เห็นความเท่าเทียมกันเป็นพื้นที่จัดเก็บ

   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.

1
zfs listสำหรับความต้องการของบัญชีของคุณใช้ นั่นคือสิ่งที่สำคัญจริงๆ สำหรับการออกแบบพูลนั้นขึ้นอยู่กับกรณีการใช้งาน คุณต้องการทำอะไรให้สำเร็จ ข้อกำหนดด้านประสิทธิภาพและความสามารถของคุณคืออะไร? โดยทั่วไปสำหรับ raidz2 ห้ามใช้ดิสก์น้อยกว่า 6 ดิสก์และไม่เกิน 10 ดิสก์ในแต่ละ vdev (8 คือค่าเฉลี่ยทั่วไป)
ewwhite

1
@ ขาวดีอ่าน แต่ทำไมทำตามคำแนะนำนั้น มันไม่ได้มาจาก Oracle หรือคน zfsonlinux ขีด จำกัด 6-10 นี้ขึ้นอยู่กับอะไร
Ryan Babchishin

2
@RyanBabchishin ผู้แต่งเป็นวิศวกรของNexentaซึ่งเป็นผู้จำหน่ายซอฟต์แวร์จัดเก็บข้อมูล ZFS เชิงพาณิชย์ คำแนะนำขึ้นอยู่กับประสบการณ์ประสิทธิภาพและความเข้าใจอย่างละเอียดของระบบไฟล์ ฉันไม่ได้บอกว่าผู้คนไม่สามารถกำหนดค่าสิ่งต่าง ๆ ได้ตามที่พวกเขาต้องการหรือมันจะไม่ทำงาน: มันไม่เหมาะ ในกรณีของ OP ประสิทธิภาพการสุ่ม I / O ของเขาจะประสบภายใต้การออกแบบ 12 ดิสก์
ewwhite

3
ฉันคิดว่าคุณลืมว่าดิสก์ 6Tb ไม่ใช่ 6Tb จริง ๆ เพราะมีแผนการในหมู่ผู้ผลิตดิสก์เพราะพวกเขาคิดว่าหนึ่งกิกะไบต์ไม่ใช่ 1 073 741 824 ไบต์ตามที่ควรจะเป็น แต่เป็น 1 000 000 000 ไบต์ สิ่งนี้ใช้พื้นที่สำคัญจากการบัญชี
drookie

1
@drookie คุณเป็นจุดบน lsblk -bให้ขนาดไบต์ของดิสก์แต่ละอันซึ่งคือ 5.4TB และไม่ใช่ 6TB ตามที่ฉันคิดไว้ก่อนหน้านี้
mkc
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.