Praktik terbaik untuk tata letak file di server Hyper-V?

11

Kami telah menyiapkan server Hyper-V, dan tata letak file tidak konsisten karena dibuat oleh beberapa orang. Berikut adalah dua "templat" berbeda yang digunakan:

Templat 1

D:\Hyper-V\Virtual Machines\MACHINE_NAME_1\Virtual Hard Disks\MACHINE_NAME_1.vhdx
D:\Hyper-V\Virtual Machines\MACHINE_NAME_1\Virtual Machines\GUID_1
D:\Hyper-V\Virtual Machines\MACHINE_NAME_1\Virtual Machines\GUID_1.xml

D:\Hyper-V\Virtual Machines\MACHINE_NAME_2\Virtual Hard Disks\MACHINE_NAME_2.vhdx
D:\Hyper-V\Virtual Machines\MACHINE_NAME_2\Virtual Machines\GUID_2
D:\Hyper-V\Virtual Machines\MACHINE_NAME_2\Virtual Machines\GUID_2.xml

....

dan

Templat 2

D:\Hyper-V\Virtual Hard Disks\MACHINE_NAME_1.vhdx
D:\Hyper-V\Virtual Hard Disks\MACHINE_NAME_2.vhdx

D:\Hyper-V\Virtual Machines\GUID_1
D:\Hyper-V\Virtual Machines\GUID_1.xml
D:\Hyper-V\Virtual Machines\GUID_2
D:\Hyper-V\Virtual Machines\GUID_2.xml

Templat 1

Argumen yang dibuat untuk Templat 1, adalah bahwa ketika Anda melakukan ekspor VM ekspor membuat folder dengan nama mesin, menempatkan folder terpisah untuk disk dan vm. Anda kemudian dapat dengan mudah menunjuk ke direktori mesin ketika Anda menjalankan impor.

Argumen TERHADAP gaya template ini adalah bahwa tidak masuk akal untuk ada direktori yang disebut Mesin Virtual jika hanya ada satu file. Argumen lain yang menentang adalah bahwa tampaknya server Hyper-V itu sendiri tampaknya mengharapkan bahwa semua hard disk berada dalam satu folder, dan semua Mesin Virtual berada di folder yang berbeda. yaitu tidak membuat folder terpisah untuk setiap VM (kecuali untuk yang diberi nama oleh GUID di direktori Mesin Virtual)

Templat 2

Argumen untuk Templat 2 adalah bahwa sepertinya itulah yang diharapkan Hyper-V tata letak.

Argumen AGAINST Template 2, adalah bahwa Anda tidak dapat menentukan file Mesin Virtual mana yang dikaitkan dengan mesin tertentu kecuali Anda melihat ke dalam file xml.

Saya ingin sekali mendengar tentang jebakan dari tata letak mana pun.

Benjamin Peikes
sumber
2
Sepertinya sepeda menumpahkan kepada saya.
Evan Anderson
2
Saya tidak setuju. Dari pengalaman, ada beberapa alasan teknis yang bagus untuk memiliki konvensi penamaan di mana Anda dapat mengidentifikasi disk mana yang dimiliki VM dari luar alat Hyper-V. Salah satu pilihannya tidak memungkinkan Anda melakukannya dengan mudah - atau sama sekali, jika file XML hyper-v rusak, yang dapat terjadi.
Berikan
2
Kamu benar. Template 2 tidak memisahkan VM dengan folder, yang baik untuk VHD (X) awal tetapi bisa bermasalah untuk VHD (X) berikutnya, kecuali jika Anda teliti tentang penamaan mereka.
joeqwerty
1
Bagaimana dengan templat tanpa spasi di jalur?
user2813274
2
@BenjaminPeikes Bike shed merujuk pada hukum sepele Parkinson - en.wikipedia.org/wiki/Parkinson's_law_of_triviality
Grant

Jawaban:

12

Anda benar-benar ingin dapat dengan mudah mengidentifikasi file mana milik mesin virtual mana. Bahkan jika Anda kehilangan akses ke konsol Hyper-V.

Ini muncul ketika mencoba mengembalikan VM dari cadangan. Atau ketika Hyper-V lupa tentang semua VM Anda dan Anda perlu mengimpornya. Atau file konfigurasi VM rusak, dan Anda harus membuat ulang VM dan arahkan ke file hard drive lama (yang sekarang Anda tidak dapat mengidentifikasi, karena file konfigurasi Anda rusak). Atau Anda hanya ingin memeriksa dengan cepat berapa banyak ruang disk yang digunakan oleh masing-masing VM. Atau Anda perlu memulihkan dari cadangan tempat Anda dapat melihat nama file, tetapi tidak mudah membaca file XML tanpa melalui seluruh proses pemulihan terlebih dahulu.

Karena itu, saya akan mencari sesuatu yang mirip dengan Templat 1, di mana ada folder untuk setiap VM - tetapi tinggalkan subfolder "Mesin Virtual" dan "Mesin Virtual Hard Disk" - cukup masukkan semua file yang terkait dengan VM di folder dengan nama VM.

Anda juga tidak perlu mesin Hyper-V \ Virtual - pilih salah satu label itu, Anda tidak perlu keduanya.

Begitu:

D: \ Mesin Virtual \ MACHINE_A \ GUID_1.xml
D: \ Mesin Virtual \ MACHINE_A \ Machine_a_OS.vhdx
D: \ Mesin Virtual \ MACHINE_A \ Machine_a_Data.vhdx

D: \ Mesin Virtual \ MACHINE_B \ GUID_2.xml
D: \ Mesin Virtual \ MACHINE_B \ Machine_b_OS.vhdx
D: \ Mesin Virtual \ MACHINE_B \ Machine_b_Data.vhdx

dll.

Atau Anda mungkin memutuskan Anda tidak perlu nama file yang cocok dengan mesin virtual - nama folder sudah cukup. Memberi nama dengan cara ini akan membuat lebih mudah untuk mengkloning VM tanpa harus khawatir mengganti nama file itu:

D: \ VMs \ Mesin A \ GUID_1.xml
D: \ VMs \ Mesin A \ OS.vhdx
D: \ VMs \ Mesin A \ Data.vhdx

D: \ VMs \ Mesin B \ GUID_2.xml
D: \ VMs \ Mesin B \ OS.vhdx
D: \ VMs \ Mesin B \ SQLData.vhdx
D: \ VMs \ Mesin B \ SQLLog.vhdx

Tujuan utama di sini adalah untuk mengatur file sehingga dengan melihat tidak lain dari struktur file, Anda dapat mengetahui apa VM milik setiap file, dan untuk apa file itu.

Hibah
sumber
Saya telah condong ke arah tata letak yang Anda usulkan. Satu hal tentang tata letak khusus ini yang saya tidak suka, adalah bahwa ia menggunakan nama mesin di kedua struktur folder dan konvensi penamaan file. Ini berarti Anda tidak bisa hanya menyalin folder mesin untuk membuat yang baru.
Benjamin Peikes
Salah satu argumen yang saya dengar, adalah bahwa Anda dapat mengetahui file mana yang menjadi milik mesin virtual dengan melihat file xml untuk setiap GUID. Meskipun pasti bermanfaat untuk memiliki konvensi penamaan yang mudah dimengerti, itu benar-benar berantakan jika seseorang tidak mengikutinya, bahkan sekali. Ini seperti memiliki komentar dalam kode yang tidak cocok dengan kode lagi. Karena semua informasi tentang mesin ada di file xml, saya khawatir mengandalkan penamaan folder dan file untuk mencari tahu.
Benjamin Peikes
@BenjaminPeikes Mengandalkan file XML untuk mencocokkan file dengan VM berisiko. Saya memiliki kasus di mana baik melalui penghapusan tidak disengaja atau kerusakan data file XML hilang atau tidak dapat dibaca. Juga, ini lebih cepat daripada mencocokkan GUID. Tapi saya setuju Anda tidak perlu menggunakan nama VM di nama file, cukup folder jika Anda mau. Pastikan saja - dengan hanya melihat struktur file - Anda dapat mengetahui file mana yang menjadi milik VM dan tujuan apa yang mereka layani.
Berikan
2

Saya tidak suka.

Karena tidak ada template Anda yang stabil jika Anda memindahkan VM.

Saya akan - dan saya melakukannya sendiri - menggunakan struktur folder yang identik dengan yang Anda dapatkan ketika Anda membuat VM di antara host. Dengan begitu tidak ada yang berubah saat - Anda memindahkan VM di antara host.

TomTom
sumber
Bukankah Template 1 apa yang Anda dapatkan ketika Anda memindahkan VM antara host?
Benjamin Peikes
Cobalah - tidak. Misalnya disk berakhir di folder "Virtual Hard Disk" di bawah folder nama mesin.
TomTom
itulah yang dilakukan Template 1 saya. Setiap mesin memiliki folder sendiri, dan di masing-masing folder itu ada folder Mesin Virtual dan folder Hard Disk Virtual.
Benjamin Peikes
1
Apakah ada beberapa cara untuk mendapatkan Hyper-V untuk menggunakan struktur yang telah Anda jelaskan secara default ketika VM dibuat, @TomTom? Saya suka meletakkan VM saya di bawah folder mereka sendiri. Tetapi setiap kali, saya akhirnya menciptakan VM kemudian memindahkannya langsung untuk mendapatkan struktur folder yang saya inginkan.
Matty Brown
1

Anda perlu melakukan templat 2 untuk memisahkan kopling untuk komponen mesin virtual dari masalah penyimpanan. Yaitu satu VHDX untuk VM mungkin pergi untuk volume kinerja, VHDX lain untuk VM yang sama lebih mementingkan kapasitas - dan semua mungkin dengan perbedaan dalam ketahanan.

Jadi Anda tidak akan dapat melakukan template 1 kecuali jika Anda juga memperkenalkan tata letak struktur file komplikasi pemetaan lokasi penyimpanan yang berbeda ke dalam kopling untuk bagian file mesin virtual.

Jadi:

TEMPLATE 2

Template 2 - Di sini manajemen penyimpanan lebih diutamakan daripada tata letak namespaces (sementara itu, tata letak namespace ditangani di UI untuk mengelola VM ... yaitu beberapa bagian dari VM bahkan mungkin tidak lokal tetapi berada di cloud dll menggunakan misalnya penyimpanan bis)

... mengelola berbagai keprihatinan dalam manajemen penyimpanan:

D: \ Storage \ Pool1 \ Hyper-V \ Virtual Hard Disk \ xxx-xx-xx-System-01-Prod.vhdx

D: \ Storage \ Pool1 \ Hyper-V \ Virtual Hard Disk \ xxx-xx-xx-Data-01-Prod.vhdx

D: \ Storage \ Pool2 \ Hyper-V \ Virtual Hard Disk \ xxx-xx-xx-Data-02-Prod.vhdx

D: \ Storage \ Pool3 \ Hyper-V \ Virtual Hard Disk \ xxx-xx-xx-Recovery-01-Prod.vhdx

D: \ Storage \ Pool1 \ Hyper-V \ Virtual Machines \ GUID_1

D: \ Storage \ Pool1 \ Hyper-V \ Virtual Machines \ GUID_1.xml

D: \ Storage \ Pool1 \ Hyper-V \ Virtual Machines \ GUID_2

D: \ Storage \ Pool1 \ Hyper-V \ Virtual Machines \ GUID_2.xml

TEMPLATE 1

Untuk melakukan pemetaan ini dalam templat 1 - di mana kekhawatiran namespace dalam sistem file (alias ui semu semu) didahulukan - sambil tetap menjaga masalah penyimpanan:

D: \ VMs \ xxx-xx-xx-01-Prod \ xxx-xx-xx-System-01-Prod.vhdx> (ditautkan ke) D: \ Storage \ Pool1 \ Hyper-V \ Virtual Hard Disk \ xxx- xx-xx-System-01-Prod.vhdx

D: \ VMs \ xxx-xx-xx-01-Prod \ xxx-xx-xx-Data-01-Prod.vhdx> D: \ Storage \ Pool1 \ Hyper-V \ Virtual Hard Disk \ xxx-xx-xx- Data-01-Prod.vhdx

D: \ VMs \ xxx-xx-xx-01-Prod \ xxx-xx-xx-Data-02-Prod.vhdx> D: \ Storage \ Pool2 \ Hyper-V \ Virtual Hard Disk \ xxx-xx-xx- Data-02-Prod.vhdx

D: \ VMs \ xxx-xx-xx-01-Prod \ xxx-xx-xx-Recovery-01-Prod.vhdx> D: \ Storage \ Pool3 \ Hyper-V \ Virtual Hard Disk \ xxx-xx-xx- Recovery-01-Prod.vhdx

D: \ VMs \ xxx-xx-xx-01-Prod \ GUID_1> D: \ Storage \ Pool1 \ Hyper-V \ Mesin Virtual \ GUID_1 D: \ VMs \ xxx-xx-xx-01-Prod \ GUID_1.xml > D: \ Storage \ Pool1 \ Hyper-V \ Mesin Virtual \ GUID_1.xml D: \ VMs \ xxx-xx-xx-01-Prod \ GUID_2> D: \ Storage \ Pool1 \ Hyper-V \ Mesin Virtual \ GUID_2 D: \ VMs \ xxx-xx-xx-01-Prod \ GUID_2.xml> D: \ Storage \ Pool1 \ Hyper-V \ Mesin Virtual \ GUID_2.xml

computermensch
sumber