Re: About Fio backend with ObjectStore API

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

 



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