ECS: Jednostka pojemności ECS różni się między interfejsem użytkownika a interfejsem API REST (GiB i GB)
Summary: Pojemność np. 10 GB wyświetlana przez svc_bucket jest najwyraźniej pobierana bezpośrednio do wyjścia pomiarowego interfejsu użytkownika (lub odwrotnie), czyli z tą samą wartością jest wyświetlana tylko z GiB. ...
Symptoms
Zanotuj jednostkę GB w poleceniach interfejsu wiersza poleceń i interfejsu API REST:
admin@ecsnode1:~> svc_bucket info chris-s3-bkt
svc_bucket v1.1.1 (svc_tools v2.20.0) Started 2024-11-22 15:51:33
Bucket ID chris-ns.chris-s3-bkt
Name chris-s3-bkt
Namespace chris-ns
Owner User chris-s3-user
Owner VDC Name VDC1
Owner zone/VDC ID urn:storageos:VirtualDataCenterData:8af5b9c3-9c0c-43b5-9402-14d181ade5bf
Keypool Hash ID 43344cc6ad534c4e600dc0a32d90e5104a8f718d99487938bf9f273f2100f248
Bucket Deletion Status None
Replication Group (vpool) Name local_vdc
Replication Group (vpool) ID urn:storageos:ReplicationGroupInfo:9eaa2c9d-4ed5-4f40-90f1-e347f8f3f3fd:global
Bucket Creation Date 2024-11-22 15:13:33 (1732288413155)
Temp Failed (TSO) False
API Type S3
FS Access Enabled False
Encryption Enabled False
Versioning State Disabled
ADO Enabled False
ADO Read-Only False
Object Lock Enabled False
Auto commit period (seconds) None
Enforce Retention False
Lifecycle Policy None
Keypool Policy None
Bucket ACL:
Type Affects Name
user file/dir chris-s3-user FULL_CONTROL
Object count 2
Total Object Size 11 GB
admin@ecsnode1:~>
admin@ecsnode1:~> svc_rest_cmd /object/billing/buckets/chris-ns/chris-s3-bkt/info | xmllint --format -
svc_rest_cmd 1.0.17
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<bucket_billing_info>
<total_size_deleted>0</total_size_deleted>
<total_objects_deleted>0</total_objects_deleted>
<name>chris-s3-bkt</name>
<uptodate_till>2023-06-15T18:25:45Z</uptodate_till>
<namespace>chris-ns</namespace>
<sample_time>2024-11-27T14:23:38Z</sample_time>
<TagSet/>
<total_mpu_parts>0</total_mpu_parts>
<total_mpu_size>0</total_mpu_size>
<total_objects>2</total_objects>
<total_size>11</total_size>
<total_size_unit>GB</total_size_unit>
<vpool_id>urn:storageos:ReplicationGroupInfo:9eaa2c9d-4ed5-4f40-90f1-e347f8f3f3fd:global</vpool_id>
</bucket_billing_info>
admin@ecsnode1:~>
Jednak sprawdzając informacje o pomiarach w interfejsie użytkownika, widzimy ten sam odczyt w GiB zamiast GB, co wydaje się nie być poprawne:

Jeśli najedziemy kursorem na 11,00 GiB, jest on wyświetlany w bajtach.
11 GB = 11 * 1000^3 = 11000000000 bajtów
11 GiB = 11 * 1024^3 = 11811160064 bajtów
Cause
Wartości zwracane w interfejsie użytkownika i wierszu polecenia to GiB. W wierszu polecenia jednostka jest wyświetlana jako GB zamiast GiB, co jest błędem.
Tak więc wartości GiB na stronie pomiaru są poprawne.
Resolution
Odczyt pojemności poleceń interfejsu wiersza polecenia lub interfejsu API REST ma wartość true i jest zgodny z odczytem pomiaru interfejsu użytkownika. Przyszła wersja kodu ECS naprawia jednostki pojemności interfejsu wiersza polecenia/interfejsu API REST z GB w GiB.