การแก้ไขปัญหาเกี่ยวกับ VxVerify ระหว่างการอัพเกรดสําหรับ Dell VxRail
Summary: วิธีแก้ไขปัญหาทั่วไปที่อาจเกิดขึ้นขณะเรียกใช้ VxVerify เพื่อตรวจสอบการอัพเกรด Dell VxRail ล่วงหน้า
Symptoms
บทความ KB นี้มีไว้สําหรับการแก้ไขปัญหาที่ป้องกันไม่ให้ VxVerify ทํางานสําเร็จ
บทความให้ความรู้นี้อ้างอิงจากการทดสอบที่ไม่มีบทความที่กําหนดเป้าหมายสําหรับการตอบสนองที่เกี่ยวข้อง (ตัวอย่างเช่น: คําเตือนความล้มเหลวและวิกฤติ) ตัวอย่างของแบบสอบถามนี้จะเป็นแบบสอบถามที่ส่งกลับการตอบสนองที่ไม่คาดคิดจากแบบสอบถาม
VxVerify ได้รับการออกแบบมาเพื่อตรวจหาปัญหาที่อาจทําให้เกิดภาวะแทรกซ้อนหรือความล้มเหลวระหว่างการอัพเกรด VxRail VxVerify สร้างโปรแกรม Python ที่รู้จักกันในชื่อ Minions ซึ่งส่งไปยังโหนด VxRail ด้านล่างนี้คือผลการทดสอบพื้นฐานที่คุณควรคาดหวัง:vxverify_tests.json
| ผลการทดสอบ | รหัสผลลัพธ์ | การดําเนินการที่แนะนํา |
|---|---|---|
| ผ่าน | 0 | ผ่านการทดสอบแล้ว ไม่ต้องดําเนินการใดๆ |
| คำเตือน | 1 | ไม่สามารถเข้าถึงข้อมูลหรือมีการทําเครื่องหมายคําเตือน ต้องปฏิบัติตาม KB ที่เกี่ยวข้องเพื่อแก้ไขคําเตือน |
| ความล้มเหลว | 2 | ต้องได้รับการแก้ไขก่อนการอัปเกรดใดๆ ตรวจสอบข้อความที่ส่งคืนจากเหตุการณ์นี้ แล้วตรวจสอบบันทึก vxv.log และมินเนี่ยน |
| รุนแรง | 3 | ข้อผิดพลาดร้ายแรงทําให้ VxVerify ไม่สามารถทําการทดสอบที่เกี่ยวข้องได้
สิ่งนี้อาจทําให้การทดสอบเพิ่มเติมไม่ทํางาน ตรวจสอบข้อความที่ส่งคืนจากเหตุการณ์นี้ แล้วตรวจสอบบันทึก vxv.log และมินเนี่ยน ดูตัวอย่างในส่วนข้อมูลเพิ่มเติม |
| Py_Crash | 3 หรือ 9 | เหตุการณ์นี้เกิดขึ้นเมื่อเกิดข้อผิดพลาด Python ที่ไม่สามารถจัดการได้เมื่อทําการทดสอบ
ตรวจสอบข้อความที่ส่งคืนจากเหตุการณ์นี้ แล้วตรวจสอบบันทึก vxv.log และ minion (ดูหมายเหตุ 1) |
หากพบผลการทดสอบที่เป็นเท็จ ให้รวบรวมบันทึกและว่าจ้างฝ่ายสนับสนุนของ Dell เพื่อเปิดตั๋ว VXV กับ VxRail Engineering
Cause
มีหลายสาเหตุที่สามารถป้องกันไม่ให้ VxVerify ทํางานสําเร็จ
- สาเหตุที่พบบ่อยที่สุดของความล้มเหลวคือ สคริปต์ Python หมดอายุแล้ว VxVerify แต่ละเวอร์ชันถูกตั้งค่าให้ใช้งานได้เพียงสองสัปดาห์นับจากวันที่เผยแพร่ สิ่งนี้ใช้ไม่ได้เมื่อเรียกใช้ VxVerify เป็นปลั๊กอินไปยังเฟรมเวิร์กการตรวจสุขภาพ VxRail (ซึ่งเปลี่ยนฟังก์ชัน VxVerify )
- เหตุผลอื่น ๆ อาจเป็นปัญหา การอนุญาต ในตัวจัดการ VxRail หรือ ปัญหาการสื่อสาร กับโฮสต์
- หากสาเหตุของเหตุการณ์ไม่ชัดเจน ให้ติดต่อฝ่ายสนับสนุนของ Dell เพื่อเปิดตั๋ว VXV ด้วย VxRail Engineering
Resolution
ส่วนด้านล่างให้คําแนะนําเกี่ยวกับวิธีการรวบรวมบันทึกและแก้ไขปัญหาหาก VxVerify ทํางานไม่ถูกต้อง
การรวบรวมบันทึกสําหรับการมีส่วนร่วมในการสนับสนุน
เมื่อมีส่วนร่วมกับการสนับสนุนกับปัญหาที่เกี่ยวข้องกับ VxVerify ให้ อัปโหลดโฟลเดอร์ที่เก็บถาวร vxv ทั้งหมด เพื่อการวิเคราะห์หรือ vxverify ไฟล์บันทึก.zip เวอร์ชัน VxVerify แบบสแตนด์อโลนปัจจุบันบันทึกไฟล์ที่เก็บถาวรไปยัง /tmpซึ่งมีผลลัพธ์และบันทึกที่จําเป็นทั้งหมดสําหรับการวิเคราะห์
เช่น:/tmp/vxverify-c9.zip
/tmp บันทึกก่อนหน้าสูงสุดห้าชุดในโฟลเดอร์ ชื่อมีวันที่-เวลาที่เรียกใช้ในแอตทริบิวต์ของแฟ้ม:
vxv_previous_01.zip
tar cvzf vxverify-2020-12-31.tgz /tmp/vxv/
แก้ไข ปัญหา
ขั้นตอนการแก้ไขปัญหาทั่วไปสําหรับการเรียกใช้ VxVerify 2 (สําหรับ VxRail 4.5, 4.7 และ 7.0.000)
- VxVerify ต้องการ Python เพื่อเรียกใช้และบรรทัดคําสั่งเพื่อเรียกใช้มีดังนี้:
python /tmp/vxv/vxverify.pyc
- หากมี ข้อผิดพลาดหมายเลขวิเศษ เกิดขึ้นโดยปกติจะหมายความว่ามีการใช้ VxVerify เวอร์ชันที่ไม่ถูกต้องสําหรับเวอร์ชัน Python บน VxRM ตัวอย่างเช่น ข้อผิดพลาดด้านล่างจะพบถ้าคุณเรียกใช้ VxVerify 2 บน 7.0.320
RuntimeError: Bad magic number in .pyc file
- เมื่อต้องการตรวจสอบว่ามีการใช้ VxVerify เวอร์ชันที่ถูกต้อง โปรดดูบทความ:
- VxRail: วิธีการเรียกใช้เครื่องมือ VxRail Verify (ส่วน VxVerify Releases )
- VxVerify สร้างโปรแกรมที่เรียกว่ามินเนี่ยนซึ่งถูกส่งเรียกใช้และดึงข้อมูลโดยใช้ SSH หากสามารถใช้ SSH ได้แม้ว่าจะยังไม่ได้เปิดใช้งาน VxVerify จะเปิด SSH สําหรับแต่ละโฮสต์เพื่อให้คําสั่งทํางาน หากโฮสต์ถูกล็อกโดยที่ SSH ไม่สามารถเรียกใช้มินเนี่ยนจะไม่สามารถทํางานได้และการทดสอบโฮสต์จะส่งคืนรหัสผลลัพธ์: 2 (ความล้มเหลว) หรือ 3 (สําคัญ) หากสิ่งนี้เกิดขึ้นให้ หารือเกี่ยวกับสิทธิ์ SSH กับผู้ดูแลระบบ
- VxVerify2 ได้รับการออกแบบมาเพื่อทํางานบน Python 2.7 ซึ่งควรมีอยู่ใน VxRM VM และโดยปกติจะเป็น Python เวอร์ชันเดียวที่มีอยู่ หากมีเวอร์ชัน Python เพิ่มเติมให้เรียกใช้สิ่งต่อไปนี้เพื่อทดสอบ (มีตัวเลือก
-hซึ่งก็คือ--help):
python2.7 vxverify.pyc -h
VxVerify เขียนบันทึกและส่งออกไฟล์ไปยัง /tmp/vxv/. หากไม่มีสิทธิ์เพียงพอจะไม่สามารถเรียกใช้ได้ ตรวจสอบสิทธิ์ของโฟลเดอร์ด้วยคําสั่งต่อไปนี้ หากไม่มีสิทธิ์อ่าน / เขียนสําหรับผู้ใช้ทั้งหมดให้เพิ่มสิ่งเหล่านี้ด้วย chmod (อาจต้องใช้สิทธิ์รูท):
$ ls -lad /tmp/vxv drwxrwxrwx 3 mystic users 4096 Oct 1 07:42 vxv
- หากข้อผิดพลาดของสิทธิ์ ยังคงอยู่กับ VxVerify (ตัวอย่างเช่น: 'สิทธิ์ถูกปฏิเสธสําหรับการลบบันทึกก่อนหน้า') ให้ลองลบ
vxvโฟลเดอร์ด้วยคําสั่งต่อไปนี้ (ต้องใช้รหัสผ่านรูทสําหรับการเข้าถึง sudo) หลังจากเรียกใช้คําสั่งลบนี้ VxVerify จะต้องติดตั้งอีกครั้งโดยใช้สิทธิ์ลึกลับเท่านั้น:
sudo rm -r -d /tmp/vxv
- อีกทางเลือกหนึ่งคือการบันทึกไฟล์เอาต์พุต VxVerify ลงในโฟลเดอร์ใหม่ VxVerify สร้างแผนภูมิหากไม่มีอยู่โดยใช้
-lตัวเลือก OR--logตามด้วยเส้นทางที่ควรบันทึกบันทึก เช่น:
python vxverify.pyc -l /tmp/vx1
การแก้ไขปัญหาความแตกต่างระหว่าง VxVerify2 และ VxVerify 3 (สําหรับ VxRail 7.0.010+)
สําหรับ VxRail 7.0.010 และใหม่กว่า ต้องใช้ VxVerify 3 เนื่องจากการเปลี่ยนแปลงพื้นฐานใน VxRM
ขั้นตอนการแก้ไขปัญหาเดียวกันสําหรับ VxVerify2 ยังใช้กับ VxVerify3, EXCEPT:
- เวอร์ชันของ Python สําหรับ VxVerify3 คือ 3.6
- ตําแหน่งที่ตั้งของแพคเกจไซต์ที่ VxVerify ต้องการการเปลี่ยนแปลง ซึ่งอยู่ในตําแหน่งที่ตั้งใดตําแหน่งที่ตั้งหนึ่งด้านล่าง:
/mystic/telemetry/DCManager/venv/lib/python3.6/site-packages/mystic/radar/venv/lib/python3.6/site-packages
- หากโฟลเดอร์ทั้งสองนี้ไม่สามารถเข้าถึงได้จากผู้ใช้ลึกลับโปรแกรม VxVerify จะให้ข้อความแสดงข้อผิดพลาดเกี่ยวกับแพ็คเกจไซต์และออก
- วิธีแก้ปัญหาคือการใช้ผู้ใช้ราก
หมดเวลา
หากมินเนี่ยนใช้เวลานานกว่า 20 นาทีจึงจะเสร็จสมบูรณ์ VxVerify จะต้องระบุเหตุการณ์การหมดเวลาในตารางสรุป
| Node-name |Critical 66460| minion: Maximum run time for minion exceeded
- รายการ vxv.log ที่สอดคล้องกันสําหรับสิ่งนี้คือ:
2022-10-06 06:42:51-WARNING Creating a fault json for missing minion 2022-10-06 06:42:51-WARNING [fail_minion] Producing result file for lab-esx22, due to: Maximum run time for minion exceeded. See minion logs in /tmp/vxv
- สิ่งนี้ควรตรวจสอบโดยดูที่บันทึกมินเนี่ยนสําหรับโฮสต์นั้นเพื่อดูว่ามินเนี่ยนพบข้อผิดพลาดที่ทําให้หยุดหรือไม่หรือว่าการทดสอบดําเนินไปอย่างช้าๆและหมดเวลาที่จะเสร็จสมบูรณ์
- หากมินเนี่ยนกรอกข้อมูลอย่างถูกต้องสิ่งต่อไปนี้ควรเป็นบรรทัดสุดท้ายในบันทึก:
2022-10-06 06:39:30 INFO Writing to JSON: /tmp/xc882-61f1f3b9-7cb2-130a-35b0-minion.json 2022-10-06 06:39:30 INFO JSON save: os.stat_result(st_mode=33206, st_ino=47144, st_dev=1, st_nlink=1, st_uid=0, st_gid=0, st_size=499562, st_atime=1665038370, st_mtime=1665038370, st_ctime=1665038370) 2022-10-06 06:39:30 DEBUG ESXi minion's work is done.
การถ่ายโอนไฟล์ JSON ไม่ทํางาน
หากไม่สามารถถ่ายโอนผลลัพธ์มินเนี่ยนโฮสต์โดยใช้ SCP หรือ SFTP กลับไปยัง VxRM อาจเห็นสิ่งต่อไปนี้ในตารางเอาต์พุต:
| Node-name |Critical 66460| minion: No JSON downloaded from node via SSH
- รายการ vxv.log ที่สอดคล้องกันสําหรับสิ่งนี้คือ:
2022-10-06 06:42:51-WARNING Creating a fault json for missing minion 2022-10-06 06:42:51-WARNING [fail_minion] Producing result file for lab-esx22, due to: No JSON downloaded from node via SSH. See minion logs in /tmp/vxv
- สิ่งนี้ควรตรวจสอบโดยดูที่บันทึกมินเนี่ยนสําหรับโฮสต์นั้นเพื่อดูว่ามินเนี่ยนพบข้อผิดพลาดที่ทําให้หยุดหรือมีการสร้างไฟล์ JSON หรือไม่ แต่ไม่สามารถเข้าถึงได้โดยใช้ SSH
- หากมินเนี่ยนกรอกอย่างถูกต้องสิ่งต่อไปนี้ควรเป็นบรรทัดสุดท้ายในบันทึกซึ่งแสดงให้เห็นว่า JSON ถูกบันทึกลงในโฟลเดอร์ /tmp ของโหนดสําเร็จ:
2022-10-06 06:39:30 INFO Writing to JSON: /tmp/xc882-61f1f3b9-7cb2-130a-35b0-minion.json 2022-10-06 06:39:30 INFO JSON save: os.stat_result(st_mode=33206, st_ino=47144, st_dev=1, st_nlink=1, st_uid=0, st_gid=0, st_size=499562, st_atime=1665038370, st_mtime=1665038370, st_ctime=1665038370) 2022-10-06 06:39:30 DEBUG ESXi minion's work is done.
ขั้นตอนที่แนะนําในการแก้ไขปัญหาข้างต้นคือ:
- หากใช้ VxVerify3 ให้ลองเรียกใช้ด้วย
--fixแฟล็กซึ่งใช้กลไก SSH อื่น วิธีนี้สามารถหลีกเลี่ยงปัญหาสิทธิ์ SSH บางอย่างได้ - ระบุเส้นทางใหม่โดยใช้
-1(ไม่จําเป็นต้องสร้างโฟลเดอร์ก่อน) ซึ่งสามารถช่วยได้หากข้อผิดพลาดสิทธิ์ VxRM ป้องกันการถ่ายโอนไฟล์: - ตัวอย่างเช่น > python vxv2.pyc -l \tmp\vxv0
- หากข้างต้นยังคงใช้งานไม่ได้ให้ถ่ายภาพ VxRM ก่อนที่จะล้างไฟล์และโฟลเดอร์ที่ไม่จําเป็นใน
/tmpและ/home/mysticเช่น VxVerify ที่ใช้ก่อนหน้านี้ - รีสตาร์ท VxRM (ตัวจัดการ VxRail)
หาก VxVerify พบข้อผิดพลาดที่ไม่สามารถแก้ไขได้ตามขั้นตอนข้างต้น ให้บันทึกชุดบันทึก vxv ตามรายละเอียดข้างต้นและยกระดับปัญหาด้วยการสนับสนุนของ Dell
ข้อผิดพลาดในการเข้าสู่ระบบและข้อมูลประจําตัวใน VxVerify2 และ VxVerify3
- ในการเรียกใช้การทดสอบบน VxRM (VxRail Manager) และโหนด VxRail VxVerify ไม่จําเป็นต้องมีข้อมูลประจําตัวใด ๆ VxVerify สามารถเข้าถึงข้อมูลประจําตัวที่เข้ารหัสได้โดยตรงจากฐานข้อมูล VxRM และถอดรหัสเหล่านี้ก่อนใช้งาน บางครั้งไม่สามารถเข้าถึงข้อมูลประจําตัวการจัดการ VC ได้ซึ่งในกรณีนี้ข้อมูลประจําตัวเหล่านี้สามารถระบุได้ในบรรทัดคําสั่ง VxVer:
python vxverify.py --verbose -u vxrailmgmt@localos -p ChangeMe1!
- การใช้ อักขระพิเศษบางตัวที่ได้รับอนุญาตโดย vCenter ทําให้เกิดปัญหาสําหรับ VxRail Manager ตรวจสอบว่าไม่มีการใช้สิ่งต่อไปนี้ในรหัสผ่านสําหรับโฮสต์ vCenter หรือ ESXi:
` $ % / \
- หากมีข้อสงสัยว่าชื่อผู้ใช้ใดถูกใช้สําหรับการจัดการให้ปรึกษา vxv.log เช่น:
... - DEBUG Users from runtime & settings records: vxrailmgmt@localos & vxrailmgmt@localos
- การทดสอบกับ vCenter โดยใช้ SSH ต้องใช้ชื่อผู้ใช้และรหัสผ่านรากซึ่งสามารถระบุได้ด้วยและ
-r-wตัวเลือกตามลําดับ การทดสอบ vCenter จะทํางานเฉพาะเมื่อมีการระบุสิ่งเหล่านี้ (แม้ว่าผู้ใช้รูทจะเป็นrootซึ่งเป็นค่าเริ่มต้นจะต้องระบุรหัสผ่านรูทเท่านั้น) เช่น:
python vxverify.py --verbose -w R00tPassword!
Additional Information
ตัวอย่างความล้มเหลวในการทดสอบที่สําคัญ
สิ่งเหล่านี้อาจเป็นผลมาจากข้อผิดพลาดที่รุนแรงซึ่งทําให้ไม่สามารถทําการทดสอบเพิ่มเติมได้ ตัวอย่างเช่นหากชื่อผู้ใช้และรหัสผ่านการจัดการ vCenter ที่บันทึกไว้ใน VxRM ไม่เป็นปัจจุบันการสืบค้นทั้งหมดไปยัง VC API ล้มเหลวและไม่สามารถเรียกใช้การทดสอบเพิ่มเติมได้ ตัวอย่างของสิ่งนี้รวมถึง:
#========================#======#=========#====================================================================#==============# | Hostname / Category |Status Dell_KB | Warnings or Failures, unless tests Passed | Product S.N. | #========================#======#=========#====================================================================#==============# | VxRM | Critical 66460 | vc_external: VC MOB API connection failed .|
หากพบปัญหาใด ๆ ด้านล่างให้มีส่วนร่วมสนับสนุนและเปิดตั๋ว VXV กับ VxRail Engineering VxVerify.log เป็นข้อบังคับเมื่อเปิดเคส
- ความผิดพลาดของ Python ที่สําคัญในการตรวจสอบสุขภาพ
- การทดสอบแต่ละครั้งใช้ฟังก์ชัน Python แยกต่างหากพร้อมการจัดการข้อผิดพลาดของตัวเองและบางครั้งการตอบสนองการทดสอบที่ไม่คาดคิดอาจทําให้เกิดข้อผิดพลาด Python ในกรณีนี้การทดสอบนั้นจะไม่เสร็จสมบูรณ์ แต่การตรวจสุขภาพที่เหลือจะดําเนินต่อไป (ดู
vxverify_tests.json) สิ่งเหล่านี้ไม่ควรป้องกันการอัพเกรดหากไม่มีความล้มเหลวอื่น ๆ
- การทดสอบแต่ละครั้งใช้ฟังก์ชัน Python แยกต่างหากพร้อมการจัดการข้อผิดพลาดของตัวเองและบางครั้งการตอบสนองการทดสอบที่ไม่คาดคิดอาจทําให้เกิดข้อผิดพลาด Python ในกรณีนี้การทดสอบนั้นจะไม่เสร็จสมบูรณ์ แต่การตรวจสุขภาพที่เหลือจะดําเนินต่อไป (ดู
- ทดสอบการส่งคืนความล้มเหลวหรือคําเตือนอย่างไม่ถูกต้อง
- หากพบผลบวกปลอม (ตัวอย่างเช่น การแก้ไขปัญหาด้วยตนเองตามบทความ KB ที่ระบุไว้ไม่แสดงปัญหา) ให้แจ้งปัญหาการติดตาม (ตั๋ว Jira VXV) จัดทําเอกสารการค้นพบและรวมบันทึกจาก
/tmp/vxv.
- หากพบผลบวกปลอม (ตัวอย่างเช่น การแก้ไขปัญหาด้วยตนเองตามบทความ KB ที่ระบุไว้ไม่แสดงปัญหา) ให้แจ้งปัญหาการติดตาม (ตั๋ว Jira VXV) จัดทําเอกสารการค้นพบและรวมบันทึกจาก
- โครงการ VXV ได้รับการออกแบบมาสําหรับข้อบกพร่อง VxVerify และการเพิ่มประสิทธิภาพในอนาคต คําถามใด ๆ เกี่ยวกับวิธีการตีความผลการทดสอบควรเป็นไปตามกระบวนการและยกระดับเป็น VxRail Escalation Engineering
ไฟล์ VxVerify
VxVerify สร้างไฟล์ต่อไปนี้ใน /tmp/vxv/ หรือ /var/log/mystic/vxv/. การตรวจสอบไฟล์เหล่านี้ด้วยตนเองอาจช่วยค้นหาปัญหาในคลัสเตอร์แม้ว่าสคริปต์ VxVerify ไม่สมบูรณ์:
vxverify.txt(ตารางสรุปซึ่งแสดงบนหน้าจอด้วยหาก VxVerify ไม่ทํางานในโหมดเงียบ)vxv.log(แฟ้มบันทึกสําหรับสคริปต์ VxVerify )minion_hostname.log(บันทึกระยะไกลสําหรับสคริปต์ Minion ที่ทํางานในแต่ละโฮสต์)minion_hostname.txt(เอาต์พุตข้อความระยะไกลสําหรับแต่ละมินเนี่ยนแสดงหมายเลขทดสอบที่กําลังดําเนินการอยู่)/json/hostname.json(ไฟล์ที่ผลิตโดยมินเนี่ยนแต่ละคนพร้อมผลการทดสอบซึ่งต่อมาจะถูกรวมเข้ากับข้อมูลโฮสต์อื่น ๆ แล้วลบ)vxverify_tests.json(เอาต์พุตรวมสําหรับการทดสอบทั้งหมดซึ่งสามารถตรวจสอบได้ด้วยตนเองเพื่อดูผลการทดสอบทั้งหมด)vxtii.txt(รายงานสรุปข้อมูล iDRAC และ ESXi สําหรับแต่ละโหนด)
แหล่งข้อมูล
ที่เกี่ยวข้องต่อไปนี้เป็นแหล่งข้อมูลที่แนะนําเกี่ยวกับหัวข้อนี้ที่อาจเป็นที่สนใจ: