Commit Graph

482 Commits

Author SHA1 Message Date
Sheng Yang 1d3a6eaa50 CLOUDSTACK-6047: Fix timeout issue when try to execute aggregated commands
Add executeInVR() with timeout interface to VirtualRouterDeployer

AggregationControlCommand with Action.Finish may take longer than normal command
since it would execute all the commands in one execution, and it may result in
SSH timeout for SshHelper or other mechanism communicate with VR.

Introduce an new executeInVR() interface with added timeout period for waiting
FinishAggregationCommand to complete execution.
2014-03-18 17:43:59 -07:00
Marcus Sorensen d638d04cbf CLOUDSTACK-6181: Merge of resize root feature (resize-root branch) 2014-03-14 07:17:33 -06:00
Hugo Trippaers 4402685e11 Update master to 4.5.0-SNAPSHOT 2014-03-14 14:55:26 +01:00
Murali Reddy 36541a2f4c adding distributed routing support for KVM OVS
some check style error fixes
2014-03-14 16:56:38 +05:30
Murali Reddy e045883c52 introduce OvsNetworkTopologyGuru that has convinenace functions to
- get the hosts on which VPC spans given vpc id
   - get the VM's in the VPC
   - get the hosts on which a network spans
   - get the VPC's to which a hosts is part of
   - get VM's of a VPC on a hosts

introduces capability to build a physical toplogy representation of a
VPC. This json file is encapsulated in
OvsVpcPhysicalTopologyConfigCommand, and is used to send full topology
to hypervisor hosts. On hypervisor this json config can be used to setup
tunnels, configure bridge, add flow rules etc

Ovs GURU, to use different broasdcast scheme VS://vpcid.gerkey for the
networks in VPC that use distributed routing

each VIF and tunnel interface to carry the network UUID in other/options
config
2014-03-14 16:56:37 +05:30
Alena Prokharchyk 6c23e201ad 1) More fixes for the problems found by findBugs
2) Corrected some logging in  MidoNetPublicNetworkGuru - removed .toString method call on the objects in the log body as toString is called on the object by default when use log4j
2014-03-13 16:05:45 -07:00
Kishan Kavala 6d4b979c4d CLOUDSTACK-6122: LXC systemVms run on KVM. If they are not included in the VmState report, MS assumes that system Vms are not running. MS will stop these Vms and spin new ones. So on LXC hosts, KVM Vms also have to be included in the Vmlist 2014-03-11 23:49:28 +05:30
Marcus Sorensen c874e20c24 CLOUDSTACK-6225: Check libvirt version and volume format before
adding flag VIR_STORAGE_VOL_RESIZE_ALLOCATE to resize volume
libvirt call
2014-03-11 11:13:12 -06:00
Anthony Xu ab1d3af460 Use seperate path to sync VM metadata for XS
VM status sync only does VM status sync
2014-03-05 15:44:50 -08:00
Marcus Sorensen e5449e29c9 CLOUDSTACK-6203: KVM Migration fixes. Moved migration to a thread
so we can monitor it and potentially take action to make migration
complete if admin has defined such.
2014-03-05 12:24:04 -07:00
Marcus Sorensen fb0b2eb267 CLOUDSTACK-6192: Return failure on StartCommand and PrepareForMigrationCommand
when connectPhysicalDisk fails, rather than continuing on
2014-03-04 14:18:51 -07:00
Wido den Hollander 1f9649bc3b kvm: Fix a NullPointerException which occurs when storage pool creation fails
Also make the logging around creating a RBD storage pool a bit better when creating
that fails.
2014-03-04 16:03:11 +01:00
Kelven Yang 414b1cbb22 let KVM only report running VM to workaround the problem when KVM still keeps stopped-VM around in some cases 2014-02-28 15:35:59 -08:00
Jayapal cb1c287433 CLOUDSTACK-6183: Unplug the nic when all the ips from the public subnet is released 2014-02-28 16:46:57 +05:30
Min Chen a6f17675d4 CLOUDSTACK-6175:s3.singleupload.max.size option not applicable for
backup snapshot on KVM.
2014-02-26 15:13:49 -08:00
Wido den Hollander abf3c055c2 templates: Add FreeBSD 10 template
With VirtIO enabled on KVM. FreeBSD 10 supports VirtIO for both the
network and the disks. This frees us from IDE and E1000 which should
also improve performance.
2014-02-25 14:56:24 +01:00
Niels de Vos 14689d7810 Gluster should store volumes in qcow2 format
By default all network disks are in RAW format. Gluster works fine with
QCOW2 which has some advantages.

Disks are by default in QCOW2 format. It is possible to run into
a mismatch, where the disk is in QCOW2 format, but QEMU gets started
with format=raw. This causes the virtual machines to lockup on boot.

Failures to start a virtual machine can be verified by checking the log
of the virtual machine, and compare the output of 'qemu-img info'.

In /var/log/libvirt/qemu/<VM>.log find the URL for the drive:

    -drive file=gluster+tcp://...,format=raw,..

Compare this with the 'qemu-img info' output of the same file, mounted
under /mnt/<pool-uuid>/<img-uuid>:

    # qemu-img info /mnt/<pool-uuid>/<img-uuid>
    ...
    file format: qcow2
    ...

This change makes passes the format when creating a disk located on RBD
(RAW only) and Gluster (QCOW2).

Signed-off-by: Niels de Vos <ndevos@redhat.com>
2014-02-25 12:08:46 +01:00
Hugo Trippaers 52c4f00b26 Findbugs: Fix potential NPE 2014-02-24 14:07:33 +01:00
Hugo Trippaers 6b61fd7d09 Fix CID 1186644: ES: Checking String equality using == or != 2014-02-24 14:06:40 +01:00
Marcus Sorensen 4fcd0b1a1f if libvirt fails to attach disks, call disconnectPhysicalDisk to clean up 2014-02-20 15:43:27 -07:00
Niels de Vos fe83a85436 Add support for Primary Storage on Gluster using the libvirt backend
The support for Gluster as Primary Storage is mostly based on the
implementation for NFS. Like NFS, libvirt can address a Gluster environment
through the 'netfs' pool-type.
2014-02-20 14:52:01 +01:00
Sheng Yang 5332f67ae8 CLOUDSTACK-6047: Make sure every commands to VR resource is NetworkElementCommand 2014-02-19 19:46:49 -08:00
Marcus Sorensen df77c4310a CLOUDSTACK-6103: Pass VM iso information along with
PrepareForMigrationCommand, so that destination hypervisor can
mount pool. This further exposed an issue for KVM where iso
was not getting cleaned up upon successful migration, fixed as well.
2014-02-14 00:34:48 -07:00
Laszlo Hornyak bdf50f6d24 Remove assertion
The assertion is built on the assumption that cpuinfo_max_freq is readable by user, which may not be universaly true.
2014-02-10 19:56:54 +01:00
Laszlo Hornyak ab15653d68 Revert "Temporarily ignore getCpuSpeed test"
This reverts commit e4a91d3610.
2014-02-10 19:40:37 +01:00
Laszlo Hornyak e4a91d3610 Temporarily ignore getCpuSpeed test
Signed-off-by: Laszlo Hornyak <laszlo.hornyak@gmail.com>
2014-02-09 23:13:55 +01:00
Laszlo Hornyak 55b6b6d50b Boolean expression simplification
Signed-off-by: Laszlo Hornyak <laszlo.hornyak@gmail.com>
2014-02-09 19:19:20 +01:00
Laszlo Hornyak d6a6e8dfa5 Minor Boolean expression simplification
Signed-off-by: Laszlo Hornyak <laszlo.hornyak@gmail.com>
2014-02-09 19:05:28 +01:00
Laszlo Hornyak 74a3cb4d5e String concatenation cleanup
Replaced string concatenation in loop with StringBuilder

Signed-off-by: Laszlo Hornyak <laszlo.hornyak@gmail.com>
2014-02-09 19:01:45 +01:00
Laszlo Hornyak 8e3ae40ba2 removed self-assignment
It must have been a copy-paste from the other constructor.

Signed-off-by: Laszlo Hornyak <laszlo.hornyak@gmail.com>
2014-02-09 18:46:36 +01:00
Laszlo Hornyak d22b65f45f replaced Integer reference comparsion with .equals
By default only the Integers between -128..127 are cached (unless overridden by java.lang.Integer.IntegerCache.high system property)
If the inbound or outbound values are higher, the reference comparison won't work.

Signed-off-by: Laszlo Hornyak <laszlo.hornyak@gmail.com>
2014-02-09 18:39:03 +01:00
Laszlo Hornyak 3e3ded75f4 safely close resource with java 1.7 resource block
Signed-off-by: Laszlo Hornyak <laszlo.hornyak@gmail.com>
2014-02-09 18:27:54 +01:00
Laszlo Hornyak 5e4fec9eca removed unused variables
Signed-off-by: Laszlo Hornyak <laszlo.hornyak@gmail.com>
2014-02-09 16:55:27 +01:00
Laszlo Hornyak e52a276104 cleanup in LibvirtComputingResource
- minor resource leak cleaned up
- cpu-speed reading method extracted
- test added
- logging added in case of exception

Signed-off-by: Laszlo Hornyak <laszlo.hornyak@gmail.com>
2014-02-09 16:50:10 +01:00
Wido den Hollander 1baebebda6 test: Expand LibvirtDomainXMLParserTest with Interface test 2014-02-06 14:40:40 +01:00
Wido den Hollander 41c7e22eee test: Add test for LibvirtDomainXMLParser
A couple of changes where made to other classes as well to add
some features to allow more extensive testing.
2014-02-06 14:23:25 +01:00
Wido den Hollander 3989d6c481 kvm: Resize volumes using libvirt
This saves us a lot of code and libvirt is probably a better
place to do this.

libvirt-java now has the support we want, so we can now resize volumes
with libvirt.

(C)LVM volumes can't be resized using libvirt, so we have to
invoke a resize script for that.
2014-02-04 14:26:51 +01:00
Wido den Hollander 5ae12f31b7 rbd: Set client timeout to 30 seconds.
By default the client_mount_timeout setting in librados is 300 seconds,
but that causes the connect to the Ceph cluster to block for 5 minutes
if the Ceph cluster is not available.

This patch is not ideal, but it mitigates the problem for now.

At a later point all this librados/librbd code should go back to libvirt
again, but the current versions of libvirt in the distributions are
to old for all the features we require.

For now this should prevent the CloudStack agent blocking for 5 minutes
when the Ceph cluster isn't available.

This is also tracked at the Ceph tracker: http://tracker.ceph.com/issues/6507
2014-02-03 16:07:00 +01:00
Marcus Sorensen 05189361b7 CLOUDSTACK-5968 last patch fixes setting low currentMemory during
overprovision, this one explicitly tells libvirt we dont want a
balloon device (won't use it anyway, and will just suck up a percent
of vm memory)
2014-01-28 11:51:23 -07:00
Marcus Sorensen 1530c162e5 CLOUDSTACK-5968 create vm.memballoon.disable agent parameter 2014-01-28 10:44:44 -07:00
Marcus Sorensen daeea46da0 CLOUDSTACK-5956 remove persist flag during live migration 2014-01-27 11:04:05 -07:00
Laszlo Hornyak 884e8c6510 replaced Long instantiation with parseLong
Signed-off-by: Laszlo Hornyak <laszlo.hornyak@gmail.com>
2014-01-25 16:11:51 +01:00
Sheng Yang 3c955c3659 CLOUDSTACK-5779: Make VmwareResource use VirtualRoutingResource 2014-01-24 19:57:52 -08:00
Sheng Yang 285f23f11b CLOUDSTACK-5779: Generalize calling to execute or create file for KVM 2014-01-24 18:28:25 -08:00
Wido den Hollander dad98ef4de test: Add UnitTest for LibvirtSecretDef 2014-01-23 21:09:25 +01:00
Hugo Trippaers 50b6de4714 Findbugs finding : Fix potential NPE 2014-01-23 16:14:56 +00:00
Wido den Hollander 5747b80124 test: Add UnitTest for Libvirt Storage Pool definitions 2014-01-22 21:52:39 +01:00
Wido den Hollander f7ee27cd1c test: Add Unit Test for LibvirtVMDef DiskDef 2014-01-22 00:04:29 +01:00
Jayapal a41c9b9631 CLOUDSTACK-5867 Fixed service monitor command path 2014-01-16 11:29:03 +05:30
Alex Huang 68b8891c62 Removed all reminants of the IdentityService. Created the KeysManager to move the management
of keys out of management server
2014-01-14 13:11:35 -08:00
Mike Tutkowski 929838c8eb Merge from 4.3: CLOUDSTACK-5662: XenServer can't discover iSCSI targets with different credentials 2014-01-09 22:42:14 -07:00
Marcus Sorensen 0911b73c83 CLOUDSTACK-5430: NPE can be thrown in disconnectPhysicalDiskViaVmSpec in
certain failure scenarios. This can only be triggered if other bugs allow
pools to be deleted while VMs are using them.
2014-01-08 09:42:19 -07:00
Hugo Trippaers 8ddcc9ba80 Set unique gre key for every network.
Set interface id to nic uuid when creating the vif.
2014-01-08 16:00:59 +01:00
Hugo Trippaers 725bed43b4 Wei Zhou found another statement that was effected by commit 3a999e7 in
OvsVifDriver.isBridgeExists.
2014-01-02 15:12:11 +01:00
Hugo Trippaers c024a93826 Commit 3a999e7 changed the return values for the Script.execute function, this introduced a bug in the openvswitch bridge detection code. 2014-01-02 13:40:06 +01:00
Marcus Sorensen c99f0f925b CLOUDSTACK-5697 - public ip ranges should allow VNI rather than only working with untagged 2013-12-31 16:09:52 -07:00
Marcus Sorensen bb8b2805b6 CLOUDSTACK-5432: KVM - LibvirtStorageAdaptor only needs to disconnectPhysicalDiskByPath
for ISO-based disks. At least, that's how it was in 4.2, so restoring to that functionality.
2013-12-26 23:14:23 -07:00
Marcus Sorensen 8455a0677a CLOUDSTACK-5654: Don't pass empty string to BroadcastDomainType.Vlan.toUri
when attempting to parse VLAN/VNI from bridge's physical ethernet device
2013-12-26 16:52:33 -07:00
Marcus Sorensen 7644b92a8b account for vxlan interfaces named vx<vni> 2013-12-19 17:42:42 -07:00
Marcus Sorensen 95364a4022 CLOUDSTACK-5531
Initial support for vhd, raw, vmdk image formats on KVM. Tested all formats with local and CLVM.
2013-12-16 14:32:51 -07:00
Marcus Sorensen 2f53295151 CLOUDSTACK-5521: Create multi-core topology when deploying KVM virtual machines with many cores 2013-12-16 16:12:43 -07:00
Min Chen 46d1e1afb2 CLOUDSTACK-5446:KVM-Secondary Store down-Even after secondary store is
brought back up after being down for few hours,snapshot jobs do not get
triggered with reason "there is other active snapshot tasks on the
instance to which the volume is attached".
2013-12-13 22:04:29 -08:00
Alex Huang be5e5cc641 All Checkstyle problems corrected 2013-12-12 12:26:07 -08:00
tuna 61e80f030a remove unused code 2013-12-09 23:33:15 +07:00
tuna c7dab82dc4 move cloudstack_pluginlib 2013-12-09 23:33:15 +07:00
tuna 3df8b912fc add kvm support & LB service 2013-12-09 23:33:14 +07:00
Wido den Hollander 088247b61b kvm: Force the default disk cache mode to none.
Not doing this caused the cache mode to be null for SystemVMs for their CDROM/ISO.
2013-12-09 16:49:17 +01:00
Wei Zhou d473d5a36a CLOUDSTACK-5293: get vm disk statistics only from DISK (not for ISO/FLOPPY) 2013-11-28 10:47:51 +01:00
Wei Zhou 2145505d30 CLOUDSTACK-5280: fix issue in getBroadcastUriFromBridge
(cherry picked from commit 96842475d9)

Conflicts:

	plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java
2013-11-26 23:37:39 +01:00
Alex Huang 433a631916 Reformat of source code to set a stable base for the future. I couldn't get checkstyle enabled. There's still about a thousand errors from checkstyle. Most of it from length errors from comments and strings. Will attempt to remove those tonight. This change is so large I just want to get it in before any merge nightmares. The changes are fairly minor though and I did a full compile and start a server with the reformat code. 2013-11-21 07:56:47 -08:00
Hugo Trippaers cf715ff491 Bump 4.3.0 to 4.4.0 in master 2013-11-21 16:01:15 +01:00
Alex Huang d620df2bdd Reformatted all of the code. 2013-11-21 06:15:26 -08:00
Alex Huang 224f479974 Removed trailing spaces 2013-11-21 04:08:01 -08:00
Edison Su 2d42b2d1ab Add logs in case ipassoccmd failed 2013-11-20 15:07:02 -08:00
Wido den Hollander 1edaa36cc6 CLOUDSTACK-1302: Allow a cache mode per disk offering
Per disk offering the setting none, writeback or writethrough can be set

This allows for both safety and performance for writes.
2013-11-20 17:11:10 +01:00
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 86976fb298)
2013-11-08 15:40:14 +01:00
Wei Zhou c2fc6e69b5 check Linux bridge status before remove it (Cherry-picked from commit a33f0e7bdd) 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 4b8d636ce6)
2013-10-31 11:37:25 +01:00
Hugo Trippaers 9d2271d115 Revert "fixed m2eclipse error" because it breaks packaging
This reverts commit 5bcd8280fd.
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 5d9fa5d42e 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
Min Chen 49dd7289c0 CLOUDSTACK-4468:template created from snapshot is destroyed once we
restart management server.
2013-08-26 11:58:53 -07:00
Toshiaki Hatano 914e7c4542 Revert "CLOUDSTACK-2328: Linux native VXLAN support on KVM hypervisor"
This reverts commit 34ae32e0c2.
2013-08-24 07:12:23 +00:00
Toshiaki Hatano 34ae32e0c2 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:
- 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"
2013-08-24 01:39:11 +00:00
Wido den Hollander fb9ceba93b CLOUDSTACK-4424: Download RBD volume created from snapshot
This failed due to a RAW -> QCOW2 conversion (again).

The current code still makes to much assumptions about everything always
being QCOW2 while that is not always true.
2013-08-23 16:17:22 +02:00
Rajesh Battala 61c5b4bf75 fix for kvm test failure
(cherry picked from commit 6c593b0b16)
2013-08-20 20:14:53 +05:30
Nitin Mehta e6b53e5529 CLOUDSTACK-4386
KVM - Create template from volume
Vmware - Create template from volume / Create template from snapshot
send the physical size in the copycommand which accordingly will populate template store ref and the usage_event tables with the right physical size
Signed off by : nitin mehta<nitin.mehta@citrix.com>
2013-08-20 19:21:32 +05:30
Edison Su d89667ed47 fix unit test 2013-08-19 15:26:11 -07:00
Edison Su 3c098c0876 CLOUDSTACK-4338: fix NPE if create volume failed 2013-08-19 15:25:46 -07:00
Edison Su a7f3e1ec97 CLOUDSTACK-4300: possible fix: cputune feature is only available after 0.9.0, so start vm can fail on rhel 6.1 2013-08-19 15:24:56 -07:00
Edison Su 90388ce77e CLOUDSTACK-4315: add code to clean up libvirt data structure after plug/unplug, that's the only thing I can do to fix this kind of libvirt issue 2013-08-14 16:59:07 -07:00
Edison Su dd6b245221 CLOUDSTACK-4318: clean up snapshot stored in staging area, after backup snapshot to object store 2013-08-14 14:59:25 -07:00
Edison Su 374de76dae CLOUDSTACK-4324: need to clean up snapshot_store_ref, if creating snapshot failed. 2013-08-14 14:59:19 -07:00
Wido den Hollander 3c35faaf5a CLOUDSTACK-4278: Fix resizing RBD volumes
Although libvirt supports resizing RBD volumes (and other formats) the
Java bindings (libvirt-java) don't.

Right now we use the Java bindings for librbd to handle the resizing for us,
but in the future this should be done by libvirt rather then these
Java bindings.
2013-08-14 16:15:09 +02:00
Wido den Hollander d7f738fb64 rbd: When the template is a RAW image, do not use a temp file when deploying 2013-08-14 13:28:08 +02:00
Wei Zhou c3bc9d65dd Remove unused method deleteVbdByPath from KVM storage classes 2013-08-13 23:51:05 +02:00
Wido den Hollander 04f378bcff CLOUDSTACK-4114: Use RAW disk images for RBD instead of QCOW2 2013-08-13 16:14:45 +02:00
Hugo Trippaers d57796b94f Fix XML validation errors 2013-08-13 08:25:45 +02:00
Edison Su 1a6b7d6714 CLOUDSTACK-4216: fix extract volume for kvm 2013-08-12 17:20:15 -07:00
Edison Su 9a89fd94fc CLOUDSTACK-4211: fix s3 on kvm 2013-08-12 17:20:09 -07:00
JijunLiu 8d53887cec add doc for kvm cpu model
Signed-off-by: Wei Zhou <w.zhou@leaseweb.com>
2013-08-12 15:19:25 +02:00
Wei Zhou 6d86af85ba CLOUDSTACK-2729: increase waiting timeout for global file lock to 300 seconds 2013-08-09 08:58:46 +02:00
Edison Su ec2eafdfde CLOUDSTACK-3538: if passcmdline succeed, don't need to retry again, and increase the retry to 5 minutes at most 2013-08-08 17:21:38 -07:00
Wei Zhou b2ed632396 CLOUDSTACK-2729: use spd.getTargetPath instead of mount path to fix issue on local storage 2013-08-08 16:38:07 +02:00
Edison Su e115ee4026 CLOUDSTACK-3535: still maintain stop agent wont trigger HA 2013-08-07 14:43:16 -07:00
Edison Su 5b0314fff9 CLOUDSTACK-3535: add kvminvestigator to investirage kvm host
Conflicts:

	plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java
2013-08-07 11:44:19 -07:00