在ceph os中可以明显看出ceph 目前支持的存储类型如下:
ObjectStore *ObjectStore::create(CephContext *cct,
const string& type,
const string& data,
const string& journal,
osflagbits_t flags)
{
if (type == "filestore") {
return new FileStore(cct, data, journal, flags);
}
if (type == "memstore") {
return new MemStore(cct, data);
}
#if defined(WITH_BLUESTORE)
if (type == "bluestore") {
return new BlueStore(cct, data);
}
if (type == "random") {
if (rand() % 2) {
return new FileStore(cct, data, journal, flags);
} else {
return new BlueStore(cct, data);
}
}
#else
if (type == "random") {
return new FileStore(cct, data, journal, flags);
}
#endif
if (type == "kstore" &&
cct->check_experimental_feature_enabled("kstore")) {
return new KStore(cct, data);
}
return NULL;
}
分别是filestore/memstore/kstore 如果打开宏with_bluestore的话,还会有bluestore,其中如果指定的type是
random的话还可以增加filestore/bluestore混合使用,其实还有一个隐形的调用fusestore
其中memstore的API主要通过libpmem来对nvram等flash存储来管理
ceph中的存储用到的类
最新推荐文章于 2024-08-22 17:30:01 发布