Hi Praveen,

we have come a little bit further with our research.
To answer your questions, I have investigated this case for data volumes
so far.

The usage records which don't have the usageid point to (old) volume
table records of migrated volumes (via the volume id in the description
field).
These records have NULL in their uuid and the state is Expunged. It
looks like CS creates a new record for a mirgrated volume and
keeps the old one but sets uuid to NULL. Unfortunately there are no new
usage records for these
new volume records. This leads to the situation that volumes cannot be
charged any more after migration.

Here is an example:

I copied from the CS web page a virtualmachine name, a data volume name
and the uuid of the volume.

In the database I find two volumes with this name, one has NULL for
uuid, the other one has a valid uuid:

mysql> select * from cloud.volumes where name like 'xxxxx-data01'\G
*************************** 1. row ***************************
                        *id: 747*
                account_id: 78
                 domain_id: 1
                   pool_id: 5
              last_pool_id: NULL
               instance_id: 581
                 device_id: 1
                      name: xxxxx-data01
*                      uuid: NULL*
                      size: 214748364800
                    folder: NULL
                      path: f303f233-29ac-4b3f-9524-16c7e901dbdc
                    pod_id: NULL
            data_center_id: 2
                iscsi_name: NULL
                   host_ip: NULL
               volume_type: DATADISK
                 pool_type: NULL
          disk_offering_id: 6
               template_id: NULL
first_snapshot_backup_uuid: NULL
               recreatable: 0
                   created: 2014-08-27 06:49:25
                  attached: 2014-09-24 07:29:45
                   updated: 2015-06-10 08:53:15
                   removed: 2015-06-10 08:53:15
                     state: Expunged
                chain_info: NULL
              update_count: 8
                 disk_type: NULL
    vm_snapshot_chain_size: NULL
                    iso_id: NULL
            display_volume: 1
                    format: QCOW2
                  min_iops: NULL
                  max_iops: NULL
             hv_ss_reserve: NULL
*************************** 2. row ***************************
                        *id: 1213*
                account_id: 78
                 domain_id: 1
                   pool_id: 8
              last_pool_id: 5
               instance_id: 581
                 device_id: 1
                      name: xxxxx-data01
*                      uuid: a1a3668b-14cf-490e-bcbe-ef0d4f225574*
                      size: 214748364800
                    folder: cloudstack01
                      path: e886bea4-4c94-43a3-9b17-e712c130f1a7
                    pod_id: 2
            data_center_id: 2
                iscsi_name: NULL
                   host_ip: NULL
               volume_type: DATADISK
                 pool_type: NULL
          disk_offering_id: 6
               template_id: NULL
first_snapshot_backup_uuid: NULL
               recreatable: 0
                   created: 2015-06-10 06:45:53
                  attached: 2014-09-24 07:29:45
                   updated: 2015-06-10 08:53:12
                   removed: NULL
                     state: Ready
                chain_info: NULL
              update_count: 2
                 disk_type: NULL
    vm_snapshot_chain_size: NULL
                    iso_id: NULL
            display_volume: 1
                    format: RAW
                  min_iops: NULL
                  max_iops: NULL
             hv_ss_reserve: NULL
2 rows in set (0.00 sec)


If I use the table ID of the first record (747) and search for usage
records I find all old records and all miss the usageid:

🐵 > list usagerecords type=6
projectid=4865e6c6-b1ff-48ef-b908-1f5fde7d7b6e startdate=2015-06-01
enddate=2015-06-24  | grep -A 10 'Volume Id: *747*'
description = Volume Id: 747 usage time (DiskOffering: 6)
domainid = 42541338-8704-4a6d-8b45-7f7eb2996e06
enddate = 2015-06-23'T'23:59:59+00:00
offeringid = 1b618634-73cf-4a95-99ba-1f6e536a6051
project = xxxxx
projectid = 4865e6c6-b1ff-48ef-b908-1f5fde7d7b6e
rawusage = 24
size = 214748364800
startdate = 2015-06-23'T'00:00:00+00:00
usage = 24 Hrs
usagetype = 6
--
description = Volume Id: 747 usage time (DiskOffering: 6)
domainid = 42541338-8704-4a6d-8b45-7f7eb2996e06
enddate = 2015-06-22'T'23:59:59+00:00
offeringid = 1b618634-73cf-4a95-99ba-1f6e536a6051
project = xxxxx
projectid = 4865e6c6-b1ff-48ef-b908-1f5fde7d7b6e
rawusage = 24
size = 214748364800
startdate = 2015-06-22'T'00:00:00+00:00
usage = 24 Hrs
usagetype = 6
--
description = Volume Id: 747 usage time (DiskOffering: 6)
domainid = 42541338-8704-4a6d-8b45-7f7eb2996e06
enddate = 2015-06-21'T'23:59:59+00:00
offeringid = 1b618634-73cf-4a95-99ba-1f6e536a6051
project = xxxxx
projectid = 4865e6c6-b1ff-48ef-b908-1f5fde7d7b6e
rawusage = 24
size = 214748364800
startdate = 2015-06-21'T'00:00:00+00:00
usage = 24 Hrs
usagetype = 6
--
description = Volume Id: 747 usage time (DiskOffering: 6)
domainid = 42541338-8704-4a6d-8b45-7f7eb2996e06
enddate = 2015-06-20'T'23:59:59+00:00
offeringid = 1b618634-73cf-4a95-99ba-1f6e536a6051
project = xxxxx
projectid = 4865e6c6-b1ff-48ef-b908-1f5fde7d7b6e
rawusage = 24
size = 214748364800
startdate = 2015-06-20'T'00:00:00+00:00
usage = 24 Hrs
usagetype = 6
--
description = Volume Id: 747 usage time (DiskOffering: 6)
domainid = 42541338-8704-4a6d-8b45-7f7eb2996e06
enddate = 2015-06-19'T'23:59:59+00:00
offeringid = 1b618634-73cf-4a95-99ba-1f6e536a6051
project = xxxxx
projectid = 4865e6c6-b1ff-48ef-b908-1f5fde7d7b6e
rawusage = 24
size = 214748364800
startdate = 2015-06-19'T'00:00:00+00:00
usage = 24 Hrs
usagetype = 6
--
description = Volume Id: 747 usage time (DiskOffering: 6)
domainid = 42541338-8704-4a6d-8b45-7f7eb2996e06
enddate = 2015-06-18'T'23:59:59+00:00
offeringid = 1b618634-73cf-4a95-99ba-1f6e536a6051
project = xxxxx
projectid = 4865e6c6-b1ff-48ef-b908-1f5fde7d7b6e
rawusage = 24
size = 214748364800
startdate = 2015-06-18'T'00:00:00+00:00
usage = 24 Hrs
usagetype = 6
--
description = Volume Id: 747 usage time (DiskOffering: 6)
domainid = 42541338-8704-4a6d-8b45-7f7eb2996e06
enddate = 2015-06-17'T'23:59:59+00:00
offeringid = 1b618634-73cf-4a95-99ba-1f6e536a6051
project = xxxxx
projectid = 4865e6c6-b1ff-48ef-b908-1f5fde7d7b6e
rawusage = 24
size = 214748364800
startdate = 2015-06-17'T'00:00:00+00:00
usage = 24 Hrs
usagetype = 6
--
description = Volume Id: 747 usage time (DiskOffering: 6)
domainid = 42541338-8704-4a6d-8b45-7f7eb2996e06
enddate = 2015-06-16'T'23:59:59+00:00
offeringid = 1b618634-73cf-4a95-99ba-1f6e536a6051
project = xxxxx
projectid = 4865e6c6-b1ff-48ef-b908-1f5fde7d7b6e
rawusage = 24
size = 214748364800
startdate = 2015-06-16'T'00:00:00+00:00
usage = 24 Hrs
usagetype = 6
--
description = Volume Id: 747 usage time (DiskOffering: 6)
domainid = 42541338-8704-4a6d-8b45-7f7eb2996e06
enddate = 2015-06-15'T'23:59:59+00:00
offeringid = 1b618634-73cf-4a95-99ba-1f6e536a6051
project = xxxxx
projectid = 4865e6c6-b1ff-48ef-b908-1f5fde7d7b6e
rawusage = 24
size = 214748364800
startdate = 2015-06-15'T'00:00:00+00:00
usage = 24 Hrs
usagetype = 6


Now the real problem comes:

We have to charge the migrated volumes of course and therefor I searched
for the corresponding usage records. First
I tried to find the id of the table record (*1213*) and then I tried to
find the uuid. Both have no result, so billing is not possible:
🐵 > list usagerecords type=6
projectid=4865e6c6-b1ff-48ef-b908-1f5fde7d7b6e startdate=2015-06-01
enddate=2015-06-24  | grep -A 10 'Volume Id: *1213*'
🐵 > list usagerecords type=6
projectid=4865e6c6-b1ff-48ef-b908-1f5fde7d7b6e startdate=2015-06-01
enddate=2015-06-24  | grep 'a1a3668b-14cf-490e-bcbe-ef0d4f225574'
🐵 >

But this volume is available through the API nevertheless as long as you
use the volume name:
🐵 > list volumes listall=true
projectid=4865e6c6-b1ff-48ef-b908-1f5fde7d7b6e name=xxxxx-data01
count = 1
volume:
id = a1a3668b-14cf-490e-bcbe-ef0d4f225574
name = xxxxx-data01
attached = 2014-09-24T09:29:45+0200
created = 2015-06-10T08:45:53+0200
destroyed = False
deviceid = 1
diskofferingdisplaytext = Custom Disk
diskofferingid = 1b618634-73cf-4a95-99ba-1f6e536a6051
diskofferingname = Custom
displayvolume = True
domain = ROOT
domainid = a7b69499-a912-11e3-a7c1-5254005b13af
hypervisor = KVM
isextractable = True
path = e886bea4-4c94-43a3-9b17-e712c130f1a7
project = xxxxx
projectid = 4865e6c6-b1ff-48ef-b908-1f5fde7d7b6e
quiescevm = False
size = 214748364800
state = Ready
storage = ceph-cloudstack01
storageid = ccfacebe-19c3-38f4-a161-2bd9e4ac70a9
storagetype = shared
tags:
type = DATADISK
virtualmachineid = 2360e425-1171-4ad7-a6b3-eec403486b19
vmdisplayname = xxxxx
vmname = xxxxx
vmstate = Running
zoneid = 10992277-e637-4795-ab02-be57cca0c66a
zonename = EU-GER-01


How can we get usage records of migrated volumes?
If this is a database inconsistancy, or even a bug, is there a way to
repair it?

thx
Norbert


-----Ursprüngliche Nachricht-----
Von: Praveen B [mailto:pbprave...@gmail.com]
Gesendet: Dienstag, 23. Juni 2015 08:53
An: users@cloudstack.apache.org
Betreff: Re: usageid missing

Hi Ingo,

We haven't seen this type of issue anytime before. Need to analyze more
on the issue.

Can you upload output of usage records somewhere and provide me the URL
link to access it?

There could be multiple volumes in CloudStack
    1) Root volumes 2) Data Volumes 3) Volumes created from Snapshots 4)
Uploaded volumes...etc.

You need to find out if there is any specific pattern for the missing
usage id volumes. That will help us to understand the issue behaviour.

Thaks,
Praveen Kumar,
Founder,PSI Cloud Solutions,
psiclouds.com

On Tue, Jun 23, 2015 at 2:51 AM, Jochim, Ingo <ingo.joc...@bautzen-it.de>
wrote:

> I'm using the usagerecords to get usage of volumes. Unfortunately for
> most of my usagerecords of volumes the usageid is missing.
> For those I have a usageid I can use this to the the volume (it's the
> same as the volume id)
>
> Why are there so many usageid's missing?
>
> We're running 4.4.
>
> Thanks and regards,
> Ingo
>
> --
> This email was Virus checked by UTM 9. http://www.sophos.com
>

--
This email was Virus checked by UTM 9. http://www.sophos.com

Reply via email to