บทนำ
บทความนี้อธิบายปัญหา ATS (Atomic Test and Set) Reliability Issues ที่เกิดขึ้นเมื่อ Sangfor HCI ใช้ Synology NAS เป็น iSCSI Backend Storage ซึ่งอาจทำให้เกิดปัญหา Data Block Reuse และวิธีการแก้ไขโดยการปิด latency_control_cache บน NAS
อาการที่พบ
เมื่อ Sangfor HCI Mount Synology NAS LUN เป็น Backend Storage จะพบปัญหา Data Block Reuse โดย Sangfor ตรวจสอบแล้วพบว่าปัญหาเกิดจาก ATS ที่ไม่น่าเชื่อถือ (Unreliable ATS)


จากการทดสอบพบว่าปัญหานี้จะเกิดขึ้นเมื่อ I/O Latency ของ NAS สูง (1500+) เท่านั้น โดยเมื่อ Latency ต่ำจะไม่สามารถ Reproduce ปัญหาได้

ข้อกำหนดเบื้องต้น
สภาพแวดล้อมที่ใช้ทดสอบ:
- Synology DS 1621+ x 1 (iSCSI Storage)
- DSM 7.2.2 Update 2, SAN Manager 1.0.11-0319
- 4TB HDD x 5 Storage Pools, M.2 380GB x 2 SSD Cache
- CentOS 9.4 x 2 สำหรับเพิ่ม Read/Write Pressure
- CentOS 8.2 x 9 สำหรับ ATS Reliability Testing
Environmental Topology:

อาการผิดปกติที่ตรวจพบ
Storage Pressure:

LUN Pressure:

เมื่อปัญหาเกิดขึ้น ค่าที่ควรเพิ่มขึ้นจะกลับถอยหลัง (Regressed):

ขั้นตอนการแก้ไขชั่วคราว (Temporary Solution - ผ่าน NAS SSH)
ปัญหานี้เกิดจาก Function latency_control_cache ของ Module lio ให้ทำการปิด Function นี้ภายใต้ Business Load ที่ต่ำ
สำคัญ: หากเกิดปัญหา Data Block Reuse แล้ว ให้ติดต่อ Sangfor Official Support เพื่อซ่อมแซม File System ของ Storage
สำคัญ: Function นี้จะเปิดอัตโนมัติหลังจาก Restart NAS, Restart iSCSI Suite หรือ Restart iSCSI Target จึงต้องปิดใหม่ทุกครั้ง
1. ค้นหา LUN UUID โดยใช้ชื่อ LUN (เช่น LUN-1):
cat /volume1/\@iSCSI/LUN/iscsi_lun.conf | grep name=LUN-1 -A 1

2. ตรวจสอบว่า latency_control_cache เปิดอยู่หรือไม่:
cat /sys/kernel/config/target/core/fileio_0/LUN_[LUN uuid]/attrib/latency_control_cache
3. ปิด latency_control_cache:
echo 0 > /sys/kernel/config/target/core/fileio_0/LUN_[LUN uuid]/attrib/latency_control_cache
ตัวอย่างการดำเนินการ:

ขั้นตอนการแก้ไขถาวร (Permanent Solution - ผ่าน NAS Task Scheduler)
เมื่อยืนยันว่า Command ทำงานถูกต้องแล้ว สามารถสร้าง Startup Task Schedule เพื่อให้ทำงานอัตโนมัติ
1. ไปที่ Control Panel > Task Scheduler > Add Triggered Task > เลือก User-defined Script
2. เปลี่ยน User Account เป็น root และเลือก Event เป็น Boot-up
3. ในส่วน Task Settings > Run Script ให้ใส่ Command สำหรับปิด latency_control_cache แล้วกด Confirm
หมายเหตุ
- ปัญหานี้เกิดเฉพาะเมื่อ NAS มี I/O Latency สูง (1500+)
- หากเกิด Data Block Reuse แล้ว ต้องติดต่อ Sangfor Support เพื่อซ่อมแซม File System
- การปิด latency_control_cache แบบ Manual จะถูก Reset หลัง Restart NAS ทุกครั้ง ดังนั้นควรตั้ง Task Scheduler เป็น Permanent Solution
ข้อคิดเห็น
0 ข้อคิดเห็น
โปรด ลงชื่อเข้าใช้ เพื่อแสดงข้อคิดเห็น