ceph的osd盘删除操作和iscsi扩展

news2024/12/23 5:41:45

ceph的osd盘删除操作

拓展:osd磁盘的删除(这里以删除node1上的osd.0磁盘为例)

1, 查看osd磁盘状态

[root@node1 ceph]# ceph osd tree
ID CLASS WEIGHT  TYPE NAME      STATUS REWEIGHT PRI-AFF
-1       0.00298 root default
-3       0.00099     host node1
 0   hdd 0.00099         osd.0      up  1.00000 1.00000
-5       0.00099     host node2
 1   hdd 0.00099         osd.1      up  1.00000 1.00000
-7       0.00099     host node3
 2   hdd 0.00099         osd.2      up  1.00000 1.00000

2, 先标记为out

[root@node1 ceph]# ceph osd out osd.0
marked out osd.0.
​
[root@node1 ceph]# ceph osd tree
ID CLASS WEIGHT  TYPE NAME      STATUS REWEIGHT PRI-AFF
-1       0.00298 root default
-3       0.00099     host node1
 0   hdd 0.00099         osd.0      up        0 1.00000         可以看到权重为0,但状态还是UP
-5       0.00099     host node2
 1   hdd 0.00099         osd.1      up  1.00000 1.00000
-7       0.00099     host node3
 2   hdd 0.00099         osd.2      up  1.00000 1.00000

3, 再rm删除,但要先去==osd.0对应的节点上==停止ceph-osd服务,否则rm不了

[root@node1 ceph]# systemctl stop ceph-osd@0.service
​
[root@node1 ceph]# ceph osd rm osd.0
removed osd.0
​
[root@node1 ceph]# ceph osd tree
ID CLASS WEIGHT  TYPE NAME      STATUS REWEIGHT PRI-AFF
-1       0.00298 root default
-3       0.00099     host node1
 0   hdd 0.00099         osd.0     DNE        0           状态不再为UP了
-5       0.00099     host node2
 1   hdd 0.00099         osd.1      up  1.00000 1.00000
-7       0.00099     host node3
 2   hdd 0.00099         osd.2      up  1.00000 1.00000

4, 查看集群状态

[root@node1 ceph]# ceph -s
  cluster:
    id:     6788206c-c4ea-4465-b5d7-ef7ca3f74552
    health: HEALTH_WARN
            1 osds exist in the crush map but not in the osdmap  有警告,没有在crush算法中删除
​
  services:
    mon: 3 daemons, quorum node1,node2,node3
    mgr: node1(active), standbys: node2, node3
    osd: 2 osds: 2 up, 2 in                         发现只有两个osd,说明osd.0删除成功
​
  data:
    pools:   0 pools, 0 pgs
    objects: 0  objects, 0 B
    usage:   28 MiB used, 2.0 GiB / 2.0 GiB avail       3G变为2G,说明删除成功
    pgs:
​

5, 在crush算法中和auth验证中删除

[root@node1 ceph]# ceph osd crush remove osd.0
removed item id 0 name 'osd.0' from crush map
[root@node1 ceph]# ceph auth del osd.0
updated

6, 还需要在==osd.0对应的节点==上卸载

[root@node1 ceph]# df -h |grep osd
tmpfs           488M   48K  488M   1% /var/lib/ceph/osd/ceph-0
​
[root@node1 ceph]# umount /var/lib/ceph/osd/ceph-0

7, 在osd.0对应的节点上删除osd磁盘产生的逻辑卷

[root@node1 ceph]# pvs
  PV         VG                                        Fmt  Attr PSize    PFree
  /dev/sdb   ceph-56e0d335-80ba-40d8-b076-fc63a766dcac lvm2 a--  1020.00m    0
  
    
[root@node1 ceph]# vgs
  VG                                        #PV #LV #SN Attr   VSize    VFree
  ceph-56e0d335-80ba-40d8-b076-fc63a766dcac   1   1   0 wz--n- 1020.00m    0
​
​
[root@node1 ceph]# lvremove ceph-56e0d335-80ba-40d8-b076-fc63a766dcac
Do you really want to remove active logical volume ceph-56e0d335-80ba-40d8-b076-fc63a766dcac/osd-block-ef26149d-5d7d-4cc7-8251-684fbddc2da5? [y/n]:y
  Logical volume "osd-block-ef26149d-5d7d-4cc7-8251-684fbddc2da5" successfully removed
​

至此,就完全删除了

8,如果要再加回来,再次在部署节点使用下面命令即可

[root@node1 ceph]# ceph-deploy disk zap node1 /dev/sdb
[root@node1 ceph]# ceph-deploy osd create --data /dev/sdb node1

SAN

SAN的分类

两种SAN:

  1. FC-SAN: 早期的SAN, 服务器与交换机的数据传输是通过光纤进行的, 服务器把SCSI指令传输到存储设备上,不能走普通LAN网的IP协议。

  2. IP-SAN: 用IP协议封装的SAN, 可以完全走普通网络,因此叫做IP-SAN, 最典型的就是ISCSI。

FC-SAN优缺点: 速度快(2G,8G,16G), 成本高, 传输距离有一定限制。

IP-SAN优缺点: 速度较慢(已经有W兆以太网标准), 成本低, 传输距离无限制。

IP-SAN之iscsi实现

实验: Linux平台通过iscsi实现IP-SAN

实验准备: 两台虚拟机(centos7平台)同网段(比如vmnet8), 交换机不用模拟,因为同网段的虚拟机就相当于连在同一个交换机上

  1. 静态IP,(两台IP互通就行,网关和DNS不做要求)

  2. 都配置主机名及其主机名互相绑定

  3. 关闭防火墙,selinux

  4. 时间同步

  5. 配置好yum(需要加上epel源)

  6. 在存储导出端模拟存储(模拟存储可以使用多种形式,如硬盘:/dev/sdb,分区:/dev/sdb1,软raid:/dev/md0,逻辑卷:/dev/vg/lv01,dd创建的大文件等等)

下面我为了实验方便,就用dd的大文件来模拟存储
export# mkdir /data/
export# dd if=/dev/zero of=/data/storage1 bs=1M count=500
export# dd if=/dev/zero of=/data/storage2 bs=1M count=1000
export# dd if=/dev/zero of=/data/storage3 bs=1M count=1500
export# dd if=/dev/zero of=/data/storage4 bs=1M count=2000
一个模拟了4个存储文件用来导出(大小不一样,是为了后续讨论)

实验步骤:

  1. export导出端安装软件, 配置导出的存储,启动服务

  2. import导入端安装软件, 导入存储,启动服务

实验过程:

第1步: 在导出端上安装iscsi-target-utils软件包

export# yum install epel-release -y       没有安装epel源的,再次确认安装
export# yum install scsi-target-utils -y

第2步: 在导出端配置存储的导出

export# cat /etc/tgt/targets.conf |grep -v "#"
​
default-driver iscsi
​
<target iscsi:data1>
        backing-store /data/storage1
</target>
​
<target iscsi:data2>
        backing-store /data/storage2
</target>
​
<target iscsi:data3>
        backing-store /data/storage3
</target>
​
<target iscsi:data4>
        backing-store /data/storage4
</target>

第3步: 导出端启动服务并验证

export# systemctl start tgtd                
export# systemctl enable tgtd
验证端口和共享资源是否ok
export# lsof -i:3260
export# tgt-admin --show

第4步: 导入端安装iscsi-initiator-utils软件包

import# yum install iscsi-initiator-utils

第5步: 导入端导入存储

在登录前必须要先连接并发现资源(discovery)

import# iscsiadm -m discovery -t sendtargets -p 10.1.1.11
10.1.1.11:3260,1 iscsi:data1
10.1.1.11:3260,1 iscsi:data2
10.1.1.11:3260,1 iscsi:data3
10.1.1.11:3260,1 iscsi:data4

发现资源成功后,就可以进行资源登录了

只登录其中一个存储:
import# iscsiadm -m node -T iscsi:data1 -p 10.1.1.11 -l
直接登录所有发现的存储:
import# iscsiadm -m node -l

登录成功后,直接使用fdisk -l查看

import# fdisk -l |grep sd[b-z]

第6步: import端启动服务

启动服务,并做成开机自启动
import# systemctl start iscsi
import# systemctl enable iscsi
​
import# systemctl start iscsid
import# systemctl enable iscsid

补充: 关于取消连接的操作

取消登录其中一个特定目录: 把-l改成-u
import# iscsiadm -m node -T iscsi:data1 -p 10.1.1.11 -u
取消登录所有目录:
import# iscsiadm -m node -u
​
如果要连discovery的信息也删除则使用--op delete命令
import# iscsiadm -m node -T iscsi:data1 -p 10.1.1.11 --op delete
删除所有登录过的目录信息:
import# iscsiadm -m node --op delete

问题一: 重新登录几次,会发现什么?

import# iscsiadm -m node -u &> /dev/null
import# iscsiadm -m node -l &> /dev/null
import# fdisk -l |grep sd[b-z]

答: 会发现名字会混乱. 解决方法有udev和存储多路径。

问题二: 如果再加一个新的导入服务器,两个导入服务器导入同一个存储,然后格式化,挂载。能实现同读同写吗?

答: 不可以。

课外拓展: 可以对导出的存储配置验证功能,导入端配置正确的用户名和密码才能登陆

只有两个地方不一样:

  1. 在导出端配置时加上用户名和密码验证功能

<target iscsi:data1>
        backing-store /data/storage1
        incominguser daniel daniel123       验证功能,此用户自定义即可,与系统用户无关
</target>
  1. 在导入端配置时需要多配置下面一步,对应导出端的用户名与密码

如果export端有源被配置了验证功能,那么import端需要配置正确的用户名和密码才OK
CHAP (Challenge-Handshake Authentication Protocol) 挑战握手验证协议
​
import# vim /etc/iscsi/iscsid.conf      
57 node.session.auth.authmethod = CHAP      
61 node.session.auth.username = daniel
62 node.session.auth.password = daniel123
​
71 discovery.sendtargets.auth.authmethod = CHAP
75 discovery.sendtargets.auth.username = daniel
76 discovery.sendtargets.auth.password = daniel123
做完这一步后, 就可以发现资源并登录了

存储多路径

存储多路径(device-multipath): 相当于存储线路的双线路绑定,做HA或LB。

作用:

  1. 双存储线路HA

  2. 双存储线路LB

  3. 可以自定义绑定后的设备名称,达到固定iscsi设备名称的目的。

实验准备

  1. 在前面实验的基础上,导出端和导入端各加一个网卡连接到一个新的网络上(注意:新的网段一定要用静态ip)。我这里为10.2.2.0/24网段

vmnet8   10.1.1.0/24
vmnet1   10.2.2.0/24
  1. 然后在存储导入端登出这四个存储,并删除相关信息

import# iscsiadm -m node -u
import# iscsiadm -m node --op delete

实验过程

第1步: 在存储导入端去发现导出端上的存储。分别使用导出端的==两个IP==去发现,然后将它们登录

import# iscsiadm -m discovery -t sendtargets -p 10.1.1.11
10.1.1.11:3260,1 iscsi:data1
10.1.1.11:3260,1 iscsi:data2
10.1.1.11:3260,1 iscsi:data3
10.1.1.11:3260,1 iscsi:data4
import# iscsiadm -m discovery -t sendtargets -p 10.2.2.11
10.2.2.11:3260,1 iscsi:data1
10.2.2.11:3260,1 iscsi:data2
10.2.2.11:3260,1 iscsi:data3
10.2.2.11:3260,1 iscsi:data4

把发现的targets全部登录

import# iscsiadm -m node -l
​
使用fdisk -l |grep sd[b-z]命令能查看到8个存储(但实际是4个存储,分别由两个网络线路去访问的)

第2步, 在存储导入端安装device-mapper-multipath的包

import# yum install device-mapper\* 

第3步, 把上面的8个进行多路径绑定,绑成4个(同一个存储两个线路访问的绑定成一个)

先运行此命令,才会产生/etc/multipath.conf的配置文件

import# mpathconf --enable

配置/etc/multipath.conf配置文件

import# cat /etc/multipath.conf |grep -v ^# |grep -v ^$
defaults {                          看作为全局配置参数
    user_friendly_names yes         使用友好名字(默认名为wwid,名字长且难认,友好名可以自定义)
    find_multipaths yes
}
blacklist {                         黑名单(表示所有在黑名单里的设备不会被绑定成多路径设备)
}
​
import# vim /etc/multipath.conf 
blacklist {
        devnode "^sda"              除了sda开头的设备,我都做多路径(指的就是那8个发现的设备)
}

启动服务

import# systemctl start  multipathd.service
import# systemctl enable multipathd.service

第4步: 查看当前绑定状态

使用multipath -ll命令可以看到四个新绑定的设备了(mpatha,mpathb,mpathc,mpathd)这四个设备就是双线路绑定的设备

/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/sda命令可用来查看wwid

import# multipath -ll
mpathd (360000000000000000e00000000040001) dm-3 IET  ,VIRTUAL-DISK 长数字字符串就是wwid  
size=2.0G features='0' hwhandler='0' wp=rw
|-+- policy='service-time 0' prio=1 status=active       主线路
| `- 8:0:0:1 sdf 8:80  active ready running
`-+- policy='service-time 0' prio=1 status=enabled      备线路(也就是说默认为主备HA模式)
  `- 9:0:0:1 sdh 8:112 active ready running
mpathc (360000000000000000e00000000030001) dm-2 IET     ,VIRTUAL-DISK    
size=1.5G features='0' hwhandler='0' wp=rw
|-+- policy='service-time 0' prio=1 status=active
| `- 6:0:0:1 sde 8:64  active ready running
`-+- policy='service-time 0' prio=1 status=enabled
  `- 7:0:0:1 sdg 8:96  active ready running
mpathb (360000000000000000e00000000020001) dm-1 IET     ,VIRTUAL-DISK    
size=1000M features='0' hwhandler='0' wp=rw
|-+- policy='service-time 0' prio=1 status=active
| `- 4:0:0:1 sdc 8:32  active ready running
`-+- policy='service-time 0' prio=1 status=enabled
  `- 5:0:0:1 sdd 8:48  active ready running
mpatha (360000000000000000e00000000010001) dm-0 IET     ,VIRTUAL-DISK    
size=500M features='0' hwhandler='0' wp=rw
|-+- policy='service-time 0' prio=1 status=active
| `- 2:0:0:1 sda 8:0   active ready running
`-+- policy='service-time 0' prio=1 status=enabled
  `- 3:0:0:1 sdb 8:16  active ready running

第5步: 下面我对这8个存储进行自定义绑定(把名字分别绑成data1,data2,这两个做成ha高可用模式;data3,data4这两个做成lb负载均衡模式)

import# cat /etc/multipath.conf  |grep -v ^# |grep -v ^$
​
defaults {
        user_friendly_names yes
        find_multipaths yes     
}
​
​
multipaths {
    multipath {
        wwid            360000000000000000e00000000010001       wwid值
        alias           data1                                   自定义绑定的名字
        path_grouping_policy    failover                        HA模式
        failback        immediate                       主线路挂了再启起来后,会马上切换回来
​
    }
    multipath {
        wwid            360000000000000000e00000000020001
        alias           data2
        path_grouping_policy    failover
        failback        immediate
    }
    multipath {
        wwid            360000000000000000e00000000030001
        alias           data3
        path_grouping_policy    multibus                        LB模式
        path_selector       "round-robin 0"                     LB的算法为rr轮循
    }
    multipath {
        wwid            360000000000000000e00000000040001
        alias           data4
        path_grouping_policy    multibus
        path_selector       "round-robin 0"
    }
}
blacklist {
}
​

第6步: 重启服务,使自定义配置生效

import# systemctl restart multipathd.service 
​
查看验证,就绑定成了data1,data2,data3,data4这样的名称
import# multipath -ll
​
import# ls /dev/mapper/data*
/dev/mapper/data1  /dev/mapper/data2  /dev/mapper/data3  /dev/mapper/data4

第7步: 测试(测试过程省略,见授课视频)

将failover和multibus两种模式各选一个存储格式化(可以直接格式化,也可以先分区再格式化),并挂载进行测试
​
/dev/mapper/data4如果分两个区,则名字对应为:/dev/mapper/data4p1,/dev/mapper/data4p2(如果分区后看不到,可以使用partprobe命令刷新一下)
centos7写到/etc/fstab里需要多加一个参数(_netdev)就可以成功自动挂载,写法如下
​
/dev/mapper/data4p1  /mnt  xfs  defaults,_netdev 0 0

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1308446.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SSL证书过期怎么更新?

一、概述 SSL证书是用于加密网站和客户端之间通信的一种数字证书&#xff0c;可以确保数据传输的安全性和保密性。然而&#xff0c;SSL证书是有有效期的&#xff0c;一旦过期就需要及时更新。本文将介绍如何更新SSL证书&#xff0c;以确保网站的安全性和正常运行。 二、SSL证…

2024上海智慧城市展会(世亚智博会)促进长三角地区智慧城市发展

上海市政府近期印发的《上海市进一步推进新型基础设施建设行动方案(2023-2026年)》标志着新一轮新基建的全面启动。市政府副秘书长、市发展改革委主任顾军指出&#xff0c;这一行动方案紧抓智能算力、大模型、数据要素、区块链、机器人等技术发展趋势和绿色低碳节能要求&#x…

基于FPGA的视频接口之高速IO(SATA)

简介 本章节是对于高速IO接口应用的一个扩展,目前扩展为SATA(SSD硬盘,机械硬盘不能使用)。通俗易懂的讲,即把SSD硬盘当做大型的Nand Flash来处理,不格式化硬盘,直接以地址和数据的格式,在SATA盘中写入数据,该数据不能被Window和linux直接识别,需单独编写App来查看SSD…

数据通信网络基础

数据通信网络基础&#xff08;1&#xff09; 一.前言 • 在人类社会的起源和发展过程中&#xff0c;通信就一直伴随着我们。从20世纪七、八十年代开始&#xff0c; 人类社会已进入到信息时代&#xff0c;对于生活在信息时代的我们&#xff0c;通信的必要性更是不言而喻 的。…

「薄荷绿」风电智慧运营,有效提高运营效率和能源利用率

随着能源需求的不断增加和全球变暖的加剧&#xff0c;人们对可再生能源的依赖程度不断提高。其中&#xff0c;风能作为一种可再生能源&#xff0c;其清洁、环保、无污染等特点备受青睐&#xff0c;其发展也越来越受到政府和企业的关注。然而&#xff0c;由于风能的不稳定性和不…

【Hadoop_06】MapReduce的概述与wc案例

1、MapReduce概述1.1 MapReduce定义1.2 MapReduce优点1.3 MapReduce缺点1.4 MapReduce核心思想1.5 MapReduce进程1.6 常用数据序列化类型1.7 源码与MapReduce编程规范 2、WordCount案例实操2.1 本地测试2.2 提交到集群测试 1、MapReduce概述 1.1 MapReduce定义 MapReduce是一…

WPF-一个简单登录界面

一个简单登录界面 文章目录 一个简单登录界面一、效果展示二、准备代码 一、效果展示 二、准备代码 创建一个WPF工程&#xff0c;创建名为 Login5 的WPF项目。 添加Nuget包 MaterialDesignThemes 界面的整体布局和样式代码 <Window x:Class"Login5.MainWindow&quo…

hive数据仓库工具

1、hive是一套操作数据仓库的应用工具&#xff0c;通过这个工具可实现mapreduce的功能 2、hive的语言是hql[hive query language] 3、官网hive.apache.org 下载hive软件包地址 Welcome! - The Apache Software Foundationhttps://archive.apache.org/ 4、hive在管理数据时分为元…

Array数组和List的序列化和反序列化

一、前言 数组类型对象和普通对象一样&#xff0c;使用toJson/fromJson即可完成序列化与反序列化。 二、Array数组的序列化和反序列化 1.创建User类 public class User {Exposeprivate String userName;Exposeprivate String password;Exposeprivate int age;Exposeprivate …

Ubuntu22.04_修改用户名_添加用户_修改电脑名

概要&#xff1a; 本篇所讲述的操作都是在图形化界面中进行。点击顶部栏右侧&#xff0c;展开系统菜单&#xff0c;打开设置 一、修改自己的用户名 1、修改之前查看信息 cat /etc/passwd 2、修改 输入完成&#xff0c;回车即可 3、修改之后查看信息 cat /etc/passwd 4、解…

Python 反射

Python 反射是什么&#xff1f; 学习了几天&#xff0c;做个总结留给自己看。 感觉跟 SQL 入门要掌握的原理一样&#xff0c;Python 反射看起来也会做4件事&#xff0c;“增删查获” 增 - 增加属性&#xff0c;方法 setattr 删 - 删除属性&#xff0c;方法 delattr 查 - …

【超详细】创建vue3+ts项目(引入ElementPlus、Axios)

目录 前言1、使用vue脚手架创建项目1.1检查vue版本1.2 使用vue脚手架创建项目 2、删除项目多余文件&#xff0c;修改配置项目2.1、删除以下文件2.1、在views下创建index文件2.2、修改router/index.ts路由文件&#xff1a;2.3、修改App.vue文件&#xff1a;2.4、初始化页面样式以…

HTML---表单

文章目录 前言一、pandas是什么&#xff1f;二、使用步骤 1.引入库2.读入数据总结 一.表单概念 HTML表单是网页上用于收集用户输入信息的一种元素。它由一系列输入字段&#xff08;input&#xff09;、选择字段&#xff08;select&#xff09;、文本区域&#xff08;textarea&a…

CV计算机视觉每日开源代码Paper with code速览-2023.12.8

点击计算机视觉&#xff0c;关注更多CV干货 论文已打包&#xff0c;点击进入—>下载界面 点击加入—>CV计算机视觉交流群 1.【显著目标检测】Texture-Semantic Collaboration Network for ORSI Salient Object Detection 论文地址&#xff1a;https://arxiv.org//pdf/…

深入理解Java虚拟机---Java内存模型

JMM Java内存模型主内存和工作内存volatile Java内存模型 Java内存模型是Java虚拟机规范中试图定义一种Java内存模型(JMM)来屏蔽掉各种硬件和操作系统的内存访问差异&#xff0c;以实现让Java程序在各种平台上都能达到一致的内存访问效果。可以理解为JMM定义一套在多线程读写共…

leetcode 34. 在排序数组中查找元素的第一个和最后一个位置(优质解法)

代码&#xff1a; class Solution {public int[] searchRange(int[] nums, int target) {int[] resultnew int[2];result[0]result[1]-1;//排除特殊情况if(numsnull||nums.length0){return result;}//查找左边界int left0;int rightnums.length-1;while (left<right){int m…

独立完成软件的功能的测试(4)

独立完成软件的功能的测试&#xff08;4&#xff09; &#xff08;12.14&#xff09;&#xff08;功能测试>头条项目实战&#xff09; 项目总体概述 项目背景和定位&#xff1a;一款汇聚科技咨询&#xff0c;技术文章和问答交流的用户移动终端产品&#xff0c;用户可以通过…

【玩转TableAgent数据智能分析】TableAgent全功能详解及多领域数据分析实践(下)数据分析过程及总结展望

6 TableAgent的数据分析过程解析 TableAgent的整个分析过程包括以下步骤&#xff0c;形成一个有机结构&#xff0c;让我们理清其工作原理。 6.1 Data Graph阶段 TableAgent首先绘制数据图&#xff0c;以解决问题。这个图形表示了问题的分解和细化&#xff0c;将大问题分解成…

在WPF窗口中增加水印效果

** 原理&#xff1a; ** 以Canvas作为水印显示载体&#xff0c;在Canvas中创建若干个TextBlock控件用来显示水印文案&#xff0c;如下图所示 然后以每一个TextBlock的左上角为中心旋转-30&#xff0c;最终效果会是如图红线所示&#xff1a; 为了达到第一行旋转后刚好与窗口…

深算院YashanDB与长亮科技联合,推出国产数据库金融核心解决方案

近期&#xff0c;深圳计算科学研究院&#xff08;简称“深算院”&#xff09;携手深圳市长亮科技股份有限公司&#xff08;简称“长亮科技”&#xff09;重磅推出基于崖山数据库YashanDB的金融核心解决方案&#xff0c;为推动金融机构实现技术自主可控与数字化转型全面赋能。 …