เพิ่ม SCSI timeout ให้กับ Server

สำหรับ Cloud หรือ VMWare หรืออะไรก็ตาม ที่ใช้งาน Hypervisor server แยกต่อกับ Storage อีกชั้นนึง ผ่านทาง iSCSI นั้น สำหรับ Linux มันจะมีค่า SCSI Timeout อยู่ค่านึง ซึ่งตระกูล Redhat/CentOS จะ default เป็น 60 seconds บางครั้งอาจจะต้องการเพิ่ม Timeout ตัวนี้ เพื่อทำให้สามารถรองรับสถานการณ์บางอย่างที่ Hypervisor กับ SAN ติดต่อกันลำบากในช่วงสั้นๆ (เช่นระหว่างการ Failover หรือการติดต่อ iSCSI ข้าม WAN) สามารถทำได้ดังนี้

เข้าไปที่ Hypervisor server

ดูสถานะของ timeout โดย (เช่น กรณี device sdc)

# cat /sys/block/sdc/device/timeout
60

แก้ไข timeout ของ device โดย (เช่น กรณีแก้ timeout device sdc เป็น 180 sec.)

# echo 180 > /sys/block/sdc/device/timeout

แต่การแก้ไขด้านบน มันจะหายตอน reboot ถ้าต้องการให้ถาวร ต้องแก้ไขที่ไฟล์นี้ครับ

/etc/udev/rules.d/50-udev.rules

แก้ให้เป็น

ACTION=="add", SUBSYSTEM=="scsi" , SYSFS{type}=="0|7|14", \
        RUN+="/bin/sh -c 'echo [B]180[/B] > /sys$$DEVPATH/timeout'"

เคยเห็นคำเตือนเหมือนกันว่าถ้าแก้ให้เป็นค่าสูงขึ้น เวลา Hypervisor โหลดเยอะๆ อาจเกิดอาการเพี้ยนได้ โปรดใช้งานด้วยความระมัดระวัง

ที่มา http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/5/html/Online_Storage_Reconfiguration_Guide/task_controlling-scsi-command-timer-onlining-devices.html

ต้องเพิ่มเหมือนกันครับ แต่ของผมแค่ 90 เคยทำ 180 แล้วมัน อ๋อไปเลยครับ เวลาโหลดหนักๆ ระวังด้วยครับ

ใช่แล้วครับ +1

ดังนั้น ลองค่อยๆ เปลี่ยนนะครับ

ขอบคุณครับ เพิ่งเริ่มใช้เลยครับ จะได้รู้ไว้

แบบนี้จะมีปัญหาอะไรทีหลังไหมครับ