[Engine-devel] DC Compat Version Vs Storage Format Version
Itamar Heim
iheim at redhat.com
Fri Mar 1 08:28:51 UTC 2013
On 01/03/2013 09:04, Deepak C Shetty wrote:
> Hi All,
> I am seeing an error while testing the WIP engine patches for
> supporting GLUSTERFS_DOMAIN @
>
> http://gerrit.ovirt.org/#/q/project:ovirt-engine+branch:master+topic:glusterfs,n,z
>
> (Copyign Sharad, who is the author for the patch series)
> Note my VDSM host has VDSM running which has support for
> GLUSTERFS_DOMAIN (its already upstream in VDSM)
>
> I get the below error in GUI while trying to create a new Storage Domain
> of type Data/GlusterFS
> *Error: Cannot add Storage. Storage format V3 is not supported on the
> selected host version." *
>
> I cannot change storgae format in the GUI, its fixed at V3
> DC is of type GlusterFS and so is cluster, compat version is 3.3
>
> I have few questions ...
>
> 1) How are compat version and storage format related ?
storage formats are supported for specific compat version.
>
> 2) What does 'host version' in the above error msg mean. It doesn't tell
> clearly why/what the incompatibility is about
host version is probably the supported cluster levels it has.
>
> 3) What needs to be done in the engine to make this work ?
it seems while 3.3 cluster version was added, not all config keys are
available for it yet (yair/eli?)
for example:
backend/manager/dbscripts/upgrade/pre_upgrade/0000_config.sql:select
fn_db_add_config_value('SupportedStorageFormats','0,2,3','3.2');
is missing for 3.3 cluster level.
Also, specifcially, need to review the logic of this method when adding
a new type of storage domain. NFS is V0/V1 for backward compatibility
and V3. but GlusterFS should probably only be V3:
in AddStorageDomainCommand:
private boolean isStorageFormatCompatibleWithDomain() {
StorageFormatType storageFormat =
getStorageDomain().getStorageFormat();
StorageType storageType = getStorageDomain().getStorageType();
StorageDomainType storageDomainFunction =
getStorageDomain().getStorageDomainType();
boolean isBlockStorage = storageType == StorageType.ISCSI ||
storageType == StorageType.FCP;
boolean isDataStorageDomain = storageDomainFunction ==
StorageDomainType.Data;
// V2 is applicable only for block data storage domains
if (storageFormat == StorageFormatType.V2 && (!isBlockStorage
|| !isDataStorageDomain)) {
return false;
}
// V3 is applicable only for data storage domains
if (storageFormat == StorageFormatType.V3 &&
!isDataStorageDomain) {
return false;
}
return true;
}
More information about the Devel
mailing list