Search Preview
mesos-master replicated_log存的是什么? | Ivan的博客
ivanjobs.github.io目前知道的,mesos master会使用replicated_log保存registry信息,那么这个registry信息以及这个replicated_log到底是什么? 用一种可以理解的方式阐述它们,对于理解mesos-master至关重要。
.io > ivanjobs.github.io
SEO audit: Content analysis
Language | Error! No language localisation is found. | ||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Title | mesos-master replicated_log存的是什么? | Ivan的博客 | ||||||||||||||||||||||||||||||||||||
Text / HTML ratio | 35 % | ||||||||||||||||||||||||||||||||||||
Frame | Excellent! The website does not use iFrame solutions. | ||||||||||||||||||||||||||||||||||||
Flash | Excellent! The website does not have any flash contents. | ||||||||||||||||||||||||||||||||||||
Keywords cloud | Ceph = Mesos Python mesos master information << OpenStack 题解 cluster 笔记 repeated return optional status list machines record RGW | ||||||||||||||||||||||||||||||||||||
Keywords consistency |
|
||||||||||||||||||||||||||||||||||||
Headings |
|
||||||||||||||||||||||||||||||||||||
Images | We found 1 images on this web page. |
SEO Keywords (Single)
Keyword | Occurrence | Density |
---|---|---|
Ceph | 14 | 0.70 % |
= | 8 | 0.40 % |
Mesos | 8 | 0.40 % |
Python | 7 | 0.35 % |
mesos | 5 | 0.25 % |
master | 4 | 0.20 % |
information | 4 | 0.20 % |
<< | 4 | 0.20 % |
OpenStack | 4 | 0.20 % |
题解 | 3 | 0.15 % |
cluster | 3 | 0.15 % |
笔记 | 3 | 0.15 % |
repeated | 3 | 0.15 % |
return | 3 | 0.15 % |
optional | 3 | 0.15 % |
status | 3 | 0.15 % |
list | 3 | 0.15 % |
machines | 3 | 0.15 % |
record | 2 | 0.10 % |
RGW | 2 | 0.10 % |
SEO Keywords (Two Word)
Keyword | Occurrence | Density |
---|---|---|
list of | 3 | 0.15 % |
in the | 3 | 0.15 % |
the cluster | 3 | 0.15 % |
newly elected | 2 | 0.10 % |
Ceph RGW | 2 | 0.10 % |
a newly | 2 | 0.10 % |
elected master | 2 | 0.10 % |
master shall | 2 | 0.10 % |
shall reconstruct | 2 | 0.10 % |
reconstruct it | 2 | 0.10 % |
it from | 2 | 0.10 % |
from the | 2 | 0.10 % |
status information | 2 | 0.10 % |
of recorded | 2 | 0.10 % |
A list | 2 | 0.10 % |
mesosmaster replicated_log存的是什么? | 2 | 0.10 % |
Ceph v1023 | 2 | 0.10 % |
of resources | 2 | 0.10 % |
value if | 2 | 0.10 % |
information about | 2 | 0.10 % |
SEO Keywords (Three Word)
Keyword | Occurrence | Density | Possible Spam |
---|---|---|---|
it from the | 2 | 0.10 % | No |
A list of | 2 | 0.10 % | No |
master shall reconstruct | 2 | 0.10 % | No |
elected master shall | 2 | 0.10 % | No |
newly elected master | 2 | 0.10 % | No |
a newly elected | 2 | 0.10 % | No |
in the cluster | 2 | 0.10 % | No |
reconstruct it from | 2 | 0.10 % | No |
list of recorded | 2 | 0.10 % | No |
shall reconstruct it | 2 | 0.10 % | No |
valuesize << bytes | 1 | 0.05 % | No |
假设replicated_log是使用leveldb持久化的,那么这里,有一个序列化为string的操作,我们可以通过打印出这个string来观察 leveldb里存的是什么。测试思路,添加打印日志,重新编译mesos,手动启动masteragentframework之后,观察log输出。 重新编译mesos启动master之后,发现打印出的是乱码,追踪到srcmessageslogproto里定义了leveldbcpp里的两个持久化对象 | 1 | 0.05 % | No |
statusok return ErrorstatusToString | 1 | 0.05 % | No |
return ErrorstatusToString LOGINFO | 1 | 0.05 % | No |
ErrorstatusToString LOGINFO << | 1 | 0.05 % | No |
LOGINFO << Persisting | 1 | 0.05 % | No |
官方文档 官方文档里说,replicated log里存的是集群状态信息,那么这个cluster | 1 | 0.05 % | No |
继续阅读srclog… 官方文档 官方文档里说,replicated | 1 | 0.05 % | No |
看不出什么Metadata就是一个uint64? 继续阅读srclog… 官方文档 | 1 | 0.05 % | No |
MetadataAction 看不出什么Metadata就是一个uint64? 继续阅读srclog… | 1 | 0.05 % | No |
SEO Keywords (Four Word)
Keyword | Occurrence | Density | Possible Spam |
---|---|---|---|
A list of recorded | 2 | 0.10 % | No |
reconstruct it from the | 2 | 0.10 % | No |
shall reconstruct it from | 2 | 0.10 % | No |
master shall reconstruct it | 2 | 0.10 % | No |
elected master shall reconstruct | 2 | 0.10 % | No |
newly elected master shall | 2 | 0.10 % | No |
a newly elected master | 2 | 0.10 % | No |
继续阅读srclog… 官方文档 官方文档里说,replicated log里存的是集群状态信息,那么这个cluster | 1 | 0.05 % | No |
重新编译mesos启动master之后,发现打印出的是乱码,追踪到srcmessageslogproto里定义了leveldbcpp里的两个持久化对象 MetadataAction 看不出什么Metadata就是一个uint64? 继续阅读srclog… | 1 | 0.05 % | No |
MetadataAction 看不出什么Metadata就是一个uint64? 继续阅读srclog… 官方文档 | 1 | 0.05 % | No |
看不出什么Metadata就是一个uint64? 继续阅读srclog… 官方文档 官方文档里说,replicated | 1 | 0.05 % | No |
最新文章 dev ops math | 1 | 0.05 % | No |
官方文档 官方文档里说,replicated log里存的是集群状态信息,那么这个cluster state到底包含哪些东西呢?这个是本篇博客的主题。 | 1 | 0.05 % | No |
假设replicated_log是使用leveldb持久化的,那么这里,有一个序列化为string的操作,我们可以通过打印出这个string来观察 leveldb里存的是什么。测试思路,添加打印日志,重新编译mesos,手动启动masteragentframework之后,观察log输出。 重新编译mesos启动master之后,发现打印出的是乱码,追踪到srcmessageslogproto里定义了leveldbcpp里的两个持久化对象 MetadataAction | 1 | 0.05 % | No |
官方文档里说,replicated log里存的是集群状态信息,那么这个cluster state到底包含哪些东西呢?这个是本篇博客的主题。 replicated_log是appendonly的,也就是说只支持append操作,append操作的对象是log | 1 | 0.05 % | No |
log里存的是集群状态信息,那么这个cluster state到底包含哪些东西呢?这个是本篇博客的主题。 replicated_log是appendonly的,也就是说只支持append操作,append操作的对象是log entry | 1 | 0.05 % | No |
leveldb里存的是什么。测试思路,添加打印日志,重新编译mesos,手动启动masteragentframework之后,观察log输出。 重新编译mesos启动master之后,发现打印出的是乱码,追踪到srcmessageslogproto里定义了leveldbcpp里的两个持久化对象 MetadataAction 看不出什么Metadata就是一个uint64? | 1 | 0.05 % | No |
Nothing 假设replicated_log是使用leveldb持久化的,那么这里,有一个序列化为string的操作,我们可以通过打印出这个string来观察 leveldb里存的是什么。测试思路,添加打印日志,重新编译mesos,手动启动masteragentframework之后,观察log输出。 重新编译mesos启动master之后,发现打印出的是乱码,追踪到srcmessageslogproto里定义了leveldbcpp里的两个持久化对象 | 1 | 0.05 % | No |
replicated_log是appendonly的,也就是说只支持append操作,append操作的对象是log entry log entry可以是任何内容。 | 1 | 0.05 % | No |
return Nothing 假设replicated_log是使用leveldb持久化的,那么这里,有一个序列化为string的操作,我们可以通过打印出这个string来观察 leveldb里存的是什么。测试思路,添加打印日志,重新编译mesos,手动启动masteragentframework之后,观察log输出。 | 1 | 0.05 % | No |
Internal links in - ivanjobs.github.io
开始使用gtest | Ivan的博客
寻找正确的语义[比赛总结] | Ivan的博客
score_thresholder服务开发总结 | Ivan的博客
Debug CPP Program On Ubuntu | Ivan的博客
Modern CPP Developer Need To Know | Ivan的博客
汇编语言学习笔记 | Ivan的博客
Mesos Quota 和 Reservation | Ivan的博客
libprocess学习笔记 | Ivan的博客
Consul使用笔记 | Ivan的博客
SSH重新学习 | Ivan的博客
Protocol buffers 代码入门 | Ivan的博客
Mesos Slave 如何上报资源? | Ivan的博客
Object Locator (Ceph) 探究笔记 | Ivan的博客
librados接口使用 | Ivan的博客
Ceph RGW Pools 浅析 | Ivan的博客
在单机上搭建多Ceph集群 | Ivan的博客
Dockerfile中RUN/CMD/ENTRYPOINT的区分 | Ivan的博客
strace使用入门 | Ivan的博客
Haystack论文学习笔记 | Ivan的博客
Mesos关联配置 | Ivan的博客
ZooKeeper概览 | Ivan的博客
Ceph故障解析-filestore_merge_threshold | Ivan的博客
基于laravel+mysql的容器化DAL方案 | Ivan的博客
vuejs使用小结1 | Ivan的博客
Ceph新技能Get | Ivan的博客
Ceph v10.2.3 RGW源码解析2 | Ivan的博客
Ceph v10.2.3 RGW源码解析1 | Ivan的博客
s3cmd使用说明 | Ivan的博客
vuejs工具链简介 | Ivan的博客
requirejs简介 | Ivan的博客
可编程自动化输入方案(Mac下) | Ivan的博客
Mesos Supress/Revive Offers测试 | Ivan的博客
Mesos Offer生命周期杂记 | Ivan的博客
Mesos Agent Containerizer分析 | Ivan的博客
get started with createjs chapter 1 notes | Ivan的博客
mesos agent /monitor/statistics返回数据业务意义 | Ivan的博客
mesos master/messages_deactivate_frameworks 不生效? | Ivan的博客
KMP算法杂谈 | Ivan的博客
Mesos配置项深入分析 | Ivan的博客
mesos-master replicated_log存的是什么? | Ivan的博客
mesos disk usage vs df 结果不一致问题 | Ivan的博客
Mesos GC原理解析 | Ivan的博客
准备mesos单机版开发测试环境 | Ivan的博客
Mesos 1.0.0 源码解析杂记 | Ivan的博客
stout学习笔记 | Ivan的博客
gflags学习笔记 | Ivan的博客
ceph fuse挂载cephfs, ls不出文件列表问题,调试记录 | Ivan的博客
Ceph源码解析(3)-rados put过程探究 | Ivan的博客
Hub,Bridge,Switch和Gateway是什么? | Ivan的博客
数论学习笔记 | Ivan的博客
二分图专题解析 | Ivan的博客
Ceph Cluster调优日志 | Ivan的博客
boost库的智能指针 | Ivan的博客
Linux命令使用记录 | Ivan的博客
Vim Cheat Sheet | Ivan的博客
原码、反码、补码笔记 | Ivan的博客
ceph-deploy 配置文件比较 BUG | Ivan的博客
Ceph源码解析(2)-rados put过程探究 | Ivan的博客
Ceph Release 概述 | Ivan的博客
Ceph CRUSH Map 维护详解 | Ivan的博客
题解[第二周] | Ivan的博客
MathQuill Math Equation Cheatsheet | Ivan的博客
题解[第一周] | Ivan的博客
Ceph集群运维问题记录 | Ivan的博客
linux man高级技巧 | Ivan的博客
Git 我错了! | Ivan的博客
Ceph源码解析(1)-Create Pool过程探究 | Ivan的博客
准备Ceph开发环境 | Ivan的博客
Ceph:Too Many PGs Per OSD | Ivan的博客
UVA 11292 题解 | Ivan的博客
Ceph RBD 文件映射实验笔记 | Ivan的博客
硬盘分区 | Ivan的博客
硬盘模型 | Ivan的博客
Ceph配置项 | Ivan的博客
OSTEP 文件系统实现 | Ivan的博客
在Ceph底层xfs上找到你上传的文件 | Ivan的博客
使用s3cmd操作ceph rgw | Ivan的博客
Ceph核心概念备忘录 | Ivan的博客
COSBench使用笔记 | Ivan的博客
使用saltstack部署运维ceph集群笔记 | Ivan的博客
如何使用salt states? | Ivan的博客
ceph-deploy命令详解 | Ivan的博客
dd笔记 | Ivan的博客
DTrace是什么? | Ivan的博客
Ceph Cache Tier笔记 | Ivan的博客
Linux下理解filesystem/device/mount等概念 | Ivan的博客
Base64编码详解与应用 | Ivan的博客
URLEncoder学习笔记 | Ivan的博客
Ceph论文阅读笔记 | Ivan的博客
使用Python inotify监控文件变化 | Ivan的博客
Git命令Snippets | Ivan的博客
Ivanjobs.github.io Spined HTML
mesos-master replicated_log存的是什么? | Ivan的博客 最新文章 dev ops math algorithm personal 开始使用gtest 2018书单课单 2017年总结/2018年展望 寻找正确的语义[比赛总结] score_thresholder服务开发总结 Debug CPP Program On Ubuntu Modern CPP Developer Need To Know 汇编语言学习笔记 Mesos Quota 和 Reservation libprocess学习笔记 Consul使用笔记 SSH重新学习 Protocol buffers 代码入门 Mesos Slave 如何上报资源? Object Locator (Ceph) 探究笔记 librados接口使用 Ceph RGW Pools 浅析 在单机上搭建多Ceph集群 2016年总结/2017年展望 Dockerfile中RUN/CMD/ENTRYPOINT的区分 strace使用入门 Haystack论文学习笔记 Mesos关联配置 ZooKeeper概览 Ceph故障解析-filestore_merge_threshold 基于laravel+mysql的容器化DAL方案 vuejs使用小结1 Ceph新技能Get Ceph v10.2.3 RGW源码解析2 Ceph v10.2.3 RGW源码解析1 s3cmd使用说明 vuejs工具链简介 requirejs简介 mesos maintenance深度解析 可编程自动化输入方案(Mac下) Mesos Supress/Revive Offers测试 Mesos Offer生命周期杂记 MesosWage-earnerContainerizer分析 get started with createjs installment 1 notes mesos wage-earner /monitor/statistics返回数据业务意义 mesos master/messages_deactivate_frameworks 不生效? mesos /flags 403 forbidden? KMP算法杂谈 Mesos配置项深入分析 mesos-master replicated_log存的是什么? mesos disk usage vs df 结果不一致问题 Mesos GC原理解析 准备mesos单机版开发测试环境 Mesos 1.0.0 源码解析杂记 stout学习笔记 gflags学习笔记 ceph fuse挂载cephfs, ls不出文件列表问题,调试记录 Ceph源码解析(3)-rados put过程探究 Hub,Bridge,Switch和Gateway是什么? 数论学习笔记 二分图专题解析 Ceph Cluster调优日志 boost库的智能指针 Linux命令使用记录 Vim Cheat Sheet 原码、反码、补码笔记 ceph-deploy 配置文件比较 BUG Ceph源码解析(2)-rados put过程探究 Ceph Release 概述 Ceph CRUSH Map 维护详解 题解[第二周] MathQuill Math Equation Cheatsheet 题解[第一周] Ceph集群运维问题记录 linux man高级技巧 Git 我错了! Ceph源码解析(1)-Create Pool过程探究 准备Ceph开发环境 Ceph:Too Many PGs Per OSD UVA 11292 题解 Docker Private Registry(Ceph Swift) 搭建笔记 Ceph RBD 文件映射实验笔记 硬盘分区 硬盘模型 Ceph配置项 OSTEP 文件系统实现 在Ceph底层xfs上找到你上传的文件 使用s3cmd操作ceph rgw Ceph核心概念备忘录 COSBench使用笔记 GCJ2015 Qualification Round-B题解 使用saltstack部署运维ceph集群笔记 如何使用salt states? ceph-deploy命令详解 dd笔记 DTrace是什么? Ceph Cache Tier笔记 Linux下理解filesystem/device/mount等概念 Base64编码详解与应用 URLEncoder学习笔记 Ceph论文阅读笔记 使用Python inotify监控文件变化 Git命令Snippets 使用Nginx做LB MathQuill学习笔记 Docker化Laravel开发环境 Ceph Pool PG配置说明 Ceph 笔记 Ceph源码分析 Latex数学符号 为Ceph OSS服务搭建LB Ceph RGW S3接口测试:诡异的403 AccessDenied问题 访问Ceph RGW失败 403 Forbidden问题 解决历程 Ceph RADOS论文研读笔记 Ceph源码分析:从一个REST请求,到OSD存储。 各种开源代码协议简述 OpenStack Projects简述 OpenStack Ceilometer 笔记 RabbitMQ 和 oslo.messaging Ceph Rest API 身份验证方式(S3) tcpdump笔记 Ceph集群部署笔记 Python PEP8规范笔记 Python Decorator(装饰器)模式 笔记 libvirt笔记 OpenStack oslo 概览 OpenStack KeyStone API http://localhost:5000/ 源码追踪 Python pdb笔记 zero length variety in a struct Jenkins' Hash Functions NTP部署笔记 Linux iptables笔记 Python Paste笔记 Python PasteDeploy笔记 Python eventlet笔记 使用curl测试RESTful接口 ubuntu14.04下安装devstack devstack 安装指南【最简单】 Docker操作记录 git merge 详解 Python 包管理详解 阿里云服务器设置swapfile的方法 shell脚本编写向导 搭建Laravel全栈开发环境 2016 August 15 mesos-master replicated_log存的是什么? 目前知道的,mesos master会使用replicated_log保存registry信息,那么这个registry信息以及这个replicated_log到底是什么? 用一种可以理解的方式阐述它们,对于理解mesos-master至关重要。 mesos-log 偶然发现mesos的一个utility:mesos-log, 这是个命令行工具,可以用来初始化、读取、基准化replicated_log,在src\log目录下应该可以找到我们想要的内容。 我们在src/log/leveldb.cpp中发现: Try<Nothing> LevelDBStorage::persist(const Metadata& metadata) { Stopwatch stopwatch; stopwatch.start(); leveldb::WriteOptions options; options.sync = true; Record record; record.set_type(Record::METADATA); record.mutable_metadata()->CopyFrom(metadata); string value; if (!record.SerializeToString(&value)) { return Error("Failed to serialize record"); } leveldb::Status status = db->Put(options, encode(0, false), value); if (!status.ok()) { return Error(status.ToString()); } LOG(INFO) << "Persisting metadata (" << value.size() << " bytes) to leveldb took " << stopwatch.elapsed(); return Nothing(); } 假设replicated_log是使用leveldb持久化的,那么这里,有一个序列化为string的操作,我们可以通过打印出这个string来观察 leveldb里存的是什么。测试思路,添加打印日志,重新编译mesos,手动启动master/agent/framework之后,观察log输出。 重新编译mesos启动master之后,发现打印出的是乱码,追踪到src/messages/log.proto里定义了leveldb.cpp里的两个持久化对象 Metadata/Action, 看不出什么Metadata就是一个uint64? 继续阅读src/log… 官方文档 官方文档里说,replicated log里存的是集群状态信息,那么这个cluster state到底包含哪些东西呢?这个是本篇博客的主题。 replicated_log是append-only的,也就是说只支持append操作,append操作的对象是log entry, log entry可以是任何内容。 基本的场景是,多个replicas, 有一个leader,负责append, append的操作会复制到其他replica上,通过Paxos算法保证一致性。 文档里有一句话:“The Mesos master’s registry moreover leverages the replicated log to store information well-nigh all teachers in the cluster.” 由此可以看出,master的replicated_log里存的是agent信息。 官方文档建议关掉replicated_log的自动初始化,因为其逻辑是在多个replica都为空的情况下,自动初始化log。但这种情况 可能出现在一些灾难性的事故中。保守的用户,建议使用手动初始化。 ok, 终于找到了:/src/master/registry.proto里定义了replicated_log里存储的信息: // Most recent leading master. optional Master master = 1; // All admitted slaves. optional Slaves slaves = 2; // Holds a list of machines and some status information well-nigh each. // See comments in `MachineInfo` for increasingly information. optional Machines machines = 3; // Describes a schedule for taking lanugo specific machines for maintenance. // The schedule is meant to requite hints to frameworks well-nigh potential // unavailability of resources. The `schedules` are related to the status // information found in `machines`. repeated maintenance.Schedule schedules = 4; // A list of recorded quotas in the cluster. It does not hold an very // work of resources, a newly elected master shall reconstruct it // from the cluster. repeated Quota quotas = 5; // A list of recorded weights in the cluster, a newly elected master shall // reconstruct it from the registry. repeated Weight weights = 6; 可见,replicated_log/registry里保存了:leading master信息、agents信息、机器信息、Maintenance的Schedule信息、quota信息、 权重信息。 ok,到这里已经大概清楚registry/replicated_log里保存的信息了。 Please enable JavaScript to view the comments powered by Disqus. All content is licensed under CC BY-NC-SA Buit with Jekyll and 3-Jekyll theme • Hosted on Github Table of Contents