จากบทความในการทำ StackWise Virtual ในหลายปีที่ผ่านมา ที่เราได้แชร์ไปแล้วนะครับ สามารถติดตามได้จากลิงก์นี้ครับ https://www.ablenet.co.th/en/2023/05/02/svl
รอบนี้ผมมีประสบการณ์อยากจะมาแบ่งปันเพิ่มเติม เพื่อไม่ให้ Network Engineer ถัดไปจากเราเจอปัญหา ซึ่งในระหว่างการเข้าดำเนินงานติดตั้งและเชื่อมต่ออุปกรณ์ Cisco Catalyst 9500-24Y4C-A เพิ่มเติมเข้ากับ Core Switch เดิมของหน่วยงาน ณ หน้างานจริง พบว่าการทำงานในลักษณะ StackWise Virtual มีรายละเอียดเชิงเทคนิคที่สำคัญซึ่งต้องวางแผนและตรวจสอบอย่างรอบคอบก่อนดำเนินการครับ ผมจะทยอยอธิบายให้นะครับ

ก่อนอื่น ผมจะเล่าว่าแม้ว่าอุปกรณ์ในตระกูล Catalyst 9500 จะมีหน้าตาและสเปกใกล้เคียงกัน แต่ไม่ใช่ทุกรุ่นที่รองรับการทำ StackWise Virtual โดยเฉพาะอย่างยิ่งรุ่นที่มีรหัสลงท้ายด้วย “-A” เท่านั้นที่รองรับฟีเจอร์การทำ StackWise Virtual นะครับ หากใครซื้อเป็น “-E” มา
จากการปฏิบัติงานจริง มีประเด็นสำคัญดังนี้ครับ
- การตรวจสอบ Model Suffix (เช่น –A) มีความสำคัญอย่างยิ่งก่อนวางแผนทำ Stack
- ลำดับขั้นตอนการ Boot และ Configuration มีผลโดยตรงต่อความเสถียรของระบบ Core
- การไม่สำรองไฟล์ Configuration อย่างถูกต้องก่อนเริ่มงาน อาจนำไปสู่ความเสี่ยงที่ Config Production ถูกเขียนทับ
เหตุการณ์ในครั้งนี้จึงเป็นบทเรียนที่สำคัญสำหรับการดำเนินโครงการในอนาคต โดยเฉพาะงานที่เกี่ยวข้องกับ Core Infrastructure ซึ่งมีผลกระทบในระดับทั้งอาคารหรือทั้งองค์กรครับ
บทความนี้จัดทำขึ้นเพื่อสรุปบทเรียนที่ได้รับ (Lesson Learned) พร้อมแนวทางปฏิบัติที่ถูกต้อง เพื่อใช้เป็นมาตรฐานอ้างอิงในการดำเนินงานครั้งถัดไป รวมถึงแบ่งปันในการวางแผนสำหรับ Project Manager และ Network Engineer ด้วยครับ
Lesson Learned การเพิ่ม Catalyst 9500 เข้า StackWise Virtual อย่างปลอดภัย
1. ปัญหาที่พบ
เมื่อเอา Switch 9500 ตัวใหม่ เข้า StackWise Virtual ถ้าใช้แค่
write memory
หรือ
copy running-config startup-config
ระบบจะบันทึกเป็นไฟล์ชื่อเดิมคือ startup-config
ปัญหาก็คือว่า
- ถ้า Switch ตัวใหม่ boot เสร็จก่อน
- หรือเกิด role election ใหม่
- อุปกรณ์ที่กลายเป็น Active อาจเขียน config ทับ
- ทำให้ config production หายทั้งหมดได้
อันนี้เกิดขึ้นจริงในหลาย site แล้วครับ 😅
2. หลักการสำคัญ
2.1 ห้ามให้ Switch ใหม่ boot ก่อนตัวเดิมเด็ดขาด และห้ามพึ่งแค่ write memory ก่อนทำ SVL โดย Step ที่ถูกต้อง (Recommended Procedure) คือ การ Backup Config เดิมก่อนทุกครั้ง
2.1.1 Backup ไป external (แนะนำที่สุด)
copy running-config tftp:
หรือ
copy startup-config tftp:
2.1.2 Backup ภายในเครื่องโดย “เปลี่ยนชื่อไฟล์”
copy startup-config flash:backup_pre_svl.cfg ตรวจสอบโดยใช้คำสั่ง
dir flash:
ต้องเห็นไฟล์ backup_pre_svl.cfg อยู่จริง
2.2 Shutdown Switch ใหม่ก่อนเชื่อมต่อ
- ยังไม่ต่อสาย StackWise Virtual Link
- ยังไม่ต่อสาย DAD
- ยังไม่เปิด power
2.3 Configure StackWise Virtual บน Switch เดิมก่อน
บน Switch ตัวเดิม (ที่จะเป็น Active)
stackwise-virtual
stackwise-virtual domain 1กำหนด SVL Port:
interface TenGig1/0/49
stackwise-virtual link 1กำหนด DAD Link (Dual Active Detection):
interface TenGig1/0/48
stackwise-virtual dual-active-detection
Note. ทำไมต้องมี DAD?
DAD ป้องกันกรณี SVL Link ขาด แล้วทั้งสองเครื่องคิดว่าตัวเองเป็น Active
ถ้าไม่มี DAD = อาจเกิด Split Brain = Network ล่มทั้ง Core นั่นเองครับ
4. Reload Switch เดิมให้ Config SVL ทำงาน
reload
รอจน boot เสร็จ 100% และตรวจสอบโดยใช้คำสั่ง show stackwise-virtual ต้องเห็นสถานะ
Stackwise Virtual : Enabled
Role : Active
5. เตรียม Switch ใหม่
บน Switch ใหม่ ใช้คำสั่ง
write erase
reload
ให้เป็น default จริง ๆ อย่า copy config ใด ๆ เข้าไปก่อนครับ
6. Boot Switch ใหม่หลังจากตัวเดิมพร้อมแล้ว
ลำดับที่ถูกต้องจะเป็น
- ตัวเดิม boot เสร็จ
- SVL config พร้อม
- ต่อสาย SVL
- ต่อสาย DAD
- เปิด power ตัวใหม่
7. ตรวจสอบการ Join
show stackwise-virtual ควรจะเห็น
Switch 1 – Active
Switch 2 – Standby
8. ตรวจสอบ DAD Status
show stackwise-virtual dual-active-detection ต้องเห็น Link up ครับ
Note. สิ่งที่ห้ามทำ
❌ เปิด Switch ใหม่ก่อน config SVL เสร็จ
❌ ไม่ backup config
❌ ไม่มี DAD link
❌ ใช้ write memory อย่างเดียวแล้วคิดว่าปลอดภัย
สรุปความเสี่ยงถ้าทำผิดนะครับ
|
ความผิดพลาด |
ผลกระทบ |
|
ไม่ backup |
Config หาย |
|
Boot เครื่องใหม่ก่อน |
Config overwrite |
|
ไม่มี DAD |
Split Brain |
|
SVL link ผิด port |
Stack ไม่ขึ้น |
Best Practice เพิ่มเติม
เราสามารถ กำหนด priority เพิ่มเติม
switch 1 priority 15
switch 2 priority 10
Backup ก่อนและหลังทำ SVL ถ้าเป็น Core production → ทำช่วง Maintenance Window เท่านั้น
StackWise Virtual ทำงานแบบนี้
- เครื่องแรก = Active (ควบคุม config ทั้งหมด)
- เครื่องที่สอง = Standby (รับ config sync)
Production มีของเดิมอยู่ จะต้อง Configure StackWise Virtual แค่เครื่องเดิมเท่านั้น ย้ำว่าเท่านั้นนะครับ
ส่วนเครื่องใหม่ ต้องเป็น Blank เท่านั้น ย้ำว่า Blank เท่านั้นเช่นกันครับ อย่าเผลอไปใส่ command stackwise-virtual ครับ