6.3. 同步多站点 Ceph 对象网关

多站点同步从其它区域读取更改日志。要从元数据和数据日志中获取同步进度的高级视图,您可以使用以下命令:

示例

[ceph: root@host01 /]# radosgw-admin sync status

此命令列出源区域后面的日志分片(若有)。

注意

有时,您可能会在运行 radosgw-admin sync status 命令时观察恢复分片。对于数据同步,每个复制日志都有 128 个分片。如果这些复制日志事件触发的任何操作导致网络、存储或其他位置出现任何错误,则这些错误会被跟踪,以便操作可以稍后重试。虽然给定分片有需要重试的错误,radosgw-admin sync status 命令将该分片报告为 recovering。此恢复会自动发生,因此 Operator 不需要干预来解决它们。

如果以上运行的同步状态的结果返回日志分片,运行以下命令,将 X 替换为实际的 shard-id。

语法

radosgw-admin data sync status --shard-id=X --source-zone=ZONE_NAME

示例

[ceph: root@host01 /]# radosgw-admin data sync status --shard-id=27 --source-zone=us-east
{
  "shard_id": 27,
  "marker": {
         "status": "incremental-sync",
         "marker": "1_1534494893.816775_131867195.1",
         "next_step_marker": "",
         "total_entries": 1,
         "pos": 0,
         "timestamp": "0.000000"
   },
   "pending_buckets": [],
   "recovering_buckets": [
         "pro-registry:4ed07bb2-a80b-4c69-aa15-fdc17ae6f5f2.314303.1:26"
   ]
}

输出列出了同步旁边的存储桶,以及会因为前面的错误而重试哪些存储桶(若有)。

通过以下命令检查各个 bucket 的状态,使用 bucket ID 替换 X

语法

radosgw-admin bucket sync status --bucket=X.

X 替换为存储桶的 ID 号。

结果显示哪些存储桶索引日志分片位于其源区后面。

同步中的一个常见错误是 EBUSY,这意味着同步已在进行中,通常在另一个网关上。读取写入到同步错误日志的错误,可以使用以下命令进行读取:

radosgw-admin sync error list

同步过程将重试,直到成功为止。错误仍可能发生,可能需要干预。

6.3.1. 执行多站点 Ceph 对象网关的数据同步的计数器

以下性能计数器可用于 Ceph 对象网关的多站点配置来测量数据同步:

  • poll_latency 测量远程复制日志的请求延迟。
  • poll_errors 测量来自轮询请求的错误数量。
  • avgtime 是轮询请求的平均延迟。
  • fetch_bytes 测量数据同步获取的对象数和字节数。
  • fetch_errors 测量获取请求的错误数量。
  • fetch_not_modified 测量同步尝试获取对象的次数,但发现它已有最新的副本。

使用 ceph --admin-daemon 命令查看性能计数器的当前指标数据:

语法

ceph --admin-daemon /var/run/ceph/ceph-client.rgw.RGW_ID.asok perf dump data-sync-from-ZONE_NAME

示例

[ceph: root@host01 /]# ceph --admin-daemon /var/run/ceph/ceph-client.rgw.host02-rgw0.103.94309060818504.asok perf dump data-sync-from-us-west

{
    "data-sync-from-us-west": {
        "fetch bytes": {
            "avgcount": 54,
            "sum": 54526039885
        },
        "fetch not modified": 7,
        "fetch errors": 0,
        "poll latency": {
            "avgcount": 41,
            "sum": 2.533653367,
            "avgtime": 0.061796423
        },
        "poll errors": 0
    }
}

注意

您必须从运行守护进程的节点中运行 ceph --admin-daemon 命令。

其它资源

  • 有关 性能计数器 的更多信息,请参见《 红帽 Ceph 存储管理指南》 中的 Ceph 性能计数器一章。