 Kubernetes Operator 实践 - MySQL容器化complex stateful applications on behalf of a Kubernetes user. operator 是特殊的 controller,用来管理复杂的分布式应用 ü custom resource definition(CRD) ü custom controller Operator 是什么 • Kubernetes 中一切都可视为资源 • 默认资源类型:如 Mysql Operator pod … … mysql Pod-T 0. 创建 CRD 3. 集群管理 2. 调度 pod Ceph MySQL-Operator 数据存储 分布式存储 • 使用 Ceph RBD,基于产品线 创建 StorageClass • 优点:可靠性高,容器漂移时 数据不变 • 缺点:读写延迟较高 本地存储 • 基于 Host Path Volumes kernel-3.10.0-449.el7 解决 https://bugzilla.redhat.com/show_bug.cgi?id=1319256 • 现象:PVC 在第一次绑定的时候特别慢 原因:pod 使用未绑定 PVC 时,不会加入使用的 volume,又不 watch PVC,导致只有 超时时才重新处理 方案:k8s v1.10.7 解决 https://github.com/kube0 码力 | 42 页 | 4.77 MB | 1 年前3 Kubernetes Operator 实践 - MySQL容器化complex stateful applications on behalf of a Kubernetes user. operator 是特殊的 controller,用来管理复杂的分布式应用 ü custom resource definition(CRD) ü custom controller Operator 是什么 • Kubernetes 中一切都可视为资源 • 默认资源类型:如 Mysql Operator pod … … mysql Pod-T 0. 创建 CRD 3. 集群管理 2. 调度 pod Ceph MySQL-Operator 数据存储 分布式存储 • 使用 Ceph RBD,基于产品线 创建 StorageClass • 优点:可靠性高,容器漂移时 数据不变 • 缺点:读写延迟较高 本地存储 • 基于 Host Path Volumes kernel-3.10.0-449.el7 解决 https://bugzilla.redhat.com/show_bug.cgi?id=1319256 • 现象:PVC 在第一次绑定的时候特别慢 原因:pod 使用未绑定 PVC 时,不会加入使用的 volume,又不 watch PVC,导致只有 超时时才重新处理 方案:k8s v1.10.7 解决 https://github.com/kube0 码力 | 42 页 | 4.77 MB | 1 年前3
 Qcon北京2018--《MySQL的Docker容器化大规模实践》--王晓波MySQL+DB中间件解决水平拆分问题。 ■ MySQL水平拆分的引入会使数据库实例数量大幅上升,传统运维手段维护成本高,交付能力差。 MySQL数据库为何要Docker化 1.MySQL数据库迅速爆炸式增长后,服务器规模不断增大,快速部署是个问题。 2.随着业务的发展,扩容数据库的不方便不快捷,也是个问题。 3.大量数据量小的数据库系统也单独部署在物理机,浪费问题突出。 4.DBA的数据库自动化标准化运维的需求。 查 看 自 动 化 备 份 资 源 池 管 理 高 可 用 切 换 集 群 节 点 管 理 扩 容 缩 容 数 据 库 及 实 例 迁 移 过 载 保 护 机 制 总体架构 分 布 式 监 控 资源管理|资源调度 复制与迁移|高可用保障|备份恢复 自 动 化 运 维 应用 DB中间件 数据存储 应用 VIP 告警分析 告警发送 指标画图 趋势预测 自定义脚本 OM等。我们 基于lxcfs组件来增强容器的隔离性。 资源隔离 CPU最大超卖3倍,通过cpu-period配合cpu-quota一起使用,来限制容器的CPU的使用量 。比cpuset-cpus绑定CPU的方式灵活。 限制容器内存,且内存不超卖。通过—memory限制内存,同时结合MySQL自身参数控制 几个内存大户(比如buffer_pool等),最后配合lxcfs增强隔离性。 IO方面0 码力 | 32 页 | 7.11 MB | 1 年前3 Qcon北京2018--《MySQL的Docker容器化大规模实践》--王晓波MySQL+DB中间件解决水平拆分问题。 ■ MySQL水平拆分的引入会使数据库实例数量大幅上升,传统运维手段维护成本高,交付能力差。 MySQL数据库为何要Docker化 1.MySQL数据库迅速爆炸式增长后,服务器规模不断增大,快速部署是个问题。 2.随着业务的发展,扩容数据库的不方便不快捷,也是个问题。 3.大量数据量小的数据库系统也单独部署在物理机,浪费问题突出。 4.DBA的数据库自动化标准化运维的需求。 查 看 自 动 化 备 份 资 源 池 管 理 高 可 用 切 换 集 群 节 点 管 理 扩 容 缩 容 数 据 库 及 实 例 迁 移 过 载 保 护 机 制 总体架构 分 布 式 监 控 资源管理|资源调度 复制与迁移|高可用保障|备份恢复 自 动 化 运 维 应用 DB中间件 数据存储 应用 VIP 告警分析 告警发送 指标画图 趋势预测 自定义脚本 OM等。我们 基于lxcfs组件来增强容器的隔离性。 资源隔离 CPU最大超卖3倍,通过cpu-period配合cpu-quota一起使用,来限制容器的CPU的使用量 。比cpuset-cpus绑定CPU的方式灵活。 限制容器内存,且内存不超卖。通过—memory限制内存,同时结合MySQL自身参数控制 几个内存大户(比如buffer_pool等),最后配合lxcfs增强隔离性。 IO方面0 码力 | 32 页 | 7.11 MB | 1 年前3
 MySQL 企业版功能介绍击,同时帮助您实现合规性。自 助式供应可创建预配置的 MySQL 数据库,针对性能进行优化;而自动扩展能够让用户弹性扩展 计算资源、存储资源和 MySQL 副本。 MySQL 数据库 MySQL 凭借经济高效、可靠、高性能且可扩展的电子商务、联机事务处理和嵌入式数据库应用 成为全球使用广泛的开源数据库。它是一种事务安全、符合 ACID 标准的集成式数据库,支持全 面的提交、回滚、崩溃恢复和行锁定功能。MySQL 增量和部分备份以外,MySQL 还全面支持事务操作。并行执行的备份操作有助于快速完成备份; 此外,MySQL 企业级备份还支持多种压缩选项,可将备份映像减小 90%。恢复选项包括向后兼 容完整恢复、准确的一键式指定时间点恢复和专用于恢复一组特定对象的部分恢复。 MySQL 企业级高可用性 MySQL 企业级高可用性可帮助您满足一切应用的可用性需求,即便是极为严苛的任务关键型应 用。MySQL 分组 需人工干预或定制工具。 MySQL 企业级可扩展性 MySQL 企业级可扩展性可帮助您满足不断增长的用户、查询和数据负载对性能和可扩展性的要 求。MySQL 线程池提供了一个高效的线程处理模型,旨在降低客户端连接和语句执行线程的管 理开销。 MySQL 企业级身份验证 MySQL 企业级身份验证提供了随时可用的外部身份验证模块,可轻松集成到现有安全基础架构 中,包括 Linux0 码力 | 6 页 | 509.78 KB | 1 年前3 MySQL 企业版功能介绍击,同时帮助您实现合规性。自 助式供应可创建预配置的 MySQL 数据库,针对性能进行优化;而自动扩展能够让用户弹性扩展 计算资源、存储资源和 MySQL 副本。 MySQL 数据库 MySQL 凭借经济高效、可靠、高性能且可扩展的电子商务、联机事务处理和嵌入式数据库应用 成为全球使用广泛的开源数据库。它是一种事务安全、符合 ACID 标准的集成式数据库,支持全 面的提交、回滚、崩溃恢复和行锁定功能。MySQL 增量和部分备份以外,MySQL 还全面支持事务操作。并行执行的备份操作有助于快速完成备份; 此外,MySQL 企业级备份还支持多种压缩选项,可将备份映像减小 90%。恢复选项包括向后兼 容完整恢复、准确的一键式指定时间点恢复和专用于恢复一组特定对象的部分恢复。 MySQL 企业级高可用性 MySQL 企业级高可用性可帮助您满足一切应用的可用性需求,即便是极为严苛的任务关键型应 用。MySQL 分组 需人工干预或定制工具。 MySQL 企业级可扩展性 MySQL 企业级可扩展性可帮助您满足不断增长的用户、查询和数据负载对性能和可扩展性的要 求。MySQL 线程池提供了一个高效的线程处理模型,旨在降低客户端连接和语句执行线程的管 理开销。 MySQL 企业级身份验证 MySQL 企业级身份验证提供了随时可用的外部身份验证模块,可轻松集成到现有安全基础架构 中,包括 Linux0 码力 | 6 页 | 509.78 KB | 1 年前3
 MySQL 8.0.17 调优指南(openEuler 20.09)网络参数调优 3.7 IO 参数调优 3.8 缓存参数调优 3.9 内核优化 3.10 mysql进程绑核 3.1 关闭 irqbalance 目的 关闭irqbalance,通过手动绑定中断的方法优化性能。 方法 步骤1 停止irqbalance服务。 systemctl stop irqbalance.service 步骤2 关闭irqbalance服务。 systemctl ----结束 3.2 网卡中断绑核 目的 手动绑定网卡中断,根据网卡所属CPU将其进行分配,从而优化系统网络性能。 方法 对于不同的硬件配置,用于绑中断的最佳CPU数目会有差异,比如对于华为鲲鹏920 4826处理器 + Huawei TM280 25G网卡(Taishan 2280的板载网卡)来说,最多可以 绑定32个中断队列,建议将所有的队列都用在中断绑定上来获得最佳性能。 以下脚本是在华为鲲鹏920 3.10 mysql 进程绑核 目的 将mysql的进程绑定到指定CPU上,同时内存使能interleave。 方法 使用numatl命令进行设置,其中0-92是mysql进程要运行的CPU序号,my.cnf是mysql 的配置文件路径。在华为鲲鹏920 4826处理器 + Huawei TM280 25G网卡上为mysql 绑定93个核能获得最佳性能。 numactl -C 0-92 -i0 码力 | 11 页 | 223.31 KB | 1 年前3 MySQL 8.0.17 调优指南(openEuler 20.09)网络参数调优 3.7 IO 参数调优 3.8 缓存参数调优 3.9 内核优化 3.10 mysql进程绑核 3.1 关闭 irqbalance 目的 关闭irqbalance,通过手动绑定中断的方法优化性能。 方法 步骤1 停止irqbalance服务。 systemctl stop irqbalance.service 步骤2 关闭irqbalance服务。 systemctl ----结束 3.2 网卡中断绑核 目的 手动绑定网卡中断,根据网卡所属CPU将其进行分配,从而优化系统网络性能。 方法 对于不同的硬件配置,用于绑中断的最佳CPU数目会有差异,比如对于华为鲲鹏920 4826处理器 + Huawei TM280 25G网卡(Taishan 2280的板载网卡)来说,最多可以 绑定32个中断队列,建议将所有的队列都用在中断绑定上来获得最佳性能。 以下脚本是在华为鲲鹏920 3.10 mysql 进程绑核 目的 将mysql的进程绑定到指定CPU上,同时内存使能interleave。 方法 使用numatl命令进行设置,其中0-92是mysql进程要运行的CPU序号,my.cnf是mysql 的配置文件路径。在华为鲲鹏920 4826处理器 + Huawei TM280 25G网卡上为mysql 绑定93个核能获得最佳性能。 numactl -C 0-92 -i0 码力 | 11 页 | 223.31 KB | 1 年前3
 如何用 MySQL 构建全方位高可用应用版权所有 2015,Oracle 和/或其附属公司。保留所有权利。 为何进行复制? •将数据库从“主服务器”复制到“从服务器” – 数据的冗余副本奠定了高可用性的基础 – 通过在复制场中进行分布式查询来扩展 主 从 Web/应用服务器 写入和读取 读取 4/16/2017 版权所有 2015,Oracle 和/或其附属公司。保留所有权利。 9 •异步 – MySQL 默认设置 – •自动搜索复制拓扑 •主/从性能监视 •复制指导 •有关最佳做法的复制建议 “我每天使用 MySQL Enterprise Monitor 监视和跟踪 MySQL 数据库。 该软件提供了快速的一站式服务, 可用来密切监视数据库。” -Wes Homer, 高级系统和网络管理员 4/16/2017 版权所有 2015,Oracle 和/或其附属公司。保留所有权利。 13 并不仅仅是可靠地存储数据 Cluster MySQL Group Replication • MySQL Group Replication是什么? “任何一个都可以更新 MySQL的复制插件,内建 自动分化散式的回复,冲突处理,群组 成员管理 和分散式协议.” • 能为使用者做什么? – 免于处理资料库的故障移转. – 提供容错能力. – 使我们能设定在群组中所有的资料库都能更新. – 自动化群组设定 (在宕机时,失败时,和重新连线时的处理)0 码力 | 40 页 | 2.19 MB | 1 年前3 如何用 MySQL 构建全方位高可用应用版权所有 2015,Oracle 和/或其附属公司。保留所有权利。 为何进行复制? •将数据库从“主服务器”复制到“从服务器” – 数据的冗余副本奠定了高可用性的基础 – 通过在复制场中进行分布式查询来扩展 主 从 Web/应用服务器 写入和读取 读取 4/16/2017 版权所有 2015,Oracle 和/或其附属公司。保留所有权利。 9 •异步 – MySQL 默认设置 – •自动搜索复制拓扑 •主/从性能监视 •复制指导 •有关最佳做法的复制建议 “我每天使用 MySQL Enterprise Monitor 监视和跟踪 MySQL 数据库。 该软件提供了快速的一站式服务, 可用来密切监视数据库。” -Wes Homer, 高级系统和网络管理员 4/16/2017 版权所有 2015,Oracle 和/或其附属公司。保留所有权利。 13 并不仅仅是可靠地存储数据 Cluster MySQL Group Replication • MySQL Group Replication是什么? “任何一个都可以更新 MySQL的复制插件,内建 自动分化散式的回复,冲突处理,群组 成员管理 和分散式协议.” • 能为使用者做什么? – 免于处理资料库的故障移转. – 提供容错能力. – 使我们能设定在群组中所有的资料库都能更新. – 自动化群组设定 (在宕机时,失败时,和重新连线时的处理)0 码力 | 40 页 | 2.19 MB | 1 年前3
 谈谈MYSQL那点事如果既不是很强的一致性又不是很弱的一致性,那 么我们就采取中间的策略,就是在同机房再部署一个 S1(R) ,作为备库,提供读取服务,减少 M1(WR) 的 压力,而另外一个 idc 机房的 M2 只做 standby 容灾方 式的用途。 当然这里会用到 3 台数据库服务器,也许会增加采 购压力,但是我们可以提供更好的对外数据服务的能力和 途径,实际中尽可能两者兼顾。 MySQL 架构设计—高可用架构 MySQL 访问频繁,考虑 访问频繁,考虑 Master/Slave Master/Slave 读写分离;数据库分表、数据库切片(分 读写分离;数据库分表、数据库切片(分 布式),也考虑使用相应缓存服务帮助 布式),也考虑使用相应缓存服务帮助 MySQL MySQL 缓解访问 缓解访问 压力 压力 系统优化 系统优化  配置合理的 配置合理的 MySQL MySQL 服务器,尽量在应用本身达到一0 码力 | 38 页 | 2.04 MB | 1 年前3 谈谈MYSQL那点事如果既不是很强的一致性又不是很弱的一致性,那 么我们就采取中间的策略,就是在同机房再部署一个 S1(R) ,作为备库,提供读取服务,减少 M1(WR) 的 压力,而另外一个 idc 机房的 M2 只做 standby 容灾方 式的用途。 当然这里会用到 3 台数据库服务器,也许会增加采 购压力,但是我们可以提供更好的对外数据服务的能力和 途径,实际中尽可能两者兼顾。 MySQL 架构设计—高可用架构 MySQL 访问频繁,考虑 访问频繁,考虑 Master/Slave Master/Slave 读写分离;数据库分表、数据库切片(分 读写分离;数据库分表、数据库切片(分 布式),也考虑使用相应缓存服务帮助 布式),也考虑使用相应缓存服务帮助 MySQL MySQL 缓解访问 缓解访问 压力 压力 系统优化 系统优化  配置合理的 配置合理的 MySQL MySQL 服务器,尽量在应用本身达到一0 码力 | 38 页 | 2.04 MB | 1 年前3
 MySQL高可用 - 多种方案方案优缺点  优点: 配置简单、,可配置主机恢复后是否切换回 master。不存在单点故障。  缺点: 当 mysql 服务挂掉或者不可用的情况下不能进行自动切换,需要通过 crm 模 式实现或者额外的脚本实现(比如 shell 脚本监测到 master 的 mysql 不可用就 将主上的 heartbeat 停掉,这样就会切换到 backup 中去)。 默认启动以及切换后的 backup secondary 模式的时候才可以将 dbserver2 设置成 primary。 d) 在 dbserver2 上执行 drbdadm primary all,将 dbserver2 提升为主模 式,并观察/proc/drbd 是否正常。 e) 在 dbserver2 上执行 mount /dev/drbd0 /drbd 挂在文件系统。 f) 启动 dbserver2 的 mysql,/etc/rc0 码力 | 31 页 | 874.28 KB | 1 年前3 MySQL高可用 - 多种方案方案优缺点  优点: 配置简单、,可配置主机恢复后是否切换回 master。不存在单点故障。  缺点: 当 mysql 服务挂掉或者不可用的情况下不能进行自动切换,需要通过 crm 模 式实现或者额外的脚本实现(比如 shell 脚本监测到 master 的 mysql 不可用就 将主上的 heartbeat 停掉,这样就会切换到 backup 中去)。 默认启动以及切换后的 backup secondary 模式的时候才可以将 dbserver2 设置成 primary。 d) 在 dbserver2 上执行 drbdadm primary all,将 dbserver2 提升为主模 式,并观察/proc/drbd 是否正常。 e) 在 dbserver2 上执行 mount /dev/drbd0 /drbd 挂在文件系统。 f) 启动 dbserver2 的 mysql,/etc/rc0 码力 | 31 页 | 874.28 KB | 1 年前3
共 7 条
- 1













