> For the complete documentation index, see [llms.txt](https://docs.verge.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.verge.io/knowledge-base/es/virtual-machines/virtio-win-mssql-compatibility.md).

# Compatibilidad del controlador VirtIO-Win con cargas de trabajo de MS SQL Server

## Resumen

{% hint style="info" %}
**Puntos clave**

* virtio-win **v0.1.285** y **v0.1.292** contienen una condición de carrera en el `vioscsi` y `viostor` controladores de almacenamiento que se manifiestan en máquinas virtuales de MS SQL Server muy cargadas
* **v0.1.271** es la última versión antes del commit afectado y es la versión recomendada para invitados de Windows que ejecutan cargas de trabajo de bases de datos
* Los síntomas son más pronunciados en **Windows Server 2025** invitados bajo E/S paralela sostenida
* La corrección upstream llegó en enero de 2026; las versiones posteriores de virtio-win que la incluyan también deberían ser seguras — verifique la compilación antes de implementarla ampliamente
* Haga una instantánea de la VM y detenga los servicios de SQL Server antes de cambiar los controladores de almacenamiento
  {% endhint %}

Las máquinas virtuales de Windows que ejecutan MS SQL Server en VergeOS pueden generar una secuencia de entradas de registro de SQL Server de "reintento de lectura" — y, en algunos casos, un servicio de SQL Server bloqueado después de unos días de carga sostenida — cuando el invitado está usando **virtio-win v0.1.285 o v0.1.292**. La causa raíz es una asignación no atómica de ID de SRB en los `vioscsi`/`viostor` miniports de Storport que permite que se emitan ID duplicados cuando Windows distribuye la E/S entre varios CPU en paralelo (registrado upstream como [incidencia #1453 de virtio-win](https://github.com/virtio-win/kvm-guest-drivers-windows/issues/1453)).

El comportamiento es más reproducible en **Windows Server 2025** porque su implementación de Storport paraleliza `StartIo` de forma más agresiva que las versiones anteriores de Windows Server. Los invitados de Windows más antiguos están expuestos al mismo error, pero lo desencadenan con menos frecuencia.

Degradar los controladores virtio-win del invitado a **v0.1.271** es una solución estable. Una corrección para la condición de carrera subyacente se fusionó upstream y se incluyó en compilaciones más nuevas de virtio-win, por lo que las versiones posteriores que la incluyan también deberían ser seguras — confirme con el soporte de VergeOS qué compilaciones de su entorno son conocidas como válidas antes de actualizar en medio de un incidente.

## Síntomas

Si sospecha de este problema en una VM de Windows en VergeOS, busque lo siguiente en el **Aplicación** registro de eventos y **registro de errores de SQL Server**:

* Mensajes de reintento de lectura en los que los valores **esperado** y **real** son idénticos, por ejemplo:

  > *Una lectura del archivo '\*.mdf' en el desplazamiento 0x... se completó correctamente tras fallar 1 vez con el error: suma de comprobación incorrecta (esperada: 0xad4c6778; real: 0xad4c6778)*

  > *Una lectura del archivo '\*.mdf' en el desplazamiento 0x... se completó correctamente tras fallar 1 vez con el error: pageid incorrecto (esperado 1:29669944; real 1:29669944)*
* `No se encontró SRB para el ID` entradas del `vioscsi` origen
* Servicios de SQL Server bloqueándose después de varios días de carga intensa sostenida

{% hint style="info" %}
**Estos mensajes pueden parecer corrupción, pero por lo general no lo son**

SQL Server informa del **reintento** resultado, que tiene éxito en el segundo intento. `DBCC CHECKDB` normalmente vuelve limpio: las páginas de la base de datos en disco están intactas. El controlador está entregando el búfer incorrecto en la primera lectura debido al ID de SRB duplicado, y la segunda lectura devuelve los datos correctos. Los reintentos persistentes siguen indicando un problema real y deben resolverse incluso cuando no se detecta corrupción.
{% endhint %}

## Requisitos previos

* Una VM de Windows que ejecuta MS SQL Server (o una carga de trabajo de base de datos igualmente intensiva en E/S) en VergeOS
* Acceso administrativo al invitado de Windows
* Una instantánea de la VM tomada antes de cambiar cualquier controlador
* El **ISO de virtio-win v0.1.271** cargado en su entorno VergeOS bajo **Archivos**. Las ISOs archivadas están disponibles en el [archivo stable-virtio en Fedora People](https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/)

## Identificación de la versión instalada del controlador VirtIO

Antes de cambiar nada, confirme qué compilación de virtio-win está ejecutando actualmente el invitado.

1. **Abra el Administrador de dispositivos**
   * Haga clic con el botón derecho en el menú Inicio y seleccione **Administrador de dispositivos**.
2. **Localice el controlador de almacenamiento VirtIO**
   * Expanda **Controladoras de almacenamiento**.
   * Haga clic con el botón derecho en **controlador Red Hat VirtIO SCSI** (para vioscsi) o **controlador pass-through de Red Hat VirtIO SCSI** / **Dispositivo de disco Red Hat VirtIO SCSI** (para viostor) y elija **Propiedades**.
3. **Compruebe la versión y la fecha del controlador**
   * Cambie a la pestaña **Controlador** tab.
   * Anote los campos **Versión del controlador** y **Fecha del controlador** .
4. **Cruce la referencia con la ISO de origen**
   * La marca de versión del controlador sigue un formato `100.<minor>.<build>.<revision>` en el que el componente de revisión final se construye a partir de la versión ISO de virtio-win. Por ejemplo, un `vioscsi` controlador de **virtio-win 0.1.285** normalmente termina en `.28500`; **0.1.271** normalmente termina en `.27100`.
   * Si no está seguro de qué ISO generó el controlador instalado, monte la ISO candidata dentro del invitado y compare su `vioscsi.inf` / `viostor.inf` `DriverVer` línea con el valor que se muestra en el Administrador de dispositivos.

{% hint style="success" %}
**Compruebe tanto vioscsi como viostor**

El error upstream afecta tanto a los controladores `vioscsi` (Virtio SCSI) como a los `viostor` (Virtio block). Si la VM usa un tipo de bus para el disco del sistema operativo y el otro para los discos de datos, verifique ambos controladores.
{% endhint %}

## Versiones recomendadas

| Versión                                                                         | Estado                                                                                                                                              |
| ------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| **v0.1.271**                                                                    | **Solución alternativa recomendada.** Última versión antes del commit afectado; confirmada como estable bajo una carga intensa de SQL.              |
| **v0.1.285**                                                                    | **Evitar.** Contiene la `vioscsi`/`viostor` condición de carrera del ID de SRB; produce errores de reintento de lectura en VMs de SQL muy ocupadas. |
| **v0.1.292**                                                                    | **Evitar.** Mismo defecto que v0.1.285.                                                                                                             |
| Compilaciones **después de la corrección upstream** (a partir de enero de 2026) | En principio debería ser seguro. Confirme la compilación específica con el soporte de VergeOS antes de implementarla.                               |

Las descargas estables de ISO de virtio-win están disponibles en el [repositorio stable-virtio de Fedora People](https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/), y las versiones anteriores en el [directorio archive-virtio](https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/).

## Degradar a virtio-win v0.1.271

{% hint style="warning" %}
**Haz primero una instantánea**

Antes de cambiar cualquier controlador virtio en el invitado, haga una instantánea de VergeOS de la VM. La pila de almacenamiento es crítica para el arranque: la instantánea es su punto de reversión si el cambio de controlador deja a Windows sin poder montar sus discos.
{% endhint %}

1. **Detener los servicios de MS SQL Server en el invitado**
   * Desde un PowerShell elevado o la consola Servicios, detenga el **servicio SQL Server (MSSQLSERVER)** y cualquier servicio dependiente (SQL Agent, texto completo, Reporting Services, etc.) para quietar la E/S antes de cambiar el controlador de almacenamiento.
2. **Monte la ISO virtio-win v0.1.271**
   * En VergeOS, edite la VM y adjunte **virtio-win-0.1.271.iso** como dispositivo CD/DVD.
   * Confirme que la ISO es visible dentro de Windows (normalmente la siguiente letra de unidad disponible).
3. **Desinstale las herramientas de invitado actuales de virtio-win**
   * Abre **Configuración → Aplicaciones y características** (o **Programas y características** en el Panel de control) dentro del invitado.
   * Localice **Virtio-win-guest-tools** y elija **Desinstalar**. Siga las indicaciones y reinicie si se solicita.
   * Si la desinstalación falla o se revierte con el error `0x80070643` (un problema conocido al quitar virtio-win-guest-tools), use el [solucionador de problemas de instalación y desinstalación de programas](https://support.microsoft.com/topic/fix-problems-that-block-programs-from-being-installed-or-removed-cca7d1b6-65a9-3d98-426b-e9f927e1eb4d) de Microsoft para limpiar el registro antes de continuar.
4. **Reinicie la VM**
   * Reinicie Windows para que se liberen los archivos de controlador en uso. La VM debería seguir arrancando: Windows conserva los binarios del controlador de almacenamiento hasta que se instala el nuevo paquete.
5. **Instale virtio-win-guest-tools desde la ISO v0.1.271**
   * Desde la ISO v0.1.271 montada, ejecute `virtio-win-guest-tools.exe` (o `virtio-win-gt-x64.msi`) como administrador.
   * Complete el instalador con la selección predeterminada de componentes. Esto reinstala vioscsi, viostor, NetKVM y el agente invitado en la compilación v0.1.271.
6. **Reinicie la VM de nuevo**
   * Reinicie Windows para que las pilas de almacenamiento y red se recarguen con los controladores degradados.
7. **Verifique la nueva versión del controlador**
   * Vuelva a **Administrador de dispositivos → Controladoras de almacenamiento**, abra las **Propiedades → Controlador** pestaña, y confirme que **Versión del controlador** ahora refleja la compilación v0.1.271 (normalmente terminando en `.27100`).
   * Repita para cualquier otro controlador VirtIO y para el **Adaptador Ethernet Red Hat VirtIO** en **Adaptadores de red**.
8. **Inicie los servicios de MS SQL Server**
   * Inicie el servicio SQL Server y cualquier dependiente, y confirme que las bases de datos se ponen en línea correctamente.
9. **Supervisar bajo carga**
   * Reanude las cargas de trabajo normales y vigile el registro de errores de SQL Server y el registro de Aplicación de Windows en busca de los mensajes de reintento de lectura descritos arriba. El criterio de éxito es una operación sostenida sin reintentos.

## Resolución de problemas

{% hint style="warning" %}
**Problemas comunes**

* **El instalador informa "ya hay instalada una versión más nueva"** — El MSI de virtio-win no realiza una degradación in situ. Complete el paso de desinstalación (y reinicie) antes de ejecutar el instalador v0.1.271.
* **La desinstalación falla con el error 0x80070643** — Una peculiaridad conocida de virtio-win-guest-tools. Use el *solucionador de problemas de instalación y desinstalación de programas* para borrar el estado del instalador fallido, reinicie y vuelva a intentar la instalación v0.1.271.
* **La VM no arranca después del cambio de controlador** — Restaure la instantánea tomada en los prerrequisitos y vuelva a intentar el procedimiento con los servicios de SQL Server completamente detenidos primero.
* **La controladora de almacenamiento muestra un signo de exclamación amarillo en el Administrador de dispositivos** — El controlador no se cargó correctamente. Haga clic con el botón derecho en la controladora, elija **Actualizar controlador → Buscar en mi equipo**, y apúntelo a la carpeta de la ISO v0.1.271 que coincida con su versión de Windows (por ejemplo, `vioscsi\2k25\amd64` para Windows Server 2025).
* **Los mensajes de reintento de lectura persisten después de degradar** — Verifique que **ambos** `vioscsi` y `viostor` (el que use la VM) ahora muestran la compilación v0.1.271 en el Administrador de dispositivos. Si lo hacen y los mensajes continúan, capture una muestra nueva del registro de Aplicación y del registro de errores de SQL Server y contacte con el soporte de VergeOS.
* **Hay disponible una versión más nueva de virtio-win** — Las versiones publicadas después de enero de 2026 pueden incluir la corrección upstream y ser una mejor opción a largo plazo que mantenerse en v0.1.271. Confirme la compilación específica con el soporte de VergeOS antes de desplegarla en VMs de bases de datos de producción.
  {% endhint %}

## Recursos adicionales

* [Carga de controladores Virtio en la Consola de recuperación de Windows](/knowledge-base/es/virtual-machines/loading-virtio-drivers-in-windows-recovery-console.md)
* [Mejores prácticas de base de datos](/knowledge-base/es/system-administration/database-best-practices.md)
* [Instantáneas y restauraciones de VM](/automate-protect-and-extend/backup-and-dr/vm-snapshots-restores.md)
* [incidencia #1453 de virtio-win — informe upstream de la condición de carrera del ID de SRB](https://github.com/virtio-win/kvm-guest-drivers-windows/issues/1453)
* [Descargas estables de ISO de virtio-win](https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/)
* [Descargas archivadas de ISO de virtio-win](https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/)

## Comentarios

{% hint style="info" %}
**¿Necesitas ayuda?**

Si está viendo mensajes de reintento de lectura o inestabilidad en una VM de MS SQL de Windows y no está seguro de qué versión de virtio-win está instalada —o a cuál debe actualizar—, póngase en contacto con el [equipo de soporte de VergeOS](https://app.gitbook.com/o/FpusSnrkRHyZiVEsXf9X/s/yj8JovQN0DuGOoi1frJ7/support-and-services) antes de realizar cambios de controlador en producción.
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.verge.io/knowledge-base/es/virtual-machines/virtio-win-mssql-compatibility.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
