Menjalankan apa-apa di dalam mesin virtual akan memiliki beberapa tingkat kinerja hit, tapi berapa banyak apakah itu benar-benar berdampak pada kinerja sistem database?
Saya menemukan makalah referensi akademis ini dengan beberapa tolok ukur yang menarik, tetapi itu adalah tes terbatas menggunakan Xen dan PostgreSQL saja. Kesimpulannya adalah bahwa menggunakan VM tidak "datang dengan biaya tinggi dalam kinerja" (meskipun Anda mungkin berpikir data aktual mengatakan sebaliknya).
Apa kelemahan teknis, administratif, dan lainnya yang terkait dengan menjalankan database dalam mesin virtual?
Tolong posting jawaban yang dapat didukung oleh fakta-fakta obyektif, saya tidak tertarik pada spekulasi atau argumen semi-agama lainnya (gairah geek baik dalam banyak hal, tetapi itu tidak akan membantu kami di sini).
Yang telah dibilang,
- Masalah apa yang muncul saat menjalankan database di Mesin Virtual? (silakan kirim referensi)
- Apakah masalah itu penting?
- Apakah itu hanya signifikan dalam skenario tertentu?
- Apa solusinya?
Jawaban:
Meskipun banyak vendor DB sangat lambat melakukan hal ini, hampir semua dari mereka sekarang secara resmi mendukung perangkat lunak mereka yang berjalan dalam lingkungan yang tervirtualisasi.
Kami menjalankan banyak instance Oracle 11g di linux di atas ESXi, dan tentu saja mungkin untuk mendapatkan kinerja yang sangat baik. Seperti semua penskalaan perangkat keras, Anda hanya perlu memastikan bahwa host virtualisasi memiliki banyak sumber daya (RAM, CPU), dan bahwa lapisan disk Anda siap untuk memberikan kinerja IO apa pun yang Anda butuhkan.
sumber
Seperti yang dikatakan ErikA, ini menjadi semakin umum. Saya di kamp SQL Server dan secara pribadi tidak memiliki sistem produksi yang berjalan di VM, tapi saya tidak akan ragu untuk (setelah sedikit lebih banyak belajar tentang topik). Pasti ada beberapa hal yang perlu dipertimbangkan sebelum Anda pergi jalan itu, meskipun (setidaknya untuk SQL Server). Disk IO (seperti yang disebutkan orang lain) dan alokasi memori hanyalah 2 contoh. Hal-hal akan berbeda antara hypervisor yang berbeda juga.
Brent Ozar adalah pakar yang diakui dalam virtualisasi SQL Server, khususnya di VMWare. Saya akan sangat merekomendasikan membaca bahan-bahannya.
http://www.brentozar.com/community/virtualization-best-practices/
sumber
Ada yang bisa dan kemudian harus ada . Sebuah korvet dapat mencapai 150 mph, tetapi apakah Anda harus berada di jalan raya umum? Anda bisa melukai diri sendiri secara tidak perlu.
Database adalah sistem operasi tamu. Dengan desain ketika mereka mulai, mereka mengambil blok sumber daya dan mengelolanya secara langsung untuk alasan kinerja. Segera setelah Anda membuat sistem operasi inti dari server basis data menjadi tamu di lingkungan hosting tervirtualisasi, maka Anda menempatkan lapisan arbitrase dengan hypervisor antara blok elemen yang dialokasikan dari disk dan RAM dan server basis data. Ini akan melambat. Semakin tidak efisien kueri Anda, semakin lambat. Inefisiensi ini dapat ditutup hari ini pada perangkat keras khusus, tetapi segera setelah Anda memperkenalkan arbitrase ke sumber daya dependen Anda, Anda akan mengetahuinya dengan sangat cepat.
Apa yang tidak diketahui oleh banyak penghitung kacang yang menuntut virtualisasi adalah bahwa server basis data, sebagai sistem operasi tamu, menawarkan lapisan konsolidasi mereka sendiri. Tidak ada alasan mengapa Anda tidak dapat memindahkan menggabungkan beberapa contoh basis data logis pada satu server fisik, bahkan sampai memindahkan alamat IP, mengatur nama host tambahan, dll ..., untuk memungkinkan penggabungan alami layanan ini terjadi. Dan, dengan model ini Anda tidak hanya mempertahankan penghematan biaya yang didorong oleh manajemen untuk mengurangi jumlah host fisik, tetapi Anda mempertahankan blok akses ke sumber daya fisik tanpa melanggar hypervisor sewenang-wenang, yang kadang-kadang dapat membuat keputusan yang menguntungkan dan tidak lainnya.
Hal yang sama berlaku untuk sistem operasi tamu lainnya, seperti Java. Solusi virtualisasi biasanya merupakan lingkungan yang sibuk dan hypervisor harus membuat banyak keputusan tentang siapa yang "mendapatkan token" pada sumber daya. Kapan saja Anda bisa menghilangkan lapisan itu, Anda akan menjadi lebih baik.
Menggabungkan beberapa instance menggunakan layer sistem operasi guest natural terlebih dahulu. Kemungkinan Anda akan dapat mencapai target konsolidasi dan target kinerja Anda dengan lebih mudah.
sumber
Ada dua hal yang perlu disadari di sini:
Yang mengatakan, tempat saya bekerja instalasi Sql Server kami adalah salah satu dari hanya dua server yang saya tidak punya niat untuk virtualisasi dalam waktu dekat (yang lain adalah DC utama).
sumber
Menjalankan SQL Server adalah VM akan baik-baik saja, asalkan Anda dapat memberikan sumber daya yang cukup untuk VM untuk menjalankan aplikasi Anda. Jika di dunia fisik Anda membutuhkan 24 core dan 256 Gigs RAM maka Anda perlu menyediakan 24 vCPU dan 256 Gigs RAM di dunia virtual.
Saya baru saja menulis sebuah artikel di majalah SQL Server bulan lalu tentang menjalankan SQL Server di bawah VMware's vSphere.
sumber
Saya menjalankan dua database, satu PostgreSQL dan MySQL lainnya, dalam lingkungan virtual (Xen) di mana dom0s sangat tersedia. sistem file domU semua terletak pada SAN LUN iSCSI, diukir dengan volume logis LVM2. Basis data MySQL hanya untuk Cacti, dan karena itu tidak melihat banyak penggunaan sama sekali, dan terletak di LUN iSCSI juga.
Basis data PostgreSQL adalah basis data untuk lingkungan pementasan kami, dan karenanya melihat pemanfaatan yang lebih tinggi daripada db MySQL. Untuk alasan ini, database terletak pada set RAID10 lokal, dan DRBD direplikasi ke node cluster kedua. Namun, dalam hal beban nyata, basis data pementasan ini tidak melihat beban yang sangat tinggi sama sekali. Yang, menurut saya, menjadikannya kandidat yang bagus / hebat untuk melakukan virtualisasi.
Beberapa manfaat bagi organisasi kami adalah pengurangan konsumsi daya, menghemat ruang rak, dan biaya administrasi perangkat keras yang lebih sedikit.
Database produksi utama kami, di sisi lain, saya tidak bisa membayangkan menjadi virtual ....
sumber
Saya bekerja dengan server MSSQL dan MySQL di banyak server. Beberapa tahun yang lalu saya ragu-ragu untuk mulai menyiapkan server SQL pada VM karena saya telah mendengar tentang masalah kinerja menjalankan server SQL pada VM. Namun, saya terkejut setelah saya mengatur pasangan SQL server pertama saya dan tidak melihat perubahan kinerja. Semakin banyak server tempat saya bekerja berada di VM dan hampir semua klien perusahaan yang lebih besar tempat saya bekerja telah mengolah server SQL.
Ya, VM memang menambah biaya overhead dan jika Anda akan meng-hosting beberapa VM pada satu kotak, Anda akan memerlukan server yang bagus. Masalah sumber daya umum yang harus diwaspadai adalah menambahkan VM tambahan dan menipis sumber daya yang tersedia. Ini adalah praktik umum untuk merencanakan beberapa pertumbuhan, tetapi jika Anda membeli server Anda untuk meng-host 2 atau 3 VM dan sekarang ini menjalankan 10 VM Anda mungkin akan melihat peningkatan kinerja.
Saya akan berbohong jika saya mengatakan saya belum pernah melihat masalah kinerja menjalankan server SQL pada VM. Tapi, saya telah belajar bahwa jika Anda melihat kinerja yang buruk, mungkin ada yang salah dengan lingkungan.
sumber