2 min read

ขยายพื้นที่ ZFS Pool (mirror)

ขยายพื้นที่ ZFS Pool (mirror)

ปัจจุบันเราใช้งาน ZFS Pool แบบ mirror (เทียบเท่า raid 1) ข้อดีคือ HDD สามารถพังได้ 1 ลูก โดยข้อมูลไม่เสียหาย ส่วนการเพิ่มขยาย ZFS Pool ก็ต้องเพิ่ม HDD ทีละ 2 ลูกเช่นกัน โดยจะเพิ่ม HDD 6TB x 2 ลูก จะส่งผลให้ขนาดพื้นที่เก็บข้อมูลเพิ่มจากเดิม 2TB+6TB=8TB

Command line ใช้งานบน Proxmox VE 8.2.2

zpool status poolname (เรียกดูสถานะ poolname)

zpool status nas

เข้าไปที่ Proxmox UI (pve -> Disks) มองหา disk ที่เพิ่มเข้ามาใหม่ /dev/sdf และ /dev/sdg จากนั้นไปค้นหา disk by-id

ls -l /dev/disk/by-id/ | grep sdf
ls -l /dev/disk/by-id/ | grep sdg

zpool add poolname mirror new_disk1 new_disk2 (เพิ่ม disk เข้าแบบ mirror)

zpool add nas mirror /dev/disk/by-id/usb-External_USB3.0_DISK03_20170331000C3-0:3 /dev/disk/by-id/usb-External_USB3.0_DISK04_20170331000C3-0:4

ตรวจสอบสถานะ zpool อีกครั้ง ตอนนี้จะมี VDEV mirror-x เพิ่มเข้ามาใน status แล้ว

zpool iostat -v poolname (เรียกดูสถานะ I/O Statistics)

zpool iostat -v nas

การเรียกใช้งานคำสั่ง iostat เราจะเห็นรายละเอียด แต่ละ VDEV ว่าตอนนี้ใช้งานไปเท่าไหร่ (capacity alloc) เหลือพื้นที่ใช้งานเท่าไหร่ (capacity free) และสามารถดูพวก operations (read/write), bandwidth (read/write)

  • mirror-0 มีขนาดความจุ 2TB
  • mirror-2 มีขนาดความจุ 6TB

ต่อไปเรามาลองเล่นอะไรกันอีกหน่อย จะได้เข้าใจหลักการทำงานของ ZFS Pool mirror โดยเราจะลองลบ mirror-2 ทิ้ง!!!

ก่อนจะลบ mirror-x ออกจาก zpool เราต้องทำความเข้าใจแบบนี้ก่อน

กรณีเรามี mirror-0 (2TB) + mirror-2 (6TB) ถ้าใช้งานพื้นที่ไปไม่เกิน 2TB เราสามารถลบ mirror-2 ทิ้งได้ !

ในทางกลับกัน ถ้าใช้งานพื้นที่ไปไม่เกิน 6TB เราสามารถลบ mirror-0 ทิ้งได้ เช่นกัน!!

เพราะเมื่อเราทำการลบ mirror ตัวไหนก็ตาม ข้อมูลที่อยู่ใน mirror นั้นจะย้ายไปสู่อีก mirror ทันที เพื่อป้องกันข้อมูลสูญหาย

zpool remove poolname mirror-2 (ลบ mirror-x ออกจาก zpool)

zpool remove nas mirror-2