microsoft / convert-lbfo2set Goto Github PK
View Code? Open in Web Editor NEWConverts an LBFO team to a Switch Embedded Team (SET)
License: MIT License
Converts an LBFO team to a Switch Embedded Team (SET)
License: MIT License
Approve-NetSymmetry has a SETTeam param and for usability, this should stay the same between the two tools.
What is the source of the nicReconnect binaries? Can we get signed binaries and/or source code?
Considering LBFO didn't support stateless offloads like VMMQ, we need to allow the reset of these settings on vNICs
Spotted a couple of problems in this section.
There is a possible condition where $AllowOutage is $false and there is only a single adapter in $configData.NetLBFOTeam.Memeber that will create an invalid NIC name.
Since $configData.NetLBFOTeam.Members resolves to a string when there is a single member, the result of the operation is char[0] of the string name. Which makes $NetAdapterNames equal to the first letter in the NIC name and will cause an error cascade whenever called.
Commented code below.
`
#region Create new SET team
# jak: alternate condition: $configData.NetLBFOTeam.Members -isnot [Array]
if ($AllowOutage -eq $true -and $configData.NetLBFOTeam.Members.Count -eq 1)
{
$NetAdapterNames = $configData.NetLBFOTeam.Members
$AdapterMigrationNeeded = $false
# Only one pnIC - Destroy the LBFOTeam
Remove-NetLbfoTeam -Name $configData.NetLBFOTeam.Name -Confirm:$false
}
else
{
<#
jak: It's still possible to reach this code with a single LBFO team member, if AllowOutage is $false.
if ($configData.NetLBFOTeam.Members -is [Array])
{
$NetAdapterNames = $configData.NetLBFOTeam.Members[0]
}
else
{
$NetAdapterNames = $configData.NetLBFOTeam.Members
}
#>
$NetAdapterNames = $configData.NetLBFOTeam.Members[0]
$AdapterMigrationNeeded = $true
#jak: change $configData.NetLBFOTeam.Members[0] to $NetAdapterNames
Remove-NetLbfoTeamMember -Name $NetAdapterNames -Team $configData.NetLBFOTeam.Name -Confirm:$False
}`
You also cannot remove the last member of the team. So we need to rethink what to do when -AllowOutage is false and there is only a single LBFO team member. Just in case.
Remove-NetLbfoTeamMember : Cannot remove the only member 'NIC01' of team 'Team1'
At line:30 char:9
Remove-NetLbfoTeamMember -Name $NetAdapterNames -Team $config ...
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
How will an LBFO team using Address Hash be migrated to SET?
Option1: Fail a pre-req check and require the user to change the load balancing option prior to continuing?
Option2: Migrate it to the recommended (Hyper-V Port)
Video for updating VMM is set to private link. Is there another way to watch this video? Thanks!
Along the same lines as the Address Hash issue, how do we handle LACP (Switch Dependent)? I don't think we can simply force a change. I think the LACP config on the switches need to be removed and LBFO manually changed to switch independent before migration.
James, could you please take a look at this?
This doesn't appear to work and so it always goes to the exit path which closes powershell. There are two issues:
With Pester 5.3.3 installed, the script will throw these errors about syntax incompatibilities:
Running tests.
[-] OSValidation.HostOS.HYPER05: Must be Windows Server 2016, or Server 2019 365ms (271ms|93ms)
RuntimeException: Legacy Should syntax (without dashes) is not supported in Pester 5. Please refer to migration guide at: https://pester.dev/docs/migrations/v3-to-v4
RuntimeException: Legacy Should syntax (without dashes) is not supported in Pester 5. Please refer to migration guide at: https://pester.dev/docs/migrations/v3-to-v4
ParameterBindingException: Cannot retrieve the dynamic parameters for the cmdlet. Legacy Should syntax (without dashes) is not supported in Pester 5. Please refer to migration guide at: https://pester.dev/docs/migrations/v3-to-v
4
at , C:\Program Files\WindowsPowerShell\Modules\Convert-LBFO2SET\2022.8.29.35\tests\unit\unit.tests.ps1:10
Hi,
The script should point to the TeamNicName when evaluating and working with the Networkcard members on the LBFO Team and not the TeamName itself.
When the LBFO Team was created with a different Team Nic Name as the Team Name itself, like
New-NetLbfoTeam -Name "Team2" -TeamNicName "Team2Nic" -TeamMembers "NIC1","NIC2"
then the script break like:
[-] CONTOSO-HVH02: LBFO Team [LBFOTeam1] must be attached to a vSwitch 222ms Expected 'LBFOTeam1', but got $null. 44: $netAdapter.Name | Should be $LBFOTeam at <ScriptBlock>, C:\Program Files\WindowsPowerShell\Modules\Convert-LBFO2SET\2020.2.2.5\tests\unit\unit.tests.ps1: line 44
Instead to use the .Name Property on the LBFO Team use the .TeamNics Property
Hi,
Please persist the vlan configuration on the ManagementOS VMNetworkAdapter when convert LBFO to SET. If we have a Cluster with Live Migration and Cluster Interlink VMNetworkAdatper configured on the VSwitch on different VLANS, the convert process loos the VLAN configuration.
IF the configuration on the LBFO VSwitch is like
Get-VMNetworkAdapterVlan -ManagementOS
Live-Migration Access 210
Cluster Access 220
Host-Parent Untagged
after the convert process the VLANs are not configured like
Live-Migration Untagged
Cluster Untagged
Host-Parent Untagged
Kind Regards
Steve
Challenge to get it to run first... (Install problem until I used the TLS1.2 command, Pester old version issue). Finally googled and solved those issues. Ran it as instructed ...Convert-LBFO2SET -lbfoteam TeamName -Setteam NewSwitchname. Pester tests al passed. RESULTS -- Old switch changed from External to Internal with no host nics associated with it but all vnics still attached. New SETSWITCH created as external, associated the physical nics with the new switch but set it to dynamic (old one was set to hyper-v port) and no Vnics attached to it..... RESULT now I need to manually delete and recreate everything.
OS 名称: Microsoft Windows Server 2022 Datacenter
OS 版本: 10.0.20348 暂缺 Build 20348
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.