Ini pertanyaan yang menarik ...
Saya tidak berpikir ada jawaban yang pasti, tetapi saya dapat memberikan beberapa konteks historis tentang bagaimana praktik terbaik seputar topik ini mungkin telah berubah dari waktu ke waktu.
Saya harus mendukung ribuan VM Linux yang digunakan dalam berbagai bentuk di lingkungan VMware sejak 2007. Pendekatan saya untuk penyebaran telah berkembang, dan saya memiliki pengalaman unik ( kadang-kadang disayangkan ) dari sistem pewarisan dan refactoring yang dibangun oleh insinyur lain.
Dulu ...
Kembali pada hari (2007), sistem VMware awal saya dipartisi seperti sistem bare metal saya. Di sisi VMware, saya menggunakan split 2GB file tebal untuk terdiri dari data VM, dan bahkan tidak memikirkan gagasan beberapa VMDK, karena saya senang bahwa virtualisasi bahkan dapat bekerja!
Infrastruktur Virtual ...
Dengan ESX 3.5 dan rilis ESX / ESXi 4.x awal (2009-2011), saya menggunakan Linux, dipartisi seperti biasanya di atas file VMDK yang disediakan monolitik Tebal . Setelah melakukan pra-alokasi penyimpanan memaksa saya untuk berpikir tentang desain Linux dengan cara yang sama seperti yang saya lakukan dengan perangkat keras nyata. Saya sedang membuat VMDK 36GB, 72GB, 146GB untuk sistem operasi, mempartisi biasa /, / boot, / usr, / var, / tmp, kemudian menambahkan VMDK lain untuk partisi "data" atau "pertumbuhan" (apakah itu / rumah, / opt atau sesuatu yang spesifik aplikasi). Sekali lagi, sweet-spot dalam ukuran hard disk fisik selama era ini adalah 146GB, dan karena preallokasi adalah persyaratan (kecuali menggunakan NFS), saya harus konservatif dengan ruang.
Munculnya provisi tipis
VMware mengembangkan fitur-fitur yang lebih baik di sekitar Thin provisioning dalam rilis ESXi 4.x yang lebih baru, dan ini mengubah cara saya mulai menginstal sistem baru. Dengan set fitur lengkap yang ditambahkan pada 5.0 / 5.1, jenis fleksibilitas baru memungkinkan desain yang lebih kreatif. Pikiran Anda, ini sejalan dengan peningkatan kemampuan pada mesin virtual, dalam hal berapa banyak vCPUS dan berapa banyak RAM yang dapat dilakukan untuk masing-masing VM. Lebih banyak jenis server dan aplikasi dapat divirtualisasi daripada di masa lalu. Ini benar karena lingkungan komputasi mulai berjalan sepenuhnya virtual.
LVM mengerikan ...
Pada saat fungsionalitas hot-add penuh di tingkat VM sudah ada dan umum (2011-2012), saya bekerja dengan perusahaan yang berusaha untuk menjaga waktu kerja untuk VM klien mereka dengan biaya berapa pun ( bodoh ). Jadi ini termasuk secara online VMware CPU / meningkat RAM dan berisiko LVM disk yang mengubah ukuran pada VMDKs yang ada. Sebagian besar sistem Linux dalam lingkungan ini adalah setup VMDK tunggal dengan partisi ext3 di atas LVM. Ini mengerikan karena lapisan LVM menambah kompleksitas dan risiko yang tidak perlu untuk operasi. Kehabisan ruang di / usr, misalnya, dapat mengakibatkan rantai keputusan buruk yang akhirnya berarti memulihkan sistem dari cadangan ... Ini sebagian proses dan terkait budaya, tetapi masih ...
Keangkuhan partisi ...
Saya mengambil kesempatan ini untuk mencoba mengubah ini. Saya sedikit sombong partisi di Linux dan merasa bahwa sistem file harus dipisahkan untuk pemantauan dan kebutuhan operasional. Saya juga tidak menyukai LVM, terutama dengan VMware dan kemampuan untuk melakukan apa yang Anda minta. Jadi saya memperluas penambahan file VMDK ke partisi yang berpotensi tumbuh. / opt, / var, / home bisa mendapatkan file mesin virtual sendiri jika diperlukan. Dan itu akan menjadi disk mentah. Kadang-kadang ini adalah metode yang lebih mudah untuk memperluas partisi yang terlalu kecil dengan cepat.
Obamacare ...
Dengan onboarding dari klien profil yang sangat tinggi , saya ditugaskan dengan desain template referensi Linux VM yang akan digunakan untuk membuat lingkungan aplikasi yang sangat terlihat. Persyaratan keamanan aplikasi memerlukan satu set mount yang unik , sehingga bekerja dengan para pengembang untuk mencoba menjejalkan partisi non-pertumbuhan ke satu VMDK, dan kemudian menambahkan VMDK terpisah untuk setiap mount yang memiliki potensi pertumbuhan atau memiliki persyaratan khusus (enkripsi, audit, dll.) Jadi, pada akhirnya, VM ini terdiri dari 5 atau lebih VMDK, tetapi memberikan fleksibilitas terbaik untuk mengubah ukuran dan melindungi data di masa depan.
Apa yang saya lakukan hari ini ...
Hari ini, desain umum saya untuk Linux dan sistem file tradisional adalah OS pada satu VMDK tipis (dipartisi), dan VMDK diskrit untuk hal lain. Saya akan menambahkan panas jika diperlukan. Untuk filesystem canggih seperti ZFS, ini adalah satu VMDK untuk OS, dan VMDK lain yang berfungsi sebagai zpool ZFS dan dapat diubah ukurannya, dipahat menjadi filesystem ZFS tambahan, dll.