Trong lúc vận hành hệ thống ảo hóa khi kho dữ liệu datastore VMFS của bạn được kết nối với máy chủ ESXi/vSphere bị xóa, bị mất hoặc bị hỏng có thể xảy ra do lỗi của con người khi quản trị viên VMware vô tình xóa kho dữ liệu datastore VMFS hoặc disk/LUN có phân vùng VMFS bị disable/lost do lỗi trên thiết bị lưu trữ hoặc sao lưu của bạn.
Trước hết, bạn đừng hoảng sợ. Không tạo lại kho dữ liệu datastore VMFS từ giao diện vSphere hoặc thực hiện bất kỳ thao tác nào khác có thể ghi đè dữ liệu từ phân vùng datastore VMFS trước đó trên disk của bạn (LUN).
Kiểm tra trên vcenter
Trong ví dụ này, tôi đang sử dụng kho dữ liệu iSCSI VMFS chạy trên Windows Server (sử dụng kết nối iSCSI) .
Thực hiện kiểm tra phân vùng datastore VMFS
Đảm bảo rằng bảng phân vùng tồn tại trên thiết bị:
partedUtil getptbl /vmfs/devices/disks/naa.60003ff44dc75adc87daa4e08f467565
Lệnh đã trả về rằng có GPT trên đĩa / LUN.
gpt 1305 255 63 20971520
Sau đó, bạn phải lấy khối đầu tiên và khối cuối cùng của phân vùng VMFS trên đĩa.
Để hiển thị bản tóm tắt của tất cả các phân vùng có sẵn từ máy chủ ESXi và tìm khối đầu tiên của phân vùng VMFS đã bị xóa, hãy chạy tập lệnh bên dưới trong 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
Trong ví dụ này, chúng tôi đã hiển thị thông tin về phân vùng đã xóa ( testVMFS ) và có số khối đầu tiên của phân vùng: 2048 .
Bây giờ chúng ta cần lấy khối cuối cùng của phân vùng VMFS trên đĩa:
partedUtil getUsableSectors /vmfs/devices/disks/naa.60003ff44dc75adc87daa4e08f467565
Trong ví dụ của chúng tôi, nó là 20971486 .
Nếu lệnh trả về lỗi " Bảng phân vùng không xác định trên đĩa ", hãy đặt nhãn phân vùng GPT theo cách thủ công: partedUtil mklabel /vmfs/devices/disks/naa.60003ff44dc75adc87daa4e08f467565 gpt
Sau đó lấy GUID bảng phân vùng cho phân vùng VMFS. Nó luôn luôn là AA31E02A400F11DB9590000C2911D1B8 .
Bạn có thể hiển thị tất cả các GUID bảng phân vùng có thể sử dụng lệnh này:
partedUtil showGuids
Điều này có nghĩa là bạn phải sử dụng GUID gpt khác cho kho dữ liệu vSAN.
Vì vậy, chúng tôi đã có những thông tin sau:
- LUN ID — naa.60003ff44dc75adc87daa4e08f467565
- Start Block – 2048
- End Block – 2097148
- GPT GUID – AA31E02A400F11DB9590000C2911D1B8
Sau đó, tạo một bảng phân vùng trên đĩa bằng cách sử dụng thông tin bạn có:
partedUtil setptbl /vmfs/devices/disks/naa.60003ff44dc75adc87daa4e08f467565 gpt "1 2048 20971486 AA31E02A400F11DB9590000C2911D1B8 0"
Kiểm tra lại các phân vùng trên đĩa và đảm bảo rằng phân vùng VMFS hiện đang hiển thị:
partedUtil getptbl /vmfs/devices/disks/naa.60003ff44dc75adc87daa4e08f467565
Bây giờ bạn cần gắn kết kho dữ liệu VMFS:
vmkfstools -V
esxcli storage core adapter rescan --all
Đi tới ứng dụng khách vSphere và đảm bảo rằng kho dữ liệu VMFS đã vô tình bị xóa sẽ xuất hiện. Bạn có thể gắn nó trên máy chủ VMware ESXi hoặc truy cập nó từ máy chủ Linux hoặc Windows.
Tất cả các tệp, bao gồm cả ảnh ISO và tệp máy ảo, đều có sẵn trên kho dữ liệu VMFS đã được khôi phục.
Hướng dẫn này bạn có thể áp dụng cho các phiên bản VMware ESXi / vSphere 6.0, 6.5 và 7.0.