0689-1.4.0-CDSW目录迁移变更技术手册

2019-08-23 23:28:30 浏览数 (1)

作者:吴国柱

文档编写目的

CDSW使用一段时间以后,Master节点的/var/lib/cdsw目录挂载的是单块磁盘没有做raid等数据备份而且已经运行时间长达两年,因此为规避磁盘低概率损坏造成数据丢失风险,现准备将该目录的数据进行迁移至做了raid且空间更大的磁盘中。

由于现有/var/lib/cdsw存储的数据量已经高达3T之巨,为了不影响业务需要在规定时间内(5小时)将数据进行迁移,需要选择一种快速的迁移手段进行迁移,本文将对linux现有的数据迁移同步工具rsync进程模拟测试。

  • 变更步骤

1.使用rsync将根分区下的/var/lib/cdsw目录下的数据在CDSW服务正常使用情况下;同步至/dev/mapper/vg_data0-lv_data0 分区的/data0目录下

2.将CDSW服务停掉检查根分区下的/var/lib/cdsw目录是否还有进程在操作,如果没有则使用相同的命令再同步一次,这一次会同步更新差异文件。

3.将/dev/mapper/vg_data0-lv_data0挂载到/var/lib/cdsw目录下,启动服务。

  • 变更环境

1.RedHat7.2

2.跨盘迁移

测试前集群检查

服务正在运行

从上图可知,/var/lib/cdsw有进程在操作。

有session在打开,有作业在运行。

目录挂载情况

服务不停止限速迁移

3.1 服务不停止数据迁移

这个过程由于有服务在使用(有作业在运行)因此为了不影响业务对该迁移进行限速最高速度不超过50M/s,测试步骤及结果如下:

代码语言:javascript复制
time rsync -ac --partial --bwlimit 800000 --delete  /var/lib/cdsw/ /var/lib/cdsw1

经过限速,对磁盘的读取速度都没有超过限速阈值。

代码语言:javascript复制
#!/bin/bash

#nohup time rsync -ac --partial --bwlimit 800000 --delete  /var/lib/cdsw/ /var/lib/cdsw1 2>&1 &
#nohup date 2>&1 &
代码语言:javascript复制
参数解析:--partial:短点续传-a : --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD-c: 打开校验开关,强制对文件传输进行校验--bwlimit 800000:限速80M/s--delete: 删除那些DST中SRC没有的文件。

3.2 修改文件测试

在服务停止前对cdsw文件进行修改,待停止服务进行数据搬迁到新设备作为检查依据。

服务停止不限速迁移

4.1 停止作业及服务

1.停止作业;停掉集群上所有作业。

2.停掉cdsw服务;停止CDSW集群

服务已经停止

4.2 数据迁移

1.检查/var/lib/cdsw目录是否还有进程在操作。

代码语言:javascript复制
lsof  D /var/lib/cdsw

该目录下已经没有进程在操作。

2.数据目录搬迁,此次搬迁为更新上一次有服务在使用且发生变化的文件;因为没有服务在使用,此次不用限速,操作如下:

代码语言:javascript复制
time rsync -ac --partial --delete  /var/lib/cdsw/ /var/lib/cdsw1
代码语言:javascript复制
参数解析:-a: --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD-c: 打开校验开关,强制对文件传输进行校验--delete: 删除那些DST中SRC没有的文件。--partial: 短点续传

3.将挂载点/var/lib/cdsw和/var/lib/cdsw1进行umount

代码语言:javascript复制
umount /var/lib/cdsw
umount /var/lib/cdsw1

4.将/var/lib/cdsw挂载到/dev/sdb

代码语言:javascript复制
mount /dev/sdb /var/lib/cdsw
mount /dev/sdc /var/lib/cdsw1

4.3 启动CDSW服务

回到CM启动CDSW服务

服务正常

可以登录cdsw

验证数据

4.4 执行任务测试

执行spark Pi进行测试

程序运行完成,测试成功。

0 人点赞