Đây là một câu hỏi thú vị...
Tôi không nghĩ rằng có một câu trả lời dứt khoát, nhưng tôi có thể đưa ra một số bối cảnh lịch sử về cách thực hành tốt nhất xung quanh chủ đề này có thể đã thay đổi theo thời gian.
Tôi đã phải hỗ trợ hàng ngàn máy ảo Linux được triển khai ở nhiều dạng khác nhau trên các môi trường VMware kể từ năm 2007. Cách tiếp cận triển khai của tôi đã phát triển và tôi đã có kinh nghiệm ( đôi khi không may ) duy nhất là kế thừa và tái cấu trúc các hệ thống được xây dựng bởi các kỹ sư khác.
Những ngày cũ...
Ngày trước (2007), các hệ thống VMware đầu tiên của tôi được phân vùng giống như các hệ thống kim loại trần của tôi. Về phía VMware, tôi đã sử dụng các tệp dày 2 GB để chia dữ liệu của VM và thậm chí không nghĩ về khái niệm nhiều VMDK, vì tôi rất vui vì ảo hóa thậm chí có thể hoạt động!
Cơ sở hạ tầng ảo ...
Bởi ESX 3.5 và đầu ESX / ESXi 4.x phát hành (2009-2011), tôi đã sử dụng Linux, phân vùng như bình thường trên đỉnh khối Dày được cung cấp file VMDK. Phải lưu trữ lưu trữ buộc tôi phải suy nghĩ về thiết kế Linux theo cách tương tự như tôi làm với phần cứng thực sự. Tôi đã tạo 36 GB, 72 GB, 146 GB VMDK cho hệ điều hành, phân vùng thông thường /, / boot, / usr, / var, / tmp, sau đó thêm một VMDK khác cho phân vùng "dữ liệu" hoặc "tăng trưởng" (cho dù đó là / nhà, / opt hoặc một cái gì đó ứng dụng cụ thể). Một lần nữa, điểm ngọt trong kích thước đĩa cứng vật lý trong thời đại này là 146GB và vì việc đặt trước là một yêu cầu (trừ khi sử dụng NFS), tôi cần phải thận trọng với không gian.
Sự ra đời của cung cấp mỏng
VMware đã phát triển các tính năng tốt hơn xung quanh việc cung cấp Thin trong các bản phát hành ESXi 4.x sau này và điều này đã thay đổi cách tôi bắt đầu cài đặt các hệ thống mới. Với bộ tính năng đầy đủ được thêm vào 5.0 / 5.1, một loại linh hoạt mới cho phép thiết kế sáng tạo hơn. Xin lưu ý bạn, điều này đã bắt kịp với các khả năng gia tăng trên các máy ảo, về số lượng vCPUS và bao nhiêu RAM có thể được cam kết cho từng máy ảo. Nhiều loại máy chủ và ứng dụng có thể được ảo hóa hơn so với trước đây. Điều này đúng khi môi trường điện toán bắt đầu hoàn toàn ảo.
LVM thật kinh khủng ...
Vào thời điểm chức năng bổ sung đầy đủ ở cấp VM đã có và phổ biến (2011-2012), tôi đã làm việc với một công ty cố gắng duy trì thời gian hoạt động cho máy ảo của khách hàng của họ bằng mọi giá ( ngu ngốc ). Vì vậy, điều này bao gồm tăng CPU / RAM trực tuyến của VMware và thay đổi kích thước đĩa LVM rủi ro trên các VMDK hiện có. Hầu hết các hệ thống Linux trong môi trường này là các thiết lập VMDK đơn lẻ với các phân vùng ext3 trên LVM. Điều này thật tồi tệ vì lớp LVM đã tăng thêm độ phức tạp và rủi ro không cần thiết cho hoạt động. Chẳng hạn, hết dung lượng trong / usr, có thể dẫn đến một chuỗi các quyết định tồi tệ cuối cùng có nghĩa là khôi phục hệ thống từ các bản sao lưu ... Đây là một phần của quá trình và liên quan đến văn hóa, nhưng vẫn ...
Phân vùng hợm hĩnh ...
Tôi đã nhân cơ hội này để cố gắng thay đổi điều này. Tôi là một kẻ hợm hĩnh phân vùng trong Linux và cảm thấy rằng các hệ thống tập tin nên được tách ra để theo dõi và vận hành. Tôi cũng không thích LVM, đặc biệt là với VMware và khả năng thực hiện những gì bạn yêu cầu. Vì vậy, tôi đã mở rộng việc bổ sung các tệp VMDK vào các phân vùng có khả năng phát triển. / opt, / var, / home có thể lấy các tệp máy ảo của riêng họ nếu cần. Và đó sẽ là những đĩa thô. Đôi khi, đây là một phương pháp dễ dàng hơn để mở rộng phân vùng dưới mức cụ thể một cách nhanh chóng.
Obamacare ...
Với việc đưa lên máy khách cấu hình rất cao , tôi được giao nhiệm vụ thiết kế mẫu tham chiếu Linux VM sẽ được sử dụng để tạo môi trường ứng dụng cực kỳ rõ ràng của chúng . Các yêu cầu bảo mật của ứng dụng yêu cầu một bộ gắn kết duy nhất , do đó, đã làm việc với các nhà phát triển để cố gắng nhồi nhét các phân vùng không tăng trưởng vào một VMDK, sau đó thêm các VMDK riêng cho mỗi mount có tiềm năng tăng trưởng hoặc có các yêu cầu cụ thể (mã hóa, kiểm toán, v.v.) Vì vậy, cuối cùng, các VM này bao gồm 5 VMDK trở lên, nhưng cung cấp sự linh hoạt tốt nhất để thay đổi kích thước và bảo vệ dữ liệu trong tương lai.
Những gì tôi làm hôm nay ...
Ngày nay, thiết kế chung của tôi cho Linux và các hệ thống tập tin truyền thống là HĐH trên một VMDK mỏng (được phân vùng) và VMDK rời rạc cho mọi thứ khác. Tôi sẽ thêm nóng khi cần thiết. Đối với các hệ thống tệp nâng cao như ZFS, đó là một VMDK cho HĐH và một VMDK khác hoạt động như một zpool ZFS và có thể được thay đổi kích thước, khắc vào các hệ thống tệp ZFS bổ sung, v.v.