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

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 node10   hdd 0.00099         osd.0      up  1.00000 1.00000
-5       0.00099     host node21   hdd 0.00099         osd.1      up  1.00000 1.00000
-7       0.00099     host node32   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 node10   hdd 0.00099         osd.0      up        0 1.00000         可以看到权重为0,但状态还是UP
-5       0.00099     host node21   hdd 0.00099         osd.1      up  1.00000 1.00000
-7       0.00099     host node32   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 node10   hdd 0.00099         osd.0     DNE        0           状态不再为UP了
-5       0.00099     host node21   hdd 0.00099         osd.1      up  1.00000 1.00000
-7       0.00099     host node32   hdd 0.00099         osd.2      up  1.00000 1.00000

4, 查看集群状态

[root@node1 ceph]# ceph -scluster:id:     6788206c-c4ea-4465-b5d7-ef7ca3f74552health: HEALTH_WARN1 osds exist in the crush map but not in the osdmap  有警告,没有在crush算法中删除
​services:mon: 3 daemons, quorum node1,node2,node3mgr: node1(active), standbys: node2, node3osd: 2 osds: 2 up, 2 in                         发现只有两个osd,说明osd.0删除成功
​data:pools:   0 pools, 0 pgsobjects: 0  objects, 0 Busage:   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]# pvsPV         VG                                        Fmt  Attr PSize    PFree/dev/sdb   ceph-56e0d335-80ba-40d8-b076-fc63a766dcac lvm2 a--  1020.00m    0[root@node1 ceph]# vgsVG                                        #PV #LV #SN Attr   VSize    VFreeceph-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]:yLogical 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/storage1incominguser 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 yesfind_multipaths yes     
}
​
​
multipaths {multipath {wwid            360000000000000000e00000000010001       wwid值alias           data1                                   自定义绑定的名字path_grouping_policy    failover                        HA模式failback        immediate                       主线路挂了再启起来后,会马上切换回来
​}multipath {wwid            360000000000000000e00000000020001alias           data2path_grouping_policy    failoverfailback        immediate}multipath {wwid            360000000000000000e00000000030001alias           data3path_grouping_policy    multibus                        LB模式path_selector       "round-robin 0"                     LB的算法为rr轮循}multipath {wwid            360000000000000000e00000000040001alias           data4path_grouping_policy    multibuspath_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.rhkb.cn/news/219906.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微服务实战系列之ZooKeeper(下)

前言 通过前序两篇关于ZooKeeper的介绍和总结&#xff0c;我们可以大致理解了它是什么&#xff0c;它有哪些重要组成部分。 今天&#xff0c;博主特别介绍一下ZooKeeper的一个核心应用场景&#xff1a;分布式锁。 应用ZooKeeper Q&#xff1a;什么是分布式锁 首先了解一下&…

云原生向量计算引擎 PieCloudVector:为大模型提供独特记忆

拓数派大模型数据计算系统&#xff08;PieDataComputingSystem&#xff0c;缩写&#xff1a;πDataCS&#xff09;在10月24日程序员节「大模型数据计算系统」2023拓数派年度技术论坛正式发布。πDataCS 以云原生技术重构数据存储和计算&#xff0c;「一份存储&#xff0c;多引擎…

C# 基本桌面编程(二)

一、前言 本章为C# 基本桌面编程技术的第二节也是最后一节。前一节在下面这个链接 C# 基本桌面编程&#xff08;一&#xff09;https://blog.csdn.net/qq_71897293/article/details/135024535?spm1001.2014.3001.5502 二、控件布局 1 叠放顺序 在WPF当中布局&#xff0c;通…

华为配置OSPF与BFD联动示例

组网需求 如图1所示&#xff0c;SwitchA、SwitchB和SwitchC之间运行OSPF&#xff0c;SwitchA和SwitchB之间的交换机仅作透传功能。现在需要SwitchA和SwitchB能快速感应它们之间的链路状态&#xff0c;当链路SwitchA-SwitchB发生故障时&#xff0c;业务能快速切换到备份链路Swi…

极狐GitLab DevSecOps 之容器镜像安全扫描

容器镜像安全 现状 最近某银行遭受供应链攻击的事件传的沸沸扬扬&#xff0c;安全又双叒叕进入了人们的视野。安全确实是一个非常重要&#xff0c;但是又最容易被忽略的话题。但是现在到了一个不得不人人重视安全&#xff0c;人人为安全负责的时代。尤其以现在非常火爆的云原…

java设计模式-工厂方法模式

1.工厂方法(FactoryMethod)模式的定义 定义一个创建产品对象的工厂接口&#xff0c;将产品对象的实际创建工作推迟到具体子工厂类当中。这满足创建型模式中所要求的“创建与使用相分离”的特点。 2.工厂方法模式的主要优缺点 优点&#xff1a; 用户只需要知道具体工厂的名称…

智能优化算法应用:基于乌燕鸥算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于乌燕鸥算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于乌燕鸥算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.乌燕鸥算法4.实验参数设定5.算法结果6.参考文…

低代码企业级PMO项目管理系统,360度全景透视企业管理视角

在一个崇高的目标支持下&#xff0c;不停地工作&#xff0c;即使慢&#xff0c;也一定会获得成功。 爱因斯坦 ★ 前情概要&#xff1a; 企业级PMO项目管理业务是行业里相对成熟和规范的业务&#xff0c;拥有众多商业套件和标准产品。 然而随着企业数字化建设进入深水区&#…

《Global illumination with radiance regression functions》

总结一下最近看的这篇结合神经网络的全局光照论文 这是一篇2013年TOG的论文。 介绍 论文的主要思想是利用了神经网络的非线性特性去拟合全局光照中的间接光照部分&#xff0c;采用了基础的2层MLP去训练&#xff0c;最终能实现一些点光源、glossy材质的光照渲染。为了更好的理…

解决App Store上架提示您必须上传 12.9 英寸 iPad Pro(第 2 代)显示屏的截屏

出错场景 在App Store Connect中&#xff0c;上架App时&#xff0c;出现以下错误提示. 要开始审核流程&#xff0c;必须提供以下项目&#xff1a;您必须上传 12.9 英寸 iPad Pro&#xff08;第 2 代&#xff09;显示屏的截屏。&#xff08;2048&#xff0c;2732&#xff09;您…

overleaf 加载pdf格式的矢量图时,visio 图片保存为pdf格式,如何确保pdf页面大小和图片一致

Overleaf支持多种矢量图形格式&#xff0c;其中一些常见的包括&#xff1a; PDF&#xff08;Portable Document Format&#xff09;&#xff1a; PDF是一种常见的矢量图形格式&#xff0c;Overleaf可以直接加载和显示PDF文件。许多绘图工具和LaTeX生成的图形都可以导出为PDF格式…

ShenYu网关Http服务探活解析

文章目录 网关端服务探活admin端服务探活 Shenyu HTTP服务探活是一种用于检测HTTP服务是否正常运行的机制。它通过建立Socket连接来判断服务是否可用。当服务不可用时&#xff0c;将服务从可用列表中移除。 网关端服务探活 以divide插件为例&#xff0c;看下divide插件是如何获…

21、同济、微软亚研院、西安电子科技大提出HPT:层次化提示调优,独属于提示学习的[安妮海瑟薇]

前言&#xff1a; 本论文由同济大学、微软亚洲研究院、西安电子科技大学&#xff0c;于2023年12月11日中了AAAI2024 论文&#xff1a; 《Learning Hierarchical Prompt with Structured Linguistic Knowledge for Vision-Language Models》 地址&#xff1a; [2312.06323]…

网络(十)ACL和NAT

前言 网络管理在生产环境和生活中&#xff0c;如何实现拒绝不希望的访问连接&#xff0c;同时又要允许正常的访问连接&#xff1f;当下公网地址消耗殆尽&#xff0c;且公网IP地址费用昂贵&#xff0c;企业访问Internet全部使用公网IP地址不够现实&#xff0c;如何让私网地址也…

机器翻译:跨越语言边界的智能大使

导言 机器翻译作为人工智能领域的瑰宝&#xff0c;正在以前所未有的速度和精度&#xff0c;为全球沟通拓展新的可能性。本文将深入研究机器翻译的技术原理、应用场景以及对语言交流未来的影响。 1. 简介 机器翻译是一项致力于通过计算机自动将一种语言的文本翻译成另一种语言的…

android studio 快捷输入模板提示

在Android开发中&#xff0c;我们经常会遇到一些重复性的代码&#xff0c;例如创建一个新的Activity、定义一个Getter方法等。为了提高开发效率&#xff0c;Android Studio提供了Live Templates功能&#xff0c;可以通过简化输入来快速生成这些重复性代码。 按下图提示设置&am…

【深度学习目标检测】八、基于yolov5的抽烟识别(python,深度学习)

YOLOv5是目标检测领域一种非常优秀的模型&#xff0c;其具有以下几个优势&#xff1a; 1. 高精度&#xff1a;YOLOv5相比于其前身YOLOv4&#xff0c;在目标检测精度上有了显著的提升。YOLOv5使用了一系列的改进&#xff0c;如更深的网络结构、更多的特征层和更高分辨率的输入图…

SI24R03国产自主可控RISC-V架构MCU低功耗2.4GHz收发芯片SoC

目录 RISC-V架构的优势SI24R03/04特性射频收发器模块特征MCU 模块特征 其他特征 RISC-V架构的优势 相对于目前主流的英特尔X86架构及ARM等架构来说&#xff0c;RISC-V架构具有指令精简、模块化、可扩展、开源、免费等优点。RISC-V的基础指令集只有40多条&#xff0c;加上其他基…

【问题记录】Qt IDE打开报错“由于找不到python27.dll,无法继续执行代码“

一&#xff0c;问题现象 新安装Qt打开时报错&#xff0c;如下所示&#xff0c;但是软件能正常打开。 二&#xff0c;问题原因 对应的dll库没有找到。 三&#xff0c;解决方法 找到对应的dll库复制到指定目录&#xff1b; 这里我本地搜索有这个库&#xff0c;就直接放到“…

C++学习笔记(十五)

继承 继承是面向对象三大特性之一 有些类与类之间存在特殊的关系&#xff0c;例如下图中&#xff1a; 我们发现&#xff0c;定义这些类时&#xff0c;下级别的成员除了拥有上一级的共性&#xff0c;还有自己的特性。 这个时候我们就可以考虑利用继承的技术&#xff0c;减少重…