首页 > 其他分享 >分布式存储节点替换故障硬盘(filestore+LVMcache)

分布式存储节点替换故障硬盘(filestore+LVMcache)

时间:2024-09-10 17:54:03浏览次数:13  
标签:LVMcache cache dev ceph filestore sdc vg0 osd 分布式

1. 说明

此文档操作方法适用于>=V13.2.5 ceph版本,部署模式为filestore,将每一块机械盘(LVM卷)对应一个OSD进程,并且journal日志放在ssd加速盘上。

2. 故障硬盘为SSD缓存盘(加速盘)

【思路】

缓存盘故障,需先删除机械盘对应的osd,再取消对应机械盘的cache关系,关机换盘后,重新创建cache逻辑卷与绑定cache-pool,创建osd。

【测试环境】

【处理步骤】

1、删除故障硬盘

登录故障缓存盘所在节点,将故障盘对应的osd down掉,并等待数据同步完成

# lsblk
# docker exec ceph-cmd ceph osd out osd.<ID>
# docker exec ceph-cmd daemon-stop  target=osd.<ID>
# docker exec ceph-cmd ceph osd purge <id>  --yes-i-really-mean-it
# docker exec ceph-cmd daemon-delete  target=osd.<ID>
# docker exec ceph-cmd  ceph-s

2、设置分布式存储数据不迁移

# cmd

# ceph osd set norecover

# ceph osd set nobackfill

# ceph osd set noout

3、移除故障OSD

示例: 故障缓存硬盘sda     卷组vg0     数据逻辑卷vg0/data_sdc   vg0/data_sdd

# lvconvert --uncache  vg0/data_sdc

# lvconvert --uncache  vg0/data_sdd

# vgreduce  /dev/vg0   /dev/sda3

# pvremove /dev/sda3

# fdisk /dev/sda      删除sda1    sda2   sda3这三个分区

4、关闭服务器,更新故障缓存盘(SSD)

5、开机进入RAID配置页面,将新硬盘做RAID0(若是JBOD直通,可忽略此步骤)

6、进入操作系统,检查所有磁盘监控状态,要求均能识别正常

7、格式化/dev/sda磁盘,并新建3个分区

sda1    10G   

sda2    10G

sda3    剩余所有

8、创建cache/meta 逻辑卷,并绑定缓存池

# pvcreate  /dev/sda3
# vgextend  /dev/vg0   /dev/sda3
# lvcreate  -n  cache_sdc  -L  210G  vg0   /dev/sda3
# lvcreate  -n  meta_sdc  -L  1G  vg0   /dev/sda3
# lvcreate  -n  cache_sdd  -L  210G  vg0   /dev/sda3
# lvcreate  -n  meta_sdd  -L  1G  vg0   /dev/sda3
# lvconvert  --type cache-pool  --poolmetadata vg0/meta_sdc  vg0/cache_sdc
# lvconvert  --type cache  --cachepool vg0/cache_sdc   vg0/data_sdc  --cachemode writeback 
# lvconvert  --type cache-pool  --poolmetadata vg0/meta_sdd  vg0/cache_sdd
# lvconvert  --type cache  --cachepool vg0/cache_sdd   vg0/data_sdd  --cachemode writeback
# lvs
# lsblk

9、添加osd

# docker exec ceph-cmd daemon-create host=ycc-xxx  osd type=filestore disk=/dev/vg0/data_sdc  journal=/dev/sda1

# docker exec ceph-cmd daemon-create host=ycc-xxx  osd type=filestore disk=/dev/vg0/data_sdd  journal=/dev/sda2

# docker  exec  -it  ceph-cmd   ceph  -s

3. 故障硬盘为OSD 数据盘

【思路】

删除故障osd对应的lvm卷,关机更换故障硬盘,将新硬盘重新做RAID0,并从/dev/sda3或者/dev/sdb3中新建lvmcahe的cache、meta逻辑卷。从故障硬盘新建数据逻辑卷,并绑定lvm cache-pool,再添加osd到ceph集群。

【测试环境】

【处理步骤】

1、删除故障硬盘

登录故障osd所在计算点,删除故障机械盘对应osd

# docker exec ceph-cmd ceph osd out osd.<ID>

# docker exec ceph-cmd daemon-stop host=<host> target=osd.<ID>

# docker exec ceph-cmd ceph osd purge <id> --yes-i-really-mean-it

# docker exec ceph-cmd daemon-delete host=<host> target=osd.<ID>

2、设置分布式存储数据不迁移

# cmd

# ceph osd set norecover

# ceph osd set nobackfill

# ceph osd set noout

3、删除故障硬盘对应的lvm卷

示例: 故障硬盘sdc     卷组vg0     数据逻辑卷/dev/vg0/data_sdc

# lvremove  -y  /dev/vg0/data_sdc

# vgreduce  vg0   /dev/sdc

# pvremove /dev/sdc

4、关闭服务器,更新故障缓存盘(SSD)

5、开机进入RAID配置页面,将新硬盘做RAID0(若是JBOD直通,可忽略此步骤)

6、进入操作系统,检查所有磁盘监控状态,要求均能识别正常

7、格式化/dev/sda磁盘,并配置lvmcache

# pvcreate  /dev/sdc

# vgextend  /dev/vg0   /dev/sdc

# lvcreate  -l  100%FREE  -n  data_sdc  /dev/vg0   /dev/sdc

# lvcreate  -n  cache_sdc  -L  210G  vg0   /dev/sda3

# lvcreate  -n  meta_sdc  -L  1G  vg0   /dev/sda3

# lvconvert --type cache-pool    --poolmetadata vg0/meta_sdc  vg0/cache_sdc

# lvconvert --type cache  --cachepool vg0/cache_sdc   vg0/data_sdc  --cachemode writeback  

# lvs

8、添加osd

# docker exec ceph-cmd daemon-create host=ycc-xxx  osd type=filestore disk=/dev/vg0/data_sdc  journal=/dev/sda1

# docker  exec  -it  ceph-cmd   ceph  -s

标签:LVMcache,cache,dev,ceph,filestore,sdc,vg0,osd,分布式
From: https://blog.csdn.net/weixin_43948680/article/details/142104307

相关文章

  • Locust 进行分布式负载测试
    什么是LocustLocust是一个开源的负载测试工具,用于测试网站和其他应用程序的性能。它通过编写Python脚本来定义虚拟用户的行为,模拟这些用户对目标系统发起请求。Locust提供了一个直观的Web界面,允许用户实时监控测试进度和性能指标。主要特性包括:Python编写测试脚本:使用......
  • 每个分布式营销团队都应该使用的5种分析工具
    没有数据分析的营销就像没有计划的训练——当然,你可能会取得一些进展,但是你很可能没有将工作时间和努力投资在最有效的方式上。它是没有方向的,容易变成毫无目的的磨炼,通常会产生不可预测或次优的结果。但你已经了解这些了,所以你用GoogleAnalytics来追踪你网站的性能指标。你......
  • 【Spark+Hive】基于大数据招聘数据分析预测推荐系统(完整系统源码+数据库+开发笔记+详
    文章目录【Spark+Hive】基于大数据招聘数据分析预测推荐系统(完整系统源码+数据库+开发笔记+详细部署教程+虚拟机分布式启动教程)源码获取方式在文章末尾一、 项目概述二、研究意义三、背景四、国内外研究现状五、开发技术介绍六、算法介绍 七、数据库设计八、系统......
  • Redis分布式锁
    线程安全->锁,多线程并发执行的时候,执行先后的顺序,不确定,随机性->需要保证程序在任意执行顺序下,执行逻辑都是ok的,之前学过的锁,mutex,synchronized本质上只能在一个进程内部生效,分布式系统中,是有很多进程的(每个服务器,都是独立的进程)因此,之前的锁,就难以对现在的分布式系统中......
  • 2025秋招NLP算法面试真题(十九)-大模型分布式训练题目
    分布式训练题目1.理论篇1.1训练大语言模型存在问题?计算资源需求**:**训练大型语言模型需要大量的计算资源,包括高端GPU、大量的内存和高速存储器。这可能限制了许多研究人员和组织的训练能力,因为这些资源通常很昂贵。数据需求**:**训练大型语言模型需要大规模的数......
  • Redis分布式锁查看机制与实现解析
    分布式系统中,锁的使用是保证资源一致性与并发控制的重要手段。Redis作为一个高效的内存存储工具,通过其简单的命令操作和快速响应机制,被广泛用于实现分布式锁。本文将深入探讨Redis中查看分布式锁的机制,包括如何查询锁的状态、使用何种命令进行锁操作,以及如何确保锁的有效性和正确性......
  • Rest 构建分布式微服务架构
    开发环境要求jdk1.8(SpringBoot推荐jdk1.8及以上):javaversion"1.8.0_151"Maven3.x(maven3.2以上版本):ApacheMaven3.3.9IntelliJIDEA:IntelliJIDEA2018.2.1x64SpringBoot:SpringBoot2.0.7SpringCloud使用当前最新稳......
  • Redis 分布式锁:实现与应用
    在分布式系统中,为了保证数据的一致性和并发控制,常常需要使用分布式锁。Redis作为一种高性能的内存数据库,提供了一些特性可以方便地实现分布式锁。今天,我们就来探讨一下如何用Redis实现分布式锁。一、分布式锁的基本概念分布式锁是一种用于在分布式系统中协调多个进程或线程对......
  • 如何在Java服务中实现分布式ID生成:雪花算法与UUID的对比
    如何在Java服务中实现分布式ID生成:雪花算法与UUID的对比大家好,我是微赚淘客返利系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!在现代分布式系统中,唯一标识符(ID)的生成是一个关键问题。常见的ID生成方案包括雪花算法(Snowflake)和UUID(通用唯一识别码)。本文将对这两种方案进行详......
  • 分布式系统中的Dapper与Twitter Zipkin:链路追踪技术的实现与应用
    目录一、什么是链路追踪?二、核心思想Dapper(一)Dapper链路追踪基本概念概要(二)Trace、Span、AnnotationsTraceSpanAnnotation案例说明(三)带内数据与带外数据带外数据带内数据数据的传递与集中(四)采样采样的目的采样率的调整采样机制的实现(五)存储为什么选择BigTab......