I've been experimenting with extending a pool but don't quite understand the results. Any insights would be most appreciated.
The cluster is running with DAOS v2.0.2 and consists of a client and a pair of servers/storage nodes. To simulate adding a server to the cluster, I created a pool by specifying the ranks associated with one of the servers. I.e.:
# dmg system query --verbose
Rank UUID Control Address Fault Domain State Reason
---- ---- --------------- ------------ ----- ------
0 654345f9-249c-48b1-b6dc-ec08dbf2aded x.150.0.3:10001 /d006 Joined
1 b384771a-ddbc-491a-8807-8d86544d7c2f x.150.0.4:10001 /d010
Joined
2 01c672cf-3365-476f-87ec-41a15a44e946 x.150.0.4:10001 /d010
Joined
3 93a8d382-b970-408a-9c21-e01c35265e77 x.150.0.3:10001 /d006
Joined
# dmg pool create --ranks=0,3 --size=500G kiddie
I used the pool extend command to simulate adding a server:
# dmg pool extend --ranks=1,2 kiddie
Extend command succeeded
My application queried the pool size before and after the extension using daos_pool_query( ... DPI_SPACE ...). The numbers below are the info.pi_space.ps_space values for (DAOS_MEDIA_SCM, DAOS_MEDIA_NVME).
before extend:
s_total(30000021504,470000000000) s_free(29994849224,434968621056)
after extend:
s_total(60000043008,940000000000) s_free(59994841512,869937672192)
The total pool sized doubled (good), but the used space (i.e., s_total - s_free) also doubled. Naively, I expected the used space to remain the same as the pool has a redundancy factor of zero. Doing some arithmetic on the above works out to the used space
being 35.036 GB before the expansion and 70.068 GB after. Note that, for the moment, I'm choosing to ignore that the used size is several orders of magnitude bigger that the data written (~600 KB).
Where did I goof in this methodology? TIA.
--chuck