2023年7月26日发(作者:)
Trouble Shooting
故障诊断与处理责任编辑:赵志远 投稿信箱:netadmin@n LUN磁盘空间回收问题■ 四川 赖文书笔者单位在IDC机房的服务器实施了虚拟化与云计算。整个云平台由6台惠普ProLiant DL580 Gen9高配服务器,单台配置为512G内存、4棵12核心CPU、2块600G的SAS盘、3块2T的SATA盘、2块480G的固态盘,安装部署了新华三公司的云计算管理平台和分布式存储系统,由CAS(Cloud
Automation System)和图1 OSD磁盘使用率编者按: 笔者单位在启动业务上云后,对原有提系统及设备进行了更新部署,其中采用的H3C ONEStor存储系统出现磁盘空间报警问题,笔者联合厂商工程师专家进行了排查。ONEStor构成。ONEStor存储系统基于Ceph,可运行在多台通用的x86服务器。ONEStor通过把多台不同服务器的本地硬盘组织成一个统一的存储资源池,对上层应用提供存储服务。分布式存储磁盘空间报警每台服务器2块600GB的SAS盘安装CVK【上接第147页】命令,出detection”房间查明故障原因,发现该房间的墙插上连接了4口普通小交换机,小交换机的四个口都插满网线,办公室只有三台电脑,电脑走明线连接小交换机。在经过一番排查后,笔者发现一根网线的两端都连在交换机上,形成了线路环回,同在一个VLAN的队长办公室电脑和其他一些办公室电脑都受到影响,将其移除,经经验总结1.加强管理引起环路是因为管理不善,对各部门的控制力不足,需制定相应的管理制度,完善联网准入制度,不准私自购买小交换机、无线路由器等设备。2.规范、细化网线标识对网线进行明确标识,网线的两头都打上标签,标明办公室、接口号等。如:201A,说明是201办公室的A口,依此类推。现“Following
port(s) has(have)
loopback link:
GigabitEthernet1/0/9”字样,说明Gigabit
Ethernet1/0/9有环回。
通过查看Gigabit
Ethernet1/0/9端口的线标,发现该端口对应着二层的某间办公室。顺藤摸瓜,解决问题笔者前往网线上标注的过测试网络立刻畅通,一切如初。1482019.08 责任编辑:赵志远 投稿信箱:netadmin@
故障诊断与处理Trouble Shooting和ONEStor软件,设备使用内核模块或
librbd库与OSD交互。当在块设备的文件系统中删除一个文件,并不会在块设备上的对应磁盘块置0,而仅图2 ceph寻址示意图3块2TB的SATA盘提供分布式存储服务,组成存储资源池WAIC_POOL1可用空间32.7TB,划分为两个3TB和一个4.8TB的块设备,两块共7.8TB以iscsi挂载到宿主机作为共享存储,格式化为ocfs2集群文件系统用于存放虚拟机的磁盘文件,3TB挂载到1台虚机提供NFS服务用于存放应用系统的非结构化数据。经过一年多的运行,期间的虚拟机不断调整,涉及到块设备上虚拟机磁盘文件新建和删除,ONEStor磁盘空间不断增长使用率达到了71%,管理页面出现了报警提示存储扩容。与厂商工程师沟通中知道,ONEStor配置了当单磁盘使用率占到70%时,开始报警以提醒及时扩容;在使用率达到95%时无法读写操作必须扩容才能继续使用。运维中发现单盘使用率在64%至79%如图1,经厂商确认ONEStor数据在不同磁盘分布15%浮动属正常情况。我们使用的ONEStor
R0317P05的Ceph版本
在磁盘的元数据结构中将这些磁盘块标记为未使用。因此,虽然文件系统知道这些磁盘块是未使用或者说可用的,但是底层的存储系统并不知道文件系统所做的操作,会认为这些磁盘块仍在使用。也就是说,它所占用objects会随着用户写入数据的增加而增加。当用户删除数据以后,这些obejct不再使用但并没有被释放,因为从Ceph的角度讲,它并不知道文件系统中发生的事情。这也正是我们经历多次磁盘文件清理,ONEStor磁盘使用率仍然是只增不降的原因。针对我们ONEStor报警的情况,无法进行存储的优化改造,我们目前也没有扩容的预算,可考虑对于删除空间进行释放(文件系统),将存储侧的LUN占用空间收缩降低,以保障系统和业务运行的稳定性。0.94.5,是2015年4月发布的hammer长期稳定版本。Ceph把客户端数据FILE保存为存储池内的对象(FILE->OBJECT映射),通过CRUSH(Controlled Replication
Under Scalable Hashing)
算法计算数据存储位置来确定如何存储和检索, 即计算出哪个归置组PG(Placement
Group)应该持有指定的对象(Object->PG映射),然后进一步计算出哪个 OSD
(Object Storage Device)
守护进程持有该归置组(PG->OSD映射),具体的寻址示意图如图2所示。Ceph提供的块设备RBD(RADOS Block Device)是精简置备(Thin Provision)、大小可调且将数据条带化存储到集群内的多个OSD,并利用RADOS(Reliable
Autonomic Distributed
Object Store)的多种能力,如快照、复制和一致性。块 2019.08149Trouble Shooting
故障诊断与处理责任编辑:赵志远 投稿信箱:netadmin@采用的方法是用fstrim命令对使用的存储进行空间释放,向存储侧发送SCSI指令。由于该操作对存储有一定的IO性能影响,应考虑实际业务繁忙情况谨慎操作。对于空间的释放,一般采用fstrim直接对于mount point进行操作即可达到空间释放的目的,某些情况下,由于之前划分的LUN空间大,需要释放的空间大的原因,分段进行fstrim对于集群文件系统带来更好的优势,能降低持有集群锁的时间,从而提高系统管理效率和降低业务的影响。默认的fstrm指令,如果没有指定参数,则不分段进行;其实fstrim是支持分段操作的,并可以指定相关的参数。询到存储也有类似操作手册,详见网址/enterprise/zh/knowledge/EKB1000091882,该文还提供了其他处理方法,但由于软件部门的领导不了解这些情况,十分担心该操作影响应用系统的稳定运行,对此项配置要求严格按操作手册执行,防止出现误操作。对于ONEStor磁盘空间释放的操作,新华三CAS提供了对于Linux系统自带fstrim命令行进行了封装的脚本,采用参数对于fstrim的操作进行配置如自动分段和偏移等;并结合CAS的使用可指定具体的存储池,指定blocklimit、存储的厂商等,从而适应于集群文件系统下的释放和优化处理,规含R0118)默认配置下存储卷默认是full模式,不支持fstrim释放。CAS需要版本在E0306之后的版本上执行,不推荐在此版本之前的版本上执行。2.手工执行步骤和说明考虑到fstrim对于io有一定的性能影响,在可释放空间少和执行频率少的情况下,可考虑手工执行脚本,如下是手工操作和配置的处理方法和步骤;(1)在CVM管理界面上确认释放空间的存储池找到存储池 WAIC-POOL1。(2)在“云资源→Cluster集群→存储管理”部分,找到使用存储池的主机列表。
(3)通过SSH连到一台CVK上,执行命令:o2cb_ctl -Iot node#name:cluster:number:
ip_address:ip_port:
statusWAIC-CVK05:WAIC-POOL1:1:192.50.2.5:7100:configuredWAIC-CVK01:WAIC-POOL1:2:192.50.2.1:7100:configuredWAIC-CVK03:WAIC-POOL1方案按照公司信息系统变更流程,需要对ONEStor分布式存储空间释放的方案进行评估,于是要求厂商给出实施方案。由于此操作属于Ceph分布式存储和具有精简置备特性存储的常规操作,没有任何风险只能提供操作手册。我们也在华为官方查避由于空间释放对于集群和业务的影响。1.存储空间释放脚本的使用范围存储侧需要Thin(精简置备)模式分配的LUN(Logical Unit Number),如果Full模式分配,则无法进行空间释放和回收;同时需要存储侧支持释放的特性。ONEStor R0118版本以前(不1502019.08 责任编辑:赵志远 投稿信箱:netadmin@
故障诊断与处理Trouble Shooting:3:192.50.2.3:7100:configuredWAIC-CVK04:WAIC-POOL1:4:192.50.2.4:7100:configuredWAIC-CVK02:WAIC-POOL1:5:192.50.2.2:7100:configuredWAIC-CVK06:WAIC-POOL1:6:192.50.2.6:7100:configured找到存储池WAIC-POOL1是活动、且number数字最小的那台主机。WAIC-POOL1在number:1、2、3、4、5、6、7、8的主机上是激活状态,对应的主机名称是:WAIC-CVK05、WAIC-CVK01、WAIC-CVK03、WAIC-CVK04、WAIC-CVK02、WAIC-CVK06;则找到的主机WAIC-CVK05。(4)将脚本压缩包文件pool_传WAIC-CVK05主机上。
如果后面脚本中指定参数-c,表示在集群中任何一台激活的存储池的主机上都可以执行,这样就省去了步骤3和4,直接选择一台存储池是活动的主机上执行脚本即可。(5)对系统原有/opt/bin目录进行备份:到cd /opt; cp -r bin
.A
(6)解压脚本压缩包文件并将脚本复制到/opt/bin目录:tar zxvf pool_ ocfs2_pool_ /opt/bin(7)使用脚本ocfs2_pool_释放Thin块存储空间。对于onestor存储进行操作:采用脚本对于存储池进行释放,下面命令中参数-o表示从20G开始,参数-l表示每次20G扫描,
参数-b表示处理磁盘块限制为32768:python /opt/bin/ocfs2_pool_ -s
onestor -p WAIC-POOL1 -l
20480 -o 20480 -b 32768;
echo $?该脚本同时支持对3par存储的thin LUN进行空间回收,类型为3PARdata,-s参数需要指定3PARdata:python /opt/bin/ocfs2_pool_ -s
3PARdata -p WAIC-POOL1 -l
20480 -o 20480 -b 32768;
echo $?脚本增加参数-c,以便在任何一台激活的存储池的主机上都可以执行该操作:python /opt/bin/ocfs2_pool_ -s
onestor -p APool -l 20480
-o 20480 -b 32768 -c;
echo $?默认长度10G,10T的执行1000次可以满足需求;如果现场磁盘比较大,执行长度可放大到20G,或50G。3.手工执行异常判断和应急处理脚本ocfs2_pool_图3 观察日志输出在实验室和其他地方执行,都没有发现异常的情况;为了预防执行过程中的异常情况,厂商提供了手工执行的异常判断和应急处理方法。在脚本运行过程中,需另外开启两个SSH后台窗口,第一个SSH后台执行命令:tailf /var/log/ 2019.08151Trouble Shooting
故障诊断与处理责任编辑:赵志远 投稿信箱:netadmin@log |grep maximum,实时监控syslog日志信息,正常释放过程中,每次分段都会打印释放动作的日志,如图3属于正常现象,一直在刷类似日志kernel.: [] (fstrim,) :ocfs2_get_maximum_unrnap_count :7360
content of block_ is: 32768,就不存在阻塞;如果不刷此类日志需要及时关注,此时可能已经阻塞需要立刻暂停,暂停操作在执行脚本的SSH窗口Ctrl+C暂停命令执行。第二个SSH终端执行命令:tailf /var/log/syslog
| grep _ocfs2_cluster_,正常情况该窗口不会有任何输出。若有输出
则表示集群文件系统ocfs2的磁盘集群被锁,则立即Ctrl+C停止命令行的执行,并且缩小每次分段执行的长度,直到不再出现为止。4.配置定时执行若在Ceph块设备上有比较频繁的创建和删除文件,造成分布存储系统磁盘使用率持续增高,可配置ocfs2_pool_脚本的定图4 ONEStor最终使用率关软硬件运维同事和厂商工程师。由于实施的工程师对笔者单位云平台结构不熟悉,实施前远程对该套服务器进行相关数据采集,并且将要运行的脚本在厂商的测试环境验证,以保障磁盘空间释放的有效推进。周六晚上7点通过Teamvear远程准时进行,由于前期的精心准备和领导的高度重视,实际操作就按步就班,对操作命令进行复制粘贴,密切观察日志输出一切正常,ONEStor管理页面中的运行状态如期调整中,经过近2小时的工作顺利完成任务。最终分布式存储的利率为61.87%如图4,释放了总容量10%接近3.2TB磁盘空间,按照三副本计算又可以提供1TB的块存储了。时自动运行,以及时释放已删除文件所占用的磁盘空间。第一步在每个CVK上执行“ocfs2_fstrim_
on”命令;第二步在每台cvk上配置crtontab定时执行任务。配置每周五22点开始执行具体命令如下,默认对所有ONEStor存储池,每次执行长度默认区间是10G:0 22 * * 5 root
python /opt/bin/ocfs2_pool_ -s
onestor -b 131072对于配置了脚本定时执行,需要定期在使用共享存储的节点号最小的那台cvk服务器上检查相关日志,以了解自动任务的执行情况,搜索查找结点好最小的方法,详细参照手工执行步骤的第3步。总结为了更好的运维公司私有云平台,我们需要更深入的学习KVM虚拟化及OpenStack云计算、Ceph分实施根据操作手册的要求为避免资源释放操作对业务性能的影响,计划将此项工作放在周六晚上进行,通知相布式存储等开源软件,才能非常清楚厂商工程师所做的操作,也才能对于常见问题自己动手处理,同时不断提高自我的技术水平。1522019.08
发布者:admin,转转请注明出处:http://www.yc00.com/web/1690378440a340542.html
评论列表(0条)