DAOS API (v2.1 - dev)
Loading...
Searching...
No Matches
daos_pool.h
1
9#ifndef __DAOS_POOL_H__
10#define __DAOS_POOL_H__
11
12#define daos_pool_connect daos_pool_connect2
13
14#if defined(__cplusplus)
15extern "C" {
16#endif
17
19typedef enum {
20 DAOS_TP_UNKNOWN,
22 DAOS_TP_HDD,
24 DAOS_TP_SSD,
26 DAOS_TP_PM,
28 DAOS_TP_VM,
29} daos_target_type_t;
30
32typedef enum {
33 DAOS_TS_UNKNOWN,
34 /* Not available */
35 DAOS_TS_DOWN_OUT,
36 /* Not available, may need rebuild */
37 DAOS_TS_DOWN,
38 /* Up */
39 DAOS_TS_UP,
40 /* Up and running */
41 DAOS_TS_UP_IN,
42 /* Intermediate state for pool map change */
43 DAOS_TS_NEW,
44 /* Being drained */
45 DAOS_TS_DRAIN,
46} daos_target_state_t;
47
49typedef struct {
51 int foo;
53
54
56enum daos_media_type_t {
57 DAOS_MEDIA_SCM = 0,
58 DAOS_MEDIA_NVME,
59 DAOS_MEDIA_MAX
60};
61
63struct daos_space {
65 uint64_t s_total[DAOS_MEDIA_MAX];
67 uint64_t s_free[DAOS_MEDIA_MAX];
68};
69
71typedef struct {
73 daos_target_type_t ta_type;
75 daos_target_state_t ta_state;
79 struct daos_space ta_space;
81
87 uint64_t ps_free_min[DAOS_MEDIA_MAX];
89 uint64_t ps_free_max[DAOS_MEDIA_MAX];
91 uint64_t ps_free_mean[DAOS_MEDIA_MAX];
93 uint32_t ps_ntargets;
95 uint32_t ps_padding;
96};
97
98enum daos_rebuild_state_t {
99 DRS_IN_PROGRESS = 0,
100 DRS_NOT_STARTED = 1,
101 DRS_COMPLETED = 2,
102};
103
107 uint32_t rs_version;
109 uint32_t rs_seconds;
111 int32_t rs_errno;
115 union {
116 int32_t rs_state;
117 int32_t rs_done;
118 };
121
132 uint64_t rs_obj_nr;
134 uint64_t rs_rec_nr;
135
137 uint64_t rs_size;
138};
139
151enum daos_pool_info_bit {
153 DPI_SPACE = 1ULL << 0,
155 DPI_REBUILD_STATUS = 1ULL << 1,
159 DPI_ENGINES_ENABLED = 1ULL << 2,
161 DPI_ALL = -1,
162};
163
167typedef struct {
169 uuid_t pi_uuid;
171 uint32_t pi_ntargets;
173 uint32_t pi_nnodes;
175 uint32_t pi_ndisabled;
177 uint32_t pi_map_ver;
179 uint32_t pi_leader;
181 uint64_t pi_bits;
183 struct daos_pool_space pi_space;
185 struct daos_rebuild_status pi_rebuild_st;
187
191 uuid_t pci_uuid;
193 char pci_label[DAOS_PROP_LABEL_MAX_LEN+1];
194};
195
196#define DAOS_SYS_NAME_MAX_LEN 127
197
222int
223daos_pool_connect(const char *pool, const char *sys, unsigned int flags,
225
240int
241daos_pool_disconnect(daos_handle_t poh, daos_event_t *ev);
242
243/*
244 * Handle API
245 */
246
267int
268daos_pool_local2global(daos_handle_t poh, d_iov_t *glob);
269
282int
283daos_pool_global2local(d_iov_t glob, daos_handle_t *poh);
284
323int
324daos_pool_query(daos_handle_t poh, d_rank_list_t **ranks, daos_pool_info_t *info,
325 daos_prop_t *pool_prop, daos_event_t *ev);
326
345int
346daos_pool_query_target(daos_handle_t poh, uint32_t tgt, d_rank_t rank,
348
366int
367daos_pool_list_attr(daos_handle_t poh, char *buffer, size_t *size,
368 daos_event_t *ev);
369
388int
389daos_pool_get_attr(daos_handle_t poh, int n, char const *const names[],
390 void *const buffers[], size_t sizes[], daos_event_t *ev);
391
404int
405daos_pool_set_attr(daos_handle_t poh, int n, char const *const names[],
406 void const *const values[], size_t const sizes[],
407 daos_event_t *ev);
408
427int
428daos_pool_del_attr(daos_handle_t poh, int n, char const *const names[],
429 daos_event_t *ev);
430
448int
449daos_pool_list_cont(daos_handle_t poh, daos_size_t *ncont,
450 struct daos_pool_cont_info *cbuf, daos_event_t *ev);
451
452#if defined(__cplusplus)
453}
454#endif
455
456#endif /* __DAOS_POOL_H__ */
char pci_label[DAOS_PROP_LABEL_MAX_LEN+1]
Definition daos_pool.h:193
uint32_t pi_nnodes
Definition daos_pool.h:173
uint32_t pi_leader
Definition daos_pool.h:179
uint32_t pi_map_ver
Definition daos_pool.h:177
uint64_t pi_bits
Definition daos_pool.h:181
uint32_t pi_ndisabled
Definition daos_pool.h:175
uint32_t pi_ntargets
Definition daos_pool.h:171
struct daos_space ps_space
Definition daos_pool.h:85
uint64_t ps_free_max[DAOS_MEDIA_MAX]
Definition daos_pool.h:89
uint32_t ps_padding
Definition daos_pool.h:95
uint32_t ps_ntargets
Definition daos_pool.h:93
uint64_t ps_free_mean[DAOS_MEDIA_MAX]
Definition daos_pool.h:91
uint64_t ps_free_min[DAOS_MEDIA_MAX]
Definition daos_pool.h:87
uint64_t rs_toberb_obj_nr
Definition daos_pool.h:130
uint64_t s_total[DAOS_MEDIA_MAX]
Definition daos_pool.h:65
uint64_t s_free[DAOS_MEDIA_MAX]
Definition daos_pool.h:67
daos_target_type_t ta_type
Definition daos_pool.h:73
daos_target_perf_t ta_perf
Definition daos_pool.h:77
daos_target_state_t ta_state
Definition daos_pool.h:75