แนวทางการ tuning ZFS Proxmox

แนวทางการ tuning ZFS Proxmox

จากบทความที่แล้ว ได้พูดถึงการปรับ limit ZFS ARC ส่วนบทความนี้จะเป็นการ tuning performance หลังจากใช้งาน ZFS Storage แล้วเจอปัญหาหลักๆคือ เรื่องใช้งาน IO สูงผิดปกติ จนตัว Proxmox ค้างบ่อยครั้ง

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

ถ้าติดตั้ง Proxmox ด้วยระบบ ZFS จะมี pool เริ่มต้นมาให้คือ rpool ซึ่งเราจะสามารถใช้งานได้ทั้ง local และ local-zfs สำหรับเป็น storage vm, container

zfs list
เรียกดู list
NAME                           USED  AVAIL     REFER  MOUNTPOINT
rpool                         27.8G  29.4G       96K  /rpool
rpool/ROOT                    11.5G  29.4G       96K  /rpool/ROOT
rpool/ROOT/pve-1              11.5G  29.4G     11.5G  /
rpool/data                    16.2G  29.4G      112K  /rpool/data
result zfs list

Tuning Performance ZFS

  1. compression = lz4
  2. atime = off
  3. xattr = sa
  4. recordsize = 16K - 64K
  5. volblocksize = 16k - 64k

compression แนะนำเป็น lz4 จะใช้งาน cpu นิดนึง

zfs set compression=lz4 rpool
zfs get compression rpool
คำสั่งเรียกดู compression

atime แนะนำเป็น off ระบบไม่ update time ทุกครั้งที่มีการอ่านไฟล์

zfs set atime=off rpool
zfs get atime rpool
คำสั่งเรียกดู get atime

xattr แนะนำเป็น sa (System Attributes) โดย attributes จะถูกเก็บไว้ใน inodes

zfs set xattr=sa rpool
zfs get xattr rpool
คำสั่งเรียกดู get xattr

recordsize ค่าเริ่มต้นของ proxmox คือ 128K แนะนำปรับอยู่ในช่วง 16K - 64K ซึ่งจะมีผลดีต่อความเร็ว IOPs ของการ random reads และ writes

zfs set recordsize=64K rpool
zfs get recordsize rpool
คำสั่งเรียกดู recordsize

สุดท้ายคือ volblocksize เข้าไปที่ Proxmox UI (Datacenter -> Storage -> local-zfs -> Edit) โดยค่าเริ่มต้นอยู่ที่ 8k แนะนำปรับอยู่ในช่วง 16k - 64k และติ๊ก Thin provision

สำหรับ vm ที่เคยติดตั้งไปแล้ว จะโดนใช้ค่า volblocksize=8k (default) ต้องทำการติดตั้ง vm ใหม่ หรือใช้วิธี backup vm แล้วค่อย restore กลับมาก็ได้เหมือนกัน

zfs get volblocksize
คำสั่งเรียกดู volblocksize
NAME                                                         PROPERTY      VALUE     SOURCE
rpool                                                        volblocksize  -         -
rpool/ROOT                                                   volblocksize  -         -
rpool/ROOT/pve-1                                             volblocksize  -         -
rpool/data                                                   volblocksize  -         -
rpool/data/vm-101-disk-0                                     volblocksize  64K       -
rpool/data/vm-101-disk-1                                     volblocksize  64K       -
result volblocksize

หลังจากปรับจูน ZFS ตอนนี้ไม่เจอปัญหา IO สูง จนทำให้ Proxmox ค้างอีกเลย ข้อมูลทั้งหมดจากประสบการณ์ล้วนๆ อาจจะไม่ถูกต้อง 100% สามารถอ่านเพิ่มเติมได้จากข้างล่าง

See Also

Read more

วิธีย้าย Disk ZFS ไปใช้งาน Enclosure 5-bay

วิธีย้าย Disk ZFS ไปใช้งาน Enclosure 5-bay

จากบทความก่อนหน้า เราได้รีวิว HDD Enclosure 5-bay สำหรับบทความนี้ เราจะมาพูดถึงการย้าย Disk ZFS ของเดิม 2 ลูก มาใส่ที่ Enclosure 5-bay ORICO hard drive enclosure จุใจขนาด 5-bay (DS500C3)ย้อนไปเมื่อ 2 ปีก่อน เราเคยใช้ Orico docking ขนาด 2-bay รุ่น 6528US3-C

By Teera
เปลี่ยนสวิทช์ เปิด-ปิด ลู่วิ่งไฟฟ้า

เปลี่ยนสวิทช์ เปิด-ปิด ลู่วิ่งไฟฟ้า

เราใช้ลู่วิ่งไฟฟ้าของ Merrira ใช้งานบ่อยพอสมควร ผ่านมาเกือบ 2 ปี แน่นอนว่าหมดประกันแล้ว วันนึงวิ่งอยู่ดีๆ มีกลิ่นไหม้อะไรสักอย่าง หยุดวิ่งแล้วทำการปิดสวิทช์ แต่...มันปิดไม่ได้ สวิทช์มันค้าง เลยรีบถอดปลั๊ก

By Teera
ORICO hard drive enclosure จุใจขนาด 5-bay (DS500C3)

ORICO hard drive enclosure จุใจขนาด 5-bay (DS500C3)

ย้อนไปเมื่อ 2 ปีก่อน เราเคยใช้ Orico docking ขนาด 2-bay รุ่น 6528US3-C ปัจจุบันยังใช้งานได้ดีอยู่ แต่ช่วงหลังเมื่อมาใช้งาน ZFS รู้สึกว่าแค่ 2-bay มันไม่เพียงพอซะแล้ว เลยเป็นที่มาของการอัพเกรดมาใช้งานแบบ 5-bay นั้นเอง สำหรับ

By Teera
Synology off-site backup ข้อมูลด้วย rsync

Synology off-site backup ข้อมูลด้วย rsync

กฏการสำรองข้อมูลแบบ 3-2-1 เป็นการสำรองข้อมูลอย่างปลอดภัย โดยจะถูกแบ่งเป็น 3 ส่วน * มีสำเนาข้อมูลของคุณอย่างน้อย 3 ชุด * เก็บสำเนาเหล่านี้ไว้บนสื่อที่แตกต่างกัน 2 ชนิด * จัดเก็บสำเนาไว้นอกไซต์อย่างน้อย 1 ชุด วั

By Teera