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-users@lists.ceph.com
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com

_______________________________________________
ceph-users mailing list
ceph-users@lists.ceph.com
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com

Reply via email to