You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ml...@apache.org on 2014/05/28 00:52:24 UTC
git commit: updated refs/heads/master to 7ce3034
Repository: cloudstack
Updated Branches:
refs/heads/master 021a60449 -> 7ce303429
CLOUDSTACK-6790: Disable PXE ROM for system vm nics
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/7ce30342
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/7ce30342
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/7ce30342
Branch: refs/heads/master
Commit: 7ce303429921e6a60a941c8476ba891baa80f04c
Parents: 021a604
Author: Marcus Sorensen <ma...@betterservers.com>
Authored: Tue May 27 16:47:16 2014 -0600
Committer: Marcus Sorensen <ma...@betterservers.com>
Committed: Tue May 27 16:52:26 2014 -0600
----------------------------------------------------------------------
api/src/com/cloud/agent/api/to/NicTO.java | 9 +++++++++
.../engine/orchestration/NetworkOrchestrator.java | 3 +++
.../com/cloud/hypervisor/kvm/resource/BridgeVifDriver.java | 3 +++
.../hypervisor/kvm/resource/LibvirtComputingResource.java | 9 ++++++++-
.../src/com/cloud/hypervisor/kvm/resource/LibvirtVMDef.java | 8 ++++++++
server/src/com/cloud/hypervisor/HypervisorGuruBase.java | 4 ++++
6 files changed, 35 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/7ce30342/api/src/com/cloud/agent/api/to/NicTO.java
----------------------------------------------------------------------
diff --git a/api/src/com/cloud/agent/api/to/NicTO.java b/api/src/com/cloud/agent/api/to/NicTO.java
index 67660c8..0cbc2d8 100644
--- a/api/src/com/cloud/agent/api/to/NicTO.java
+++ b/api/src/com/cloud/agent/api/to/NicTO.java
@@ -23,6 +23,7 @@ public class NicTO extends NetworkTO {
Integer networkRateMbps;
Integer networkRateMulticastMbps;
boolean defaultNic;
+ boolean pxeDisable;
String uuid;
List<String> nicSecIps;
@@ -58,6 +59,14 @@ public class NicTO extends NetworkTO {
this.defaultNic = defaultNic;
}
+ public void setPxeDisable(boolean pxeDisable) {
+ this.pxeDisable = pxeDisable;
+ }
+
+ public boolean getPxeDisable() {
+ return pxeDisable;
+ }
+
@Override
public String getUuid() {
return uuid;
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/7ce30342/engine/orchestration/src/org/apache/cloudstack/engine/orchestration/NetworkOrchestrator.java
----------------------------------------------------------------------
diff --git a/engine/orchestration/src/org/apache/cloudstack/engine/orchestration/NetworkOrchestrator.java b/engine/orchestration/src/org/apache/cloudstack/engine/orchestration/NetworkOrchestrator.java
index 0ad6d34..1e5a58c 100755
--- a/engine/orchestration/src/org/apache/cloudstack/engine/orchestration/NetworkOrchestrator.java
+++ b/engine/orchestration/src/org/apache/cloudstack/engine/orchestration/NetworkOrchestrator.java
@@ -904,6 +904,9 @@ public class NetworkOrchestrator extends ManagerBase implements NetworkOrchestra
} else {
to.setGateway(config.getGateway());
}
+ if (nic.getVmType() != VirtualMachine.Type.User) {
+ to.setPxeDisable(true);
+ }
to.setDefaultNic(nic.isDefaultNic());
to.setBroadcastUri(nic.getBroadcastUri());
to.setIsolationuri(nic.getIsolationUri());
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/7ce30342/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/BridgeVifDriver.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/BridgeVifDriver.java b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/BridgeVifDriver.java
index c99de7a..e684b8d 100644
--- a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/BridgeVifDriver.java
+++ b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/BridgeVifDriver.java
@@ -142,6 +142,9 @@ public class BridgeVifDriver extends VifDriverBase {
String storageBrName = nic.getName() == null ? _bridges.get("private") : nic.getName();
intf.defBridgeNet(storageBrName, null, nic.getMac(), getGuestNicModel(guestOsType, nicAdapter));
}
+ if (nic.getPxeDisable() == true) {
+ intf.setPxeDisable(true);
+ }
return intf;
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/7ce30342/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java
index dba6806..4065188 100755
--- a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java
+++ b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java
@@ -3793,6 +3793,14 @@ public class LibvirtComputingResource extends ServerResourceBase implements Serv
_vms.put(vmName, State.Starting);
}
+ NicTO[] nics = vmSpec.getNics();
+
+ for (NicTO nic : nics) {
+ if (vmSpec.getType() != VirtualMachine.Type.User) {
+ nic.setPxeDisable(true);
+ }
+ }
+
vm = createVMFromSpec(vmSpec);
conn = LibvirtConnection.getConnectionByType(vm.getHvsType());
@@ -3808,7 +3816,6 @@ public class LibvirtComputingResource extends ServerResourceBase implements Serv
s_logger.debug("starting " + vmName + ": " + vm.toString());
startVM(conn, vmName, vm.toString());
- NicTO[] nics = vmSpec.getNics();
for (NicTO nic : nics) {
if (nic.isSecurityGroupEnabled() || (nic.getIsolationUri() != null && nic.getIsolationUri().getScheme().equalsIgnoreCase(IsolationType.Ec2.toString()))) {
if (vmSpec.getType() != VirtualMachine.Type.User) {
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/7ce30342/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtVMDef.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtVMDef.java b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtVMDef.java
index cf9fec0..4ab794b 100644
--- a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtVMDef.java
+++ b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtVMDef.java
@@ -765,6 +765,7 @@ public class LibvirtVMDef {
private String _virtualPortType;
private String _virtualPortInterfaceId;
private int _vlanTag = -1;
+ private boolean _pxeDisable = false;
public void defBridgeNet(String brName, String targetBrName, String macAddr, nicModel model) {
defBridgeNet(brName, targetBrName, macAddr, model, 0);
@@ -832,6 +833,10 @@ public class LibvirtVMDef {
return _hostNetType;
}
+ public void setPxeDisable(boolean pxeDisable) {
+ _pxeDisable = pxeDisable;
+ }
+
public String getBrName() {
return _sourceName;
}
@@ -909,6 +914,9 @@ public class LibvirtVMDef {
if (_scriptPath != null) {
netBuilder.append("<script path='" + _scriptPath + "'/>\n");
}
+ if (_pxeDisable) {
+ netBuilder.append("<rom bar='off' file='dummy'/>");
+ }
if (_virtualPortType != null) {
netBuilder.append("<virtualport type='" + _virtualPortType + "'>\n");
if (_virtualPortInterfaceId != null) {
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/7ce30342/server/src/com/cloud/hypervisor/HypervisorGuruBase.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/hypervisor/HypervisorGuruBase.java b/server/src/com/cloud/hypervisor/HypervisorGuruBase.java
index e2520d2..30435d2 100644
--- a/server/src/com/cloud/hypervisor/HypervisorGuruBase.java
+++ b/server/src/com/cloud/hypervisor/HypervisorGuruBase.java
@@ -97,6 +97,10 @@ public abstract class HypervisorGuruBase extends AdapterBase implements Hypervis
// Workaround to make sure the TO has the UUID we need for Niciri integration
NicVO nicVO = _nicDao.findById(profile.getId());
to.setUuid(nicVO.getUuid());
+ // disable pxe on system vm nics to speed up boot time
+ if(nicVO != null && nicVO.getVmType() != VirtualMachine.Type.User){
+ to.setPxeDisable(true);
+ }
//check whether the this nic has secondary ip addresses set
//set nic secondary ip address in NicTO which are used for security group
// configuration. Use full when vm stop/start