307 Commits

Author SHA1 Message Date
Alex Huang
8d62744681 Reformat all source code. Added checkstyle to check the source code 2013-11-20 07:26:53 -08:00
Kelven Yang
fc9adec72e CLOUDSTACK-669: Add host level side-by-side VM state report for graceful sync model migration 2013-11-12 18:32:51 -08:00
Laszlo Hornyak
b2f06aae68 fix long cast to double
- the result of dividing long with long resulted in loss of precision both for network and IO
- unit tests included

Signed-off-by: Laszlo Hornyak <laszlo.hornyak@gmail.com>
2013-11-09 09:04:05 +01:00
Wei Zhou
4674ae4dd3 CLOUDSTACK-5076: fix wrong bridge name in vm domain xml desc after upgrade from 4.0 or before to 4.2
(cherry picked from commit 86976fb298bb05b7a5380573e292ec9687169228)
2013-11-08 15:40:14 +01:00
Wei Zhou
c2fc6e69b5 check Linux bridge status before remove it (Cherry-picked from commit a33f0e7bdd3bc359e483eca36cf9faf1f2c7c521) 2013-11-08 09:00:12 +01:00
ynojima
b864e677e5 CLOUDSTACK-5039 bugfix: live migration failure in KVM env.
Signed-off-by: ynojima <mail@ynojima.net>
2013-11-07 20:56:23 +05:30
ynojima
494ccd821d Bugfix: VR has double NICs connected to Public network
replace vlanid wih broadcast uri to support vxlan to identify whether id is VLAN ID or VNI

Signed-off-by: ynojima <mail@ynojima.net>
Signed-off-by: Hugo Trippaers <htrippaers@schubergphilis.com>
2013-11-07 11:17:59 +01:00
Jayapal
88170f9a79 CLOUDSTACK-4736 Monitoring service kvm vmware resource changes 2013-11-06 18:37:43 +05:30
Harikrishna Patnala
a286dec098 CLOUDSTACK-4908: CPU socket count of host Adding cpu socket count of the host in hostresponse
Signed-off-by: Koushik Das <koushik@apache.org>
2013-11-05 16:12:36 +05:30
Marcus Sorensen
c2e2f6ce63 relax KVM agent setup to allow non-bridge traffic labels
(guest bridges are created on physical device, no need for bridge traffic label)
2013-11-01 18:16:54 -06:00
John Kinsella
47641637f6 Summary: LibvirtStorageAdaptor.getPhysicalDisk() to recogize .raw extension
Detail: getPhysicalDisk() was not matching on volumes with .raw, so
instead setting disk format to QCOW2.

BUG-ID: CLOUDSTACK-5018
Bugfix-for:
Reviewed-by:
Reported-by:
Signed-off-by: John Kinsella <jlk@stratosec.co> 1383287538 -0700
2013-10-31 23:32:18 -07:00
Wei Zhou
bad23908c2 remove unused file lock codes from LibvirtStorageAdaptor.java
(cherry picked from commit 4b8d636ce66fa8e4ed9cc56e44f4fa88e0e18cb8)
2013-10-31 11:37:25 +01:00
Hugo Trippaers
9d2271d115 Revert "fixed m2eclipse error" because it breaks packaging
This reverts commit 5bcd8280fdd1e9039a6bf6c4c4fd43b8b49f938e.
2013-10-30 20:17:59 +01:00
Anthony Xu
5bcd8280fd fixed m2eclipse error 2013-10-29 15:20:49 -07:00
Marcus Sorensen
4a9f05bda0 CLOUDSTACK-4967
1) vxlan will use bridge scheme 'brvx-<vni>'. Multiple physical networks can host guest
traffic type with vxlan isolation, so long as they don't use the same VNI range.

2) Guest traffic labels can be physical interface if bridge by given name is not found.
Normally we take traffic label name, find the matching bridge, then resolve that to a
physical interface. Then we create guest bridges on that interface. Now we can just
specify the interface.
2013-10-29 15:34:39 -06:00
Mike Tutkowski
858ce76665 Extend support of CloudStack-managed storage to KVM 2013-10-27 22:30:03 -06:00
Laszlo Hornyak
c17831532e InputStream use fix in LibvirtComputingResource
- Properties object polulation using PropertiesUtil.loadFromFile

Signed-off-by: Laszlo Hornyak <laszlo.hornyak@gmail.com>
2013-10-26 17:47:34 +02:00
Darren Shepherd
891b85d516 Add missing licenses 2013-10-23 15:20:08 -07:00
Darren Shepherd
e3280bdba2 Merge remote-tracking branch 'origin/spring-modularization'
Conflicts:
	client/tomcatconf/applicationContext.xml.in
	client/tomcatconf/nonossComponentContext.xml.in
	client/tomcatconf/simulatorComponentContext.xml.in
	framework/db/src/com/cloud/utils/db/Transaction.java
	plugins/hypervisors/simulator/src/com/cloud/agent/manager/MockAgentManagerImpl.java
	server/src/com/cloud/api/ApiServer.java
	server/src/com/cloud/storage/snapshot/SnapshotManagerImpl.java
2013-10-23 11:14:42 -07:00
Anthony Xu
e33ae74067 CLOUDSTACK-4649:
xs 6.1/6.2 introduce the new virtual platform, so there are two virtual platforms, windows PV driver version must match virtual platforms,
this patch tracks PV driver versions in vm details and template details.

Anthony
2013-10-22 17:54:51 -07:00
John Kinsella
c10ee5dde4 Summary: Updated Ethernet regex for vlan-tagged "p1p1.2" style interfaces
Detail: Checks for other Ethernet interface names uses startsWith(),
whereas the p1p1 style interface uses a regex that doesn't allow for
tailing characters, and so blocks vlan IDs. Fixed.

BUG-ID: CLOUDSTACK-4884
Bugfix-for: 4.2.1
Reviewed-by:
Reported-by:
Signed-off-by: John Kinsella <jlk@stratosec.co> 1381965250 -0700
2013-10-16 16:14:10 -07:00
Marcus Sorensen
3467c99e73 CLOUDSTACK-2823: This affects Ubuntu as well, since qemu version is 1.0.0
I don't think host kernel version has any bearing on it. Original code
was tested with CentOS 6.3 and 6.4, but it seems to succeed or fail per-host,
e.g. a fast host might work and a slow host might not. I was getting intermittent
failures with ubuntu 12.04.3 prior to this patch.
2013-10-16 00:27:22 -06:00
Hugo Trippaers
8cfafbe44e Remove some stuff that is no longer used 2013-10-15 14:04:34 +02:00
Marcus Sorensen
b344bb4cf3 KVM: Change new volume/template downloads to use UUID in database
rather than creating a fresh random UUID, so admins can match
volumes frontend to backend
2013-10-11 17:16:48 -06:00
Chris Suich
180cfa19e8 Refactor Storage Related Resource Code
These changes are a joint effort between Edison and I to refactor some
of the code around snapshotting VM volumes and creating
templates/volumes from VM volume snapshots. In general, we were working
towards allowing PrimaryDataStoreDrivers to create snapshots on primary
storage and not requiring the snapshots to be transferred to secondary
storage.

High level changes:
-Added uuid to NfsTO, SwiftTO & S3TO to cut down on the requirement of
PrimaryDataStoreTO and ImageStoreTO which don't really serve much of a
purpose
-Initial work towards enable reverting VM volume from snapshots
-Added hypervisor commands for introducing and forgetting new hypervisor
objects (snapshots, templates & volumes)

Signed-off-by: Edison Su <sudison@gmail.com>
2013-10-04 13:06:42 -07:00
Darren Shepherd
67186429e1 Spring Modularization
ACS is now comprised of a hierarchy of spring application contexts.
Each plugin can contribute configuration files to add to an existing
module or create it's own module.

Additionally, for the mgmt server, ACS custom AOP is no longer used
and instead we use Spring AOP to manage interceptors.
2013-10-02 15:41:04 -07:00
Darren Shepherd
aed5e9dc2a Add Manage Context framework
The managed context framework provides a simple way to add logic
to ACS at the various entry points of the system.  As threads are
launched and ran listeners can be registered for onEntry or onLeave
of the managed context.  This framework will be used specifically
to handle DB transaction checking and setting up the CallContext.
This framework is need to transition away from ACS custom AOP to
Spring AOP.
2013-10-02 13:09:52 -07:00
ynojima
a45ee749ac CLOUDSTACK-2328: Linux native VXLAN support on KVM hypervisor
Initial patch for VXLAN support.
Fully functional, hopefully, for GuestNetwork - AdvancedZone.

Patch Note:
 in cloudstack-server
- Add isolation method VXLAN
- Add VxlanGuestNetworkGuru as plugin for VXLAN isolation
- Modify NetworkServiceImpl to handle extended vNet range for VXLAN isolation
- Add VXLAN isolation option in zoneWizard UI

 in cloudstack-agent (kvm)
- Add modifyvxlan.sh script that handle bridge/vxlan interface manipulation script
-- Usage is exactly same to modifyvlan.sh
- BridgeVifDriver will call modifyvxlan.sh instead of modifyvlan.sh when VXLAN is used for isolation

Database changes:
- No change in database structure.
- VXLAN isolation uses same tables that VLAN uses to store vNet allocation status.

Known Issue and/or TODO:
- Some resource still says 'VLAN' in log even if VXLAN is used
- in UI, "Network - GuestNetworks" dosen't display VNI
-- VLAN ID field displays "N/A"
- Documentation!

Signed-off-by : Toshiaki Hatano <haeena@haeena.net>
2013-09-26 23:37:18 +09:00
Edison Su
3420f2d016 CLOUDSTACK-4641: fix create volume from snapshot timeout issue 2013-09-25 16:32:55 -07:00
Edison Su
4fb4593553 CLOUDSTACK-4618: fix CLVM 2013-09-25 16:29:16 -07:00
Edison Su
0eb3944fc8 kvm upgrade issue from 2.2.14: 1. the uuid passed by mgt server is malformat, libvirt can't start vm. 2. the template path on primary storage is incorrect, which contains absolute path 2013-09-25 16:20:06 -07:00
Edison Su
3ddc6da10b CLOUDSTACK-4405: fix vm migration during the upgrade to 4.2
Conflicts:

	plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/BridgeVifDriver.java
2013-09-25 16:19:53 -07:00
Edison Su
a96f6b306b CLOUDSTACK-4459: fix silly bug, one more time 2013-09-25 16:17:54 -07:00
Edison Su
2227eb191a CLOUDSTACK-3535: fix regression introduced in 5d9fa5d42e13a8c8ee10df14c466f66de678e954 2013-09-25 16:16:34 -07:00
Edison Su
49d8e44491 CLOUDSTACK-4459: one more try, bypass libvirt to find volume if libvirt call failed
Conflicts:

	server/src/com/cloud/template/TemplateManagerImpl.java
2013-09-25 16:16:10 -07:00
Edison Su
b695484dc7 CLOUDSTACK-4459:
Libvirt reports:
org.libvirt.LibvirtException: Storage volume not found: no storage vol
with matching name
in some cases, if the volume is created on one kvm host, while accessed
from other host.
It's possible due to concurrent access(read/write) storage.
The current fix is to try serveral times, and wait for 30 seconds for
each retry.
If the issue still there, then need to sync the storage pool access
2013-09-25 16:13:38 -07:00
Edison Su
dda1133f12 CLOUDSTACK-4436: in case of older kvm host, we'd better try serveral times to make sure we passed cmdline parameters to system vms
Conflicts:

	core/src/com/cloud/agent/resource/virtualnetwork/VirtualRoutingResource.java
2013-09-25 16:10:57 -07:00
Edison Su
9fa56e28ec CLOUDSTACK-4459: need to sychronize create storage pool, otherwise, we can create the same pool with the same uuid in parallel 2013-09-25 16:09:11 -07:00
Edison Su
b5f7e307a1 CLOUDSTACK-4456:
CLOUDSTACK-4457:
CLOUDSTACK-4459:
harden kvm getvolume. It's possible that one volume created on other kvm host, won't show up on another host, try more times to refresh storage pool if volume won't shown up

Conflicts:

	engine/storage/integration-test/test/org/apache/cloudstack/storage/test/FakeDriverTestConfiguration.java
	plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java
2013-09-25 16:01:45 -07:00
Edison Su
5e94e1675b CLOUDSTACK-2729: another try to solve libvirt storage pool missing issue: if the storage pool is missing, then recreate it 2013-09-25 15:52:03 -07:00
Edison Su
b3ac12e171 delete snapshot_store_ref if the snapshot is in error state 2013-09-25 15:51:55 -07:00
Wei Zhou
3dc4284a34 add missing jna-4.0.0.jar to cloudstack-agent library by changing scope from provided to default runtime 2013-09-25 11:08:57 +02:00
Wei Zhou
258118efa6 CLOUDSTACK-4405: additional patch for bridge name and firewall rules issues after KVM upgrade to 4.2
There still exist two issues after Edison's commits.
(1) Migration from new hosts to old hosts failed.
The bridge name on old host is set to cloudVirBr* if network.bridge.name.schema is set to 3.0 in /etc/cloudstack/agent/agent.properties, but the actual bridge name is breth*-* after running cloudstack-agent-upgrade.
(2) all ports of vms (Basic zone, or Advanced zone with security groups) on old hosts are open, because the iptables rules are binding to device (bridge) name which is changed by cloudstack-agent-upgrade.

After this, the KVM upgrade steps :
a. Install 4.2 cloudstack agent on each kvm host
b. Run "cloudstack-agent-upgrade". This script will upgrade all the existing bridge name to new bridge name, and update related firewall rules.
c. install a libvirt hook:
    c1. mkdir /etc/libvirt/hooks
    c2. cp /usr/share/cloudstack-agent/lib/libvirtqemuhook /etc/libvirt/hooks/qemu
    c3. chmod +x /etc/libvirt/hooks/qemu
    c4. service libvirtd restart
    c5. service cloudstack-agent restart

Signed-off-by: Wei Zhou <w.zhou@leaseweb.com>
2013-09-24 09:55:00 +02:00
Edison Su
e325fb66ab CLOUDSTACK-4405: fix vm migration during the upgrade to 4.2
Signed-off-by: Wei Zhou <w.zhou@leaseweb.com>
2013-09-24 09:53:55 +02:00
Daan Hoogland
2614b00c51 sdn hosted vpc gateways (using lswitch) 2013-09-18 16:56:56 +02:00
Marcus Sorensen
2b4e994a4d CLOUDSTACK-3565 - fix for new libvirt behavior when defining NFS
pools that are already mounted in KVM hypervisor
2013-09-17 10:53:35 -06:00
Wido den Hollander
a709f34ff9 kvm: During migrate change the VNC listen address
The migrate method from libvirt supports passing down a different XML for running
the instance of the target hypervisor.

This enables the VNC to bind to the private IP Address of the hypervisor and during
migration this will be changed to the private IP address of the target host.

This way VNC doesn't listen world wide and is much safer.
2013-09-16 11:57:16 +02:00
Wei Zhou
5c141a46fc CLOUDSTACK-4610: fix incorrect value available_bytes of storage pool 2013-09-05 11:16:12 +02:00
Daan Hoogland
d9c06e538b CLOUDSTACK-4346 replace URI getHost() and create(String) calls with BroadcastDomainType methods 2013-09-01 22:53:23 +02:00
Wido den Hollander
c3a275fc75 CLOUDSTACK-4423: Do not always append .qcow2 to volume names when copying
Disk images are not always in the QCOW2 format, so don't assume that the
filename will always and in .qcow2
2013-08-27 18:34:39 +02:00