ceph儲存 ceph Bluestore的架構
阿新 • • 發佈:2019-02-08
uint64_t size = 1048476 * 128;
string fn = get_temp_bdev(size);
BlueFS fs;
ASSERT_EQ(0, fs.add_block_device(0, fn));
fs.add_block_extent(0, 1048576, size - 1048576);
uuid_d fsid;
ASSERT_EQ(0, fs.mkfs(fsid));
ASSERT_EQ(0, fs.mount());
{
BlueFS::FileWriter *h;
ASSERT_EQ(0, fs.mkdir("dir" ));
ASSERT_EQ(0, fs.open_for_write("dir", "file", &h, false));
bufferlist bl;
bl.append("foo");
h->append(bl);
bl.append("bar");
h->append(bl);
bl.append("baz");
h->append(bl);
fs.fsync(h);
fs.close_writer(h);
}
{
BlueFS::FileReader *h;
ASSERT_EQ(0 , fs.open_for_read("dir", "file", &h));
bufferlist bl;
BlueFS::FileReaderBuffer buf(4096);
ASSERT_EQ(9, fs.read(h, &buf, 0, 1024, &bl, NULL));
ASSERT_EQ(0, strncmp("foobarbaz", bl.c_str(), 9));
delete h;
}
fs.umount();