Skip to content
Luca Dell'Oca Principal Cloud Architect @Veeam
Virtual To The Core Virtual To The Core

Virtualization blog, the italian way.

  • Media
  • About me
Virtual To The Core
Virtual To The Core

Virtualization blog, the italian way.

Eseguire SQL Server su VMware: è sicuro?

Luca Dell'Oca, March 4, 2009December 4, 2016

Si legge spesso su internet che eseguire una macchina windows con SQL Server in esecuzione in un ambiente virtualizzato non è sicuro.

La spiegazione principale è che la VM scrive non sul disco direttamente, ma  passa le scritture da registrare alla cache del server host. Pertanto, se l’host stesso si spegne improvvisamente non tutte le transazioni vengono registrate e il database risulta corrotto.

Spesso però gli articoli che danno queste motivazioni (come ad esempio questo) non scendono molto nei particolari di quale versione di SQL usano, e soprattutto quale ambiente vmware, se esx, virtual server, o workstation, riducendo il tutto a un generico “vmware”.

Osservando lo schema che viene riportato:

sembra che l’autore stia utilizzando una versione hosted di vmware. E proprio perchè le varie versioni di vmware hanno comportamenti diversi riguardo la cache, è bene chiarire alcuni concetti:

– su hosts linux, vmware usa sempre transazioni IO bufferizzate

– su hosts windows, vmware usa IO di tipo unbuffered

– su hosts mac (ovvero vmware fusion) attualmente vengono usati IO bufferizzati; pare che in una delle prossime versioni si passerà anche su questa piattaforma a transazioni non bufferizzate

Dando per probabile che la versione host di vmware utilizzata sarà stata una qualche versione per windows, come spesso accade a chi deve creare VM windows, vediamo quindi dalla lista che le scritture IO “NON” sono bufferizzate, pertanto è impossibile che una scrittura venga trattenuta nella cache di vmware ma comunicata come avvenuta alla VM.

Ho volutamente ignorato ESX server, dato che qua tutte le scritture sono da sempre unbuffered; ragion per cui non c’è alcuna differenza nell’eseguire SQL server in un ambiente fisico o in uno virtualizzato.

Prenderemo ovviamente le stesse precauzioni, come l’installazione di batterie tampone sui raid, e un’adeguata protezione dell’alimentazione elettrica tramite UPS. Esattamente come in un sistema fisico.

Share this:

  • Click to share on X (Opens in new window) X
  • Click to share on Facebook (Opens in new window) Facebook
  • Click to share on LinkedIn (Opens in new window) LinkedIn
  • Click to email a link to a friend (Opens in new window) Email
  • Click to share on Tumblr (Opens in new window) Tumblr
  • Click to share on Pinterest (Opens in new window) Pinterest
  • Click to share on Reddit (Opens in new window) Reddit
  • Click to share on WhatsApp (Opens in new window) WhatsApp
  • Click to share on Pocket (Opens in new window) Pocket
Tecnologia IOsqlvmware

Post navigation

Previous post
Next post

Search

Sponsors

Latest Posts

  • Migrate WSL (Windows Subsystem for Linux) to a new computer
  • Pass keystrokes to a pfSense virtual machine to install it automatically
  • Automatically deploy pfSense with Terraform and Ansible
  • My Automated Lab project: #6 Create a S3 Bucket with Terraform
  • My Automated Lab project: #5 Deploy a Linux vSphere VM with Terraform and custom disks
©2025 Virtual To The Core | WordPress Theme by SuperbThemes
We use cookies to ensure that we give you the best experience on our website, and to collect anonymous data regarding navigations stats using 3rd party plugins; they all adhere to the EU Privacy Laws. If you continue to use this site we will assume that you are ok with it.OkNoPrivacy Policy