Kesalahan VMWare Tidak dapat mengakses file karena terkunci

Sangat sering ketika menghapus snapshot atau mengkonsolidasikan disk mesin virtual pada host VMWare ESXi, saya menemukan kesalahan “Tidak dapat mengakses file karena terkunci" Ini adalah masalah yang cukup umum karena kesalahan dalam sistem cadangan VM (saya bertemu dengan masalah di Veeam, HP Data Protector, Veritas). Mengunci disk virtual dari snapshot dari mesin virtual tidak akan memungkinkan Anda untuk melakukan konsolidasi (diperlukan konsolidasi disk mesin virtual), Penyimpanan vMotion ke array disk lain, buat cadangan atau hapus snapshot saat ini. Terkadang mesin virtual dengan kunci bahkan tidak bisa dihidupkan begitu saja.

Kesalahan dengan akses ke file disk virtual terkunci atau snapshot di VMWare mungkin terlihat seperti ini:

Tidak dapat mengakses file karena terkunci. Terjadi kesalahan saat mengkonsolidasikan disk: Satu atau lebih disk sedang sibuk.

Anda juga dapat melihat kesalahan ini:

Terjadi kesalahan saat mengkonsolidasikan disk: msg.snapshot.error-DISKLOCKED.

Kesalahan paling umum "Tidak dapat mengakses file karena terkunci" muncul:

  • Ketika beberapa file pada mesin virtual yang disertakan berisi tanda kunci oleh host ESXi lainnya;
  • Saat menambahkan disk virtual ke cadangan alat selama sesi cadangan gagal;

Untuk menemukan sumber kunci dan menghapusnya, Anda harus terlebih dahulu mengidentifikasi file yang terkunci.

  1. Menggunakan klien SSH, sambungkan ke host ESXi di mana VM bermasalah terdaftar;
  2. Pergi ke direktori dengan file-file dari mesin virtual: cd / vmfs / volume / VMFS_DATASTORE_NAME / LOCKED_VM
  3. Temukan kesalahan konsolidasi log file vmware.log, kunci file: cat vmware.log | kunci grep
  4. Log harus berisi kira-kira kesalahan berikut:
    VigorSnapshotManagerConsolidateCallback: snapshotErr = Gagal mengunci file (5: 4008) 2020-01-13T05: 07: 11.432Z | vmx | I125: DISK: Tidak dapat membuka disk "/vmfs/volumes/5121c3ff-230b21a-41aa-21d92b219221/msk-web01/msk-web01_1-000002.vmdk": Gagal mengunci file (16392). 2020-01-13T05: 07: 11.432Z | Pekerja # 1 | I125: DISKLIB-LIB: Gagal membuka '/vmfs/volumes/5121c3ff-230b21a-41aa-21d92b219221/msk-web01/msk-web01-000002.vmdk' dengan flag 0xa Gagal mengunci file (16392). 2020-01-13T05: 07: 11.432Z | Pekerja # 1 | I125: DISK: Tidak dapat membuka disk "/vmfs/volumes/5121c3ff-230b21a-41aa-21d92b219221/msk-web01/msk-web01-000002.vmdk": Gagal mengunci file (16392). 2020-01-13T05: 07: 11.432Z | vmx | I125: [msg.fileio.lock] Gagal mengunci file 

  5. Contoh ini menunjukkan bahwa file terkunci msk-web01_1-000002.vmdk;
  6. Dengan menggunakan perintah berikut, Anda dapat menampilkan rantai snapshot saat ini dari yang ditentukan ke disk datar: vmkfstools -qv10 msk-web01_1-000002.vmdk
  7. Sekarang kami akan menampilkan informasi tentang foto itu, dan pemiliknya (pemilik RO): vmkfstools -D msk-web01-000001-delta.vmdk
    Kunci [tipe 10c000021 offset 242835456 v 856, hb mengimbangi 3153920 gen 3, mode 1, pemilik 5cbac61a-4b6e32b7-0480-d06726ae7900 mtime 5199410 num 0 gblnum 0 gblgen 0 gblbrk 0] Pemilik RO [0] Offset HB 3153920 5cbac61a-4b6e32b7-0480-d06726ae7900 Addr, gen 859, tautan 1, ketik reg, flag 0, uid 0, gid 0, mode 600

Sejalan Pemilik RO alamat MAC dari kartu jaringan host ESXi diindikasikan, yang memblokir file snapshot ini (alamat MAC disorot dalam tangkapan layar). Perhatikan juga nilai Mode:

  • mode 1 - baca / tulis kunci (misalnya, dengan VM dinyalakan);
  • mode 2 - biasanya berarti drive terkunci oleh aplikasi cadangan.

Untuk menemukan server ESXi dengan alamat MAC yang dikenal, Anda dapat menggunakan perintah berikut di PowerCLI (mengonversi alamat MAC yang diterima sebelumnya ke format titik dua):

Import-Module VMware.VimAutomation.Core -ErrorAction SilentlyContinue
connect-viserver vcenter1
Get-VMHost | Get-VMHostNetworkAdapter | Where-Object $ _. Mac -like "d0: 67: 26: ae: 79: 00" | Format-Daftar -Properti *

Situasi serupa ketika Anda perlu menemukan VM di VMWare vCenter berdasarkan IP atau alamat MAC.

Nama host ESXi akan ditunjukkan di bidang VMhost.

Anda juga dapat menampilkan tabel ARP langsung dari host ESXi dan mendapatkan alamat IP dan MAC dari semua server ESXi yang bertetangga pada jaringan VMkernel:

esxcli jaringan daftar tetangga ip

Untuk menghapus kunci dari file VM, cukup restart host ESXi yang ditemukan (pre-emigrate semua VM dari itu menggunakan VMotion). Jika Anda tidak dapat memulai ulang host, restart layanan Agen Manajemen (hostd) dalam Mode Pemeliharaan dari konsol host SSH:

services.sh restart

Setelah itu, cobalah untuk mengkonsolidasikan atau menghapus snapshot VM.

Kesalahan “Tidak dapat mengakses file karena terkunci”Cukup sering muncul Cadangan & Replikasi Veeam saat menggunakan proxy Veeam. Karena kesalahan cadangan, Veeam mungkin tidak memutuskan drive mesin virtual dengan benar.

Untuk memperbaiki masalah, buka pengaturan VM tempat proxy Veeam diinstal. Hapus disk VM yang file-nya dikunci dari peralatan VM.

Pastikan Anda memilih "Hapus dari mesin virtual" dan bukan "Hapus dari mesin virtual dan hapus file dari disk". Jika tidak, Anda dapat secara tidak sengaja menghapus disk vmdk Anda.