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"�� -- 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