ค้นหาเว็บไซต์

การกู้คืน VMFS Datastore ที่ถูกลบบน VMware ESXi/vSphere


มาดูปัญหาเมื่อที่เก็บข้อมูล VMFS ของคุณที่เชื่อมต่อกับโฮสต์ ESXi/vSphere ถูกลบ สูญหาย หรือเสียหาย อาจเกิดขึ้น เช่น เนื่องจากข้อผิดพลาดของมนุษย์เมื่อผู้ดูแลระบบ VMware ลบที่เก็บข้อมูล VMFS โดยไม่ตั้งใจ หรือดิสก์/LUN ที่มีพาร์ติชัน VMFS ถูกปิดใช้งาน/สูญหายเนื่องจากข้อผิดพลาดในอุปกรณ์จัดเก็บข้อมูล/สำรองข้อมูลของคุณ ในบทความนี้ เราจะแสดงวิธีการกู้คืนตารางพาร์ติชันด้วยตนเองบนดิสก์ด้วยที่เก็บข้อมูล VMFS

สมมติว่า ผู้ดูแลระบบ VMware เลือก ลบ โดยไม่ตั้งใจ แทนที่จะเป็น ยกเลิกการต่อเชื่อม และลบที่เก็บข้อมูล VMFS ออก

คุณไม่สามารถยกเลิกการต่อเชื่อม/ลบที่เก็บข้อมูล VMFS ที่ใช้งานอยู่ หรือหากมีการลงทะเบียน VM หรือ VM ที่มีสถานะไม่ถูกต้อง (ไม่รู้จัก)

ก่อนอื่นอย่าตกใจ อย่าสร้างที่เก็บข้อมูล VMFS ใหม่จากอินเทอร์เฟซ vSphere อีกครั้ง หรือทำสิ่งอื่นใดที่สามารถเขียนทับข้อมูลจากพาร์ติชัน VMFS ก่อนหน้าบนดิสก์ของคุณ (LUN)

เปิดอินเทอร์เฟซไคลเอ็นต์ vCenter ไปที่ Storage -> Devices และค้นหารายการดิสก์/LUN ที่เก็บข้อมูล VMFS ที่เชื่อมต่อก่อนหน้านี้ รับเส้นทางแบบเต็มไปยังดิสก์ (ด้วยตัวระบุ naa) ในภาพหน้าจอของฉัน มันคือ:

/vmfs/devices/disks/naa.60003ff44dc75adc87daa4e08f467565

ในตัวอย่างนี้ ฉันใช้ที่เก็บข้อมูล iSCSI VMFS ที่ทำงานบน Windows Server (เป้าหมาย iSCSI)

เปิดใช้งาน SSH บนโฮสต์ ESXi ของคุณซึ่งมี LUN เป้าหมายและเชื่อมต่อโดยใช้ไคลเอ็นต์ SSH (ฉันใช้ไคลเอ็นต์ Windows SSH ในตัว)

ตรวจสอบให้แน่ใจว่ามีตารางพาร์ติชันอยู่ในอุปกรณ์:

partedUtil getptbl /vmfs/devices/disks/naa.60003ff44dc75adc87daa4e08f467565 

คำสั่งกลับมาว่ามี GPT บนดิสก์/LUN

gpt
1305 255 63 20971520

จากนั้นคุณต้องได้รับบล็อกแรกและบล็อกสุดท้ายของพาร์ติชัน VMFS บนดิสก์

หากต้องการแสดงข้อมูลสรุปของพาร์ติชันทั้งหมดที่มีจากโฮสต์ ESXi และค้นหาบล็อกแรกของพาร์ติชัน VMFS ที่ถูกลบ ให้รันสคริปต์ด้านล่างใน ESXi cli:

offset="128 2048"; for dev in `esxcfg-scsidevs -l | grep "Console Device:" | awk {'print $3'}`; do disk=$dev; echo $disk; partedUtil getptbl $disk; { for i in `echo $offset`; do echo "Checking offset found at $i:"; hexdump -n4 -s $((0x100000+(512*$i))) $disk; hexdump -n4 -s $((0x1300000+(512*$i))) $disk; hexdump -C -n 128 -s $((0x130001d + (512*$i))) $disk; done; } | grep -B 1 -A 5 d00d; echo "---------------------"; done

ในตัวอย่างนี้ เราได้แสดงข้อมูลเกี่ยวกับพาร์ติชันที่ถูกลบ (testVMFS) และได้รับหมายเลขของบล็อกแรกของพาร์ติชัน: 2048

ตอนนี้เราต้องได้รับบล็อกสุดท้ายของพาร์ติชัน VMFS บนดิสก์:

partedUtil getUsableSectors /vmfs/devices/disks/naa.60003ff44dc75adc87daa4e08f467565

ในตัวอย่างของเรา มันคือ 20971486

หากคำสั่งส่งคืนข้อผิดพลาด “ตารางพาร์ติชันที่ไม่รู้จักบนดิสก์” ให้ตั้งค่าป้ายกำกับพาร์ติชัน GPT ด้วยตนเอง:

partedUtil mklabel /vmfs/devices/disks/naa.60003ff44dc75adc87daa4e08f467565 gpt

จากนั้นรับ GUID ตารางพาร์ติชันสำหรับพาร์ติชัน VMFS จะเป็น AA31E02A400F11DB9590000C2911D1B8 เสมอ

คุณสามารถแสดง GUID ของตารางพาร์ติชั่นที่เป็นไปได้ทั้งหมดโดยใช้คำสั่งนี้:

partedUtil showGuids

ซึ่งหมายความว่าคุณต้องใช้ gpt GUID อื่นสำหรับที่เก็บข้อมูล vSAN

เราจึงได้ข้อมูลดังนี้

  • LUN ID — naa.60003ff44dc75adc87daa4e08f467565

  • เริ่มบล็อก - 2048

  • สิ้นสุดบล็อก - 2097148

  • GPT GUID - AA31E02A400F11DB9590000C2911D1B8

จากนั้นสร้างตารางพาร์ติชันบนดิสก์โดยใช้ข้อมูลที่คุณได้รับ:

partedUtil setptbl /vmfs/devices/disks/naa.60003ff44dc75adc87daa4e08f467565 gpt "1 2048 20971486 AA31E02A400F11DB9590000C2911D1B8 0"

ตรวจสอบพาร์ติชันบนดิสก์อีกครั้งและตรวจสอบให้แน่ใจว่ามองเห็นพาร์ติชัน VMFS ได้แล้ว:

partedUtil getptbl /vmfs/devices/disks/naa.60003ff44dc75adc87daa4e08f467565

ตอนนี้คุณต้องติดตั้งที่เก็บข้อมูล VMFS:

vmkfstools -V
esxcli storage core adapter rescan --all

ไปที่ไคลเอนต์ vSphere และตรวจสอบให้แน่ใจว่าที่เก็บข้อมูล VMFS ที่ถูกลบโดยไม่ตั้งใจปรากฏขึ้น คุณสามารถติดตั้งบนโฮสต์ VMware ESXi หรือเข้าถึงจากโฮสต์ Linux หรือ Windows

ไฟล์ทั้งหมด รวมถึงอิมเมจ ISO และไฟล์เครื่องเสมือน มีอยู่ในที่เก็บข้อมูล VMFS ที่กู้คืน

ก่อนหน้านี้ เราได้แสดงวิธีใช้ partedUtil เพื่อสร้างที่เก็บข้อมูล VMFS บนแฟลชไดรฟ์ USB และเพิ่มขนาดของที่เก็บข้อมูล VMFS โดยใช้เครื่องมือบรรทัดคำสั่ง เรียนรู้เพิ่มเติมเกี่ยวกับวิธีใช้ partedUtil เพื่อจัดการตารางพาร์ติชันใน ESXi ที่นี่: https://kb.vmware.com/s/article/1036609

คู่มือนี้เกี่ยวข้องกับ VMware ESXi/vSphere 6.0, 6.5 และ 7.0

บทความที่เกี่ยวข้อง