Computer >> Máy Tính >  >> Phần mềm >> Máy ảo

Lỗi VMWare:Không thể truy cập tệp vì nó bị khóa

Rất thường xuyên khi xóa ảnh chụp nhanh hoặc hợp nhất đĩa của máy ảo chạy trên máy chủ VMWare ESXi, tôi thấy thông báo “ Không thể truy cập tệp vì tệp bị khóa " lỗi. Sự cố thường xuyên này liên quan đến lỗi trong phần mềm sao lưu VM (tôi đã gặp sự cố trong Veeam, HPE / Micro Focus Data Protector, Veritas.) Nếu ảnh chụp nhanh của đĩa ảo bị khóa, bạn sẽ không thể hợp nhất đĩa (khi bạn gặp lỗi 'Virtual machine disks consolidation is needed ’), Di chuyển đĩa sang kho dữ liệu khác bằng Storage vMotion, sao lưu máy ảo hoặc xóa ảnh chụp nhanh hiện tại. Đôi khi bạn thậm chí không thể bật một máy ảo bị khóa.

Lỗi truy cập vào tệp đĩa ảo bị khóa hoặc ảnh chụp nhanh trong VMWare có thể trông giống như sau:

Unable to access file since it is locked.
An error occurred while consolidating disks: One or more disks are busy.

Lỗi VMWare:Không thể truy cập tệp vì nó bị khóa

Ngoài ra, bạn có thể gặp lỗi này:

An error occurred while consolidating disks: msg.snapshot.error-DISKLOCKED.

Thông thường, lỗi “Không thể truy cập tệp vì tệp bị khóa” xuất hiện khi:

  • Một số tệp của máy ảo được hỗ trợ chứa các thẻ cho biết rằng chúng đã bị các máy chủ ESXi khác khóa;
  • Khi các đĩa ảo được thêm vào thiết bị sao lưu và phiên sao lưu không thành công.

Để tìm nguồn gốc của khóa và giải phóng nó, trước tiên bạn phải xác định các tệp bị khóa.

  1. Sử dụng máy khách SSH, kết nối với máy chủ ESXi mà máy ảo đã đăng ký sự cố;
  2. Đi tới thư mục có tệp máy ảo:cd /vmfs/volumes/VMFS_DATASTORE_NAME/LOCKED_VM
  3. Tìm các lỗi hợp nhất và khóa tệp trong vmware.log:cat vmware.log | grep lock
  4. Nhật ký sẽ có các lỗi như sau:
    VigorSnapshotManagerConsolidateCallback: snapshotErr = Failed to lock the file (5:4008)
    2020-09-09T05:07:11.432Z| vmx| I125: DISK: Cannot open disk "/vmfs/volumes/5121c3ff-2303a3a-33bb-12345678221/mun-web01/mun-web01_1-000002.vmdk": Failed to lock the file (16392).
    2020-09-09T05:07:11.432Z| Worker#1| I125: DISKLIB-LIB : Failed to open '/vmfs/volumes/5121c3ff-2303a3a-33bb-12345678221/mun-web01/mun-web01-000002.vmdk' with flags 0xa Failed to lock the file (16392).
    2020-09-09T05:07:11.432Z| Worker#1| I125: DISK: Cannot open disk "/vmfs/volumes/5121c3ff-2303a3a-33bb-12345678221/mun-web01/mun-web01-000002.vmdk": Failed to lock the file (16392).
    2020-09-09T05:07:11.432Z| vmx| I125: [msg.fileio.lock] Failed to lock the file

    Lỗi VMWare:Không thể truy cập tệp vì nó bị khóa

  5. Trong ví dụ này, bạn có thể thấy rằng tệp mun-web01_1-000002.vmdk bị khóa;
  6. Sử dụng lệnh sau, bạn có thể hiển thị chuỗi ảnh chụp nhanh hiện tại bắt đầu với chuỗi ảnh chụp được chỉ định vào đĩa phẳng:vmkfstools -qv10 mun-web01_1-000002.vmdk
  7. Sau đó, nhận thông tin về ảnh chụp nhanh và chủ sở hữu của nó (chủ sở hữu RO):vmkfstools -D mun-web01-000001-delta.vmdk
Lock [type 10c000021 offset 242835456 v 856, hb offset 3153920
gen 3, mode 1, owner 5cbac61a-4b6e32b7-0480-d06726ae7900 mtime 5199410
num 0 gblnum 0 gblgen 0 gblbrk 0]
RO Owner[0] HB Offset 3153920 5cbac61a-4b6e32b7-0480-d06726ae7900
Addr <4, 532, 83>, gen 859, links 1, type reg, flags 0, uid 0, gid 0, mode 600

Lỗi VMWare:Không thể truy cập tệp vì nó bị khóa

Chủ sở hữu RO dòng hiển thị địa chỉ MAC của bộ điều hợp mạng máy chủ ESXi đã khóa tệp ảnh chụp nhanh (địa chỉ MAC được đánh dấu trên ảnh chụp màn hình). Ngoài ra, hãy lưu ý giá trị Chế độ:

  • chế độ 1 - khóa đọc / ghi (ví dụ:của một máy ảo được cấp nguồn);
  • chế độ 2 - thường có nghĩa là đĩa ảo bị khóa bởi ứng dụng sao lưu.

Để tìm máy chủ ESXi nếu địa chỉ MAC được biết, bạn có thể sử dụng các lệnh PowerCLI sau (chuyển đổi địa chỉ MAC bạn đã nhận trước đó sang định dạng có dấu hai chấm):

Import-Module VMware.VimAutomation.Core -ErrorAction SilentlyContinue
connect-viserver mun-vcenter
Get-VMHost | Get-VMHostNetworkAdapter | Where-Object {$_.Mac -like "d0:67:26:ae:79:00"} | Format-List -Property *

Lỗi VMWare:Không thể truy cập tệp vì nó bị khóa

Một giải pháp tương tự khi bạn cần tìm một máy ảo trong VMWare vCenter bằng địa chỉ IP hoặc MAC của nó.

Tên máy chủ ESXi sẽ được hiển thị trong VMHost trường.

Ngoài ra, bạn có thể hiển thị bảng ARP trực tiếp từ máy chủ ESXi và lấy địa chỉ IP và MAC của tất cả các máy chủ ESXi khác trong mạng VMkernel:

esxcli network ip neighbor list

Lỗi VMWare:Không thể truy cập tệp vì nó bị khóa

Để mở khóa tệp VM, chỉ cần khởi động lại máy chủ ESXi mà bạn đã tìm thấy (di chuyển trước tất cả máy ảo từ nó bằng VMotion). Nếu bạn không thể khởi động lại máy chủ, hãy khởi động lại Tác nhân quản lý (hostd) trong Chế độ bảo trì từ bảng điều khiển SSH của máy chủ:

services.sh restart

Sau đó, hãy cố gắng hợp nhất các đĩa hoặc xóa ảnh chụp nhanh máy ảo một lần nữa.

Không thể truy cập tệp vì tệp bị khóa ”Thường xảy ra lỗi trong Sao lưu &nhân bản Veeam khi sử dụng máy chủ proxy Veeam. Do lỗi sao lưu, Veeam có thể không ngắt kết nối đĩa máy ảo một cách chính xác.

Để khắc phục sự cố, hãy mở cài đặt của máy ảo, proxy Veeam đã được cài đặt trên. Xóa đĩa của máy ảo đã khóa tệp khỏi phần cứng máy ảo.

Đảm bảo rằng bạn đã chọn “ Xóa khỏi máy ảo ”Thay vì“ Xóa khỏi máy ảo và xóa tệp khỏi đĩa ”nếu không, bạn có thể vô tình xóa đĩa vmdk của mình.