mirror of
https://github.com/apache/cloudstack.git
synced 2025-11-02 20:02:29 +01:00
Added support for PowerFlex/ScaleIO (v3.5 onwards) storage pool as a primary storage in CloudStack (for KVM hypervisor) and enabled VM/Volume operations on that pool (using pool tag). Please find more details in the FS here: https://cwiki.apache.org/confluence/x/cDl4CQ Documentation PR: apache/cloudstack-documentation#169 This enables support for PowerFlex/ScaleIO (v3.5 onwards) storage pool as a primary storage in CloudStack Other improvements addressed in addition to PowerFlex/ScaleIO support: - Added support for config drives in host cache for KVM => Changed configuration "vm.configdrive.primarypool.enabled" scope from Global to Zone level => Introduced new zone level configuration "vm.configdrive.force.host.cache.use" (default: false) to force host cache for config drives => Introduced new zone level configuration "vm.configdrive.use.host.cache.on.unsupported.pool" (default: true) to use host cache for config drives when storage pool doesn't support config drive => Added new parameter "host.cache.location" (default: /var/cache/cloud) in KVM agent.properties for specifying the host cache path and create config drives on the "/config" directory on the host cache path => Maintain the config drive location and use it when required on any config drive operation (migrate, delete) - Detect virtual size from the template URL while registering direct download qcow2 (of KVM hypervisor) templates - Updated full deployment destination for preparing the network(s) on VM start - Propagate the direct download certificates uploaded to the newly added KVM hosts - Discover the template size for direct download templates using any available host from the zones specified on template registration => When zones are not specified while registering template, template size discovery is performed using any available host, which is picked up randomly from one of the available zones - Release the VM resources when VM is sync-ed to Stopped state on PowerReportMissing (after graceful period) - Retry VM deployment/start when the host cannot grant access to volume/template - Mark never-used or downloaded templates as Destroyed on deletion, without sending any DeleteCommand => Do not trigger any DeleteCommand for never-used or downloaded templates as these doesn't exist and cannot be deleted from the datastore - Check the router filesystem is writable or not, before performing health checks => Introduce a new test "filesystem.writable.test" to check the filesystem is writable or not => The router health checks keeps the config info at "/var/cache/cloud" and updates the monitor results at "/root" for health checks, both are different partitions. So, test at both the locations. => Added new script: "filesystem_writable_check.py" at /opt/cloud/bin/ to check the filesystem is writable or not - Fixed NPE issue, template is null for DATA disks. Copy template to target storage for ROOT disk (with template id), skip DATA disk(s) * Addressed some issues for few operations on PowerFlex storage pool. - Updated migration volume operation to sync the status and wait for migration to complete. - Updated VM Snapshot naming, for uniqueness in ScaleIO volume name when more than one volume exists in the VM. - Added sync lock while spooling managed storage template before volume creation from the template (non-direct download). - Updated resize volume error message string. - Blocked the below operations on PowerFlex storage pool: -> Extract Volume -> Create Snapshot for VMSnapshot * Added the PowerFlex/ScaleIO client connection pool to manage the ScaleIO gateway clients, which uses a single gateway client per Powerflex/ScaleIO storage pool and renews it when the session token expires. - The token is valid for 8 hours from the time it was created, unless there has been no activity for 10 minutes. Reference: https://cpsdocs.dellemc.com/bundle/PF_REST_API_RG/page/GUID-92430F19-9F44-42B6-B898-87D5307AE59B.html Other fixes included: - Fail the VM deployment when the host specified in the deployVirtualMachine cmd is not in the right state (i.e. either Resource State is not Enabled or Status is not Up) - Use the physical file size of the template to check the free space availability on the host, while downloading the direct download templates. - Perform basic tests (for connectivity and file system) on router before updating the health check config data => Validate the basic tests (connectivity and file system check) on router => Cleanup the health check results when router is destroyed * Updated PowerFlex/ScaleIO storage plugin version to 4.16.0.0 * UI Changes to support storage plugin for PowerFlex/ScaleIO storage pool. - PowerFlex pool URL generated from the UI inputs(Gateway, Username, Password, Storage Pool) when adding "PowerFlex" Primary Storage - Updated protocol to "custom" for PowerFlex provider - Allow VM Snapshot for stopped VM on KVM hypervisor and PowerFlex/ScaleIO storage pool and Minor improvements in PowerFlex/ScaleIO storage plugin code * Added support for PowerFlex/ScaleIO volume migration across different PowerFlex storage instances. - findStoragePoolsForMigration API returns PowerFlex pool(s) of different instance as suitable pool(s), for volume(s) on PowerFlex storage pool. - Volume(s) with snapshots are not allowed to migrate to different PowerFlex instance. - Volume(s) of running VM are not allowed to migrate to other PowerFlex storage pools. - Volume migration from PowerFlex pool to Non-PowerFlex pool, and vice versa are not supported. * Fixed change service offering smoke tests in test_service_offerings.py, test_vm_snapshots.py * Added the PowerFlex/ScaleIO volume/snapshot name to the paths of respective CloudStack resources (Templates, Volumes, Snapshots and VM Snapshots) * Added new response parameter “supportsStorageSnapshot” (true/false) to volume response, and Updated UI to hide the async backup option while taking snapshot for volume(s) with storage snapshot support. * Fix to remove the duplicate zone wide pools listed while finding storage pools for migration * Updated PowerFlex/ScaleIO volume migration checks and rollback migration on failure * Fixed the PowerFlex/ScaleIO volume name inconsistency issue in the volume path after migration, due to rename failure
224 lines
8.1 KiB
XML
Executable File
224 lines
8.1 KiB
XML
Executable File
<!--
|
|
Licensed to the Apache Software Foundation (ASF) under one
|
|
or more contributor license agreements. See the NOTICE file
|
|
distributed with this work for additional information
|
|
regarding copyright ownership. The ASF licenses this file
|
|
to you under the Apache License, Version 2.0 (the
|
|
"License"); you may not use this file except in compliance
|
|
with the License. You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing,
|
|
software distributed under the License is distributed on an
|
|
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
KIND, either express or implied. See the License for the
|
|
specific language governing permissions and limitations
|
|
under the License.
|
|
-->
|
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
|
<modelVersion>4.0.0</modelVersion>
|
|
<artifactId>cloudstack-plugins</artifactId>
|
|
<name>Apache CloudStack Plugin POM</name>
|
|
<packaging>pom</packaging>
|
|
<parent>
|
|
<groupId>org.apache.cloudstack</groupId>
|
|
<artifactId>cloudstack</artifactId>
|
|
<version>4.16.0.0-SNAPSHOT</version>
|
|
</parent>
|
|
<build>
|
|
<plugins>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-checkstyle-plugin</artifactId>
|
|
<executions>
|
|
<execution>
|
|
<id>cloudstack-checkstyle</id>
|
|
<phase>none</phase>
|
|
<inherited>false</inherited>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
</plugins>
|
|
</build>
|
|
<modules>
|
|
<!-- keep in alphabetic order -->
|
|
<module>acl/dynamic-role-based</module>
|
|
<module>acl/static-role-based</module>
|
|
<module>acl/project-role-based</module>
|
|
|
|
<module>affinity-group-processors/explicit-dedication</module>
|
|
<module>affinity-group-processors/host-affinity</module>
|
|
<module>affinity-group-processors/host-anti-affinity</module>
|
|
|
|
<module>alert-handlers/snmp-alerts</module>
|
|
<module>alert-handlers/syslog-alerts</module>
|
|
|
|
<module>api/discovery</module>
|
|
<module>api/rate-limit</module>
|
|
<module>api/solidfire-intg-test</module>
|
|
|
|
<module>backup/dummy</module>
|
|
|
|
<module>ca/root-ca</module>
|
|
|
|
<module>database/quota</module>
|
|
|
|
<module>dedicated-resources</module>
|
|
|
|
<module>deployment-planners/implicit-dedication</module>
|
|
<module>deployment-planners/user-concentrated-pod</module>
|
|
<module>deployment-planners/user-dispersing</module>
|
|
|
|
<module>event-bus/inmemory</module>
|
|
<module>event-bus/kafka</module>
|
|
<module>event-bus/rabbitmq</module>
|
|
|
|
<module>ha-planners/skip-heurestics</module>
|
|
|
|
<module>host-allocators/random</module>
|
|
|
|
<module>hypervisors/baremetal</module>
|
|
<module>hypervisors/hyperv</module>
|
|
<module>hypervisors/kvm</module>
|
|
<module>hypervisors/ovm3</module>
|
|
<module>hypervisors/ovm</module>
|
|
<module>hypervisors/ucs</module>
|
|
<module>hypervisors/xenserver</module>
|
|
|
|
<module>integrations/cloudian</module>
|
|
<module>integrations/prometheus</module>
|
|
<module>integrations/kubernetes-service</module>
|
|
|
|
<module>metrics</module>
|
|
|
|
<module>network-elements/bigswitch</module>
|
|
<module>network-elements/dns-notifier</module>
|
|
<module>network-elements/juniper-contrail</module>
|
|
<module>network-elements/elastic-loadbalancer</module>
|
|
<module>network-elements/globodns</module>
|
|
<module>network-elements/internal-loadbalancer</module>
|
|
<module>network-elements/netscaler</module>
|
|
<module>network-elements/nicira-nvp</module>
|
|
<module>network-elements/opendaylight</module>
|
|
<module>network-elements/ovs</module>
|
|
<module>network-elements/palo-alto</module>
|
|
<module>network-elements/stratosphere-ssp</module>
|
|
<module>network-elements/brocade-vcs</module>
|
|
<module>network-elements/vxlan</module>
|
|
|
|
<module>outofbandmanagement-drivers/ipmitool</module>
|
|
<module>outofbandmanagement-drivers/nested-cloudstack</module>
|
|
<module>outofbandmanagement-drivers/redfish</module>
|
|
|
|
<module>storage/image/default</module>
|
|
<module>storage/image/s3</module>
|
|
<module>storage/image/sample</module>
|
|
<module>storage/image/swift</module>
|
|
<module>storage/volume/cloudbyte</module>
|
|
<module>storage/volume/datera</module>
|
|
<module>storage/volume/default</module>
|
|
<module>storage/volume/nexenta</module>
|
|
<module>storage/volume/sample</module>
|
|
<module>storage/volume/solidfire</module>
|
|
<module>storage/volume/scaleio</module>
|
|
|
|
<module>storage-allocators/random</module>
|
|
|
|
<module>user-authenticators/ldap</module>
|
|
<module>user-authenticators/md5</module>
|
|
<module>user-authenticators/pbkdf2</module>
|
|
<module>user-authenticators/plain-text</module>
|
|
<module>user-authenticators/saml2</module>
|
|
<module>user-authenticators/sha256salted</module>
|
|
</modules>
|
|
<dependencies>
|
|
<dependency>
|
|
<groupId>org.apache.cloudstack</groupId>
|
|
<artifactId>cloud-server</artifactId>
|
|
<version>${project.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.cloudstack</groupId>
|
|
<artifactId>cloud-api</artifactId>
|
|
<version>${project.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.cloudstack</groupId>
|
|
<artifactId>cloud-utils</artifactId>
|
|
<version>${project.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.cloudstack</groupId>
|
|
<artifactId>cloud-framework-config</artifactId>
|
|
<version>${project.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.cloudstack</groupId>
|
|
<artifactId>cloud-api</artifactId>
|
|
<version>${project.version}</version>
|
|
<type>test-jar</type>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
</dependencies>
|
|
<profiles>
|
|
<profile>
|
|
<id>f5</id>
|
|
<activation>
|
|
<property>
|
|
<name>noredist</name>
|
|
</property>
|
|
</activation>
|
|
<modules>
|
|
<module>network-elements/f5</module>
|
|
</modules>
|
|
</profile>
|
|
<profile>
|
|
<id>srx</id>
|
|
<activation>
|
|
<property>
|
|
<name>noredist</name>
|
|
</property>
|
|
</activation>
|
|
<modules>
|
|
<module>network-elements/juniper-srx</module>
|
|
</modules>
|
|
</profile>
|
|
<profile>
|
|
<id>vmware</id>
|
|
<activation>
|
|
<property>
|
|
<name>noredist</name>
|
|
</property>
|
|
</activation>
|
|
<modules>
|
|
<module>api/vmware-sioc</module>
|
|
<module>backup/veeam</module>
|
|
<module>hypervisors/vmware</module>
|
|
<module>network-elements/cisco-vnmc</module>
|
|
</modules>
|
|
</profile>
|
|
<profile>
|
|
<id>mysqlha</id>
|
|
<activation>
|
|
<property>
|
|
<name>noredist</name>
|
|
</property>
|
|
</activation>
|
|
<modules>
|
|
<module>database/mysql-ha</module>
|
|
</modules>
|
|
</profile>
|
|
<profile>
|
|
<id>simulator</id>
|
|
<activation>
|
|
<property>
|
|
<name>simulator</name>
|
|
</property>
|
|
</activation>
|
|
<modules>
|
|
<module>hypervisors/simulator</module>
|
|
</modules>
|
|
</profile>
|
|
</profiles>
|
|
</project> |