Thực hành tốt nhất để bố trí tệp trong máy chủ Hyper-V?


11

Chúng tôi đã thiết lập một máy chủ Hyper-V và bố cục của các tệp không nhất quán vì nó được thiết lập bởi một số người. Dưới đây là hai "mẫu" khác nhau đã được sử dụng:

Mẫu 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

....

Mẫu 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

Mẫu 1

Đối số được tạo cho Mẫu 1, là khi bạn thực hiện xuất VM, xuất sẽ tạo một thư mục có tên máy, đặt các thư mục riêng cho các đĩa và vm. Sau đó, bạn có thể chỉ cần trỏ đến thư mục máy khi bạn chạy nhập.

Đối số CHỐNG LẠI kiểu mẫu này là nó không có ý nghĩa đối với việc có một thư mục được gọi là Máy ảo nếu chỉ có một tệp. Lập luận khác chống lại là dường như chính máy chủ Hyper-V dường như mong đợi rằng tất cả các đĩa cứng đều nằm trong một thư mục và tất cả các Máy ảo đều nằm trong một thư mục khác. tức là nó không tạo các thư mục riêng cho từng VM (được thực thi cho các VM được đặt tên bởi GUID trong thư mục Virtual Machines)

Mẫu 2

Đối số CHO Mẫu 2 là có vẻ như đó là những gì Hyper-V mong đợi bố cục.

Đối số AGAINST Template 2, là bạn không thể biết các tệp Máy ảo nào được liên kết với một máy cụ thể trừ khi bạn xem bên trong các tệp xml.

Tôi muốn nghe về bất kỳ cạm bẫy để bố trí.


2
Trông giống như một chiếc xe đạp đổ cho tôi.
Evan Anderson

2
Tôi không đồng ý. Từ kinh nghiệm, có một số lý do kỹ thuật tốt để có một quy ước đặt tên, nơi bạn có thể xác định đĩa nào thuộc về VM nào bên ngoài các công cụ Hyper-V. Một trong các tùy chọn của anh ấy không cho phép bạn thực hiện điều đó một cách dễ dàng - hoặc hoàn toàn, nếu các tệp XML siêu v bị hỏng, điều đó có thể xảy ra.
Cấp

2
Bạn đúng. Mẫu 2 không phân tách VM theo thư mục, điều này tốt cho VHD (X) ban đầu nhưng có thể gây rắc rối cho các VHD (X) tiếp theo trừ khi bạn có ý thức về việc đặt tên cho chúng.
joeqwerty

1
Làm thế nào về một mẫu không có không gian trong đường dẫn?
user2813274

2
@BenjaminPeike Bike shed đề cập đến luật tầm thường của Parkinson - en.wikipedia.org/wiki/Parkinson's_law_of_triviality
Cấp

Câu trả lời:


12

Bạn thực sự, thực sự muốn có thể dễ dàng xác định tập tin nào thuộc về máy ảo nào. Ngay cả khi bạn mất quyền truy cập vào bảng điều khiển Hyper-V.

Điều này xuất hiện khi cố gắng khôi phục VM từ bản sao lưu. Hoặc khi Hyper-V quên về tất cả các máy ảo của bạn và bạn cần nhập chúng. Hoặc các tệp cấu hình VM bị hỏng và bạn phải tạo lại VM và trỏ đến các tệp ổ cứng cũ (mà bây giờ bạn không thể xác định được, vì tệp cấu hình của bạn bị hỏng). Hoặc bạn chỉ muốn nhanh chóng kiểm tra dung lượng đĩa mà mỗi VM chiếm. Hoặc bạn cần khôi phục từ các bản sao lưu nơi bạn có thể thấy tên tệp, nhưng không dễ dàng đọc các tệp XML mà không phải trải qua toàn bộ quá trình khôi phục trước.

Do đó, tôi sẽ tìm một cái gì đó tương tự như Mẫu 1, nơi có một thư mục cho mỗi VM - nhưng bỏ qua các thư mục con "Máy ảo" và "Đĩa cứng máy ảo" - chỉ cần đặt tất cả các tệp liên quan đến VM một thư mục có tên của VM.

Bạn cũng không cần Hyper-V \ Máy ảo - chọn một trong những nhãn đó, bạn không cần cả hai.

Vì thế:

D: \ Máy ảo \ MachINE_A \ GUID_1.xml
D: \ Máy ảo \ MachINE_A \ Machine_a_OS.vhdx
D: \ Máy ảo \ MachINE_A \ Machine_a_Data.vhdx

D: \ Máy ảo \ MachINE_B \ GUID_2.xml
D: \ Máy ảo \ MachINE_B \ Machine_b_OS.vhdx
D: \ Máy ảo \ MachINE_B \ Machine_b_Data.vhdx

Vân vân.

Hoặc bạn có thể quyết định rằng bạn không cần tên tệp để khớp với máy ảo - tên thư mục là đủ. Đặt tên theo cách này sẽ giúp sao chép VM dễ dàng hơn mà không phải lo lắng về việc đổi tên các tệp của nó:

D: \ VMs \ Máy A \ GUID_1.xml
D: \ VMs \ Máy A \ OS.vhdx
D: \ VMs \ Máy A \ Data.vhdx

D: \ VMs \ Máy B \ GUID_2.xml
D: \ VMs \ Máy B \ OS.vhdx
D: \ VMs \ Máy B \ SQLData.vhdx
D: \ VMs \ Máy B \ SQLLog.vhdx

Việc mua chính ở đây là tổ chức các tệp sao cho không nhìn vào gì khác ngoài cấu trúc tệp, bạn có thể cho biết VM mỗi tệp thuộc về cái gì và tệp đó dùng để làm gì.


Tôi đã được nghiêng về phía bố trí bạn đề xuất. Một điều về cách bố trí cụ thể này tôi không thích, là nó sử dụng tên máy trong cả cấu trúc thư mục và quy ước đặt tên tệp. Điều này có nghĩa là bạn không thể sao chép một thư mục của máy để tạo một thư mục mới.
Benjamin Peike

Một đối số tôi đã nghe, là bạn có thể biết tệp nào thuộc về máy ảo nào bằng cách xem xét các tệp xml cho mỗi GUID. Mặc dù thật hữu ích khi có một quy ước đặt tên dễ hiểu, nó hoàn toàn sụp đổ nếu ai đó không tuân theo nó, dù chỉ một lần. Nó giống như có ý kiến ​​trong mã không khớp với mã nữa. Vì tất cả thông tin về máy đều nằm trong tệp xml, tôi cảnh giác dựa vào việc đặt tên thư mục và tệp để tìm ra bất cứ điều gì.
Benjamin Peike

@BenjaminPeike Dựa vào các tệp XML để khớp các tệp với VM là rủi ro. Tôi đã có trường hợp thông qua việc vô tình xóa hoặc hỏng dữ liệu, các tệp XML đã biến mất hoặc không thể đọc được. Ngoài ra, nó chỉ đơn giản là nhanh hơn so với kết hợp GUID. Nhưng tôi đồng ý rằng bạn không nhất thiết phải sử dụng tên VM trong tên tệp, chỉ thư mục nếu bạn thích. Chỉ cần đảm bảo rằng - bằng cách nhìn vào không có gì ngoài cấu trúc tệp - bạn có thể biết tệp nào thuộc về VM và mục đích chúng phục vụ.
Cấp

2

Tôi không thích

Bởi vì không có mẫu nào của bạn ổn định trong trường hợp bạn di chuyển VM.

Tôi sẽ - và tôi tự làm điều đó - sử dụng cấu trúc thư mục giống hệt với cấu trúc bạn nhận được khi bạn chuyển VM giữa các máy chủ. Theo cách đó, không có gì thay đổi khi - bạn di chuyển VM giữa các máy chủ.


Không phải là Mẫu 1 những gì bạn nhận được khi di chuyển VM giữa các máy chủ?
Benjamin Peike

Hãy thử nó - nó không phải là. Ví dụ, các đĩa kết thúc trong thư mục "Đĩa cứng ảo" trong thư mục tên máy.
TomTom

đó là những gì Mẫu 1 của tôi làm. Mỗi máy có một thư mục riêng và trong mỗi thư mục đó là thư mục Máy ảo và thư mục Đĩa cứng ảo.
Benjamin Peike

1
Có cách nào để Hyper-V sử dụng cấu trúc mà bạn đã mô tả theo mặc định khi VM được tạo không, @TomTom? Tôi thích đặt máy ảo của mình dưới một thư mục của riêng họ. Nhưng mỗi lần, tôi kết thúc việc tạo VM sau đó di chuyển thẳng về sau để có được cấu trúc thư mục tôi muốn.
Matty Brown

1

Bạn cần làm mẫu 2 để tách khớp nối cho các bộ phận máy ảo khỏi mối quan tâm lưu trữ. Tức là một VHDX cho một VM có thể có khối lượng hiệu năng, một VHDX khác cho cùng một VM có liên quan nhiều hơn đến dung lượng - và tất cả có thể có sự khác biệt về khả năng phục hồi.

Vì vậy, bạn sẽ không thể thực hiện mẫu 1 trừ khi bạn cũng đưa vào bố cục cấu trúc tệp, sự phức tạp của ánh xạ các vị trí lưu trữ khác nhau vào khớp nối cho các phần của tệp máy ảo.

Như vậy:

MẪU 2

Mẫu 2 - Ở đây quản lý lưu trữ được ưu tiên hơn bố trí không gian tên (trong khi đó, bố trí không gian tên được xử lý trong giao diện người dùng để quản lý VM ... tức là một số phần của VM thậm chí có thể không cục bộ nhưng được sử dụng trong đám mây, v.v. xe buýt)

... quản lý các mối quan tâm khác nhau trong quản lý lưu trữ:

D: \ Storage \ Pool1 \ Hyper-V \ Đĩa cứng ảo \ xxx-xx-xx-System-01-Prod.vhdx

D: \ Storage \ Pool1 \ Hyper-V \ Đĩa cứng ảo \ xxx-xx-xx-Data-01-Prod.vhdx

D: \ Storage \ Pool2 \ Hyper-V \ Đĩa cứng ảo \ xxx-xx-xx-Data-02-Prod.vhdx

D: \ Storage \ Pool3 \ Hyper-V \ Đĩa cứng ảo \ xxx-xx-xx-Recovery-01-Prod.vhdx

D: \ Storage \ Pool1 \ Hyper-V \ Máy ảo \ GUID_1

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

D: \ Storage \ Pool1 \ Hyper-V \ Máy ảo \ GUID_2

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

TẠM 1

Để thực hiện ánh xạ này trong mẫu 1 - trong đó mối quan tâm về không gian tên trong hệ thống tệp (còn gọi là ui cung cấp giả) được ưu tiên - trong khi vẫn duy trì mối quan tâm về lưu trữ:

D: \ VMs xxx 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 \ Đĩa cứng ảo \ xxx-xx-xx- Dữ liệu-01-Prod.vhdx

D: \ VMs \ xxx-xx-xx-01-Prod \ xxx-xx-xx-Data-02-Prod.vhdx> D: \ Storage \ Pool2 \ Hyper-V \ Đĩa cứng ảo \ xxx-xx-xx- Dữ liệu-02-Prod.vhdx

D: \ VMs \ xxx-xx-xx-01-Prod \ xxx-xx-xx-Recovery-01-Prod.vhdx> D: \ Storage \ Pool3 \ Hyper-V \ Đĩa cứng ảo \ xxx-xx-xx- Phục hồi-01-Prod.vhdx

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

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.