It may be a bug.

We should set target_max_bytes or target_max_objects before tier pool
process request.

2015-03-10 20:39 GMT+08:00 Kamil Kuramshin <kamil.kurams...@tatar.ru>:
> Thanks a lot to Be-El from #ceph (irc://irc.oftc.net/ceph)
> The problem is resolved after setting 'target_max_bytes' for cache pool:
>
> $ ceph osd pool set cache target_max_bytes 184000000000
>
> Because setting only 'cache_target_full_ratio' to 0.7 - is not sufficient
> for  cache tiering agent, it must know the number of bytes for specified
> pool that allowed to write, before starting evicting process. And then with
> both options are in place, cache tiering agent will start eviting objects
> from cache pool when there is 70% of target_max_bytes are written to that
> pool (when reacing 129Gb in my case)
>
> here how it was:
>
> [14:45] <Be-El> stannum: there's no limit configured for the cache pool. the
> system cannot know when to evict data
> [14:46] <stannum> Be-El: what kind of limit?
> [14:46] <Be-El> stannum: a limit for the size or the number of objects in
> the cache pool
> [14:48] <stannum> Be-El: setting cache_target_full_ratio: 0.7 is not
> sufficient?
> [14:48] <Be-El> stannum: that's a ratio. you need a reference for it
> [14:51] <Be-El> stannum: try setting 'target_max_bytes' to the maximum size
> of the underlying storage minus some percent overhead and keep the
> replication factor in mind
> [14:51] <stannum> Be-El: oh, there is not clear from documentaion. it say
> that: The cache tiering agent can flush or evict objects relative to the
> size of the cache pool. And later it says: The cache tiering agent can flush
> or evict objects based upon the total number of bytes or the total number of
> objects.
> [14:52] <stannum> Be-El: and nothing said about to setting both options
> [14:52] <Be-El> stannum: yes, the documentation is somewhat lacking. ceph
> cannot determine the amount of available space (and thus the maximum
> possible size of a pool)
>
>
> 10.03.2015 14:41, Kamil Kuramshin пишет:
>
> hi, folks! I'm testing cache tier for erasure coded pool and with RBD image
> on it. And now I'm facing a problem with full cache pool and object are not
> evicted automatically, Only if I run manually rados -p cache
> cache-flush-evict-all
>
> client side is:
> superuser@share:~$ uname -a
> Linux share 3.16-2-amd64 #1 SMP Debian 3.16.3-2 (2014-09-20) x86_64
> GNU/Linux
>
>
> ceph node all are debian wheezy
> superuser~$ dpkg -l | grep ceph
> ii  ceph                           0.87-1~bpo70+1                   amd64
> distributed storage and file system
> ii  ceph-common                    0.87-1~bpo70+1                   amd64
> common utilities to mount and interact with a ceph storage cluster
> ii  ceph-fs-common                 0.87-1~bpo70+1                   amd64
> common utilities to mount and interact with a ceph file system
> ii  ceph-mds                       0.87-1~bpo70+1                   amd64
> metadata server for the ceph distributed file system
> ii  libcephfs1                     0.87-1~bpo70+1                   amd64
> Ceph distributed file system client library
> ii  libcurl3-gnutls:amd64          7.29.0-1~bpo70+1.ceph            amd64
> easy-to-use client-side URL transfer library (GnuTLS flavour)
> ii  python-ceph                    0.87-1~bpo70+1                   amd64
> Python libraries for the Ceph distributed filesystem
>
>
>
> There are all steps to reproduce (excepting creation of pools):
>
>
>
> superuser@admin:~$ ceph osd pool get ec_backup-storage erasure_code_profile
> erasure_code_profile: default
> superuser@admin:~$ ceph osd erasure-code-profile get default
> directory=/usr/lib/ceph/erasure-code
> k=2
> m=1
> plugin=jerasure
> technique=reed_sol_van
>
>
> *********** ADMIN NODE OPERATIONS ************
>
> superuser@admin:~$ ceph df
> GLOBAL:
>     SIZE     AVAIL     RAW USED     %RAW USED
>     242T      224T        6092G          2.46
> POOLS:
>     NAME                  ID     USED      %USED     MAX AVAIL     OBJECTS
>     ec_backup-storage     4          0         0          147T           0
>     cache                 5          0         0          185G           0
>     block-devices         6      1948G      0.79        75638G      498771
> superuser@admin:~$ rados df
> pool name       category                 KB      objects       clones
> degraded      unfound           rd        rd KB           wr        wr KB
> block-devices   -                 2042805201       498771            0
> 0           0        67127    259320535      2070571   2403248346
> cache           -                          0            0            0
> 0           0        60496    247235411       966553    499544074
> ec_backup-storage -                          0            0            0
> 0           0       156988    537227276       400355    819838985
>   total used      6388431372       498771
>   total avail   240559782780
>   total space   260163775608
>
> ***** 'cache' pool is replicated pool, 'ec_backup-storage' - Erasure Encoded
> pool *****
> ***** running simple script for enabling cache tiering:
>
>
> ***** There is my simple script for enabling cache tier:
>
> superuser@admin:~$ ./enable_cache_tier.sh cache ec_backup-storage
> pool 'cache' is now (or already was) a tier of 'ec_backup-storage'
> set cache-mode for pool 'cache' to writeback
> overlay for 'ec_backup-storage' is now (or already was) 'cache'
> set pool 5 hit_set_type to bloom
> set pool 5 cache_target_dirty_ratio to 0.4
> set pool 5 cache_target_full_ratio to 0.7
> set pool 5 cache_min_flush_age to 10
> set pool 5 cache_min_evict_age to 10
>
> ***** Displaying some cache pool parameters:
>
> superuser@admin:~$ for param in cache_target_dirty_ratio
> cache_target_full_ratio target_max_bytes target_max_objects
> cache_min_flush_age cache_min_evict_age; do  ceph osd pool get cache $param;
> done
> cache_target_dirty_ratio: 0.4
> cache_target_full_ratio: 0.7
> target_max_bytes: 0
> target_max_objects: 0
> cache_min_flush_age: 10
> cache_min_evict_age: 10
>
>
> *********** END ADMIN NODE OPERATIONS ************
>
> *********** CEPH CLIENT OPERATIONS ************
>
> superuser@share:~$ rbd create -p  ec_backup-storage ec_image.img --size
> 500000 --image-format 2
> superuser@share:~$ rbd -p ec_backup-storage ls
> ec_image.img
> superuser@share:~$ sudo rbd map -p ec_backup-storage ec_image.img
> /dev/rbd0
> superuser@share:~$ rbd showmapped
> id pool              image        snap device
> 0  ec_backup-storage ec_image.img -    /dev/rbd0
> superuser@share:~$ sudo parted /dev/rbd0 p
> Error: /dev/rbd0: unrecognised disk label
> Model: Unknown (unknown)
> Disk /dev/rbd0: 524GB
> Sector size (logical/physical): 512B/512B
> Partition Table: unknown
> Disk Flags:
>
>
> **** now start filling the rbd disk with 400Gb of 'zeros' ****
> superuser@share:~$ sudo dd if=/dev/zero of=/dev/rbd0 bs=4M count=100000
> oflag=direct
> ^C39901+0 записей получено ; There I'm pressed CTRL+C because already
> getting warnings in cpeh -s (see below)
> 39901+0 записей отправлено
>  скопировано 167356923904 байта (167 GB), 3387,59 c, 49,4 MB/c
>
>
> *********** END CEPH CLIENT OPERATIONS ************
>
>
> *********** ADMIN NODE OPERATIONS ************
>
>
> **** Now check ceph df: 145G of 172G 'cache' pool it is about 90% is
> occupied already!
> superuser@admin:~$ ceph df
> GLOBAL:
>     SIZE     AVAIL     RAW USED     %RAW USED
>     242T      223T        6555G          2.64
> POOLS:
>     NAME                  ID     USED      %USED     MAX AVAIL     OBJECTS
>     ec_backup-storage     4          0         0          147T           0
>     cache                 5       155G      0.06        12333M       39906
>     block-devices         6      1948G      0.79        75642G      498771
>
>
> ***** ec_backup-storage - tier pool for cold data still empty????
> ***** but in the same time:
> superuser@admin:~$ ceph health detail
> HEALTH_WARN 3 near full osd(s)
> osd.45 is near full at 88%
> osd.95 is near full at 87%
> osd.100 is near full at 86%
>
>
>
> _______________________________________________
> ceph-users mailing list
> ceph-us...@lists.ceph.com
> http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com
>
>
>
> _______________________________________________
> ceph-users mailing list
> ceph-us...@lists.ceph.com
> http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com
>
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to