apache / apache/cloudstack

KVM: Live migration of SSVM fails with dedicated VLAN

オープン
#13,378 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る
component:kvm component:migration
主要言語
Java
スター
3.1k
フォーク
1.4k
平均マージ
6日 19時間
マージ済み PR(30日)
32

説明

### problem

Live migration of SSVMs fails on KVM when the zone has a dedicated storage network IP range configured with a VLAN. The destination agent never creates the storage VLAN bridge during
PrepareForMigrationCommand, so libvirt cannot find the bridge from the source VM's XML and aborts

This is because the storage network is created with broadcast_domain_type: Native and broadcastUri: storage://
And In BridgeVifDriver.createStorageVnetBridgeIfNeeded():
```

if (!Networks.BroadcastDomainType.Storage.equals(nic.getBroadcastType()) || nic.getBroadcastUri() == null) {
return storageBrName; // exits early and bridge is never created
}
```

the above check causes it to exit early and never create the bridge on the destination host

### versions

4.20.3 onward

### The steps to reproduce the bug

Steps to Reproduce

1. Create a zone with KVM hosts
2. Add a pod management network IP range (untagged)
3. Add a Storage Network IP Range to the pod with a non-zero VLAN ID (storage_vlan)
4. Start the zone - system VMs are created; confirm br- exists on the source host
5. Attempt live migration of the Secondary Storage VM to the other host
6. Migration fails with Cannot get interface MTU on 'br-': No such device

### What to do about it?

_No response_

コントリビューションガイド

コントリビューションガイドを開く

調査の方向性

BridgeVifDriver.createStorageVnetBridgeIfNeeded() から開始し、ライブマイグレーション中に PrepareForMigrationCommand がストレージネットワークをどのように処理するかを追跡します。専用のストレージ VLAN を使用する KVM ゾーンで問題を再現し、その後、移行先でストレージ VLAN ブリッジが作成され、Secondary Storage VM の移行が成功することを確認します。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
java
領域
cloud, infrastructure
issue の種類
バグ
難易度
4/5
見積もり時間
3〜5日
活発さ
静か
明瞭さ
おおむね明確
初心者へのやさしさ
52/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。