一、项目背景
客户存储刷新项目是更换老旧存储,为业务系统提供更稳定、高性能的存储环境。本项目中OpenStack云平台存储直接连接到物理机,不便于扩容、数据压缩等管理,为解决这一问题,需将OpenStack云平台存储统一纳入到SVC下进行管理,并对底层老旧存储进行更新。
二、迁移方法
Linux系统在线迁移数据,更新存储,原则是保证用户业务连续性。
1、OpenStack平台操作步骤:
操作系统是Linux系统,磁盘使用通过lvm管理。
a.存储端获取被迁移卷的uuid ,如下图:
b.登录到OpenStack平台控制节点,通过Cinder查看Volume信息:
# cinder show Volume-uuid
c.通过Server_id 查看虚拟机名称、IP、租户:
# nova show vm_uuid
返回结果(截图只显示关注部分):
d.获取租户信息:
# OpenStack project list|grep tenant_id
e.从Web管理端登录,并切换到对应租户下:
f.在Instances中通过IP找到对应的虚拟机:
g、在Volume中选择新建卷(新建卷与被迁移卷大小一致,类型选择新存储,并挂载在虚拟机上):
2、Linux 系统使用lvm管理的数据,利用pvmove做在线迁移
a.登录需迁移的虚拟数据查看pv信息
#pvs
此处pv是/dev/vdb, vg是datavg;
#vgs
此处vg是datavg。
b.迁移实施(以新增云硬盘/dev/vdd, 将/dev/vdb迁移到vdd上为例)。
lvm管理迁移方法:
1) 新建pv
#pvcreate /dev/vdd
2) 将pv加入到vg
#vgextend datavg /dev/vdd
3) 数据迁移
#nohup pvmove /dev/vdb /dev/vdd &
#ctrl + c
注:nohup命令:在注销后使用 nohup 命令运行后台中的程序。要运行后台中的 nohup 命令,添加"&”到命令尾部。
如果不将 nohup 命令的输出重定向,输出将附加到当前目录的 nohup.out 文件中。
4) 查看数据迁移
# cat nohup.out
显示为100%,则迁移完成。
三、迁移结果
1、从vg中移除pv(注:务必数据迁移完成后进行此项操作):
# vgreduce datavg /dev/vdb
2、删除pv:
#pvremove /dev/vdb
3、从页面上卸载云硬盘。(注:务必确保从pvremove 成功后再卸载,可通过pvs查看pv中是否存在该盘。)
四、经验总结
1、SVC是整个SAN网络的控制器,将整个SAN网络中的各种存储设备整合成一个巨大的“存储池”,用户能够充分利用存储资源并可以按需分配存储空间、性能和功能;
2、此文档适用于操作系统是Linux系统,磁盘使用通过lvm管理,可在线用pvmove迁移本地磁盘、共享存储磁盘的数据,不影响机器的正常运行;
3、如果pvmove被中断(比如宕机),重新不带参数执行pvmove,重启上次最后检查点的任何move进程即可;
4、pvmove执行时,关闭中断窗口后,pvmove进程会被强制杀掉,从而导致lv的状态异常,无法重新进行pvmove和其他lvm镜像增加相关操作,可以通过如下方式修复:使用lvreduce命令:#lvreduce -m 0 lvname
命令执行成功后,lv的状态恢复正常,可继续进行未完成的pvmove操作;
5、一次可运行多个pvmove来迁移不同源PV,需在不同的目录下执行nohup pvmove/旧pv /新pv,这样会在当前目录下生成此pv迁移的进度日志nohup.out。
如欲了解更多,请登录安图特官方网站:www.antute.com.cn