On Thu, 7 Aug 2014, debian Only wrote: > Hope expert give me some light > > > 2014-08-06 18:01 GMT+07:00 debian Only <onlydebian at gmail.com>: > I am confuse to understand how File store in Ceph. > > I do two test. where is the File or the object for the File > > ?rados put Python.msi Python.msi -p data > ?rbd -p testpool create fio_test --size 2048 > ? > rados command of ? means use Ceph as Object storage ? > rbd command of ? means use Ceph as Block storage ? > > As i known, object in Ceph is 4M by default. ?this Object will put in > PG.? > so i try do test as blow. ?the fio_test image store in Ceph by 512 > object. ?512?object? * 4 = 2048 > and i can get object in testpool. > > # rbd -p testpool info fio_test > rbd image 'fio_test': > ? ? ? ? size 2048 MB in 512 objects > ? ? ? ? order 22 (4096 kB objects) > ? ? ? ? block_name_prefix: rb.0.1b6f.2ae8944a > ? ? ? ? format: 1 > # rados -p testpool ls |grep rb.0.1b6f.2ae8944a |wc -l > 512 ?? > > > but when i check the data pool, only one file :Python.msi (26M), why > not split Python.msi to many object(4M) ?????? > > t# rados ls -p pool-B > python.msi The striping happens *above* the rados layer. In this case, it is librbd that is striping a large image across lots of smaller objects (that it is naming). CephFS clients do the same thing. The rados CLI is talking directly to that lower layer and storing a single (large) object. There is a new librados_striper library that provides lightweight striping functionality and handles things like delete in a reasonable way for applications that need that functionality... sage