Запуск виртуальных машин Windows в Cozystack
Cozystack может запускать виртуальные машины Windows. В этом руководстве описаны предварительные требования и шаги, необходимые для загрузки виртуальной машины с ОС Windows.
Предварительные требования
- ISO-образ установки Windows.
- ISO-образ драйверов Virtio.
- Клиент KubeVirt
virtctlустановленный в вашем локальном окружении и настроенный для пространства имён вашего тенанта. - Cozystack версии v0.34.2 или новее.
Установка
Создание виртуальной машины с ОС Windows начинается с создания объектов VMDisk
и продолжается созданием VMInstance.
1. Создание объектов VMDisk
Вам понадобится три диска:
- Установочный ISO – оптический.
- ISO с драйверами Virtio – оптический.
- Системный диск – не оптический.
В следующем примере используются минимально рекомендованные тома хранилища.
apiVersion: apps.cozystack.io/v1alpha1
kind: VMDisk
metadata:
name: win2k25-iso
spec:
source:
http:
url: https://software-static.download.prss.microsoft.com/dbazure/888969d5-f34g-4e03-ac9d-1f9786c66749/26100.1742.240906-0331.ge_release_svc_refresh_SERVER_EVAL_x64FRE_en-us.iso
optical: true
storage: 6Gi
storageClass: replicated
---
apiVersion: apps.cozystack.io/v1alpha1
kind: VMDisk
metadata:
name: virtio-drivers
spec:
source:
http:
url: https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.iso
optical: true
storage: 1Gi
storageClass: replicated
---
apiVersion: apps.cozystack.io/v1alpha1
kind: VMDisk
metadata:
name: win2k25-system
spec:
optical: false
storage: 50Gi
storageClass: replicated
2. Создание VMInstance
Выберите профиль инстанса с поддержкой Virtio и подключите пустой системный диск. Выберите из доступных профилей Virtio:
windows.10.virtio
windows.11.virtio
windows.2k16.virtio
windows.2k19.virtio
windows.2k22.virtio
windows.2k25.virtio
Создайте объект VMInstance, как показано в этом примере:
apiVersion: apps.cozystack.io/v1alpha1
kind: VMInstance
metadata:
name: win2k25-demo
spec:
running: true
instanceType: "u1.xlarge"
instanceProfile: windows.2k25.virtio # выбран из списка выше
disks:
- name: win2k25-system
- name: win2k25-iso
- name: virtio-drivers
3. Установка Windows
Откройте консоль с помощью клиента
virtctl:virtctl vnc vm-instance-win2k25-demoПродолжите стандартную установку Windows.
Когда появится запрос “Where do you want to install Windows?” (Куда вы хотите установить Windows?), выберите Load driver, затем перейдите к CD-ROM с Virtio, например
E:\viostor\amd64\.После появления виртуального диска продолжите установку и дайте Windows перезагрузиться.
После первой перезагрузки отключите установочный диск Windows (
win2k25-iso) и драйверы Virtio (virtio-drivers) от VMInstance.
Преобразование существующего образа Windows
Если у вас уже есть диск Windows, созданный на VMware, Hyper-V или в другом облаке, вы можете воспользоваться этим путём, чтобы подготовить его к работе с Virtio в Cozystack.
1. Создание фиктивного VMDisk для драйвера Virtio
Создайте фиктивный VMDisk, который будет использоваться для установки драйвера Virtio:
apiVersion: apps.cozystack.io/v1alpha1
kind: VMDisk
metadata:
name: dummy-disk-for-virtio
spec:
optical: false
storage: "1Gi"
storageClass: "replicated"
2. Запуск с диском и не-Virtio шиной
При создании VMInstance подключите системный диск с шиной sata, а фиктивный диск — с неуказанной шиной —
тогда для диска по умолчанию будет использована шина Virtio SCSI.
Вы также можете одновременно смонтировать Virtio ISO, чтобы упростить установку драйвера.
spec:
instanceProfile: windows.2k25.virtio
disks:
- name: win2k19-system
bus: sata
- name: dummy-disk-for-virtio
- name: virtio-drivers
bus: sata
3. Установка драйверов хранилища Virtio
Выполните следующие шаги для установки драйверов Virtio:
- Смонтируйте
virtio-win.isoвнутри гостевой системы. - Запустите мастер установки для установки драйверов
- Убедитесь, что установка драйвера прошла успешно:
- Откройте Диспетчер устройств (Device Manager)
- Вы должны увидеть устройство SCSI в списке с иконкой восклицательного знака рядом с ним.
- Если драйвер не установлен, щёлкните правой кнопкой мыши по устройству и выберите Update Driver.
- Выберите Install the hardware that I manually select from a list, затем Show All Devices, затем Next.
- Нажмите Have Disk…, перейдите к файлу
.infи завершите работу мастера.
В качестве альтернативы щёлкните правой кнопкой мыши по файлу .inf в Проводнике и выберите Install.
4. Переключение на шину Virtio
После установки драйверов вам нужно переключиться на шину Virtio. Выполните следующие шаги:
Выключите ВМ.
Отредактируйте
VMInstanceи удалите строкуbus: sataиз системного диска, а также фиктивный диск:spec: disks: - name: win2k19-system # bus: sata #- name: dummy-disk-for-virtioПримените манифест и снова включите ВМ. Windows должна нормально загрузиться с использованием Virtio.
Теперь фиктивный диск можно удалить:
kubectl delete vmdisk dummy-disk-for-virtio
Соображения по поводу MTU сети
Cozystack устанавливает размер MTU равным 1400 на каждом vNIC. Windows корректно определяет это только при использовании VirtioNet. С устаревшими сетевыми драйверами вы можете столкнуться с потерей пакетов.
Чтобы заставить Windows учитывать MTU 1400, выполните следующие команды в PowerShell:
# List interfaces
Get-NetIPInterface
# Set MTU permanently
Set-NetIPInterface -InterfaceAlias "Ethernet Instance 0" -NlMtuBytes 1400
Настоятельно рекомендуется использовать профиль Virtio.