/* * The osd map describes the current membership of the osd cluster and * specifies the mapping of objects to placement groups and placement * groups to (sets of) osds. That is, it completely specifies the * (desired) distribution of all data objects in the system at some * point in time. * * Each map version is identified by an epoch, which increases monotonically. * * The map can be updated either via an incremental map (diff) describing * the change between two successive epochs, or as a fully encoded map.
*/ struct ceph_pg {
uint64_t pool;
uint32_t seed;
};
int ceph_pg_compare(conststruct ceph_pg *lhs, conststruct ceph_pg *rhs); int ceph_spg_compare(conststruct ceph_spg *lhs, conststruct ceph_spg *rhs);
#define CEPH_POOL_FLAG_HASHPSPOOL (1ULL << 0) /* hash pg seed and pool id
together */ #define CEPH_POOL_FLAG_FULL (1ULL << 1) /* pool is full */ #define CEPH_POOL_FLAG_FULL_QUOTA (1ULL << 10) /* pool ran out of quota,
will set FULL too */ #define CEPH_POOL_FLAG_NEARFULL (1ULL << 11) /* pool is nearfull */
/* * 51-char inline_name is long enough for all cephfs and all but one * rbd requests: <imgname> in "<imgname>.rbd"/"rbd_id.<imgname>" can be * arbitrarily long (~PAGE_SIZE). It's done once during rbd map; all * other rbd requests fit into inline_name. * * Makes ceph_object_id 64 bytes on 64-bit.
*/ #define CEPH_OID_INLINE_LEN 52
/* * Both inline and external buffers have space for a NUL-terminator, * which is carried around. It's not required though - RADOS object * names don't have to be NUL-terminated and may contain NULs.
*/ struct ceph_object_id { char *name; char inline_name[CEPH_OID_INLINE_LEN]; int name_len;
};
struct workspace_manager { struct list_head idle_ws;
spinlock_t ws_lock; /* Number of free workspaces */ int free_ws; /* Total number of allocated workspaces */
atomic_t total_ws; /* Waiters for a free workspace */
wait_queue_head_t ws_wait;
};
union { struct { int len; int osds[];
} pg_temp, pg_upmap; struct { int osd;
} primary_temp; struct { int len; int from_to[][2];
} pg_upmap_items;
};
};
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.