Hi Casey,
Here is the code in the fio_ceph_filestore.cc. Basically, it creates a
filestore as backend engine for IO exercises. If we got to send IO commands to
KeyValue Store or Newstore, we got to change the code accordingly, right? I
did not see any other files like fio_ceph_keyvaluestore.cc or
fio_ceph_newstore.cc. In my humble opinion, we might need to create other two
fio engines for keyvaluestore and newstore if we want to exercise these two,
right?
Regards,
James
static int fio_ceph_filestore_init(struct thread_data *td)
209 {
210 vector<const char*> args;
211 struct ceph_filestore_data *ceph_filestore_data = (struct
ceph_filestore_data *) td->io_ops->data;
212 ObjectStore::Transaction ft;
213
214 global_init(NULL, args, CEPH_ENTITY_TYPE_OSD, CODE_ENVIRONMENT_UTILITY,
0);
215 //g_conf->journal_dio = false;
216 common_init_finish(g_ceph_context);
217 //g_ceph_context->_conf->set_val("debug_filestore", "20");
218 //g_ceph_context->_conf->set_val("debug_throttle", "20");
219 g_ceph_context->_conf->apply_changes(NULL);
220
221 ceph_filestore_data->osd_path =
strdup("/mnt/fio_ceph_filestore.XXXXXXX");
222 ceph_filestore_data->journal_path =
strdup("/var/lib/ceph/osd/journal-ram/fio_ceph_filestore.XXXXXXX");
223
224 if (!mkdtemp(ceph_filestore_data->osd_path)) {
225 cout << "mkdtemp failed: " << strerror(errno) << std::endl;
226 return 1;
227 }
228 //mktemp(ceph_filestore_data->journal_path); // NOSPC issue
229
230 ObjectStore *fs = new FileStore(ceph_filestore_data->osd_path,
ceph_filestore_data->journal_path);
231 ceph_filestore_data->fs = fs;
232
233 if (fs->mkfs() < 0) {
234 cout << "mkfs failed" << std::endl;
235 goto failed;
236 }
237
238 if (fs->mount() < 0) {
239 cout << "mount failed" << std::endl;
240 goto failed;
241 }
242
243 ft.create_collection(coll_t());
244 fs->apply_transaction(ft);
245
246
247 return 0;
248
249 failed:
250 return 1;
251
252 }
-----Original Message-----
From: Casey Bodley [mailto:[email protected]]
Sent: Thursday, July 09, 2015 9:19 AM
To: James (Fei) Liu-SSI
Cc: Haomai Wang; [email protected]
Subject: Re: About Fio backend with ObjectStore API
Hi James,
In the job file src/test/filestore.fio, you can modify the line
"objectstore=filestore" to use any objectstore type supported by the
ObjectStore::create() factory.
Casey
On Wed, Jul 8, 2015 at 8:02 PM, James (Fei) Liu-SSI <[email protected]>
wrote:
> Hi Casey,
> Quick questions, The code in the trunk only cover the test for filestore. I
> was wondering do you have any plan to cover the test for kvstore and newstore?
>
> Thanks,
> James
>
> -----Original Message-----
> From: [email protected]
> [mailto:[email protected]] On Behalf Of James (Fei)
> Liu-SSI
> Sent: Tuesday, June 30, 2015 2:19 PM
> To: Casey Bodley
> Cc: Haomai Wang; [email protected]
> Subject: RE: About Fio backend with ObjectStore API
>
> Hi Casey,
>
> Thanks a lot.
>
> Regards,
> James
>
> -----Original Message-----
> From: Casey Bodley [mailto:[email protected]]
> Sent: Tuesday, June 30, 2015 2:16 PM
> To: James (Fei) Liu-SSI
> Cc: Haomai Wang; [email protected]
> Subject: Re: About Fio backend with ObjectStore API
>
> Hi,
>
> When Danny Al-Gaaf & Daniel Gollub published "Ceph Performance
> Analysis: fio and RBD" at
> https://telekomcloud.github.io/ceph/2014/02/26/ceph-performance-analys
> is_fio_rbd.html, they also mentioned a fio engine that linked directly
> into ceph's FileStore. I was able to find Daniel's branch on github at
> https://github.com/gollub/ceph/tree/fio_filestore_v2, and did some more work
> on it at the time.
>
> I just rebased that work onto the latest ceph master branch, and pushed to
> our github at
> https://github.com/linuxbox2/linuxbox-ceph/tree/fio-objectstore. You can find
> the source in src/test/fio_ceph_filestore.cc, and run fio with the provided
> example fio job file in src/test/filestore.fio.
>
> I didn't have a chance to confirm that it builds with automake, but
> the cmake version built for me. I'm happy to help if you run into
> problems, Casey
>
> On Tue, Jun 30, 2015 at 2:31 PM, James (Fei) Liu-SSI
> <[email protected]> wrote:
>> Hi Haomai,
>> What are you trying to ask is to benchmark local objectstore(like
>> kvstore/filestore/newstore) locally with FIO(ObjectStore engine)? You want
>> to purely compare the performance locally for these objectstores, right?
>>
>> Regards,
>> James
>>
>> -----Original Message-----
>> From: [email protected]
>> [mailto:[email protected]] On Behalf Of Haomai Wang
>> Sent: Tuesday, June 30, 2015 9:06 AM
>> To: [email protected]
>> Subject: About Fio backend with ObjectStore API
>>
>> Hi all,
>>
>> Long long ago, is there someone said about fio backend with Ceph ObjectStore
>> API? So we could use the existing mature fio facility to benchmark ceph
>> objectstore.
>>
>> --
>> Best Regards,
>>
>> Wheat
>> --
>> To unsubscribe from this list: send the line "unsubscribe ceph-devel"
>> in the body of a message to [email protected] More majordomo
>> info at http://vger.kernel.org/majordomo-info.html
> {.n + +% lzwm b 맲 r yǩ ׯzX ܨ} Ơz &j:+v zZ+ +zf h
> ~ i z w ? & )ߢ f