System Center 2012 - Virtual Machine Manager(SCVMM 2012) SP1 Beta에서 가상 머신 또는 템플릿, 하드웨어 프로필에서 VLAN 설정을 하려고 하면 GUI 상에서 보이지가 않습니다.
아래 이미지를 보시면 먼저, SCVMM 2012 RTM 상에서 VM에 대한 네트워크 어댑터 설정입니다.
스냅샷에는 VLAN 설정이 비활성화 되어 있는 것은 논리 네트워크에 VLAN 정보를 입력하지 않아서 입니다. 어쨋든 위와 같이 VLAN 설정을 GUI 상에서 확인할 수가 있는데요. 아래 이미지를 보시면 SCVMM 2012 SP1 Beta 상에서 VM에 대한 네트워크 어댑터 설정에 VLAN 설정이 보이지 않는 것을 확인할 수 있습니다.
아쉽게도 이 부분은 Beta의 버그로 보여집니다. 만약, 현재 버전(SP1 Beta) 상에서 VM, VM 템플릿 및 하드웨어 프로필에서 VLAN을 설정하려면 PowerShell을 이용해야 합니다. 구문은 다음과 같습니다.
VM에 대한 VLAN 설정
Get-SCVirtualNetworkAdapter -VM <VM Name> | Set-SCVirtualNetworkAdapter -VLanEnabled $True -VLanID <VLAN ID>
만약, 네트워크 어댑터가 여러 개인 경우 'Where SlotId -eq 0' 와 같이 Where 절을 추가해서 설정하시면 되겠습니다.
VM 템플릿에 대한 VLAN 설정
VM 템플릿에 대한 설정도 VM에서와 동일한 방법으로 설정하실 수 있습니다. 마찬가지로 네트워크 어댑터가 여러 개인 경우 Where 절을 추가해 사용하시면 됩니다.
Get-SCVirtualNetworkAdapter -VMTemplate <VM Template Name> | Set-SCVirtualNetworkAdapter -VLanEnabled $True -VLanID <VLAN ID>
하드웨어 프로필에 대한 VLAN 설정
Get-SCVirtualNetworkAdapter -HardwareProfile <Hardware Profile Name> | Set-SCVirtualNetworkAdapter -VLanEnabled $True -VLanID <VLAN ID>
반대로, VM 템플릿에 기반해 VM을 생성하려는 경우 GUI로 생성할 때는 아래와 같이 IP 주소 풀을 선택하는 화면이 있습니다. IP Address Pool이 한 개인 경우에는 문제가 되지 않으나, 여러 개인 경우 PowerShell로 VM 템플릿에 기반해 VM을 생성하려는 경우 이 IP 주소 풀을 선택하는 방법이 어디 있는지 찾기가 어려웠습니다.
아래 스크립트를 참고하시기 바랍니다.
$VMName = <VM 이름>
$HostName = <호스트 이름>
$IPSubnet = <서브넷, 192.168.20.0/24와 같은 형태>
$VMPath = <VM 생성 위치, 경로>
$TemplateName = <VM 템플릿 이름>
$IPPool = Get-SCStaticIPAddressPool -Subnet $IPSubnet
$HostGroup = Get-SCVMHostGroup -Name "All Hosts"
$VMHost = Get-SCVMHost -ComputerName $HostName
$Template = Get-SCVMTemplate -Name $TemplateName
$VMConfig = New-SCVMConfiguration -VMTemplate $Template -VMHostGroup $HostGroup -Name $VMName
Update-SCVMConfiguration -VMConfiguration $VMConfig
$vNICConfig = $VMConfig.VirtualnetworkadapterConfigurations[0]
Set-SCVirtualNetworkAdapterConfiguration -VirtualNetworkAdapterConfiguration $vNICConfig -IPv4AddressPool $IPPool -PinIPv4AddressPool $True
Update-SCVMConfiguration -VMConfiguration $VMConfig
Set-SCVMConfiguration -VMConfiguration $VMConfig -VMLocation $VMPath -PinVMLocation $True -ComputerName $VMName -VMHost $VMHost -PinVMHost $True
Update-SCVMConfiguration -VMConfiguration $VMConfig
New-SCVirtualMachine -VMConfiguration $VMConfig -Name $VMName -SkipInstallVirtualizationGuestServices -RunAsynchronously