
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:gluster...
(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; }