Public bug reported: When creating the allocation for the instance, we lookup the flavor to know the disk sizes for root, ephemeral and gb and we basically sum them.
https://github.com/openstack/nova/blob/7d04c78c1e2c26125eff5b1a8543b1ac5d027107/nova/scheduler/client/report.py#L129-L131 Unfortunately, since both root and ephemeral size are expressed in GB while swap is expressed in MB, the sum is not good. See how the DiskFilter works for accounting resources : https://github.com/openstack/nova/blob/3cafa7f5bd0775b8ba49080226c03f8a91468d7d/nova/scheduler/filters/disk_filter.py#L36-L38 We should change the logic to ceil to the next GB if modulo(root + ephemeral * 1024 + swap / 1024) is not rounded to 0 since we want to count allocations as the Inventory only counts by GB. That's suboptimal and a long-term solution would be to report inventories in bytes (as the smallest attribute) but that's a big change so probably requiring a BP. ** Affects: nova Importance: High Status: Confirmed ** Tags: compute low-hanging-fruit placement resource-tracker ** Description changed: When creating the allocation for the instance, we lookup the flavor to know the disk sizes for root, ephemeral and gb and we basically sum them. https://github.com/openstack/nova/blob/7d04c78c1e2c26125eff5b1a8543b1ac5d027107/nova/scheduler/client/report.py#L129-L131 Unfortunately, since both root and ephemeral size are expressed in GB while swap is expressed in MB, the sum is not good. See how the DiskFilter works for accounting resources : https://github.com/openstack/nova/blob/3cafa7f5bd0775b8ba49080226c03f8a91468d7d/nova/scheduler/filters/disk_filter.py#L36-L38 We should change the logic to ceil to the next GB if modulo(root + ephemeral * 1024 + swap / 1024) is not rounded to 0 since we want to count allocations as the Inventory only counts by GB. That's suboptimal and a long-term solution would be to report - inventories in MB but that's a big change so probably requiring a BP. + inventories in bytes (as the smallest attribute) but that's a big change + so probably requiring a BP. -- You received this bug notification because you are a member of Yahoo! Engineering Team, which is subscribed to OpenStack Compute (nova). https://bugs.launchpad.net/bugs/1659266 Title: Disk allocation for instance is not good with swap Status in OpenStack Compute (nova): Confirmed Bug description: When creating the allocation for the instance, we lookup the flavor to know the disk sizes for root, ephemeral and gb and we basically sum them. https://github.com/openstack/nova/blob/7d04c78c1e2c26125eff5b1a8543b1ac5d027107/nova/scheduler/client/report.py#L129-L131 Unfortunately, since both root and ephemeral size are expressed in GB while swap is expressed in MB, the sum is not good. See how the DiskFilter works for accounting resources : https://github.com/openstack/nova/blob/3cafa7f5bd0775b8ba49080226c03f8a91468d7d/nova/scheduler/filters/disk_filter.py#L36-L38 We should change the logic to ceil to the next GB if modulo(root + ephemeral * 1024 + swap / 1024) is not rounded to 0 since we want to count allocations as the Inventory only counts by GB. That's suboptimal and a long-term solution would be to report inventories in bytes (as the smallest attribute) but that's a big change so probably requiring a BP. To manage notifications about this bug go to: https://bugs.launchpad.net/nova/+bug/1659266/+subscriptions -- Mailing list: https://launchpad.net/~yahoo-eng-team Post to : [email protected] Unsubscribe : https://launchpad.net/~yahoo-eng-team More help : https://help.launchpad.net/ListHelp

