云备份 CBR Linux 操作系统备份恢复用户指南
1.1 方案介绍
Linux操作系统备份是采用文件备份+自定义脚本的方式实现的,主要是通过自定义脚本将系统分区和挂载信息以文件形式记录到/media/sys_info目录下后,将整个根目录(除/dev /sys /proc)以文件备份的方式进行备份。当Linux操作系统数据被损坏或者丢失时,将Linux操作系统全部数据恢复到一个干净的环境。
注意:
| 此方案无法保证备份的完全一致性。
1.2 名词注释
本节内容主要对文档中出现的一些技术名词做简单的解释。
1.2.1 操作系统数据备份
完全备份
完全备份是将选定的文件数据源全部备份到指定的CBR的备份介质中。每次执行完全备份时,直接将所有的文件数据备份到CBR的备份介质中,并产生一个时间点,用于记录备份的内容。
增量备份
增量备份是基于上一次备份(可以是完全备份也可以是增量备份)进行的备份。每次执行增量备份时,会先确定该对象是否已经被备份及已经备份对象的修改时间是否有变化,增量备份仅将新增的对象和有变化的对象备份到CBR的备份介质中,并产生相应的时间点。在尚未进行完全备份或者所有完全备份时间点被清理的情况下,进行增量备份时会自动转为完全备份。
1.2.2 操作系统数据恢复
数据恢复
数据恢复是指在操作系统数据被损坏或者丢失时,使用之前的操作系统备份副本来实现操作系统数据的还原。
1.2.3 操作系统数据清理
数据清理
数据清理是指不再需要某些副本数据时,操作员或租户可以手动清理所管辖任务的全部副本数据或者指定副本数据。若设置了数据保留策略,当某次任务执行后达到策略设置的条件时,也会触发数据清理,清理掉保留副本数量之外的较早的副本数据。
1.2.4 其他名词
AES256:美国联邦政府采用的一种区块加密标准,采用对称分组密码体制,密钥的长度256,分组长度128位。
SM4:国产加密算法,无线局域网标准的分组数据算法。对称加密,密钥长度和分组长度均为128位。
物理卷(Physical Volume,PV):就是指硬盘分区,也可以是整个硬盘或已创建的软RAID,是LVM的基本存储设备。
卷组(Volume Group,VG):是由一个或多个物理卷所组成的存储池,在卷组上能创建一个或多个逻辑卷。
逻辑卷(Logical Volume,LV):类似于非LVM系统中的硬盘分区,它建立在卷组之上,是一个标准的块设备,在逻辑卷之上可以建立文件系统。
1.3 Linux操作系统定时备份支持功能列表
表1-1 Linux操作系统定时备份支持功能列表
功能 |
子功能 |
是否支持 |
备注 |
备份 |
完全备份 |
√ |
- |
增量备份 |
√ |
- |
|
备份粒度 |
√ |
最小粒度为文件 |
|
永久增量备份 |
√ |
- |
|
数据保留策略 |
√ |
- |
|
重复数据删除 |
√ |
- |
|
多通道备份 |
√ |
- |
|
备份策略 |
√ |
- |
|
传输和存储加密 |
√ |
- |
|
备份计划 |
√ |
- |
|
数据源过滤 |
√ |
- |
|
数据一致性 |
√ |
- |
|
流量控制 |
√ |
- |
|
备份自动重试 |
√ |
- |
|
数据压缩 |
√ |
- |
|
自定义脚本 |
√ |
- |
|
恢复 |
原机恢复 |
√ |
- |
异机恢复 |
√ |
- |
|
恢复计划 |
× |
- |
|
自定义脚本 |
√ |
- |
|
替换或跳过文件 |
√ |
- |
|
恢复粒度 |
√ |
最小粒度为文件 |
|
远程复制 |
数据同步 |
√ |
- |
反向复制 |
√ |
- |
|
日志 |
- |
√ |
- |
告警 |
- |
√ |
- |
云备份 |
- |
× |
- |
2 操作系统备份环境检查
2.1 客户端服务检查
Linux操作系统备份要求客户端能正常连接到备份服务器,进行备份前请先查看客户端服务或者进程是否正常,检测命令以CentOS 7为例:
systemctl status HBRClientService.service
ps -ef | grep esf | grep –v grep
2.2 自定义脚本检查
在客户端任意目录下新建文件backup_sysinfo.sh ,然后将本文档附录中脚本内容复制、粘贴至该文件中,保存、退出。给该文件赋予执行权限,然后执行该文件。相关命令及操作可参考如下:
1. vi backup_sysinfo.sh
2. 复制、粘贴脚本内容,保存、退出
3. chmod a+x backup_sysinfo.sh
4. ./ backup_sysinfo.sh
脚本执行完成后会在/media路径下创建一个sys_info目录,然后会生成5个记录系统分区挂载信息的文件在该目录下。
3 数据备份
3.1 新建Linux操作系统定时备份任务
步骤 1 租户登录管理控制台,单击【定时数据保护】→【数据备份】→【备份】,在“任务”页面单击【新建】→【数据级备份任务】,进入新建文件系统备份任务界面。
步骤 2 在创建任务第一步中,请选择要保护的对象处默认选中【客户端】;请选择要保护的客户端处默认选中默认组;请选择要保护的应用类型默认选中【文件系统】;单击【下一步】按钮,进入第二步;
步骤 3 在创建任务第二步中,单击请选择要保护的数据标签栏下方的“+”号,可以展开数据源,在文件或文件夹前面的方框处单击,选中该文件或者文件夹,再单击一次可以取消选中。创建Linux操作系统定时备份任务时,请选择除/proc /sys /dev外所有对象。
注意:l 如果选中数据源目录文件过多时,会分批展开数据源,首次展开100个,之后会有“更多....”的提示,选择更多....的方式展开;
l 为了备份效率,不建议两个任务包含同一文件。
步骤 4 选择完数据源直接单击下一步,进入第三步;可以选择备份介质、配置备份高级选项。
备份介质,必填项,默认项: OFS,此处保持默认。
在备份选项中,单击需要开启的高级功能选项后的按钮可以开启对应的高级功能,各个选项说明如下:
【永久增量备份】若开启永久增量备份,每一次增量备份都会进行一次时间点合成,形成新的一个永久增量时间点,等效于完备时间点。该选项在任务创建后不允许编辑。
【LAN-Free】 开启了LAN-FREE选项,则该任务采用FC链路传输数据。使用该高级选项前需要先配置FC链路。具体说明可参阅《云备份 CBR LAN-Free备份恢复用户指南》。
【强制数据保留】开启了强制数据保留则在保留时长内的数据无法被清理,同时该策略在修改时时间只能增加无法减少。
【传输和存储加密】若开启传输加密与存储加密选项,则该任务的数据在传输和存储上都经过加密处理。分为两种加密方式:AES256加密算法、SM4加密算法。该选项在任务创建后不允许编辑。
【数据压缩】开启该选项可以对备份的数据进行压缩,减少存储空间占用。分为两种压缩方式:快速压缩、强力压缩,默认快速压缩。该选项在任务创建后不允许编辑。
【重复数据删除】勾选该选项可以启动源端重复数据删除的功能,该选项在任务创建后不允许编辑。指纹库需要提前创建才能成功开启重复数据删除功能。具体说明可参阅《云备份 CBR 定时数据保护重复数据删除用户指南》;
【重删高级配置】具体说明可参阅《云备份 CBR 定时数据保护重复数据删除用户指南》。
【备份数据一致性校验】具体说明可参阅《云备份 CBR 备份数据一致性校验用户指南》。
【流量控制】开启该选项后可创建最多48条分段限速策略,限速时间段不允许交叠,开始时间不得晚于结束时间,在每个限速时间段内均可手动设置定时任务备份的最大速度。可设置范围为1~1024MiB/s,默认1024MiB/s。
【多通道备份】开启该选项后可以设置文件扫描并发数、数据读取和发送并发数两个选项,改变文件扫描通道数、数据读取和发送通道数,设置较高的文件扫描通道数能提高文件扫描速度,提高增量备份速度;设置较高的数据读取和发送通道数可以提高小文件的读取和发送速度,提高完全备份性能,但需占用较多内存及CPU资源。具体配置可参考第6章通道数配置说明。
【自定义脚本】单击选择按钮,浏览客户端目录中含有的可执行脚本,在建立任务后可以通过编辑任务选项,编辑该选项。一共支持三种自定义脚本:备份前执行、备份成功执行、备份失败执行。
【自动备份重试】默认不开启,配置该选项后当备份任务失败后等待规定时间重新发起备份,直至备份成功。可配置自动重试的次数最多为5次,重试等待时间最大为30分钟。
【文件聚合】将同层目录下小于指定值的小文件聚合成若干个指定值大小的文件。
设置完成后,单击【下一步】按钮,继续;
l 注意:
l 开启加密或压缩会影响备份速度,对安全性要求不高可以不开启。
l 为了能准确记录每次备份前系统的分区、挂载信息,请务必为任务添加备份前执行backup_sysinfo.sh脚本,脚本内容见附录。
步骤 5 选择备份选项之后,单击下一步,进入任务名称和备注页面。任务名称:必填项;中文、大小写字母、数字、“-”、“_”、“.”、“@”组成,长度为3~256个字符,全局不可重复;任务备注:选填项;文本类型无限制,长度0~50个字符;当用户输入的字数达到最大值时,将不再显示超过的文字。
步骤 6 设置好任务名称和任务备注后,单击【完成】,会弹出任务信息确认弹窗。该弹窗显示了该任务的摘要信息。信息确认无误后,单击【确定】,新建任务完成,回到任务列表页面。如果勾选【任务生成后立即执行】,再单击【确定】,则任务新建完成后立即开始执行。
备份任务创建成功后,会以列表的形式展示在备份界面,单击详情可以查看任务详情。
任务详情展示了任务的基本信息、高级选项的配置、数据源、策略,通过数据源栏【删除数据源】还能实现对任务数据源的调整。【删除数据源】可用于以下两种场景:
1. 任务原数据源中的部分已经在生产服务器中被删除成为无效数据源;
2. 需要取消原任务数据源中的部分对象且不需要展开目录;
单击【删除数据源】,在弹出界面可查看到任务之前添加到数据库的数据源列表,单击每个对象前的方框可选中该对象,选择一个以上对象后,单击右下角【删除】可从数据库中删除该数据源,但不允许删除全部数据源对象。
----结束
3.2 编辑Linux操作系统定时备份任务
当需要修改任务的配置时,可以选中该任务,并单击【编辑】按钮,进行编辑。编辑的步骤,和创建任务的步骤相同,其中要保护的客户端、保护的应用类型、备份介质以及备份选项中的永久增量备份、传输和存储加密、数据压缩和重复数据删除等几个高级选项不支持编辑。
3.3 删除Linux操作系统定时备份任务数据源
步骤 1 操作员或租户登录管理控制台,单击【定时数据保护】→【数据备份】→【备份】,新建【数据级备份】备份。
步骤 2 在备份任务列表单击任务的“详情”。
步骤 3 下拉任务的“详情”界面到“数据源”部分,单击“删除数据源”按钮。
步骤 4 在“删除数据源”弹窗,选择需要删除的数据源。
步骤 5 单击“删除”按钮,删除选择的数据源。不允许删除系统目录,否则系统可能无法恢复。
----结束
3.4 启动Linux操作系统定时备份任务
步骤 1 选中任务,单击【启动】按钮,选择备份方式,单击【启动】按钮,开始备份。
步骤 2 单击监控,可以查看任务执行信息。
单击【详情】,可以查看任务监控的执行概要和执行输出。
步骤 3 单击历史记录,可以查看任务历史信息。
单击【详情】,可以查看任务历史记录的执行概要和执行输出。
增量备份转完全备份场景说明:
1.首次备份为增量备份,会转换成完全备份。
2.Linux操作系统定时备份在完全备份失败后,增量备份会转成完全备份(不管之前有无完备时间点)。
3.手动发起数据清理,清理所有副本后,增量备份会转换成完全备份。
4.手动停止完全备份任务,再起发起增量备份,增量备份会转换成完全备份。
----结束
3.5 停止Linux操作系统定时备份任务
当需要中止Linux操作系统定时备份任务时,可以在监控界面选中要停止的任务,然后单击停止,之后在弹出的警告对话框单击停止。
在历史记录中可查看已停止的Linux操作系统定时备份任务。
任务执行异常且单击“停止”无法停止时,可使用后台停止工具停止异常任务。具体使用请参考《云备份 CBR 工具使用指导》。
3.6 备份策略和数据保留策略
3.6.1 新建备份策略
步骤 1 操作员或租户登录管理控制台。
步骤 2 单击【定时数据保护】→【策略】→【备份策略】,单击【新建】按钮 → 输入备份策略名→ 选择备份周期。
备份周期:可选择天、周、月、年,默认选中“天”。选中“天”时,默认选中每1天,范围:1~365天;选中“周”时,默认选择周日;选中“月”时,默认选中每月1日,范围:1-31,可多选,未选几号时提示必填。若当月无选定日期则在最后一天触发,例如九月份无31号,但是日期选中了31号,则默认在9月30号即九月最后一天触发任务;选中“年”时,默认选中1月1日,可通过下拉控件调整月份和日数。
重复发起:默认关闭。若开启,则出现“持续时间”和“频率”设置;意义为:在一定的【持续时间】内,依【频率】发起多次备份。【持续时间】范围:1~59分钟或者1~24小时,默认值24小时;【频率】范围:1~59分钟或者1~24小时,默认值1小时,【频率】不可超过【持续时间】。
步骤 3 在备份策略列表页面,选中策略可以查看策略的内容和该策略关联的任务。
发起时间:必选项;意义为:发起计划的具体时间;格式:HH:MM,精确到分钟,默认显示:当前时间,设置时间不可早于当前时间。
----结束
3.6.2 添加备份策略
步骤 1 在数据备份页面中,选中任务,单击【策略】->【备份策略】
步骤 2 单击【添加】,选择策略→选择备份方式→选择发起时间,添加成功后,单击确定,为任务新建策略成功。其中,备份方式:分为完全备份、增量备份
添加成功后,任务出现策略图标和下次发起时间,代表策略添加成功。
注意:如果在持续时间内达到了频率时间,上一个备份任务还没有停止,则不会发起备份。
----结束
3.6.3 新建数据保留策略
步骤 1 单击【定时数据保护】→【策略】→【备份数据保留策略】,单击【新建】按钮 → 输入策略模板名称→ 选择数据保留策略
开启数据保留策略,一共有三种保留策略,分别为:数据保留期限、保留副本个数和按备份策略的备份周期设置副本保留策略。
【数据保留期限】开启选项后,默认选中数据保留期限一年。可选择的保留期限为天、周、年、月,数字最大数为999。
【保留副本个数】可以设置保留完全副本的个数,最小为1个副本,最大可设置1024个副本。
【按备份策略的备份周期设置副本保留策略】可选择按天、周、月、年备份策略保留副本个数,按备份策略保留的副本数每一种的最大数为99999个。
----结束
3.6.4 添加数据保留策略
步骤 1 在数据备份页面中,选中任务,单击【策略】->【添加备份数据保留策略】。
----结束
3.6.5 移除数据保留策略
步骤 1 在数据备份页面中,选中任务,单击【策略】->【移除备份数据保留策略】
步骤 2 单击确定,成功移除模板。
----结束
4 数据恢复
4.1 操作系统数据恢复概述
Linux操作系统恢复需要从可移动介质如 CD、USB Disk 上引导LiveCD,磁盘按已备份客户端的分区和挂载信息进行分区和挂载后,安装客户端进行数据恢复,最后进行grub修复。根据不同的系统,引导时需使用不同的LiveCD,如下表:
表4-1 操作系统与Live CD类型对应表
操作系统类型及版本 |
Live CD类型 |
CentOS 5/ Red Hat 5 |
CentOS-5-livecd-x86_64.iso |
CentOS 6/ Red Hat 6 |
CentOS-6-livecd-x86_64.iso |
CentOS 7/ Red Hat 7 |
CentOS-7-livecd-x86_64.iso |
CentOS 8/ Red Hat 8 |
CentOS-7-livecd-x86_64.iso |
Suse操作系统 |
CentOS-7-livecd-x86_64.iso |
国产操作系统 |
对应型号的UOS系统安装镜像进入LiveCD模式 |
CentOS-livecd官网下载地址为:CentOS7 CentOS6。本文使用的为CentOS-7-livecd-x86_64.iso。
当用户的操作系统误删、损坏,或者客户机出现故障时,需要做异机的迁移时,可以进行操作系统恢复,将操作系统恢复到备份时的状态。
4.2 操作系统恢复注意事项
l 恢复时,LiveCD上新建分区不能小于原机对应分区大小。
l grub修复应使用和原机相同版本grub修复,如CentOS 6.5 需使用grub(CentOS 6版本liveCD),CentOS 7.5需使用grub2(CentOS 7版本LiveCD)。
l 不支持系统备份一致性。(系统备份过程中对数据进行的修改,可能不会备份到介质服务器。目前是依次读取每个文件,如果该文件修改时还未被读取,修改的内容会被备份;反之,则不会备份)。
l 不支持使用内置客户端对自身管理控制台服务器进行系统备份恢复。
l 不支持系统备份过程中创建的硬链接文件恢复,恢复后硬链接会丢失。
l 恢复还需提前恢复备份副本中/media/sys_info(自定义脚本默认输出路径)下系统信息到任意一台正常机器下来查看原机的分区信息。
l 恢复目的地客户端需在线。
l 支持异机恢复,但恢复后的文件属性可能会发生变化。
l 不支持跨平台恢复(Windows与Linux之间互相跨平台恢复)。
l 操作系统恢复失败可能会造成磁盘损坏。
4.3 操作系统数据恢复步骤
4.3.1 BIOS启动的操作系统恢复前准备
步骤 1 根据原机信息进行目的端的硬件配置(磁盘相关信息可参考partitions_fdisk.txt或partitions_parted.txt)。若目的端为原生产机,请直接转到第2步。
步骤 2 使用原机操作系统对应版本的LiveCD引导系统,然后配置IP,具体操作如下:
物理机:将livecd制作成启动U盘或者光盘,将U盘或者光驱通过物理机USB口接入,使用光驱时设置物理机从CDROM引导,使用U盘时设置物理机从USB引导。
虚拟机:加载livecd镜像,设置虚拟机从CDROM引导。
引导完成后,终端执行su - root 获取管理员权限,然后执行以下命令配置临时IP
ifconfig [网卡名] ip地址 netmask [子网掩码]
例如:ifconfig eth0 192.168.55.6 netmask 255.255.255.0
再执行以下命令设置网关
route add default gw [网关地址]
例如:route add default gw 192.168.55.1
步骤 3 根据原机信息进行硬盘分区,分区大小和起止点可参考partitions_fdisk.txt (MBR分区)或partitions_parted.txt(GPT分区);原机如果存在逻辑卷分区则应根据原机信息创建相同的逻辑卷并进行分区。卷组组成结构、逻辑卷组成结构、逻辑卷分区所占的LE等信息可参考lvm_information.txt。分区完毕后请根据fstab.txt和mounted_info.txt中记录的原机挂载信息进行初始化并挂载。若目的端为原生产机,请直接按原机信息格式化原分区并挂载。
1. 分区时请根据磁盘的标签类型选用合适的分区命令进行分区,msdos类型的磁盘推荐使用fdisk命令进行分区,gpt类型的请使用parted命令进行分区。
在某些环境下,有的卷是逻辑卷,这种情况下需要先创建物理卷和卷组,若原机不存在逻辑卷请跳过本段有关创建逻辑卷的内容。下面先介绍创建物理卷、卷组及逻辑卷的命令,然后以Red Hat 7操作系统为例,介绍创建逻辑卷的命令的具体使用。
创建物理卷 |
pvcreate [硬盘分区或者硬盘] |
创建卷组 |
vgcreate [卷组名称] [物理卷名] |
创建逻辑卷 |
lvcreate -L [逻辑卷大小] -n [逻辑卷名] [卷组名] |
2. 所有分区完成后,请根据原机信息选择文件系统格式化各个分区并按照根分区、boot、efi(UEFI引导方式才有)、其他分区的顺序依次挂载,务必做到与原机磁盘挂载一致,下面命令仅供参考,部分参数请根据具体环境进行对应改变。
− 格式化根分区并挂载
mkfs.ext3 /dev/rhel/root |
//格式化根分区 |
mkdir /bmr |
//创建任意目录用来挂载根分区,此处以/bmr为例 |
mount /dev/rhel/root /bmr/ |
//将根分区挂载到/bmr |
− 格式化 boot 分区并挂载
mkfs.ext3 /dev/sda1 |
//格式化sda1 |
mkdir /bmr/boot |
//在/bmr下创建boot目录 |
mount /dev/sda1 /bmr/boot/ |
//将sda1挂载到/bmr/boot |
l 注意:挂载顺序不能错 否则/boot会挂载失败。
− 格式化其他分区并挂载,没有其他分区的话,此步跳过,此处以home分区为例
mkfs.xfs /dev/rhel/home |
//格式化逻辑卷home |
mkdir /bmr/home |
//在/bmr下创建home目录 |
mount /dev/sda4 bmr/home/ |
//将sda4挂载到/bmr/home |
− 制作swap分区
mkswap /dev/rhel/swap
3. 在新建目录/bmr下安装客户端后,将原系统数据恢复至/bmr下。参考步骤如下:
a. 租户登录管理控制台,在【定时数据保护】-【数据恢复】-【恢复备份数据】界面中单击【新建】,开始创建恢复任务;
共享任务恢复步骤与私有任务恢复步骤一致。公共任务管理可以参考《云备份 CBR公共管理用户指南》。
b. 选择要恢复的任务,单击下一步,选择要恢复的时间点及数据,恢复时需选择客户端目录HBRBackupClient以外的所有文件夹(除去客户端目录HBRBackupClient是为了防止覆盖LiveCD中客户端安装目录造成客户端损坏,导致恢复失败)。
注意:如果是要恢复到最新状态,推荐选择最新时间点。因为选择的时间点恢复成功后的数据实际上是当时备份的数据,并不是最新的。
c. 选择恢复目的地,默认为-请选择客户端。此处为必填,保存路径为根分区挂载目录, 本文中为/bmr,恢复选项保持默认即可。
恢复任务名不可自行输入;格式为“rec-[备份任务的名称]”;若有重复,则加数字后缀,递增加1,如:rec-task01 (1)、rec-task01 (2)、rec-task01 (3)。如果任务已经删除,则命名规则是rec-新建时间-[备份任务的名称]
单击详情,可以看到数据恢复任务详情、执行概要和执行输出。默认展示任务详情。
恢复成功后,挂载/sys /proc /dev 目录,参考命令如下:
mkdir /bmr/sys
mkdir /bmr/proc
mkdir /bmr/dev
mount --bind /sys /bmr/sys
mount --bind /proc /bmr/proc
mount --bind /dev /bmr/dev
修复grub启动项,参考命令如下:
Grub引导: |
grub-install --root-directory=/bmr --no-floppy /dev/sda |
Grub2引导: |
grub2-install --root-directory=/bmr --no-floppy /dev/sda |
请根据grub版本执行对应命令,sda为恢复系统磁盘,/bmr为根分区挂载目录
重新生成grub配置文件,参考命令如下:
cd /
chroot /bmr
grub-mkconfig -o /boot/grub/grub.conf或grub2-mkconfig -o /boot/grub2/grub.cfg
请根据grub版本执行对应命令,重新生成grub配置文件(此命令Live-cd中可能未安装,可手动修改grub配置文件,更新其中的UUID即可)
exit
修改grub配置文件,在启动项后添加selinux=0 参数
请根据grub版本选择下列对应命令执行
vi /bmr/boot/grub/grub.conf或vi /bmr/boot/grub2/grub.cfg
添加一个kenrnel的参数:selinux=0
修改启动卷挂载文件
使用下列命令查看磁盘分区的UUID
blkid
使用下面命令打开fstab表
vi /bmr/etc/fstab
更新各个分区对应的UUID
重启操作系统
reboot
----结束
4.3.2 UEFI启动的操作系统恢复前准备
步骤 1 根据原机信息进行目的端的硬件配置(磁盘相关信息可参考partitions_fdisk.txt或partitions_parted.txt)。若目的端为原生产机,请直接转到第2步。
步骤 2 使用原机操作系统对应版本的LiveCD引导系统,然后配置IP,具体操作如下:
物理机:将livecd制作成启动U盘或者光盘,将U盘或者光驱通过物理机USB口接入,使用光驱时设置物理机从CDROM引导,使用U盘时设置物理机从USB引导。
虚拟机:加载livecd镜像,设置虚拟机从CDROM引导。
引导完成后,终端执行su - root 获取管理员权限,然后执行以下命令配置IP
ifconfig [网卡名] ip地址 netmask [子网掩码]
例如:ifconfig eth0 xxx.xxx.xxx.xxx netmask xxx.xxx.xxx.xxx
再执行以下命令设置网关
route add default gw [网关地址]
例如:route add default gw xxx.xxx.xxx.xxx
步骤 3 根据原机信息进行硬盘分区,分区大小和起止点可参考partitions_fdisk.txt (MBR分区)或partitions_parted.txt(GPT分区);原机如果存在逻辑卷分区则应根据原机信息创建相同的逻辑卷并进行分区。卷组组成结构、逻辑卷组成结构、逻辑卷分区所占的LE等信息可参考lvm_information.txt。分区完毕后请根据fstab.txt和mounted_info.txt中记录的原机挂载信息进行初始化并挂载。
1. 分区时请根据磁盘的标签类型选用合适的分区命令进行分区,msdos类型的磁盘推荐使用fdisk命令进行分区,gpt类型的请使用parted命令进行分区。
2. 在某些环境下,有的卷是逻辑卷,这种情况下需要先创建物理卷和卷组,若原机不存在逻辑卷请跳过本段有关创建逻辑卷的内容。下面先介绍创建物理卷、卷组及逻辑卷的命令,然后以Red Hat 7操作系统为例,介绍创建逻辑卷的命令的具体使用。
创建物理卷 |
pvcreate [硬盘分区或者硬盘] |
创建卷组 |
vgcreate [卷组名称] [物理卷名] |
创建逻辑卷 |
lvcreate -L [逻辑卷大小] -n [逻辑卷名] [卷组名] |
所有分区完成后,请根据原机信息选择文件系统格式化各个分区并按照根分区、boot、efi(UEFI引导方式才有)、其他分区的顺序依次挂载,务必做到与原机磁盘挂载一致,下面命令仅供参考,部分参数请根据具体环境进行对应改变。
3. 格式化根分区并挂载
mkfs.ext3 /dev/rhel/root |
//格式化根分区 |
mkdir /bmr |
//创建任意目录用来挂载根分区,此处以/bmr为例 |
mount /dev/rhel/root /bmr/ |
//将根分区挂载到/bmr |
4. 格式化 boot 分区并挂载
mkfs.ext3 /dev/sda1 |
//格式化sda1 |
mkdir /bmr/boot |
//在/bmr下创建boot目录 |
mount /dev/sda1 /bmr/boot/ |
//将sda1挂载到/bmr/boot |
5. 格式化 efi 分区并挂载
mkfs.vfat /dev/sda1 |
//格式化sda1 |
mkdir /bmr/boot/efi |
//在/bmr/boot下创建efi目录 |
mount /dev/sda1 /bmr/boot/efi/ |
//将sda1挂载到/bmr/boot |
注意:挂载顺序不能错 否则/boot 和/boot/efi会挂载失败。
6. 格式化其他分区并挂载,没有其他分区的话,此步跳过,此处以home分区为例
mkfs.xfs /dev/rhel/home |
//格式化逻辑卷home |
mkdir /bmr/home |
//在/bmr下创建home目录 |
mount /dev/sda4 bmr/home/ |
//将sda4挂载到/bmr/home |
7. 制作swap分区
mkswap /dev/rhel/swap
在新建目录/bmr下安装客户端后,将原系统数据恢复至/bmr下。参考步骤如下:
a. 租户登录管理控制台,在【定时数据保护】-【数据恢复】-【恢复备份数据】界面中单击【新建】,开始创建恢复任务;
b. 选择要恢复的任务,单击下一步,选择要恢复的时间点及数据,恢复时需选择客户端安装目录以外的所有文件夹(去除客户端安装目录是为了防止覆盖LiveCD中客户端安装目录造成客户端损坏,导致恢复失败)。
注意:如果是要恢复到最新状态,推荐选择最新时间点。因为选择的时间点恢复成功后的数据实际上是当时备份的数据,并不是最新的。
c. 选择恢复目的地,默认为-请选择客户端。此处为必填,保存路径为根分区挂载目录, 本文中为/bmr,恢复选项保持默认即可。
恢复任务名不可自行输入;格式为“rec-[备份任务的名称]”;若有重复,则加数字后缀,递增加1,如:rec-task01 (1)、rec-task01 (2)、rec-task01 (3)。如果任务已经删除,则命名规则是rec-新建时间-[备份任务的名称]
单击详情,可以看到数据恢复任务详情、执行概要和执行输出。默认展示任务详情。
恢复成功后,挂载/sys /proc /dev 目录,参考命令如下:
mkdir /bmr/sys
mkdir /bmr/proc
mkdir /bmr/dev
mount --bind /sys /bmr/sys
mount --bind /proc /bmr/proc
mount --bind /dev /bmr/dev
添加EFI启动项,参考命令如下:
efibootmgr -c -w -L "rhel" -d /dev/sda -p 1 -l \\EFI\\centos\\shimx64.efi
其中rhel是启动项的名字,可任意设定,-d后面是启动分区所在的硬盘(默认/dev/sda),-p后面是分区位置(默认为1),-l是启动efi文件的路径,请根据具体环境进行更改。
重新生成grub配置文件,参考命令如下:
cd /
chroot /bmr
grub-mkconfig -o /boot/efi/EFI/redhat/grub.conf
或grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg(grub配置文件路径因环境而异,请根据具体环境进行更改,grub-mkconfig或grub2-mkconfig命令Live-CD中可能未安装,可手动修改grub配置文件,更新其中的UUID)
exit
修改grub配置文件,在启动项后添加selinux=0 参数
vi /bmr/boot/efi/EFI/redhat/grub.conf (grub2中改名为grub.cfg)
添加一个kenrnel的参数(selinux=0):kernel /boot/vmlinuz-2.6.18-1.2798.fc6 ro root=LABEL=ROOT_USB selinux=0。
修改启动卷挂载文件
使用下列命令查看磁盘分区的UUID
blkid
使用下面命令打开fstab表
vi /bmr/etc/fstab
更新各个分区对应的UUID
重启操作系统:reboot。
----结束
4.3.3 国产操作系统恢复
步骤 1 选择UOS 20安装盘进入UOS安装界面。
步骤 2 出现安装界面后,迅速按Tab 键,进入编辑模式。
步骤 3 删除 livecd-installer,然后按 Enter 键,即可进入livecd模式 。
注意:如果长时间在黑屏界面或者UOS图标界面就按Ctrl+Alt+F2,切换到文本模式。
步骤 4 设置root用户密码和添加用户。
步骤 5 编辑/etc/sudoers设置可以ssh登录的用户。
步骤 6 如果需要安装efibootmgr工具,可使用镜像自带的安装包进行安装。安装包路径:/run/live/medium/pool/main
步骤 7 BIOS启动的操作系统恢复步骤参考3.3.1章节,UEFI启动的操作系统恢复步骤参考3.3.2章节。
----结束
4.4 恢复完成后可能遇到的问题及修复方法
4.4.1 Linux系统异机恢复后,无法正常启动,提示fsck.ext4:Unable to reslove‘UUID=a8f6a2d8-0cd1-40e2-adf4-c9f6619b57cd’
【问题原因】测试场景:恢复后系统不能正常启动,提示fsck.ext4:Unable to reslove ‘UUID=a8f6a2d8-0cd1-40e2-adf4-c9f6619b57cd’。
【解决方法】
第一步:输入密码回车。
第二步:输入mount -n -o remount,rw /
第三步:修改/etc/fstab文件,将其中UUID= a8f6a2d8- 0cd1-40e2- adf4-c9f6619b57cd内容改为 /dev/sda* 的格式(一般是/boot分区的设备名,改为/dev/sda1即可)。保存重启。
4.4.2 操作系统恢复成功后,输入正确的用户名,密码,回车后又跳到登录窗口界面
【问题原因】selinux访问控制体系限制导致此现象。
【解决办法】系统恢复完成后的首次启动时,手动在启动条目结尾加上selinux=0,以selinux关闭状态启动系统。后续想开启selinux可随时开启,且不会再出现密码正确但循环登录的问题。
4.4.3 Red Hat 7的xfs文件系统修复
【问题原因】为了保持一致性,需要修复xfs文件系统。
【解决办法】
第一步:进入Rescue 救援模式
第二步:选择1)Continue,按 Enter 键,进入到shell,输入 chroot /mnt/sysimage。
第三步:使用 df –Th 来查看 /boot对应磁盘,若没有 /boot,则查看根目录对应磁盘,重装grub2,输入命令:grub2-install /dev/sda,并修复所有文件系统类型为xfs的分区,修复前需将分区卸载,输入命令:umount /dev/sda3(sd1),xfs_repair -d /dev/sda3(sd1),。
第四步:输入命令:exit,进入到shell,然后reboot重启系统。
4.4.4 操作系统恢复成功后,输入正确的用户名、密码,回车后报Module is unknown再次转到登录界面
【问题原因】Pam模块对用户登录的限制的配置文件位置不正确。
【解决办法】
第一步:进入单用户模式
启动界面下按e,
然后就会出现如下界面,在最后加上single,按ctrl+x启动,输入密码,进入单用户模式
进入单用户模式后,输入vi /etc/pam.d/login,在如下位置行注释,或者将其中的/lib改为/lib64,操作完成后重启即可。
session optional pam_ck_connector.so session required /lib/security/pam_limits.so
4.4.5 操作系统恢复成功后,ext4格式分区的文件系统以只读方式挂载
【问题原因】可能原因如下:
1. 磁盘文件系统损坏。
2. 若LiveCD的内核版本高于原操作系统的内核版本,在根据原机信息进行硬盘分区时,会使分区新增很多原操作系统不支持的新特性。
【解决办法】
解决办法一:使用命令修复分区:fsck.ext4 -y /dev/xxx (xxx为分区名)。
解决办法二:
1. 查看挂载时的日志,找出原机不支持的新特性,此处为METADATA_CSUM特性。
2. 登录操作系统,使用命令:tune2fs -l /dev/xxx (xxx为需要查看特性的分区名),查看文件系统特性。
3. 使用命令:tune2fs -O ^metadata_csum /dev/xxx (xxx为需要去除特性的分区名),去除该分区的METADATA_CSUM特性。
4. 使用命令:tune2fs -l /dev/xxx (xxx为需要查看特性的分区名)。
5. 确认特性成功去除是否成功,确认去除成功后,重新挂载该分区后重启机器。
4.4.6 Red Hat 8/CentOS 8系统恢复后启动直接进入grub命令行页面
【问题原因】可能是基于CentOS 7制作的LiveCD引导项版本太低。
【解决办法】
第一步:挂载原操作系统对应版本的系统镜像,进入Rescue 救援模式;
第二步:选择1)Continue,按 Enter 键,进入到shell,输入 chroot /mnt/sysimage。
第三步:重装grub2,输入命令:grub2-install /dev/sda。
第四步:输入命令:exit,进入到shell,然后reboot重启系统。
4.4.7 系统恢复后启动出现dracut-initqueue[xxx]: Warning: dracut-initqueue timeout
【问题原因】initramfs文件(SUSE系统该文件为initrd)存在问题。
【解决办法】
重做initramfs文件(SUSE系统该文件为initrd)。
第一步:挂载原操作系统对应版本的系统镜像,进入Rescue 救援模式;
第二步:选择1)Continue,按 Enter 键,进入到shell,输入 chroot /mnt/sysimage。
第三步:进入/boot目录下备份initramfs-xxx.img文件,运行命令mv initramfs-xxx.img initramfs-xxx.img.bak。
第四步:重建initramfs文件,运行命令 dracut -v initramfs-xxx.img xxx ,xxx为生产机使用的内核版本,xxx可用`uname –r`代替
第五步:reboot重启系统。
以上为CentOS及RHEL系统修复方式,SUSE系统修复方式类似,只是在第四步重建initrd文件时使用的命令为mkininrd。
5 数据清理
步骤 1 操作员或租户登录管理控制台。
步骤 2 单击【定时数据保护】-【数据清理】,在数据清理界面单击【新建】按钮,新建数据清理任务。
步骤 3 选择任务,单击【下一步】,请选择要清理的副本,默认清理全部副本。可以选择清理指定副本。数据状态显示占用,则该任务不能被清理。占用存在的情况:任务正在进行备份和恢复。
注意: |在清理全部时间点选项下,最新时间点可以被清除。选择清理部分时间点时,最新时间点一定不能删。
步骤 4 单击下一步,进入创建清理任务第三步页面,任务名不可自行输入; 格式为“del-[备份任务的名称]”;若有重复,则加数字后缀,递增加1,如:del-task01 (1)、del-task01 (2)、del-task01 (3)。如果任务已经删除,则命名规则是del-新建时间-[备份任务的名称],任务备注可以输入任意字符,但长度不能超过50字符。
步骤 5 单击完成,弹出数据清理信息确认界面,输入YES。此处区分大小写,必须填大写半角英文字母。
步骤 6 数据清理完成之后,分别检查OFS卷空间是否相应的发生变化。
注意:数据清理是在后台进行删除的,可能需要一段时间才能完全删除。
----结束
6 策略配置说明
1、总数据量较大的操作系统(大于500GB),设置计划任务进行备份时,尽量将计划的间隔时间设置的大一些,因为任务在备份时,再次发起任务是不进行备份的,如果间隔时间较大,可以保证任务的正常执行,也可以保证每次的备份任务都成功备份。
2、在设置计划策略时,请务必不要使用一个完全后续全是增量备份的方式:一个月必须要进行至少一次的完全备份,以保护数据安全。
3、在任务创建完毕后,可以再次编辑。
7 通道数配置说明
7.1 通道配置推荐
备份时的通道数要根据参数值设置在规定的范围内,备份时实际生效的通道数是受后台配置限制的,即如果界面设置的通道数超过了后台配置的最大通道数,则实际上任务执行时的通道数为后台配置的最大通道数;如果界面设置的通道数未超过后台配置的最大通道数,则实际生效的通道数与界面设置的通道数相等。参数配置位置是filebackup.config文件(内置客户端该文件在安装位置/HBRBackupServer/etc/ClientService/AggregateApp下,外置客户端该文件在安装位置/HBRBackupClient/etc/ClientService/AggregateApp目录下),配置方法是修改filebackup.config文件中注释“#Backup Memory Size Limit”下的参数,以设置备份内存参数值是2048MB为例:
DATACHANNEL_MEMORY_SIZE_LIMIT = 2048MB
其中,DATACHANNEL_MEMORY_SIZE_LIMIT是关于备份的参数。后面的数值是设置的内存大小,不配置默认是1024MB,配置时可带其它单位,如:2GB,以下以“MB”为单位进行描述,其它单位可自行换算。
设置备份的通道数与DATACHANNEL_MEMORY_SIZE_LIMIT 参数的规则如下:
1、 若未设置DATACHANNEL_MEMORY_SIZE_LIMIT参数,默认为空,配置为1024MB,最多可开启8个通道。
2、 若手动设置DATACHANNEL_MEMORY_SIZE_LIMIT 参数为XXX,则最多可开启XXX/128 个通道(取整),128单位是MB。例如设置为3072MB,则最多可开启通道数 = 3072/128 = 24。
3、 若手动设置DATACHANNEL_MEMORY_SIZE_LIMIT 参数小于128MB的时候,任务会失败,报错:创建1通道失败,转为0通道,原因:未配置缓存大小或者缓存配置太小。
4、若手动设置DATACHANNEL_MEMORY_SIZE_LIMIT 参数大于50GB,超过界面可设置的最大通道数50,以界面设置为准。
此外,若任务开启了重复数据删除功能,每个通道需要最多占用800MB内存。
客户端内存占用的明细如下表,请根据客户端生产机环境的剩余内存,结合上述规则,合理配置参数及设置通道数。
表7-1 客户端内存占用明细表
是否开启重删 |
进程本身(MB) |
读取线程数(MB) |
发送线程数(MB) |
重删占用(MB) |
合计(例:N=8) |
不开启 |
500+ |
256+ |
128*N+ |
0 |
=1780MB约等于1.74GB |
开启 |
500+ |
256+ |
128*N+ |
800*N |
=8180MB约等于7.98GB |
注意:按照上述规则计算出来的通道数值都是最大能保证任务正常运行的边界值。为了保证性能,建议每个通道按照200M的内存量设置。
8 附录
Backup_sysinfo.sh脚本内容如下:
#!/bin/bash
mkdir -p /media/sys_info/
if [ $? = 0 ]
then
echo "Create folder named sys_info in /media successfully, system related information will be saved in /media/sys_info"
else
echo "Failed to create folder named sys_info in /media"
fi
###########################################################################################################################################
parted -l > /media/sys_info/partitions_parted.txt
if [ $? = 0 ]
then
echo "Execute the parted -l command successfully,the partitions information has been saved to a file named partitions_parted.txt"
else
echo "Failed to execute parted -l command"
fi
###########################################################################################################################################
fdisk -l > /media/sys_info/partitions_fdisk.txt
if [ $? = 0 ]
then
echo "Execute the fdisk -l command successfully,the partitions information has been saved to a file named partitions_fdisk.txt"
else
echo "Failed to execute fdisk -l command"
fi
###########################################################################################################################################
pvdisplay > /media/sys_info/lvm_information.txt
lvdisplay >> /media/sys_info/lvm_information.txt
if [ $? = 0 ]
then
echo "The lvm information has been saved to a file named lvm_information.txt"
else
echo "Failed to obtain lvm information"
fi
###########################################################################################################################################
cat /etc/fstab > /media/sys_info/fstab.txt
if [ $? = 0 ]
then
echo "The information in /etc/fstab has been saved to a file named fstab.txt"
else
echo "Failed to obtain the information in /etc/fstab"
fi
###########################################################################################################################################
df -hT > /media/sys_info/mounted_info.txt
if [ $? = 0 ]
then
echo "The mounted information has been saved to a file named mounted_info.txt"
else
echo "Failed to obtain the mounted information"
fi
- 点赞
- 收藏
- 关注作者
评论(0)