Compatibilidad de la CPU para vMotion - Migraciones impedidas debido a una incompatibilidad de la CPU - Cómo invalidar máscaras
search cancel

Compatibilidad de la CPU para vMotion - Migraciones impedidas debido a una incompatibilidad de la CPU - Cómo invalidar máscaras

book

Article ID: 303602

calendar_today

Updated On:

Products

VMware vCenter Server VMware vSphere ESXi

Issue/Introduction

Renuncia: Este artículo es una traducción de vMotion CPU Compatibility - Migrations Prevented Due to CPU Mismatch - How to Override Masks (1993). Los artículos han sido traducidos en español basados en el mejor esfuerzo. Sin embargo, el contenido localizado o específico puede quedar desactualizado. Para revisar el contenido más reciente, por favor consulte el artículo en Inglés.

Este artículo proporciona información sobre cómo invalidar las restricciones de compatibilidad de la CPU para vMotion entre los hosts ESX administrados por VirtualCenter 2.x o vCenter Server 4.x. Para obtener más información sobre cómo invalidar las restricciones de compatibilidad de la CPU para vMotion entre los hosts ESX administrados por VirtualCenter 1.x, consulte vMotion CPU Compatibility - Migrations Prevented Due to CPU Mismatch - How to Override Masks for VirtualCenter 1.x (1011354).

Advertencia: A menos que se indique lo contrario, VMware no apoya ni recomienda la modificación de las restricciones de vMotion para las características de la CPU utilizadas por aplicaciones, como SSE3, debido al riesgo de que exista un error en el sistema operativo invitado o en la aplicación después de la migración. Como se señaló, el soporte experimental está disponible para algunas máscaras en ESX 3.5 y versiones posteriores. Para obtener más información sobre soporte experimental, consulte http://www.vmware.com/support/policies/experimental.html.

VMware recomienda la utilización de la Mejora de compatibilidad para vMotion (EVC, Enhanced vMotion Compatibility) para eliminar la mayoría de los problemas de compatibilidad de la CPU para vMotion. Para obtener más información sobre EVC, consulte Enhanced vMotion Compatibility (EVC) processor support (1003212).

Environment

VMware vCenter Server 4.1.x
VMware vCenter Server 5.0.x
VMware VirtualCenter 2.0.x
VMware ESX Server 2.0.x
VMware ESX 4.1.x
VMware vCenter Server 4.0.x
VMware ESX Server 3.0.x
VMware ESXi 4.0.x Installable
VMware VirtualCenter 2.5.x
VMware ESX Server 2.1.x
VMware ESXi 3.5.x Installable
VMware ESXi 3.5.x Embedded
VMware ESXi 4.0.x Embedded
VMware ESX Server 3.5.x
VMware ESX Server 2.5.x
VMware ESXi 4.1.x Installable
VMware ESX 4.0.x
VMware vSphere ESXi 5.0

Resolution

Si posee las recientes CPU Intel Core 2 de 45nm y fue remitido a este artículo por un mensaje en VirtualCenter o vCenter Server, consulte vMotion errors between different Intel 45nm Core 2 revisions (1008315).

En ESX/ESXi 3.5 Update 2 y versiones posteriores, VMware recomienda la utilización de la Mejora de compatibilidad para vMotion (EVC) para eliminar la mayoría de los problemas de compatibilidad de la CPU para vMotion. Para obtener más información sobre EVC, consulte Enhanced vMotion Compatibility (EVC) processor support (1003212).

De modo predeterminado, VirtualCenter y vCenter Server permiten las migraciones con vMotion sólo entre las CPU de origen y de destino compatibles. Este artículo proporciona información sobre cuándo es apropiado invalidar las restricciones de compatibilidad de la CPU, cómo invalidarlas y proporciona vínculos a información y a recursos adicionales. Temas incluidos:

Contexto

A efectos de vMotion, las CPU compatibles implican que las CPU de origen y de destino deben poseer el mismo fabricante (AMD o Intel) y ser miembros de la misma familia de procesadores básicos (por ejemplo, Pentium 4 o Core) y poseer un conjunto de características comunes implementadas.

Para determinar si las CPU de origen y de destino cumplen con los requisitos de vMotion, VirtualCenter y vCenter Server compara la CPU de destino con una definición de máscara de bits predeterminada para suprimir las características sin importancia de la comparación. Las máscaras de bits utilizadas por VirtualCenter y vCenter Server se actualizan, a medida que los proveedores de procesadores introducen nuevas características. Por ejemplo, en ESX Server 2.x, la característica NX (AMD) o XD (Intel) no se utiliza para calcular la compatibilidad para vMotion, pero sí se utiliza en ESX 3.x.

Para deshabilitar el control de compatibilidad de la CPU para vMotion para una característica específica, puede modificar la máscara de bits predeterminada. En algunos documentos de VMware, el proceso de modificación de máscaras de bits se dice, en ocasiones, que "relaja" una restricción particular.

Un debate completo de los componentes subyacentes y de cómo los sistemas host VirtualCenter Server y VirtualCenter Server los manejan, trasciende el alcance de este artículo. Para obtener más información, consulte Máscaras de compatibilidad de la CPU (CPU Compatibility Masks) en Basic System Administration. Otro recurso útil es el artículo técnico sobre VMware vMotion and CPU Compatibility.

Para obtener información específica sobre las CPU Intel y AMD y la compatibilidad para vMotion, consulte:

Por razones de simplicidad, las modificaciones a la máscara de bits predeterminada para establecer la compatibilidad de la CPU para vMotion se mencionan simplemente como máscaras y se identifican, por lo general, por la característica de la CPU. Por ejemplo, la máscara SSE3 en este artículo y en artículos KB relacionados, 1991 y 1992.

Muchas máscaras no son compatibles. El soporte experimental está disponible para algunas máscaras en ESX 3.5 y versiones posteriores. Las condiciones de compatibilidad para máscaras se resumen en la siguiente tabla.
Mask
ESX 2.x
ESX 3.x
ESX 4.x
CMPXCHG16B (AMD)
No compatible
No compatible con versiones anteriores a ESX 3.5. Compatible de modo experimental en ESX 3.5 y versiones posteriores.
Compatible de modo experimental
FFXSR (AMD)
No compatible
No compatible
No compatible
NX (AMD)
Compatible
Compatible
Compatible
RDTSCP (AMD)
No compatible
No compatible con versiones anteriores a ESX 3.5. Compatible de modo experimental en ESX 3.5 y versiones posteriores.
Compatible de modo experimental
SSE3 (AMD)
No compatible
No compatible con versiones anteriores a ESX 3.5. Compatible de modo experimental en ESX 3.5 y versiones posteriores.
Compatible de modo experimental
SSE3 (Intel)
No compatible
No compatible
No compatible
SSE4.1 (Intel)
No compatible
No compatible con versiones anteriores a ESX 3.5. Compatible de modo experimental en ESX 3.5 y versiones posteriores.
Compatible de modo experimental
SSE4.2 (Intel)
No compatible
No compatible con versiones anteriores a ESX 3.5. Compatible de modo experimental en ESX 3.5 y versiones posteriores.
Compatible de modo experimental
XD (Intel)
Compatible
Compatible
Compatible
AES (Intel)
No compatible
No compatible con versiones anteriores a ESX 3.5. Compatible de modo experimental en ESX 3.5 y versiones posteriores.
Compatible de modo experimental

Alcance de las modificaciones

Existen dos formas de modificar las máscaras de bits predeterminadas de la CPU, según la versión ESX/ESXi y las necesidades individuales.

  • Con todas las versiones ESX/ESXi o ESX Server: Se puede modificar la máscara de bits predeterminada a nivel del VirtualCenter Server o vCenter Server por fabricante de procesador, por número de versión y otros criterios. Este método no es compatible y las aplicaciones que intenten utilizar las características enmascaradas podrían bloquearse durante la migración con vMotion.
  • ESX/ESXi 3.x y versiones posteriores: Se puede modificar las máscaras de bits a partir de una máquina virtual mediante el uso de VI Client o vSphere Client. Se debe apagar la máquina virtual antes de realizar estas modificaciones debido al riesgo de inestabilidad en el sistema operativo invitado o en la aplicación. Las condiciones de compatibilidad para este método se enumeran en vMotion CPU Compatibility Requirements for Intel Processors (1991) (para procesadores Intel) y en vMotion CPU Compatibility Requirements for AMD Processors (1992) (para procesadores AMD).

Herramientas de identificación de la CPU

Para obtener más información sobre una CPU del sistema host, utilice la Herramienta de identificación de la CPU. VMware proporciona esto como un archivo de imagen ISO que se puede descomprimir y utilizar para crear un CD-ROM de arranque que proporcione información sobre un host de la CPU, aún antes de que se instale un sistema operativo o ESX. La última versión de esta herramienta se puede encontrar en la página de descargas de VMware en http://vmware.com/download/shared_utilities.html.

Enmascaramiento por máquina virtual con ESX/ESXi 3.x y versiones posteriores

En Virtual Center 2.x y vCenter Server 4.x, se puede modificar la máscara de bits predeterminada para máquinas virtuales individuales mediante el uso de VI Client o vSphere Client. Apague la máquina virtual antes de modificar la máscara de bits.

Para modificar la máscara de bits predeterminada para una máquina virtual:

  1. Inicie el VI Client o vSphere Client y conéctese al VirtualCenter Server o vCenter Server como administrador.
  2. Seleccione la máquina virtual que desea migrar en el inventario.
  3. Haga clic en Edit Settings en la pestaña Summary. Aparece la ventana Propiedades para la máquina virtual.
  4. Haga clic en la pestaña Options en la ventana de Propiedades.
  5. Seleccione la opción CPUID Mask para visualizar la información y la configuración de la Máscara de identificación de la CPU.
  6. Haga clic en Advanced para visualizar varios cuadros relacionados con las configuraciones, incluso la Máscara de identificación de la CPU, en el panel a la derecha.

Desde aquí se puede modificar de forma apropiada la máscara para la máquina virtual seleccionada, según lo que se deba enmascarar. Las siguientes secciones incluyen pasos sobre cómo modificar las máscaras para varios registros comunes de la CPU.

Cómo modificar la máscara NX/XD predeterminada

Los problemas con las características NX/XD son comunes en las CPU. Asegúrese de que la característica esté habilitada (o no deshabilitada) en el BIOS de todos los hosts para impedir estos mensajes de error de compatibilidad.

Nota: No todos los servidores poseen la opción de habilitar o deshabilitar NX o XD en el BIOS.

Si se encuentra un problema de compatibilidad con el bit NX/XD en la característica de la CPU, se generará un error similar al siguiente:

The CPU of the host is incompatible with the cpu feature requirements of virtual machine; problem detected at CPUID level 0x80000001 register 'edx'.

Apague la máquina virtual antes de modificar la máscara NX/XD.

Para modificar la máscara y habilitar o deshabilitar el bit NX/XD de la CPU:

  1. Navegue hasta la opción CPUID Mask en la Options tab de la máquina virtual (si es necesario, consulte los pasos mencionados anteriormente).
  2. Seleccione Hide the NX flag from guest para deshabilitar el control de compatibilidad de la CPU para la máquina virtual seleccionada o Expose the NX flag to guest para habilitar este control de compatibilidad de la CPU para la máquina virtual seleccionada.
  3. Haga clic en OK para guardar la modificación.

Cómo modificar la máscara predeterminada para las CPU Intel

Se pueden modificar las máscaras para varias otras características con el objetivo de proporcionar más compatibilidad para vMotion. Las condiciones de compatibilidad para estas máscaras de características se enumeran en vMotion CPU Compatibility Requirements for Intel Processors (1991). Por lo general, VMware no apoya ni recomienda la modificación de las restricciones de vMotion para las características de la CPU utilizadas por aplicaciones, como SSE3, debido al riesgo de que exista un error en el sistema operativo invitado o en la aplicación después de la migración.

Apague la máquina virtual antes de modificar la máscara de bits.

Para modificar otras máscaras de la CPU:

  1. Navegue hasta la Options tab de la máquina virtual (si es necesario, consulte los pasos mencionados anteriormente).
  2. Haga clic en Advanced para abrir el cuadro de diálogo de propiedades de la Máscara de identificación de la CPU.

    Nota: El cuadro de diálogo Máscara de identificación de la CPU posee dos pestañas: Virtual Machine Default y AMD Override. Muchas de las modificaciones para las características de la CPU Intel se realizan en la pestaña Virtual Machine Default. Las modificaciones para las características de la CPU AMD se realizan en la pestaña AMD Overrides y se debaten en la sección siguiente de este artículo.
  3. Haga clic en Virtual Machine Default tab para activar el cuadro de diálogo, si es necesario.
Para modificar la máscara para una característica específica, ingrese la serie de guiones y ceros tal como se muestra en esta tabla:
Característica
Nivel
Fila
Mask
SSE3
1
ecx
---- ---- ---- ---- ---- ---- ---0 -0-0
SSSE3
1
ecx
---- ---- ---- -0-- ---- --0- ---0 -0--
1
edx
---- ---- ---- --0- ---- ---- ---- ----
SSE4.1
1
ecx
---- ---- ---- 0--- ---- ---- ---- ----
SSE4.2
1
ecx
---- ---- 0--0 ---- ---- ---- ---- ----
80000001
edx
---- 0--- ---- ---- ---- ---- ---- ----
AES
a
ecx
---- --0- ---- ---- ---- ---- ---- --0-

Cuando se completen todas las modificaciones, haga clic en OK y salga del cuadro de diálogo Máscara de identificación de la CPU.

Cómo modificar las máscaras para las CPU AMD

Las características que son específicas para los procesadores AMD se enumeran y se pueden modificar en la pestaña AMD Override. Las condiciones de compatibilidad para estas máscaras de características se enumeran en vMotion CPU Compatibility Requirements for AMD Processors (1992). Por lo general, VMware no apoya ni recomienda la modificación de las restricciones de vMotion para las características de la CPU utilizadas por aplicaciones, como SSE3, debido al riesgo de que exista un error en el sistema operativo invitado o en la aplicación después de la migración.

Apague la máquina virtual antes de modificar la máscara de bits.

Para modificar otras máscaras de la CPU para procesadores AMD:

  1. Navegue hasta la Options tab de la máquina virtual (si es necesario, consulte los pasos mencionados anteriormente).
  2. Haga clic en Advanced para abrir el cuadro de diálogo de propiedades de Máscara de identificación de la CPU.
  3. Haga clic en la pestaña AMD Override para activar el cuadro de diálogo. Se visualiza la página Invalidar AMD (AMD Override).
Para modificar la máscara para una característica específica, ingrese la serie de guiones y ceros tal como se muestra en la siguiente tabla:
Característica
Nivel
Fila
Mask
SSE3
1
ecx
---- ---- ---- ---- ---- ---- ---- ---0
RDTSCP
80000001
edx
---- 0--- ---- ---- ---- ---- ---- ----
80000001
ecx
---- ---- ---- ---- ---- ---- ---- 0---
CMPXCH16B
1
ecx
---- ---- ---- ---- --0- ---- ---- ----
FFXSR
80000001
edx
---- --0- ---- ---- ---- ---- ---- ----

Cuando se completen todas las modificaciones, haga clic en OK y salga del cuadro de diálogo Máscara de identificación de la CPU.

Cómo combinar las modificaciones de las máscaras

Se pueden combinar las modificaciones de la máscara de bits predeterminada para permitir la migración con vMotion entre grupos que no son compatibles, a partir de más de una característica de la CPU. Por ejemplo, para filtrar el control de compatibilidad, tanto para SSE3 como para SSSE3, combine lo siguiente:

---- ---- ---- ---- ---- ---- ---0 -0-0

y:

---- ---- ---- -0-- ---- --0- ---0 -0--

para producir:

---- ---- ---- -0-- ---- --0- ---0 -0-0

para la máscara de registro ecx.

Enmascaramiento global con ESX Server 2.x y versiones posteriores

Para los hosts ESX/ESXi administrados por VirtualCenter o vCenter Server, se puede modificar la máscara de bits de forma global mediante la edición manual del archivo de configuración de VirtualCenter o vCenter Server (vpxd.cfg ). El archivo de configuración, vpxd.cfg, contiene etiquetas XML que definen varios elementos y configuraciones para el sistema de VirtualCenter Server o vCenter Server. Las máscaras de bits se pueden modificar añadiendo las etiquetas XML apropiadas para definir la máscara en el contexto de una opción de configuración del sistema operativo invitado al archivo de configuración.

Las modificaciones en la máscara de bits global no tienen efecto para las máquinas virtuales individuales hasta que las mismas se hayan apagado y encendido otra vez.

Nota: El archivo vpxd.cfg está ubicado de forma predeterminada en C:\Documents and Settings\All Users\Application Data\VMware\VMware VirtualCenter

Aunque un debate completo sobre la construcción de estos elementos trasciende el alcance de este artículo, la sección About the Tags proporciona un breve resumen. Consulte la siguiente sección para obtener los pasos específicos relacionados con Editing the Configuration File (Edición de archivos de configuración) y etiquetas XML para Common Mask Patterns (Patrones de máscaras comunes) como SSE3, SSSE3, y SSE3 y SSSE3 combinadas.

Advertencia: VMware no apoya ni recomienda la modificación de las restricciones de vMotion para las características de la CPU utilizadas por aplicaciones, como SSE3, debido al riesgo de que exista un error en el sistema operativo invitado o en la aplicación después de la migración.

Acerca de las etiquetas

Las etiquetas identifican el registro para el cual se aplica la máscara y cuáles son las versiones y los host para los cuales se aplica la máscara. Las etiquetas son descendientes directas de la etiqueta <vpxd> , en el archivo vpxd.cfg . Las etiquetas se enumeran en el orden en el que se deben anidar:

· <guestOSDescriptor> Etiqueta de descendiente directa (secundaria) del elemento <vpxd>. El archivo vpxd.cfg puede contener un solo elemento guestOSDescriptor.

· <host-product-and-version> — Entre las etiquetas de apertura y cierre <guestOSDescriptor>, se puede anidar varias etiquetas host-product-and-version que especifican la versión y el host para las cuales se aplican las máscaras que usted define. Las etiquetas <host-product-and-version> se pueden especificar en forma general, como en <esx-2-x-x> para un host ESX Server 2.x, <esx-3-x-x> para un host ESX/ESXi 3.x o se pueden especificar con precisión, como en <esx-3-5-0>. Por ejemplo, la etiqueta <esx-2-5-x> identifica varios niveles de versiones actualizadas de ESX Server para los cuales se aplica la máscara anidada posteriormente.

· <virtual-machine-configuration-hardware-version> — Permite que la configuración esté restringida por la versión de hardware de la máquina virtual. Por ejemplo, <all-versions>, <vmx-03>, o <vmx-04>. En el ejemplo que se encuentra a continuación se especifica <all-versions>, lo que significa que la máscara se aplica a todas las versiones de hardware de la máquina virtual.

· <virtual-machine guest version> — Permite que se especifique una versión invitado. Por ejemplo, <all-guests>, <winXPPro64Guest>, <winVistaGuest>, etc. En el ejemplo que se muestra debajo, se especificó <all-guests>y por lo tanto la máscara se aplica para todas las versiones invitado.

· <cpuFeatureMask> — Esta etiqueta antecede a la máscara verdadera. La máscara entonces se define para <default-vendor>, <amd>, o <intel>, según sus necesidades. Los elementos etiqueta que se utilizan para definir la máscara, identifican la máscara de la CPU. Los detalles del elemento incluyen: proveedor, nivel CPU ID y registro de la CPU. Las opciones válidas para éstos son:

proveedor CPU

<default-vendor>, <amd>, <intel>

nivel CPU ID

<level-0>, <level-1>, <level-80000000>, <level-80000001>

registro de la CPU

<eax>, <ebx>, <ecx>, <edx>

Las etiquetas se deben insertar en el orden en el que se muestran en la tabla. Una etiqueta CPU-vendor es seguida por una etiqueta CPU-ID-level y luego seguida por una etiqueta CPU-register. Inmediatamente después de la etiqueta CPU-register se encuentra la secuencia de 32 guiones y x-s que representa la máscara de registro de 32 bits verdadera, apropiada para la característica que se está modificando. La máscara es entonces seguida por etiquetas CPU-register-, CPU-ID-level- y CPU-vendor-closing.

Nota: La máscara definida mediante el uso de la etiqueta <default-vendor>es utilizada por el sistema sólo cuando no se ha precisado ninguna máscara específica de proveedor para el mismo nivel CPU ID.

· Cuando ha terminado de definir las máscaras, cierre con </guestOSDescriptor>.

A continuación se presenta un ejemplo del orden de etiquetas, que se muestra en el contexto del archivo vpxd.cfg. Las etiquetas de apertura y cierre <config> y <vpxd> ya se encuentran en el archivo vpxd.cfg. La etiqueta de apertura <guestOSDescriptor>se puede ubicar directamente después de la etiqueta de apertura <vpxd>. Inserte las etiquetas apropiadas que se adecúen a sus necesidades, seguidas por la etiqueta de cierre </guestOSDescriptor>.

<config>
<vpxd>
<guestOSDescriptor>
<esx-2-x-x>
<all-versions>
<all-guests>
<cpuFeatureMask>
[La definición de los elementos y de la máscara se colocan aquí. Los patrones de máscaras comunes se pueden copiar y pegar de los patrones de ejemplo que se encuentran a continuación].
</cpuFeatureMask>
</all-guests>
</all-versions>
</esx-2-x-x>
</guestOSDescriptor>
...

</vpxd>

</config>

En este ejemplo, toda máscara insertada en la sección de marcador de contenido [Elements and mask...]se aplica a todos los hosts ESX Server 2.x que son administrados por el VirtualCenter Server y a todos los sistemas operativos invitados.

Cómo editar el archivo de configuración de VirtualCenter

Para editar el archivo de configuración de VirtualCenter:

  1. Navegue hasta la ubicación del archivo vpxd.cfg. El archivo vpxd.cfgestá ubicado en el directorio C:\Documents and Settings\All Users\Application Data\VMware\VMware VirtualCenter de forma predeterminada.
  2. Utilice un editor de texto (como WordPad) para abrir el archivo vpxd.cfg. El archivo vpxd.cfg es un archivo de texto con formato XML que contiene varias configuraciones opcionales para el sistema VirtualCenter Server o vCenter Server.
  3. Agregue etiquetas de apertura y cierre para identificar los host, las versiones y otras características para las cuales se aplica la máscara.
  4. Copie y pegue los ejemplos que se encuentran en Patrones de máscaras comunes o aplique otras máscaras, según sea necesario para su implementación.
  5. Cuando se realicen las modificaciones apropiadas, reinicie el servicio VMware VirtualCenter Server para habilitar el enmascaramiento nuevo.

Patrones de máscaras comunes

Las siguientes son máscaras de ejemplo para varias máscaras comunes de características de la CPU. Cópielas, péguelas y modifíquelas según lo requiera el entorno. VMware no apoya ni recomienda la utilización de las máscaras que se muestran a continuación, debido al riesgo de que exista un error en el sistema operativo invitado o en la aplicación después de la migración.

SSE3

<cpuFeatureMask>
<default-vendor>
<level-1>
<ecx>----:----:----:----:----:----:---x:-x-x</ecx>
</level-1>
</default-vendor>
<amd>
<level-1>
<ecx>----:----:----:----:----:----:----:---x</ecx>
</level-1>
</amd>
</cpuFeatureMask>

SSSE3

<cpuFeatureMask>
<default-vendor>
<level-1>
<ecx>----:----:----:-x--:----:--x-:---x:-x--</ecx>
<edx>----:----:----:--x-:----:----:----:----</edx>
</level-1>
</default-vendor>
</cpuFeatureMask>

SSE3 y SSSE3 combinadas

<cpuFeatureMask>
<default-vendor>
<level-1>
<ecx>----:----:----:-x--:----:--x-:---x:-x-x</ecx>
<edx>----:----:----:--x-:----:----:----:----</edx>
</level-1>
</default-vendor>
<amd>
<level-1>
<ecx>----:----:----:----:----:----:----:---x</ecx>
</level-1>
</amd>
</cpuFeatureMask>

Cómo revertir la máscara de bits de compatibilidad predeterminada de la CPU

Para revertir las restricciones de compatibilidad predeterminadas para vMotion mediante la reversión de todas las modificaciones realizadas en la máscara predeterminada. Ésto se puede lograr si se siguen los pasos apropiados para el tipo de enmascaramiento que se aplicó:

  • Cuando se utilizan máscaras por máquina virtual, restablezca todas las filas modificadas por las predeterminadas, haciendo clic en Reset All to Default en el cuadro de diálogo Máscara de identificación de la CPU.
  • Cuando se utilizan máscaras globales: Extraiga todas las etiquetas agregadas que se ingresaron en el archivo vpxd.cfg y reinicie el servicio de VirtualCenter.



Additional Information

vMotion CPU Compatibility - Migrations Prevented Due to CPU Mismatch - How to Override Masks