สร้าง ZFS Storage ใช้งานกันเถอะ

สร้าง ZFS Storage ใช้งานกันเถอะ

จากบทความที่แล้ว ACASIS 2-bay ซึ่งเป็น hard drive enclosure ที่รองรับการทำ raid hardware มันไม่มี tool สำหรับ monitor การทำงานของตัว raid ด้วยความไม่อยากเสี่ยงข้อมูลหาย และก็ความอยากลองวิชา อีกทั้ง ZFS สามารถทำ raid ได้เหมือนกัน เพราะงั้นเรามาสร้าง ZFS Storage ใช้งานกันเถอะ

ACASIS 2-bay hard drive enclosure รองรับ raid hardware
ACASIS 2-bay รุ่น EC-7352 คือกล่องใส่ HDD ขนาด 3.5 นิ้ว หรือ 2.5 นิ้ว สามารถใส่ HDD ได้ 2 ตัว และยังรองรับการทำ raid 4 modes จากนั้นก็นำมาใช้เป็น external HDD ผ่านทาง port usb นั้นเอง หลังจากเปิดตัวกล่องก็
การสร้าง ZFS Storage ใช้งานผ่านทาง Proxmox GUI + Command line

เริ่มต้นสร้าง ZFS Storage

เมื่อเสียบ usb drive เข้าตัว proxmox ให้เข้าไปส่วนของ Disks จะเจอ disk เพิ่มมา 2 ตัว /dev/sdb กับ /dev/sdc (จำชื่อไว้นะ) ทำการ format โดยเลือก disk แล้วกดปุ่ม Wipe Disk

การสร้าง ZFS Storage ผ่านทาง Proxmox GUI (Disks -> ZFS -> Create: ZFS)

ตรงส่วนนี้สามารถ RAID Level: Mirror ไปเลยก็ได้ แต่เราจะนำเสนอวิธีสร้าง RAID Level: Single Disk จากนั้นค่อยมาเพิ่ม disk เพื่อเปลี่ยนไปเป็น RAID Level: Mirror

สามารถเช็ค status ผ่านทาง ZFS -> เลือก pool -> Detail หรือ command

zpool status nas
เช็ค status ผ่านทาง command

ต่อไปเราจะเพิ่ม disk /dev/sdc เข้าไปที่ zpool nas เพื่อจะเปลี่ยนเป็น RAID Level: Mirror ทำการค้นหา disk by-id ด้วยคำสั่ง มองหา sdc

ls -l /dev/disk/by-id/
ค้นหา disk by-id

เพิ่ม disk เข้าไป zpool nas

zpool attach <pool_name> <old_drive> <new_drive>
zpool attach nas ata-ST2000DM005-2CW102_WFM2TYD6 /dev/disk/by-id/ata-ST2000VX008-2E3164_Z52B3HF3

ลองคำสั่งเช็ค status อีกครั้ง ตอนนี้ zpool nas ของเราได้เปลี่ยนเป็นแบบ mirror เรียบร้อย จากนั้นก็แค่รอระบบทำการ resilver ระหว่าง disk 2 ตัว

หรือจะเช็ค status ผ่านทาง Proxmox GUI

คำสั่ง monitor disk I/O ใช้งานค่อนข้างบ่อย

zpool iostat -v nas
zpool iostat -v nas 1
refresh ทุกๆ 1 วินาที

อย่าลืม! ทำการปรับ ARC เพื่อความเหมาะสมของการใช้งาน

แนวทางการ limit ZFS ARC
กรณีเราติดตั้ง proxmox ด้วยระบบ ZFS ค่าทำงานเริ่มต้นของระบบคือ ใช้งาน memory 50% ของทั้งระบบ เพราะว่า ARC (Adaptive Replacement Cache) จำเป็นต้องนำไปใช้งาน เพื่อประสิทธิภาพของ IO เราก็จะเห็น memory usage วิ่งอยู่ 80% - 90% ตลอดเวลา แนวทางแก้ไขคือ ต้องกำหนด