Re: About Fio backend with ObjectStore API

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



It's really cool. Do you prepare to push to upstream? I think it
should be more convenient  if we make fio repo as submodule.

On Sat, Sep 12, 2015 at 5:04 PM, Haomai Wang <haomaiwang@xxxxxxxxx> wrote:
> I found my problem why segment:
>
> because fio links librbd/librados from my /usr/local/lib but use
> ceph/src/.libs/libfio_ceph_objectstore.so. They are different ceph
> version.
>
> So maybe we need to add check for abi version?
>
> On Sat, Sep 12, 2015 at 4:08 AM, Casey Bodley <cbodley@xxxxxxxxxx> wrote:
>> Hi James,
>>
>> I just looked back at the results you posted, and saw that you were using iodepth=1. Setting this higher should help keep the FileStore busy.
>>
>> Casey
>>
>> ----- Original Message -----
>>> From: "James (Fei) Liu-SSI" <james.liu@xxxxxxxxxxxxxxx>
>>> To: "Casey Bodley" <cbodley@xxxxxxxxxx>
>>> Cc: "Haomai Wang" <haomaiwang@xxxxxxxxx>, ceph-devel@xxxxxxxxxxxxxxx
>>> Sent: Friday, September 11, 2015 1:18:31 PM
>>> Subject: RE: About Fio backend with ObjectStore API
>>>
>>> Hi Casey,
>>>   You are right. I think the bottleneck is in fio side rather than in
>>>   filestore side in this case. The fio did not issue the io commands faster
>>>   enough to saturate the filestore.
>>>   Here is one of possible solution for it: Create a  async engine which are
>>>   normally way faster than sync engine in fio.
>>>
>>>    Here is possible framework. This new Objectstore-AIO engine in FIO in
>>>    theory will be way faster than sync engine. Once we have FIO which can
>>>    saturate newstore, memstore and filestore, we can investigate them in
>>>    very details of where the bottleneck in their design.
>>>
>>> .........................
>>> struct objectstore_aio_data {
>>>       struct aio_ctx *q_aio_ctx;
>>>       struct aio_completion_data *a_data;
>>>       aio_ses_ctx_t *p_ses_ctx;
>>>       unsigned int entries;
>>> };
>>> ...................................
>>> /*
>>>  * Note that the structure is exported, so that fio can get it via
>>>  * dlsym(..., "ioengine");
>>>  */
>>> struct ioengine_ops us_aio_ioengine = {
>>>       .name           = "objectstore-aio",
>>>       .version        = FIO_IOOPS_VERSION,
>>>       .init           = fio_objectstore_aio_init,
>>>       .prep           = fio_objectstore_aio_prep,
>>>       .queue          = fio_objectstore_aio_queue,
>>>       .cancel         = fio_objectstore_aio_cancel,
>>>       .getevents      = fio_objectstore_aio_getevents,
>>>       .event          = fio_objectstore_aio_event,
>>>       .cleanup        = fio_objectstore_aio_cleanup,
>>>       .open_file      = fio_objectstore_aio_open,
>>>       .close_file     = fio_objectstore_aio_close,
>>> };
>>>
>>>
>>> Let me know what you think.
>>>
>>> Regards,
>>> James
>>> ........................
>>> -----Original Message-----
>>> From: Casey Bodley [mailto:cbodley@xxxxxxxxxx]
>>> Sent: Friday, September 11, 2015 7:28 AM
>>> To: James (Fei) Liu-SSI
>>> Cc: Haomai Wang; ceph-devel@xxxxxxxxxxxxxxx
>>> Subject: Re: About Fio backend with ObjectStore API
>>>
>>> Hi James,
>>>
>>> That's great that you were able to get fio-objectstore running! Thanks to you
>>> and Haomai for all the help with testing.
>>>
>>> In terms of performance, it's possible that we're not handling the
>>> completions optimally. When profiling with MemStore I remember seeing a
>>> significant amount of cpu time spent in polling with
>>> fio_ceph_os_getevents().
>>>
>>> The issue with reads is more of a design issue than a bug. Because the test
>>> starts with a mkfs(), there are no objects to read from initially. You would
>>> just have to add a write job to run before the read job, to make sure that
>>> the objects are initialized. Or perhaps the mkfs() step could be an optional
>>> part of the configuration.
>>>
>>> Casey
>>>
>>> ----- Original Message -----
>>> From: "James (Fei) Liu-SSI" <james.liu@xxxxxxxxxxxxxxx>
>>> To: "Haomai Wang" <haomaiwang@xxxxxxxxx>, "Casey Bodley" <cbodley@xxxxxxxxxx>
>>> Cc: ceph-devel@xxxxxxxxxxxxxxx
>>> Sent: Thursday, September 10, 2015 8:08:04 PM
>>> Subject: RE: About Fio backend with ObjectStore API
>>>
>>> Hi Casey and Haomai,
>>>
>>>   We finally made the fio-objectstore works in our end . Here is fio data
>>>   against filestore with Samsung 850 Pro. It is sequential write and the
>>>   performance is very poor which is expected though.
>>>
>>>     Run status group 0 (all jobs):
>>>   WRITE: io=524288KB, aggrb=9467KB/s, minb=9467KB/s, maxb=9467KB/s,
>>>   mint=55378msec, maxt=55378msec
>>>
>>>   But anyway, it works even though still some bugs to fix like read and
>>>   filesytem issues. thanks a lot for your great work.
>>>
>>>   Regards,
>>>   James
>>>
>>>   jamesliu@jamesliu-OptiPlex-7010:~/WorkSpace/ceph_casey/src$ sudo ./fio/fio
>>>   ./test/objectstore.fio
>>> filestore: (g=0): rw=write, bs=128K-128K/128K-128K/128K-128K,
>>> ioengine=cephobjectstore, iodepth=1 fio-2.2.9-56-g736a Starting 1 process
>>> test1
>>> filestore: Laying out IO file(s) (1 file(s) / 512MB)
>>> 2015-09-10 16:55:40.614494 7f19d34d1840  1 filestore(/home/jamesliu/fio_ceph)
>>> mkfs in /home/jamesliu/fio_ceph
>>> 2015-09-10 16:55:40.614924 7f19d34d1840  1 filestore(/home/jamesliu/fio_ceph)
>>> mkfs generated fsid 5508d58e-dbfc-48a5-9f9c-c639af4fe73a
>>> 2015-09-10 16:55:40.630326 7f19d34d1840  1 filestore(/home/jamesliu/fio_ceph)
>>> write_version_stamp 4
>>> 2015-09-10 16:55:40.673417 7f19d34d1840  0 filestore(/home/jamesliu/fio_ceph)
>>> backend xfs (magic 0x58465342)
>>> 2015-09-10 16:55:40.724097 7f19d34d1840  1 filestore(/home/jamesliu/fio_ceph)
>>> leveldb db exists/created
>>> 2015-09-10 16:55:40.724218 7f19d34d1840 -1 journal FileJournal::_open:
>>> disabling aio for non-block journal.  Use journal_force_aio to force use of
>>> aio anyway
>>> 2015-09-10 16:55:40.724226 7f19d34d1840  1 journal _open
>>> /tmp/fio_ceph_filestore1 fd 5: 5368709120 bytes, block size 4096 bytes,
>>> directio = 1, aio = 0
>>> 2015-09-10 16:55:40.724468 7f19d34d1840 -1 journal check: ondisk fsid
>>> 7580401a-6863-4863-9873-3adda08c9150 doesn't match expected
>>> 5508d58e-dbfc-48a5-9f9c-c639af4fe73a, invalid (someone else's?) journal
>>> 2015-09-10 16:55:40.724481 7f19d34d1840  1 journal close
>>> /tmp/fio_ceph_filestore1
>>> 2015-09-10 16:55:40.724506 7f19d34d1840  1 journal _open
>>> /tmp/fio_ceph_filestore1 fd 5: 5368709120 bytes, block size 4096 bytes,
>>> directio = 1, aio = 0
>>> 2015-09-10 16:55:40.730417 7f19d34d1840  0 filestore(/home/jamesliu/fio_ceph)
>>> mkjournal created journal on /tmp/fio_ceph_filestore1
>>> 2015-09-10 16:55:40.730446 7f19d34d1840  1 filestore(/home/jamesliu/fio_ceph)
>>> mkfs done in /home/jamesliu/fio_ceph
>>> 2015-09-10 16:55:40.730527 7f19d34d1840  0 filestore(/home/jamesliu/fio_ceph)
>>> backend xfs (magic 0x58465342)
>>> 2015-09-10 16:55:40.730773 7f19d34d1840  0
>>> genericfilestorebackend(/home/jamesliu/fio_ceph) detect_features: FIEMAP
>>> ioctl is disabled via 'filestore fiemap' config option
>>> 2015-09-10 16:55:40.730779 7f19d34d1840  0
>>> genericfilestorebackend(/home/jamesliu/fio_ceph) detect_features:
>>> SEEK_DATA/SEEK_HOLE is disabled via 'filestore seek data hole' config option
>>> 2015-09-10 16:55:40.730793 7f19d34d1840  0
>>> genericfilestorebackend(/home/jamesliu/fio_ceph) detect_features: splice is
>>> supported
>>> 2015-09-10 16:55:40.751951 7f19d34d1840  0
>>> genericfilestorebackend(/home/jamesliu/fio_ceph) detect_features: syncfs(2)
>>> syscall fully supported (by glibc and kernel)
>>> 2015-09-10 16:55:40.752102 7f19d34d1840  0
>>> xfsfilestorebackend(/home/jamesliu/fio_ceph) detect_features: extsize is
>>> supported and your kernel >= 3.5
>>> 2015-09-10 16:55:40.794731 7f19d34d1840  0 filestore(/home/jamesliu/fio_ceph)
>>> mount: enabling WRITEAHEAD journal mode: checkpoint is not enabled
>>> 2015-09-10 16:55:40.794906 7f19d34d1840 -1 journal FileJournal::_open:
>>> disabling aio for non-block journal.  Use journal_force_aio to force use of
>>> aio anyway
>>> 2015-09-10 16:55:40.794917 7f19d34d1840  1 journal _open
>>> /tmp/fio_ceph_filestore1 fd 11: 5368709120 bytes, block size 4096 bytes,
>>> directio = 1, aio = 0
>>> 2015-09-10 16:55:40.795219 7f19d34d1840  1 journal _open
>>> /tmp/fio_ceph_filestore1 fd 11: 5368709120 bytes, block size 4096 bytes,
>>> directio = 1, aio = 0
>>> 2015-09-10 16:55:40.795533 7f19d34d1840  1 filestore(/home/jamesliu/fio_ceph)
>>> upgrade
>>> 2015-09-10 16:56:36.420878 7f19d34d1840  1 journal close
>>> /tmp/fio_ceph_filestore10s]
>>>
>>> filestore: (groupid=0, jobs=1): err= 0: pid=16515: Thu Sep 10 16:56:36 2015
>>>   write: io=524288KB, bw=9467.5KB/s, iops=73, runt= 55378msec
>>>     slat (usec): min=22, max=142, avg=57.93, stdev=11.46
>>>     clat (msec): min=6, max=148, avg=13.46, stdev=10.61
>>>      lat (msec): min=6, max=148, avg=13.51, stdev=10.61
>>>     clat percentiles (msec):
>>>      |  1.00th=[   10],  5.00th=[   10], 10.00th=[   10], 20.00th=[   10],
>>>      | 30.00th=[   10], 40.00th=[   10], 50.00th=[   10], 60.00th=[   10],
>>>      | 70.00th=[   10], 80.00th=[   15], 90.00th=[   25], 95.00th=[   29],
>>>      | 99.00th=[   43], 99.50th=[   93], 99.90th=[  137], 99.95th=[  143],
>>>      | 99.99th=[  149]
>>>     bw (KB  /s): min= 1505, max=13750, per=100.00%, avg=9525.38,
>>>     stdev=3821.47
>>>     lat (msec) : 10=71.73%, 20=11.52%, 50=15.87%, 100=0.46%, 250=0.42%
>>>   cpu          : usr=1.50%, sys=1.87%, ctx=353850, majf=0, minf=48
>>>   IO depths    : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%,
>>>   >=64=0.0%
>>>      submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%,
>>>      >=64=0.0%
>>>      complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%,
>>>      >=64=0.0%
>>>      issued    : total=r=0/w=4096/d=0, short=r=0/w=0/d=0, drop=r=0/w=0/d=0
>>>      latency   : target=0, window=0, percentile=100.00%, depth=1
>>>
>>> Run status group 0 (all jobs):
>>>   WRITE: io=524288KB, aggrb=9467KB/s, minb=9467KB/s, maxb=9467KB/s,
>>>   mint=55378msec, maxt=55378msec
>>>
>>> Disk stats (read/write):
>>>   loop0: ios=0/0, merge=0/0, ticks=0/0, in_queue=0, util=0.00%
>>>
>>>
>>> ________________________________________
>>> From: Haomai Wang [haomaiwang@xxxxxxxxx]
>>> Sent: Friday, September 04, 2015 8:43 PM
>>> To: James (Fei) Liu-SSI
>>> Cc: Casey Bodley; ceph-devel@xxxxxxxxxxxxxxx
>>> Subject: Re: About Fio backend with ObjectStore API
>>>
>>> On Sat, Sep 5, 2015 at 4:29 AM, James (Fei) Liu-SSI
>>> <james.liu@xxxxxxxxxxxxxxx> wrote:
>>> > Hi Casey,
>>> >    Thanks. I even got a compiling error with fio-objectstore branch.
>>> >
>>> >     Here is error message:
>>> >
>>> >       make[3]: *** No rule to make target `rbd_fuse/rbd-fuse.c', needed by
>>> >       `rbd_fuse/rbd-fuse.o'.  Stop.
>>> > make[3]: *** Waiting for unfinished jobs....
>>> >   CXX      ceph_fuse.o
>>>
>>> This is a old make problem. I nearly forgot the details, but you can run
>>> "make clean" then try again. Or remove this ceph build directory directly
>>> and git clone a clean tree
>>>
>>> > make[3]: Leaving directory `/home/jamesliu/WorkSpace/ceph_fio/src'
>>> > make[2]: *** [all-recursive] Error 1
>>> > make[2]: Leaving directory `/home/jamesliu/WorkSpace/ceph_fio/src'
>>> > make[1]: *** [all] Error 2
>>> > make[1]: Leaving directory `/home/jamesliu/WorkSpace/ceph_fio/src'
>>> > make: *** [all-recursive] Error 1
>>> > jamesliu@jamesliu-OptiPlex-7010:~/WorkSpace/ceph_fio$ git branch
>>> > * fio-objectstore
>>> >   master
>>> >
>>> >
>>> > Regards,
>>> > James
>>> >
>>> > -----Original Message-----
>>> > From: Casey Bodley [mailto:cbodley@xxxxxxxxxx]
>>> > Sent: Thursday, September 03, 2015 10:44 AM
>>> > To: James (Fei) Liu-SSI
>>> > Cc: ceph-devel@xxxxxxxxxxxxxxx
>>> > Subject: Re: About Fio backend with ObjectStore API
>>> >
>>> > Hi James,
>>> >
>>> > I'm sorry for not following up on that segfault, but I wasn't ever able to
>>> > reproduce it. I used it recently for memstore testing without any
>>> > problems. I wonder if there's a problem with the autotools build? I've
>>> > only tested it with cmake. When I find some time, I'll rebase it on master
>>> > and do another round of testing.
>>> >
>>> > Casey
>>> >
>>> > ----- Original Message -----
>>> >> From: "James (Fei) Liu-SSI" <james.liu@xxxxxxxxxxxxxxx>
>>> >> To: "Haomai Wang" <haomaiwang@xxxxxxxxx>, "Casey Bodley"
>>> >> <cbodley@xxxxxxxxxx>
>>> >> Cc: "Casey Bodley" <cbodley@xxxxxxxxx>, "Matt W. Benjamin"
>>> >> <matt@xxxxxxxxxxxx>, ceph-devel@xxxxxxxxxxxxxxx
>>> >> Sent: Wednesday, September 2, 2015 8:06:14 PM
>>> >> Subject: RE: About Fio backend with ObjectStore API
>>> >>
>>> >> Hi Haomai and Case,
>>> >>      Do you have any fixes for that segfault?
>>> >>
>>> >>     Thanks,
>>> >>     James
>>> >>
>>> >> -----Original Message-----
>>> >> From: Haomai Wang [mailto:haomaiwang@xxxxxxxxx]
>>> >> Sent: Wednesday, July 22, 2015 6:07 PM
>>> >> To: Casey Bodley
>>> >> Cc: Casey Bodley; Matt W. Benjamin; James (Fei) Liu-SSI;
>>> >> ceph-devel@xxxxxxxxxxxxxxx
>>> >> Subject: Re: About Fio backend with ObjectStore API
>>> >>
>>> >> no special
>>> >>
>>> >> [global]
>>> >> #logging
>>> >> #write_iops_log=write_iops_log
>>> >> #write_bw_log=write_bw_log
>>> >> #write_lat_log=write_lat_log
>>> >> ioengine=./ceph-int/src/.libs/libfio_ceph_objectstore.so
>>> >> invalidate=0 # mandatory
>>> >> rw=write
>>> >> #bs=4k
>>> >>
>>> >> [filestore]
>>> >> iodepth=1
>>> >> # create a journaled filestore
>>> >> objectstore=filestore
>>> >> directory=./osd/
>>> >> filestore_journal=./osd/journal
>>> >>
>>> >> On Thu, Jul 23, 2015 at 4:56 AM, Casey Bodley <cbodley@xxxxxxxxxx> wrote:
>>> >> > Hi Haomai,
>>> >> >
>>> >> > Sorry for the late response, I was out of the office. I'm afraid I
>>> >> > haven't run into that segfault. The io_ops should be set at the
>>> >> > very beginning when it calls get_ioengine(). All I can suggest is
>>> >> > that you verify that your job file is pointing to the correct
>>> >> > fio_ceph_objectstore.so. If you've made any other interesting
>>> >> > changes to the job file, could you share it here?
>>> >> >
>>> >> > Casey
>>> >> >
>>> >> > ----- Original Message -----
>>> >> > From: "Haomai Wang" <haomaiwang@xxxxxxxxx>
>>> >> > To: "Casey Bodley" <cbodley@xxxxxxxxx>
>>> >> > Cc: "Matt W. Benjamin" <matt@xxxxxxxxxxxx>, "James (Fei) Liu-SSI"
>>> >> > <james.liu@xxxxxxxxxxxxxxx>, ceph-devel@xxxxxxxxxxxxxxx
>>> >> > Sent: Tuesday, July 21, 2015 7:50:32 AM
>>> >> > Subject: Re: About Fio backend with ObjectStore API
>>> >> >
>>> >> > Hi Casey,
>>> >> >
>>> >> > I check your commits and know what you fixed. I cherry-picked your
>>> >> > new commits but I still met the same problem.
>>> >> >
>>> >> > """
>>> >> > It's strange that it alwasys hit segment fault when entering
>>> >> > "_fio_setup_ceph_filestore_data", gdb tells "td->io_ops" is NULL
>>> >> > but when I up the stack, the "td->io_ops" is not null. Maybe it's
>>> >> > related to dlopen?
>>> >> > """
>>> >> >
>>> >> > Do you have any hint about this?
>>> >> >
>>> >> > On Thu, Jul 16, 2015 at 5:23 AM, Casey Bodley <cbodley@xxxxxxxxx> wrote:
>>> >> >> Hi Haomai,
>>> >> >>
>>> >> >> I was able to run this after a couple changes to the filestore.fio
>>> >> >> job file. Two of the config options were using the wrong names. I
>>> >> >> pushed a fix for the job file, as well as a patch that renames
>>> >> >> everything from filestore to objectstore (thanks James), to
>>> >> >> https://github.com/linuxbox2/linuxbox-ceph/commits/fio-objectstore.
>>> >> >>
>>> >> >> I found that the read support doesn't appear to work anymore, so
>>> >> >> give "rw=write" a try. And because it does a mkfs(), make sure
>>> >> >> you're pointing it to an empty xfs directory with the "directory="
>>> >> >> option.
>>> >> >>
>>> >> >> Casey
>>> >> >>
>>> >> >> On Tue, Jul 14, 2015 at 2:45 AM, Haomai Wang <haomaiwang@xxxxxxxxx>
>>> >> >> wrote:
>>> >> >>> Anyone who have successfully ran the fio with this external io
>>> >> >>> engine ceph_objectstore?
>>> >> >>>
>>> >> >>> It's strange that it alwasys hit segment fault when entering
>>> >> >>> "_fio_setup_ceph_filestore_data", gdb tells "td->io_ops" is NULL
>>> >> >>> but when I up the stack, the "td->io_ops" is not null. Maybe it's
>>> >> >>> related to dlopen?
>>> >> >>>
>>> >> >>> On Fri, Jul 10, 2015 at 3:51 PM, Haomai Wang
>>> >> >>> <haomaiwang@xxxxxxxxx>
>>> >> >>> wrote:
>>> >> >>>> I have rebased the branch with master, and push it to ceph
>>> >> >>>> upstream repo.
>>> >> >>>> https://github.com/ceph/ceph/compare/fio-objectstore?expand=1
>>> >> >>>>
>>> >> >>>> Plz let me know if who is working on this. Otherwise, I would
>>> >> >>>> like to improve this to be merge ready.
>>> >> >>>>
>>> >> >>>> On Fri, Jul 10, 2015 at 4:26 AM, Matt W. Benjamin
>>> >> >>>> <matt@xxxxxxxxxxxx>
>>> >> >>>> wrote:
>>> >> >>>>> That makes sense.
>>> >> >>>>>
>>> >> >>>>> Matt
>>> >> >>>>>
>>> >> >>>>> ----- "James (Fei) Liu-SSI" <james.liu@xxxxxxxxxxxxxxx> wrote:
>>> >> >>>>>
>>> >> >>>>>> Hi Casey,
>>> >> >>>>>>   Got it. I was directed to the old code base. By the way,
>>> >> >>>>>> Since the testing case was used to exercise all of object stores.
>>> >> >>>>>> Strongly recommend to change the name from
>>> >> >>>>>> fio_ceph_filestore.cc to fio_ceph_objectstore.cc . And the
>>> >> >>>>>> code in fio_ceph_filestore.cc should be refactored to reflect
>>> >> >>>>>> that the whole objectstore will be supported by
>>> >> >>>>>> fio_ceph_objectstore.cc. what you think?
>>> >> >>>>>>
>>> >> >>>>>> Let me know if you need any help from my side.
>>> >> >>>>>>
>>> >> >>>>>>
>>> >> >>>>>> Regards,
>>> >> >>>>>> James
>>> >> >>>>>>
>>> >> >>>>>>
>>> >> >>>>>>
>>> >> >>>>>> -----Original Message-----
>>> >> >>>>>> From: Casey Bodley [mailto:cbodley@xxxxxxxxx]
>>> >> >>>>>> Sent: Thursday, July 09, 2015 12:32 PM
>>> >> >>>>>> To: James (Fei) Liu-SSI
>>> >> >>>>>> Cc: Haomai Wang; ceph-devel@xxxxxxxxxxxxxxx
>>> >> >>>>>> Subject: Re: About Fio backend with ObjectStore API
>>> >> >>>>>>
>>> >> >>>>>> Hi James,
>>> >> >>>>>>
>>> >> >>>>>> Are you looking at the code from
>>> >> >>>>>> https://github.com/linuxbox2/linuxbox-ceph/tree/fio-objectstore?
>>> >> >>>>>> It uses ObjectStore::create() instead of new FileStore(). This
>>> >> >>>>>> allows us to exercise all of the object stores with the same code.
>>> >> >>>>>>
>>> >> >>>>>> Casey
>>> >> >>>>>>
>>> >> >>>>>> On Thu, Jul 9, 2015 at 2:01 PM, James (Fei) Liu-SSI
>>> >> >>>>>> <james.liu@xxxxxxxxxxxxxxx> wrote:
>>> >> >>>>>> > 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:cbodley@xxxxxxxxx]
>>> >> >>>>>> > Sent: Thursday, July 09, 2015 9:19 AM
>>> >> >>>>>> > To: James (Fei) Liu-SSI
>>> >> >>>>>> > Cc: Haomai Wang; ceph-devel@xxxxxxxxxxxxxxx
>>> >> >>>>>> > 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
>>> >> >>>>>> <james.liu@xxxxxxxxxxxxxxx> 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: ceph-devel-owner@xxxxxxxxxxxxxxx
>>> >> >>>>>> >> [mailto:ceph-devel-owner@xxxxxxxxxxxxxxx] On Behalf Of
>>> >> >>>>>> >> James
>>> >> >>>>>> >> (Fei)
>>> >> >>>>>>
>>> >> >>>>>> >> Liu-SSI
>>> >> >>>>>> >> Sent: Tuesday, June 30, 2015 2:19 PM
>>> >> >>>>>> >> To: Casey Bodley
>>> >> >>>>>> >> Cc: Haomai Wang; ceph-devel@xxxxxxxxxxxxxxx
>>> >> >>>>>> >> Subject: RE: About Fio backend with ObjectStore API
>>> >> >>>>>> >>
>>> >> >>>>>> >> Hi Casey,
>>> >> >>>>>> >>
>>> >> >>>>>> >>   Thanks a lot.
>>> >> >>>>>> >>
>>> >> >>>>>> >>   Regards,
>>> >> >>>>>> >>   James
>>> >> >>>>>> >>
>>> >> >>>>>> >> -----Original Message-----
>>> >> >>>>>> >> From: Casey Bodley [mailto:cbodley@xxxxxxxxx]
>>> >> >>>>>> >> Sent: Tuesday, June 30, 2015 2:16 PM
>>> >> >>>>>> >> To: James (Fei) Liu-SSI
>>> >> >>>>>> >> Cc: Haomai Wang; ceph-devel@xxxxxxxxxxxxxxx
>>> >> >>>>>> >> 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-performanc
>>> >> >>>>>> e
>>> >> >>>>>> -a
>>> >> >>>>>> naly
>>> >> >>>>>> >> s 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
>>> >> >>>>>> <james.liu@xxxxxxxxxxxxxxx> 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: ceph-devel-owner@xxxxxxxxxxxxxxx
>>> >> >>>>>> >>> [mailto:ceph-devel-owner@xxxxxxxxxxxxxxx] On Behalf Of
>>> >> >>>>>> >>> Haomai
>>> >> >>>>>> Wang
>>> >> >>>>>> >>> Sent: Tuesday, June 30, 2015 9:06 AM
>>> >> >>>>>> >>> To: ceph-devel@xxxxxxxxxxxxxxx
>>> >> >>>>>> >>> 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 majordomo@xxxxxxxxxxxxxxx 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
>>> >> >>>>>> N     r  y   b X  ?v ^ )?{.n +   z ]z   {ay ?? ,j  f   h   z  w
>>> >> >>>>>>     j:+v   w j m        zZ+  ?j"
>>> >> >>>>>
>>> >> >>>>> --
>>> >> >>>>> Matt Benjamin
>>> >> >>>>> CohortFS, LLC.
>>> >> >>>>> 315 West Huron Street, Suite 140A Ann Arbor, Michigan 48103
>>> >> >>>>>
>>> >> >>>>> http://cohortfs.com
>>> >> >>>>>
>>> >> >>>>> tel.  734-761-4689
>>> >> >>>>> fax.  734-769-8938
>>> >> >>>>> cel.  734-216-5309
>>> >> >>>>
>>> >> >>>>
>>> >> >>>>
>>> >> >>>> --
>>> >> >>>> Best Regards,
>>> >> >>>>
>>> >> >>>> Wheat
>>> >> >>>
>>> >> >>>
>>> >> >>>
>>> >> >>> --
>>> >> >>> Best Regards,
>>> >> >>>
>>> >> >>> Wheat
>>> >> >
>>> >> >
>>> >> >
>>> >> > --
>>> >> > Best Regards,
>>> >> >
>>> >> > Wheat
>>> >> > --
>>> >> > To unsubscribe from this list: send the line "unsubscribe ceph-devel"
>>> >> > in the body of a message to majordomo@xxxxxxxxxxxxxxx More
>>> >> > majordomo info at  http://vger.kernel.org/majordomo-info.html
>>> >>
>>> >>
>>> >>
>>> >> --
>>> >> Best Regards,
>>> >>
>>> >> Wheat
>>> >> N     r  y   b X  ?v ^ )?{.n +   z ]z   {ay ?? ,j  f   h   z  w      j
>>> >> :+v   w j m        zZ+  ?j"
>>>
>>>
>>>
>>> --
>>> Best Regards,
>>>
>>> Wheat
>>> --
>>> To unsubscribe from this list: send the line "unsubscribe ceph-devel" in the
>>> body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at
>>> http://vger.kernel.org/majordomo-info.html
>>> N�����r��y���b�X��ǧv�^�)޺{.n�+���z�]z���{ay�ʇڙ�,j��f���h���z��w������j:+v���w�j�m��������zZ+��ݢj"��
>
>
>
> --
> Best Regards,
>
> Wheat



-- 
Best Regards,

Wheat
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [CEPH Users]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux