Re: About Fio backend with ObjectStore API

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

 



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-performance-analy
>>>>> >> 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



[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