Re: RGW RFC: Multiple-Data-Pool Support for a Bucket

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

 



On Fri, Dec 29, 2017 at 01:01:25PM +0800, Jeegn Chen wrote:
> Hi Robin
> 
> > Rough implementation:
> > - For writes, the RGW zone data describes which pool maps to each
> >   storage class.
> >   (corner case: multipart uploads might need each part in a consistent pool)
> [Jeegn]: Do you mean mean different placement polices are
> corresponding to STORAGE CLASSes?
Yes, placement_pools are already most of the way to storage class behavior, but
they seemingly were modeled after Swift rather than S3.

> > - The bucket-index data already describes the RADOS POOL to _read_ from
> >   (corner case: old buckets/objects don't have this set)
> [Jeegn]: Are you referring to the tail_bucket in the RGWObjManifest,
> which is somewhat a copy of placement rule? Currently, it seems to
> support the copy across buckets with the same data pool and I have not
> found the logic to deal with different pools. But yes, maybe we can
> reuse it instead of add additional xattr to track the tail pools.
I haven't confirmed exactly where in the codebase it is, but visible in
the 'radosgw-admin bi get/list' output is the pool ID.

In the following snippet, look at entry.ver.pool. That's the ID for my
.rgw.data.1 pool.

$ sudo radosgw-admin --bucket CENSORED bi list --object .bash_profile
[
    {
        "type": "plain",
        "idx": ".bash_profile",
        "entry": {
            "name": ".bash_profile",
            "instance": "",
            "ver": {
                "pool": 5,
                "epoch": 100414
            },
            "locator": ".bash_profile",
            "exists": "true",
            "meta": {
                "category": 1,
                "size": 81,
                "mtime": "2015-07-02 15:31:59.000000Z",
                "etag": "8040ef233daa49c60b93cb3a45617e19",
                "owner": "CENSORED",
                "owner_display_name": "CENSORED",
                "content_type": "application\/octet-stream",
                "accounted_size": 81,
                "user_data": ""
            },
            "tag": "default.136713729.262057859",
            "flags": 0,
            "pending_map": [],
            "versioned_epoch": 0
        }
    }
]

> > - radosgw-admin already contains bucket/object rewrite functionality,
> >   that would effectively copy from an old pool into the new pool.
> >   (note: I don't think is well-documented at all)
> [Jeegn]: Are you talking about "radosgw-admin bucket rewrite"? But per
> check through RGWRados::rewrite_obj() and check_min_obj_stripe_size()
> in the master branch, the functionality is used to migrate from
> explicit-obj implementation to manifest implementation. Or you mean
> some command else or some implementation wip?
I think this functionality is close enough for slight modifications to
get what we want, of a manifest-to-manifest rewrite.

-- 
Robin Hugh Johnson
Gentoo Linux: Dev, Infra Lead, Foundation Treasurer
E-Mail   : robbat2@xxxxxxxxxx
GnuPG FP : 11ACBA4F 4778E3F6 E4EDF38E B27B944E 34884E85
GnuPG FP : 7D0B3CEB E9B85B1F 825BCECF EE05E6F6 A48F6136

Attachment: signature.asc
Description: Digital signature


[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