Pindahkan VMware ESXi VM ke datastore baru - pertahankan penyediaan yang tipis

27

Saya mencari solusi yang baik untuk masalah lingkungan VMware ESXi di mana tidak ada vCenter tersedia.

Apa cara terbaik untuk memindahkan VM dari satu datastore ke yang lain pada satu host ESXi, sambil mempertahankan VMDK thin-provisioning?

Ini adalah server mandiri yang telah diperluas dengan drive array / datastore lain. Saya ingin memindahkan data yang terdapat dalam larik lama ke yang baru.

Sunting: Ukuran datastore tujuan sebenarnya lebih kecil dari sumbernya. Saya tidak punya cukup ruang untuk menyalin file tebal.

putih
sumber
Apakah Anda benar-benar berpikir adalah bijaksana untuk memindahkan VM ke datastore yang terlalu kecil untuk ditampung? Apa yang terjadi dari beberapa proses jahat di VM yang memutuskan untuk menggunakan semua ruang penyimpanan?
Zoredache
Secara umum, tidak ... tapi ini adalah kasus khusus. VM tidak akan tumbuh.
ewwhite
Jika VM tidak akan tumbuh, tidak ada alasan untuk mempertahankannya.
Jim B
Apa versi ESXi?
Jed Daniels
Ini ESXi 5.
ewwhite

Jawaban:

21

Anda juga dapat menggunakan File -> Ekspor -> Ekspor template OVF

dan kemudian mengimpornya. Terakhir kali saya mencobanya, saya pikir ini tidak mempertahankan format vmdk. Tidak begitu yakin sekarang karena sudah cukup lama.

johnshen64
sumber
3
Dengan asumsi versi 4.1 atau lebih baru, Anda akan diminta untuk menggunakan tipis atau tebal ketika diimpor.
Jed Daniels
2
Kamu mendapatkannya! Ekspor OVF ke file jarang kompres cepat dan tidak menyakitkan. Saya diberi pilihan untuk provisi tipis atau tebal saat impor, dan impor cepat; 5 menit untuk mesin virtual 72GB (digunakan 8GB).
ewwhite
3
FWIW, Anda juga dapat melakukan ini dari baris perintah menggunakan ovftool.
Jed Daniels
28

Baru saja melalui menemukan cara untuk melakukan ini sendiri. Berikut ini, mudah-mudahan, panduan mudah diikuti tentang cara memindahkan VM Anda ke datastore baru sambil mempertahankan provisi tipis selama transfer (dengan demikian juga mengurangi waktu transfer):

Panduan langkah demi langkah menggunakan vmkfstools di CLI

  1. Matikan VM
  2. (Opsional) Konsolidasi foto jika perlu.
  3. Hapus VM dari inventaris vCenter
    • Klik kanan VM dan klik "Hapus dari Inventaris" masukkan deskripsi gambar di sini
  4. Aktifkan SSH pada mesin ESXi
    • Di klien vSphere, masuk ke: Konfigurasi -> Profil keamanan -> Properti (di sebelah Layanan) -> SSH (dalam daftar) -> Opsi -> Mulai
  5. Masuk melalui SSH sebagai root
  6. Siapkan direktori pada datastore tujuan
    • mkdir "/vmfs/volumes/destination_datastore/Some VM"
  7. Kloning file .vmdk menggunakan provisi tipis
    • vmkfstools -i "/vmfs/volumes/source_datastore/Some VM/Some VM.vmdk" -d thin "/vmfs/volumes/destination_datastore/Some VM/Some VM.vmdk"
  8. Salin semua file yang tersisa (menghindari menimpa file .vmdk)
    • find "/vmfs/volumes/source_datastore/Some VM" -maxdepth 1 -type f | grep -v ".vmdk" | while read file; do cp "$file" "/vmfs/volumes/destination_datastore/Some VM"; done
  9. Jika Anda tidak mengkonsolidasikan snapshots pada langkah 2, mungkin ada snapshot .vmdk delta file, kami juga perlu menyalin ini (ini mungkin memakan waktu):
    • find "/vmfs/volumes/source_datastore/Some VM" -maxdepth 1 -type f | grep [0123456789][0123456789][0123456789][0123456789][0123456789][0123456789] | grep ".vmdk" | while read file; do cp "$file" "/vmfs/volumes/destination_datastore/Some VM"; done
  10. Setelah selesai mengkloning dan menyalin semua file yang diperlukan, tambahkan VM dari datastore baru kembali ke inventaris
    • Di klien vSphere, masuk ke: Configuration-> Storage-> Data Browser , klik kanan datastore tujuan tempat Anda memindahkan VM Anda dan klik "Browse datastore". masukkan deskripsi gambar di sini
  11. Telusuri ke VM Anda dan klik kanan file .vmx , lalu klik "Tambahkan ke inventaris" masukkan deskripsi gambar di sini
  12. Boot VM untuk melihat apakah itu berfungsi, ketika ditanya apakah Anda menyalin atau memindahkannya, jawab saja bahwa Anda menyalinnya. (Saya tidak yakin apa artinya ini, tapi saya pikir itu harus dilakukan setidaknya dengan alamat MAC dari vNIC sedang diubah.) masukkan deskripsi gambar di sini
  13. Jika VM melakukan booting dengan baik, Anda dapat menghapus VM dari datastore lama.
    • rm -rf "/vmfs/volumes/source_datastore/Some VM"

Catatan: Hanya diuji dengan ESXi 5

Ilustrasi disalin tanpa malu-malu dari blog ini .

ohaal
sumber
1
Ini seharusnya bekerja, tetapi bahkan memberikan info tentang cara memindahkan VM dengan foto adalah konyol. Beri tahu orang-orang untuk menghapus semua foto sebelum mencoba langkah seperti ini.
pauska
2
@ Ohaal posting di atas, di esxi 5.5 u1, harus mengubah -print0 ke -print dan bekerja seperti pesona! PS. Saya akan memilihnya tetapi tidak ada perwakilan.
icereval
2
@ohaal diverifikasi untuk bekerja pada ESXi 6.7. Terima kasih!
Ed of the Mountain
Apakah ada alasan untuk menyalin file lain selain .vmdk dan .vmx? Jika tidak ada, Anda dapat mengubah findgaris menjadi sederhana cp.
Agustín Lado
8

Lihatlah jawaban ini . Logika yang sama berlaku dalam situasi Anda, yaitu kutipan ini:

Ini disebut "Konverter" tetapi harus benar-benar disebut "All-Purpose OS Data Mover." Namun, tidak menggulung lidah dengan baik.

Satu-satunya perbedaan adalah bahwa host sumber dan tujuan akan sama, tetapi datastore akan berbeda. Ini berarti bahwa file akan pergi dari host ESXi, ke mesin Converter, lalu kembali ke host. Akan lebih baik jika Konverter adalah "pintar" dan tahu itu adalah tuan rumah yang sama. Sayangnya, itu membutuhkan uang.

CAVEAT: Mengkonversi VM akan menghasilkan alamat MAC baru untuk adaptor jaringan apa pun. Sebagian besar OS tamu menafsirkan ini sebagai perangkat baru.

Joel E Salas
sumber
1
Poin yang sangat bagus tentang alamat MAC.
JamesBarnett
3

Sebenarnya hanya membuat folder di tujuan tujuan, lalu salin file di folder dari sumber dan itu akan tetap tipis. Jika Anda menyalin folder itu akan mengkonversi dari tipis ke tebal ..

Vidar
sumber
2
Ini salah. diverifikasi menggunakan du -h .Thin menjadi tebal ketika disalin ke folder yang sudah dibuat pada datastore yang sama. cp C* ../newdir
Rowan Hawkins
0

Saya akan menyalin file kemudian mengonversi menjadi tipis melalui vmkfstools.

Jim B
sumber
Ukuran datastore tujuan sebenarnya lebih kecil dari sumbernya. Saya tidak punya cukup ruang untuk menyalin file tebal.
ewwhite
Dalam hal ini, salin dan ubah kembali tidak akan berfungsi, tetapi Anda juga dapat menggunakan vmkfstools untuk mengkloningnya langsung ke tujuan. Ini juga akan mengurangi waktu yang diperlukan untuk mentransfernya, karena itu tidak mentransfer GB ekstra dari nol. Jawaban saya berisi detail tentang cara melakukannya.
ohaal