vSphere & vSAN 8 Lab Deployment

vSphere & vSAN 8 Lab Deployment

Roman Bogachev VMware Specialist | Drone Pilot | Traveler

Пошаговое руководство по быстрому созданию тестовой лабы vSphere & vSAN 8 в виртуальной среде.

Требования

  • vCenter Server, работающий как минимум под управлением vSphere 7.x или более поздней версии
    • Если ваше физическое хранилище — vSAN, убедитесь, что вы применили следующие настройки на каждом хосте esxcli system settings advanced set -o /VSAN/FakeSCSIReservations -i 1

Внимание

Вложенная виртуализация официально не поддерживается VMware, как и описанные ниже изменения конфигурации, используйте их на свой страх и риск.

Чтобы обойти эту проблему, команда vSAN добавила расширенную настройку ESXi, которая будет «подделывать» резервирования SCSI, и ее необходимо настроить для физических хостов ESXi, предоставляющих физическое хранилище данных vSAN.

  • ESXi Networking
    • Включите режим MAC Learning или Promiscuous Mode на физическом хосте ESXi, чтобы обеспечить надлежащее сетевое подключение для вложенных рабочих нагрузок ESXi.

Если используется Overlay сегмент NSX, то необходимо подключить новый сегмент профиль и в нём активировать Mac Learning.

  • Кластер с поддержкой DRS (не обязательно, но создание vApp будет невозможно)
  • Компьютер (Windows, Mac или Linux) с установленными последними версиями PowerShell Core и PowerCLI Core
  • vSphere 8.x OVAs:
    • vCenter Server Appliance 8.0
    • Nested ESXi 8.0 IA OVA

Конфигурация

Скрипт установки

Прежде чем вы сможете запустить скрипт, вам нужно будет отредактировать скрипт и обновить ряд переменных, чтобы они соответствовали вашей среде развертывания. Подробности по каждому разделу описаны ниже, включая фактические значения, используемые в моей домашней лабораторной среде.

В этом разделе описываются учетные данные для вашего физического сервера vCenter, на котором будет развернута лабораторная среда vSphere 8.x:

1
2
3
$VIServer = "VCSA-ADDRESS-HERE"
$VIUsername = "VCSA-USERNAME-HERE"
$VIPassword = "VCSA-PASSWORD-HERE"

В этом разделе описывается расположение файлов, необходимых для развертывания.

1
2
$NestedESXiApplianceOVA = "E:/Nested_ESXi8.0u3b_Appliance_Template_v1.ova"
$VCSAInstallerPath = "E:/VMware-VCSA-all-8.0.3-24022515"

Примечание

Путь к установщику VCSA должен соответствовать извлеченному содержимому ISO-образа.

В этом разделе определяется количество вложенных виртуальных машин ESXi для развертывания вместе с их связанными IP-адресами. Имена — это просто отображаемые имена виртуальных машин при развертывании. Как минимум, вам следует развернуть не менее трех хостов, но вы всегда можете добавить дополнительные хосты.

1
2
3
4
5
6
$NestedESXiHostnameToIPs = @{
"esx-a.vmwarelab.lan" = "172.20.20.11"
"esx-b.vmwarelab.lan" = "172.20.20.12"
"esx-c.vmwarelab.lan" = "172.20.20.13"
"esx-d.vmwarelab.lan" = "172.20.20.14"
}

В этом разделе описываются ресурсы, выделенные для каждой из вложенных виртуальных машин ESXi. В зависимости от вашего использования вам может потребоваться увеличить ресурсы. Для конфигурации памяти и диска единица измерения — ГБ.

1
2
3
4
$NestedESXivCPU = "4"
$NestedESXivMEM = "10" #GB
$NestedESXiCachingvDisk = "8" #GB
$NestedESXiCapacityvDisk = "40" #GB

В этом разделе описывается конфигурация развертывания VCSA, такая как размер развертывания VCSA, конфигурации Networking и SSO.

1
2
3
4
5
6
7
8
9
$VCSADeploymentSize = "tiny"
$VCSADisplayName = "vcsa.vmwarelab.lan"
$VCSAIPAddress = "172.20.20.10"
$VCSAHostname = "vcsa.vmwarelab.lan" #Change to IP if you don't have valid DNS
$VCSAPrefix = "24"
$VCSASSODomainName = "vmwarelab.lan"
$VCSASSOPassword = "VMware1!"
$VCSARootPassword = "VMware1!"
$VCSASSHEnable = "true"

В этом разделе описывается местоположение, а также общие сетевые настройки, применяемые к вложенным виртуальным машинам ESXi, VCSA и NSX.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$VMDatacenter = "Testing Lab DC"
$VMCluster = "Hardware Lab Cluster"
$VMNetwork = "Edu-Management"
$VMDatastore = "Lab-vSAN"
$VMNetmask = "255.255.255.0"
$VMGateway = "172.20.20.1"
$VMDNS = "172.20.20.2"
$VMNTP = "172.20.20.2"
$VMPassword = "VMware1!"
$VMDomain = "vmwarelab.lan"
$VMSyslog = "172.20.20.2"
$VMFolder = "vmwarelab-lan-edu"
# Applicable to Nested ESXi only
$VMSSH = "true"
$VMVMFS = "false"

В этом разделе описывается конфигурация нового vCenter Server из развернутого VCSA.
Достаточно значений по умолчанию.

1
2
3
4
$NewVCDatacenterName = "Edu-Datacenter"
$NewVCVSANClusterName = "Edu-Cluster"
$NewVCVDSName = "Edu-dSwitch"
$NewVCMgmtPortgroupName = "DVPG-Management-Network"

После настройки сохраняем скрипт, проверяем, запускаем и ждём успешного завершения.

Примерное время выполнения скрипта около 30-40 минут, в зависимости от сети в среде выполнения и дисковой подсистемы.

После успешной авторизации получаем рабочую лабу для экспериментов.

Troubleshoot

Ошибка при подключении к новому VCSA

1
2
3
4
5
6
Connect-VIServer: E:\vsphere-vsan-8-lab-deployment.ps1:388
Line |
388 | $vc = Connect-VIServer $VCSAIPAddress -User "administrator@$VCSAS
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| 12/3/2024 7:20:57 PM Connect-VIServer The SSL connection could not be established, see inner exception.
Get-Datacenter: E:\vsphere-vsan-8-lab-deployment.ps1:390

Попробуйте изменить InvalidCertificateAction на Ignore

1
Set-PowerCLIConfiguration -InvalidCertificateAction Ignore

Ошибка установки NTP

1
2
3
4
5
6
Error: Failed to set the time via NTP. Details: Failed to sync to NTP servers.. Code:
com.vmware.applmgmt.err_ntp_sync_failed Resolution: Verify that
provided ntp servers are valid. Error: Could not set up time
synchronization. Resolution: Verify that provided ntp servers
are valid.
The VCSA deployment has failed VCSA

В лабе я использую DNS от Windows, по умолчанию NTP не настроен в нём.

Остановите службу W32Time

1
2
3
PS C:\Users\Administrator> net stop w32time
The Windows Time service is stopping.
The Windows Time service was stopped successfully.

Задайте адреса внешних источников времени

1
2
PS C:\Users\Administrator> w32tm /config /syncfromflags:manual /manualpeerlist:"0.pool.ntp.org, 1.pool.ntp.org, 2.pool.ntp.org"
The command completed successfully.

Настройте ответ контроллера клиентам на запросы о синхронизации времени

1
2
PS C:\Users\Administrator> w32tm /config /reliable:yes
The command completed successfully.

Запустите службу W32Time

1
2
3
PS C:\Users\Administrator> net start w32time
The Windows Time service is starting.
The Windows Time service was started successfully.

Проверьте результат настройки

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
PS C:\Users\Administrator> w32tm /query /configuration
[Configuration]

EventLogFlags: 2 (Local)
AnnounceFlags: 5 (Local)
TimeJumpAuditOffset: 28800 (Local)
MinPollInterval: 6 (Local)
MaxPollInterval: 10 (Local)
MaxNegPhaseCorrection: 54000 (Local)
MaxPosPhaseCorrection: 54000 (Local)
MaxAllowedPhaseOffset: 1 (Local)

FrequencyCorrectRate: 4 (Local)
PollAdjustFactor: 5 (Local)
LargePhaseOffset: 50000000 (Local)
SpikeWatchPeriod: 900 (Local)
LocalClockDispersion: 10 (Local)
HoldPeriod: 5 (Local)
PhaseCorrectRate: 1 (Local)
UpdateInterval: 100 (Local)


[TimeProviders]

NtpClient (Local)
DllName: C:\Windows\system32\w32time.dll (Local)
Enabled: 1 (Local)
InputProvider: 1 (Local)
AllowNonstandardModeCombinations: 1 (Local)
ResolvePeerBackoffMinutes: 15 (Local)
ResolvePeerBackoffMaxTimes: 7 (Local)
CompatibilityFlags: 2147483648 (Local)
EventLogFlags: 1 (Local)
LargeSampleSkew: 3 (Local)
SpecialPollInterval: 1024 (Local)
Type: NTP (Local)
NtpServer: 0.pool.ntp.org, 1.pool.ntp.org, 2.pool.ntp.org (Local)

VMICTimeProvider (Local)
DllName: C:\Windows\System32\vmictimeprovider.dll (Local)
Enabled: 1 (Local)
InputProvider: 1 (Local)

NtpServer (Local)
DllName: C:\Windows\system32\w32time.dll (Local)
Enabled: 0 (Local)
InputProvider: 0 (Local)

Оригинальная статьи