Apakah mungkin untuk menjangkau satu VM besar di beberapa server komoditas fisik?

11

Apakah mungkin untuk menjangkau satu Mesin Virtual besar di beberapa server komoditas fisik?

Berikut ini adalah kasus penggunaan kami:

  • Kita perlu mengimplementasikan server db 32 prosesor dengan RAM 64 GB
  • Kami tidak memiliki server fisik dengan kapasitas seperti itu
  • Kami memiliki banyak server dengan sumber daya yang lebih kecil.

Apakah ada teknologi atau (lebih baik) produk yang memungkinkan kita memanfaatkan server ini untuk membuat VM dengan kapasitas yang dibutuhkan? Katakanlah, apakah kita dapat menggabungkan 8 mesin 4-prosesor fisik dengan 8 GB RAM masing-masing menjadi satu "unit logis" 32-prosesor dengan 64 GB RAM dan mengatur server Oracle yang menggunakan semua kapasitas ini?

Sebelum memposting pertanyaan ini, kami membaca pertanyaan serupa tetapi tidak menemukan jawaban.

Mungkin, seseorang bisa memberi kita petunjuk sekarang?

pengguna54614
sumber
2
Ini bukan jawaban untuk pertanyaan Anda, tetapi aneh rasanya tidak ada yang menyarankan untuk melihat batasan perangkat lunak. Jika perusahaan Anda membuat aplikasi untuk bisnis kelas menengah, tampaknya bagi saya jelas bahwa masalahnya adalah keterbatasan perangkat lunak yang mungkin arsitek dan perancang perangkat lunak tidak pikirkan dalam database dengan miliaran catatan atau dengan tabel atau prosedur temp yang besar, pikirkan itu dan buat beberapa tes mandiri dan pelaporan kesalahan untuk pertanyaan lambat untuk saya ini adalah cara untuk menyelesaikan masalah ... pikirkan batas 3.3GB di x86

Jawaban:

7

Ada produk komersial dari ScaleMP yang disebut vSMP. Ini memungkinkan Anda untuk menggabungkan beberapa sistem x86 ke dalam instance virtual tunggal. Saya belum pernah secara pribadi mencoba ini sebelumnya, tetapi saya telah melalui presentasi dari mereka. Jika saya ingat dengan benar, ada persyaratan khusus agar ini berfungsi, dan Anda harus mendapatkan beberapa perangkat keras tambahan (Infiniband untuk interkoneksi latensi rendah dan cepat). Mungkin harganya cukup mahal juga!

ryanlim
sumber
1
ScaleMP tidak meniru lingkungan x86. Anda tidak akan pernah mendapatkan Windows atau OS x86 standar lainnya untuk berjalan di lingkungan virtual. Anda Satu-satunya rasa yang didukung adalah berbagai versi Linux yang dibangun di atas arsitektur tipe SMP. Dan dari jenis arsitektur itu ... ada beberapa rasa. Bahkan yang gratis.
TheCompWiz
OP tidak spesifik tentang persyaratan lainnya. Saya hanya menjawab apa yang bisa saya kumpulkan dari jabatannya.
ryanlim
1
Ini terlihat keren sekali. Saya menduga bahwa kotak 32 core (mungkin dengan chip AMD 2x16 Core) mungkin lebih murah daripada sebuah cluster dengan Infiniband, tapi begitulah. Solusi ini menghasilkan lebih banyak hak menyombongkan diri.
Tom O'Connor
9

Tidak ada cara untuk mendapatkan fungsionalitas yang sama persis dengan mesin 32-prosesor tunggal ... dengan beberapa server terpisah. Taruhan terbaik Anda adalah dengan melihat clustering atau komputasi grid. Dilakukan dengan benar, Anda dapat berakhir dengan kinerja yang sebanding ... dan tingkat ketersediaan tinggi yang lebih tinggi. Banyak pertanyaan Anda juga tergantung pada tipe "db" Anda. Microsoft SQL Server bekerja secara signifikan berbeda dari MySQL atau Oracle ... dan skalabilitasnya juga dilakukan dengan sangat berbeda.

Atau ... Anda mungkin ingin mempertimbangkan untuk membiarkan seseorang melakukan database untuk Anda ... seperti menggunakan EC2 RDS ...

Sayangnya, tidak ada cara untuk menggabungkan beberapa server fisik bersama & menampar vmware pada mereka dan berakhir dengan server virtual uber-powerful tunggal.

TheCompWiz
sumber
TheCompWiz, terima kasih atas jawabannya. OK, jika jawabannya tergantung pada tipe db saya, biarlah Oracle atau Microsoft SQL Server. Dengan koreksi ini, apakah masih mustahil? Ya, kami tahu tentang EC2 tetapi kami membutuhkan Oracle atau Microsoft SQL Server untuk menguji masalah dengan produk perangkat lunak yang kami berikan untuk pelanggan ...
user54614
Juga, mengapa hanya vmware yang diperhitungkan? Kami tidak keberatan dengan hypervisor lainnya ...
user54614
Kemampuan untuk melintasi beberapa server adalah mimpi buruk logistik BESAR ... belum lagi kurangnya bandwidth yang tersedia antar perangkat. Pikirkan tentang seberapa cepat CPU itu ... maka semua hal yang harus Anda lakukan yang akan memperlambat proses ... yaitu CPU -> bus -> PCI-bridge -> kartu jaringan -> kabel ethernet -> jaringan stack -> ... bahkan sebelum mencapai server lain? Anda tidak ingin menunggu 1 detik untuk dapat menambahkan 1 + 1. Cluster biasanya dapat melakukan ini karena tugas diberikan dalam "Pekerjaan" dan pekerjaan dikeluarkan ke node komputasi yang melakukan semua tugas dalam pekerjaan itu ...
TheCompWiz
... dan kemudian mengirim jawaban kembali ke node manajemen. Windows tidak. Tidak ada cara untuk menseting lingkungan X86 virtual (atau X86_64) yang bahkan akan berusaha melakukan ini.
TheCompWiz
2
@ user54614 - Anda benar-benar tidak akan bisa meniru skenario mereka dengan mengikat mesin bersama. Saya sarankan berbicara dengan klien Anda dan dukungan Oracle untuk menunjukkan dan mengidentifikasi masalah.
Chris Thorpe
-1

"TheCompWiz" menjawab pertanyaan Anda dengan bermanfaat.

Saya masih ingin mengatakan bahwa, ya, Anda dapat membangun hypervisor yang memungkinkan satu VM untuk menjangkau beberapa host fisik dan dapat menjalankan VM itu "dengan benar" di mana semuanya berfungsi.

Tetapi, bahkan dengan jaringan berkecepatan tinggi yang sangat bagus antara host fisik, kinerja hal seperti itu akan benar-benar mengerikan, berjalan jauh lebih lambat daripada VM kecil yang sesuai dengan satu host tersebut. Anda harus mensimulasikan properti koherensi cache satu VM dengan mencegat setiap memori tunggal membaca atau menulis yang dilakukan oleh OS tamu dan aplikasi, yang akan melipatgandakan biaya akses memori oleh ribuan, jika tidak jutaan.

Jadi tidak ada vendor hypervisor komersial yang memungkinkan hal seperti itu. Sudah dicoba di lab. Tidak ada yang peduli untuk membuat produk darinya.

Untuk menegaskan kembali poin itu sekali lagi, lihatlah pengelompokan untuk solusi.

Jake Oshins
sumber
Tetapi bagaimana jika produk perangkat lunak yang kami hasilkan berfungsi dengan baik untuk sebagian besar pelanggan tetapi gagal berfungsi dengan baik di lingkungan pelanggan besar yang menjalankan aplikasi kami pada server Oracle 32-proc dengan RAM 64 GB. Kami ingin mereproduksi kegagalan ini di lingkungan kami.
user54614
2
Saya tidak tahu apa-apa tentang perangkat lunak Anda, tetapi apa yang terjadi pada 32-prosesor dan 64GB RAM yang tidak terjadi pada 2-prosesor dan 8 GB RAM? Jika benar-benar ada sesuatu yang salah berulang pada level itu, maka itu adalah masalah Oracle / OS / driver / IO / hardware.
gravyface
Anda tidak akan pernah mendapatkan hypervisor untuk melintasi mesin fisik. Mereka masih terkungkung dalam inti fisik mesin. Yang sedang berkata ... Saya yakin Anda bisa membangun arsitektur tipe mainframe yang mirip dengan raksasa kuno dari masa lalu ... tetapi Anda tidak akan pernah mendapatkan apa pun x86 berjalan di atasnya.
TheCompWiz
1
Pelanggan besar Anda harus memiliki instance QA kedua dari server database monster itu. Jika mereka tidak memiliki itu, itu benar-benar masalah mereka. Dalam 15 tahun pekerjaan TI, saya belum pernah melihat orang mengharapkan vendor perangkat lunak untuk menduplikasi infrastruktur mereka (kecuali jika itu adalah bagian dari kontrak layanan yang menentukan hal itu, dan pelanggan membayarnya). Terutama ketika infrastruktur itu bersifat esoteris (meskipun server 64-core 64-GB dapat diperoleh sekitar $ 22K dari Dell saat ini).
rmalayter
Bagaimana dengan ScaleMP ( scalemp.com )?
user54614
-2

VMWare melakukannya. Ini disebut DRS atau Penjadwal Sumber Daya Terdistribusi. Ini memungkinkan Anda untuk menggabungkan sumber daya dari 16 server. Anda kemudian dapat mendistribusikan total itu ke satu atau lebih lingkungan virtual.

Rick Dettwyler
sumber
Tidak, ini sama sekali tidak seperti yang dilakukan DRS. DRS memungkinkan satu mesin vMotion secara otomatis di sekitar cluster untuk memuat di antara node host. Dengan cara apa pun tidak memberikan akses ke beberapa host dari satu VM tunggal.
EEAA