华为Fusion Compute通过存储LUN快照恢复数据

上一篇博客里边写到了VMware虚拟化通过存储LUN快照恢复数据,在里边提到华为虚拟化和其他KVM有区别,这是真的血泪史呀。

事情是这样的,一个客户用的华为云桌面,就是普通架构,传统存储+主机+虚拟化+云桌面组件。存储用的是HUAWEI Oceanstor Dorado5000,主机也用的华为主机,虚拟化用的华为Fusion Compute,云桌面用的华为Fusion ACCESS,存储上做了LUN快照,云桌面没有其他的备份。有一天不小心给一个其他部门领导把云桌面虚拟机给删了。然后人家非要给他恢复数据,这哪恢复呀,当时就没有给云桌面计划备份的空间,说白了删了数据就没了,底层存储这么多盘做的RAID想恢复更难。当时一想不是做的LUN快照嘛,像VMware那样挂载磁盘快照找到虚拟机就完事了。然后就研究了一下这个问题,发现根本没有那么简单,主要有以下两点:

一、华为虚拟化Fusion Compute各个主机之间共享存储用的是一个叫OCFS存储架构,这是一个Oracle以前的一个共享文件系统,现在应该是不更新了,相对来说比较闭源网上的相关技术文档简直少的可怜。页面上没有提供响应的功能键,可能提供了一些API的接口但是研究起来太麻烦。

二、华为虚拟化Fusion Compute要想管理必须要有VRM这个组件,类似于Vcenter这个角色,CNA类似于ESXi这个角色的主机层是不能直接提供管理服务的,想直接进行虚拟机注册基本不可能。

虽然是有点麻烦哈,但是人家华为是有解决方案的,他开发了一个叫UltraVR的灾备软件,能实现数据中心之间的VRM通讯啥的,好像能实现虚拟机备份导入导出这些功能,是虚拟化高级版里带的软件,还没有研究,等过两天研究一下。

回归主题,虽然有困难,但是咱十几年的野路子也不是白走的。经过了我对CNA里存储数据块几天的分析,找到了一些规律,然后自制了这个恢复计划。

先声明:

1.这个操作华为官方肯定不提供支持,打400人家肯定不理你,如果搞崩了影响数据了就研究一下怎么跑路吧。

2.虚拟机有磁盘的快照这属于另外一个操作的大类,除了磁盘快照文件以外在数据库里也存储了相关的信息,所以如果你要恢复的虚拟机在LUN快照的时候还存在虚拟机快照这个方法实现不了。

3.里边涉及到非常多的磁盘底层和VMR数据的操作如果操作不慎很有可能产生更大的数据损失,如果没有虚拟化计算和Linux操作系统技术的支撑请不要尝试

下面开始正题:

1、测试环境数据录入

        1)在测试环境中新建一个原始的数据,在云桌面HW00134这个虚拟机的D盘有个“FC通过LUN快照恢复数据测试.txt”这就是我们待会要操作的数据。

 

         2) 去FC上查看虚拟机所在的数据存储

3)查看数据存储关联的存储设备的唯一标识号

4)去存储上给这个LUN做一个快照

5)去虚拟机里把刚才的测试文件删了

2、相关信息收集

因为是测试所以这次做的比较彻底一些,可以看到测试虚拟机有3块磁盘,这次的目标是把3块磁盘的数据都恢复出来,让虚拟机正常启动。

1)登录ssh通过root用户VRM查看虚拟机的三个磁盘存放的具体路径

psql -U galax vrm

密码为:SingleLOUD!1

select ds_index from tbl_vs_datastore where ds_name='vDeskTop_DATA_30T_01';

查询数据存储“vDeskTop_DATA_30T_01”刚才虚拟机所在的存储的标识号

select vol_name,vol_url from tbl_vs_volume where ds_index=11 and vol_name='i-00000903-vdb';

查询虚拟机三个存储对应的OCFS中的目录,ds_index=11是刚才查到数据存储号,vol_name='i-00000903-vdb'是虚拟机的磁盘号VRM里可以看到。由于刚删的那个文件能确认在vdb里边所以只查一个就可以。

2)找一台CNA通过root用户ssh登录,查询数据存储的OCFS信息

上一条查询中可以看到LUN对应的目录是/POME/datastore_11,df –hT可以看出这个目录在本CNA的磁盘号是dm-28

通过multipath -ll | grep -A1 0022   (0022是LUN唯一标识号的最后4位)可以看到LUN在本CAN的磁盘号是dm-27。所以dm-27和dm-28肯定存在某种关系。

用dmsetup table /dev/dm-28  查看dm-28的信息可以看到他是通过253:27这个设备创建的,去/dev下寻找253:27发现这个设备就是dm-27。保存好刚dmsetup table查看到的table信息,后面会用到。

0 64424505344 linear 253:27 4096

3、搭建OCFS恢复环境

1)创建Centos7.4挂载好本地YUM源

2)上传OCFS的软件包

3)安装顺序为:

linux-firmware-20190429-72.gitddde598.el7.noarch

kernel-3.10.0-1062.4.3.el7.yn20191203.x86_64.rpm

ocfs2-tools-1.8.6-14.el7.x86_64.rpm

4)新建:/etc/modules-load.d/ocfs2.conf

# Load ocfs2.ko at boot

ocfs2

5)重启后查看内核和mod信息

4、LUN快照映射

1)恢复服务器上安装multipath

yum -y install device-mapper device-mapper-multipath

2)加载相应的模块

modprobe dm-multipath

modprobe dm-round-robin

3)修改multipath配置文件/etc/multipath.conf

defaults {

  path_checker            tur

  no_path_retry           18

  path_grouping_policy    group_by_prio

  prio                    const

  deferred_remove         yes

  uid_attribute           "ID_SERIAL"

  reassign_maps           no

  failback                immediate

  log_checker_err         once

  reservation_key         "file"

}

devices {

       device{

            vendor                  "HUAWEI"

            product                 "XSG1"

            path_grouping_policy    group_by_prio

            prio                    alua

            path_selector           "round-robin 0"

            path_checker            tur

            failback                immediate

            dev_loss_tmo            30

            fast_io_fail_tmo        5

   }

}

4)启动multipathd服务

systemctl start multipathd

systemctl enable multipathd

5)在存储上把快照映射给虚拟机,这里启动器可以选择SCSI或者ISCSI就不详细介绍了,主要步骤就是新建主机,添加启动器,新建主机组,新建LUN组,新建映射视图

iSCSI的安装包为:yum install -y iscsi-initiator-utils

dm-2的唯一标识号和存储上快照的唯一标识号一致说明没有问题。

5、通过LUN快照恢复OCFS文件系统

1)新建OCFS集群

执行命令

o2cb_ctl -C -n ocfs2 -t cluster -i

  创建名称ocfs2的集群

  o2cb_ctl -C -n rac1 -t node  -a number=1 -a ip_address=192.168.15.100 -a ip_port=7777 -a cluster=ocfs2

向ocfs2集群中新加节点rac1(主机名和IP地址一定要设置一样的)

执行完两条命令以后在/etc/ocfs2/cluster.conf可以看到集群的配置文件

2)初始化OCFS集群

执行命令:o2cb.init configure

查看集群状态:o2cb.init status

Cluser状态为Online则正常,offLine时需要查看配置文件里边的主机名和IP地址,一定要一模一样。

设置ocfs开机启动:systemctl enable o2cb ocfs2

3)通过快照恢复OCFS文件系统

找到在2 -2)步骤中查到的dmsetup table信息,写到/root/dmp_tab文件中,注意快照映射到这个主机的dm号和原来主机的dm号一般都是不一样的,需要根据自身环境中的信息调整253:后的数字,当前测试环境中dm-2为253:2,所以dmp_tab文件中也要相应的修改。

执行命令:dmsetup create dm-test /root/dmp_tab

这条命令的意思就是根据253:2的这个设备新建一个存储设备(这是华为自己打包的一层,这个操作必须要做

到这OCFS就可以看到相应的文件系统了,但是现在的文件系统里边有原来的Cluster信息是在当前的ocfs cluster里边是挂载不了的。

执行命令:mounted.ocfs2 –f

查看当前系统中有OCFS文件系统的设备

执行命令:fsck.ocfs2 -y /dev/mapper/dm-test

修复/dev/mapper/dm-test里的ocfs文件系统,主要是把原来的cluster信息擦除。

修复完成后再执行mounted.ocfs2 –f就可以看到原来的cluster信息已经不存在了。

由于恢复环境的ocfs和生产环境ocfs软件版本有差距,所以还需要执行命令:tunefs.ocfs2 --fs-features=noappend-dio /dev/mapper/dm-test

此命令的作用是关闭/dev/mapper/dm-test问系统中的append-dio功能,这个功能在华为的ocfs里边是开着的,但是恢复环境中不支持这个功能,所以需要关闭否则挂载不上

挂载OCFS文件系统,执行命令:mount.ocfs2 /dev/mapper/dm-test /ocfs2/

6、恢复虚拟机/磁盘

1)根据2-1)查询到的URL,测试中要恢复的文件在第二块磁盘,所以需要把虚拟机第二块磁盘的存储文件复制一份出来,vol/vol_a85ee23f-1b43-4551-8748-b7e07ff88dbd/vol_a85ee23f-1b43-4551-8748-b7e07ff88dbd.img

复制的时候一定要查一下空间,ocfs出来的空间比xfs占用小,一定要多预留工具否则容易把恢复的这个服务器给copy挂了

2)把复制出来的文件放到CNA主机上(找个空间大的地方比如datastorage的目录里边)

3)在VRM上给要恢复的主机新加一块和要恢复的磁盘一样大小的磁盘

4)去vrm上查询新加磁盘的具体的URL路径

5)把刚才的磁盘文件移动到新查到的URL目录里(为了方便我把vol开头的名字改成了data

6)修改.img文件的名称,把原来磁盘中的vol_7017e077-d6de-4695-9fa1-27039af1755a.img名称改成新加磁盘的名称vol_45e062eb-580c-454f-bb23-0a942c78b707.img

7)去虚拟机中恢复虚拟机的文件系统

这一步如果磁盘那还是显示不可用是黑色的话需要在VMR上解绑定,然后重新绑定一下

右键联机系统就会分配一个新的磁盘号

进入G盘就可以找到在LUN在快照的时间截点上所有的G盘数据

操作一定要小心~~~

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
华为 FusionCompute 是一种基于虚拟化技术的云计算平台,而华为软件定义存储SDS是一种软件定义存储解决方案。下面是搭建华为 FusionCompute 和华为软件定义存储SDS的详细步骤: 1. 部署 FusionCompute: - 安装 FusionCompute 软件:将 FusionCompute 安装包下载到服务器上,并按照官方文档提供的安装步骤进行安装。 - 配置网络:根据网络规划,配置服务器的网络参数,确保服务器之间可以互相通信。 - 创建资源池:在 FusionCompute 界面上,创建一个资源池,用于管理计算、存储和网络资源。 - 添加计算节点:将服务器添加到资源池中作为计算节点,以提供计算能力。 2. 部署软件定义存储SDS: - 安装 SDS 软件:将软件定义存储SDS的安装包下载到服务器上,并按照官方文档提供的安装步骤进行安装。 - 配置网络:根据网络规划,配置服务器的网络参数,确保服务器之间可以互相通信。 - 创建存储池:在 SDS 界面上,创建一个存储池,用于管理存储资源。 - 添加存储节点:将服务器添加到存储池中作为存储节点,以提供存储能力。 3. 配置 FusionCompute 和 SDS 的集成: - 在 FusionCompute 界面上,配置 SDS 存储:输入 SDS 存储节点的 IP 地址和认证信息,将 SDS 存储FusionCompute 进行集成。 - 创建存储资源:在 FusionCompute 界面上,创建一个存储资源,关联之前创建的 SDS 存储池。 4. 配置虚拟机: - 在 FusionCompute 界面上,创建虚拟机:根据需求创建虚拟机,并选择之前创建的存储资源作为虚拟机的存储。 - 配置虚拟机参数:根据需求配置虚拟机的 CPU、内存、网络等参数。 5. 测试和验证: - 启动虚拟机:在 FusionCompute 界面上启动创建的虚拟机,确保虚拟机能够正常运行。 - 数据存储测试:在虚拟机中进行数据存储测试,例如创建文件、读写数据等操作,以验证 SDS 存储的功能和性能。 请注意,以上步骤仅提供了一个概览,并且具体的步骤和配置可能因为不同的版本或具体环境而有所差异。建议在搭建过程中参考华为官方提供的文档和指南,以确保正确完成配置和集成。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值