运维前线:一线运维专家的运维方法、技巧与实践3.1 数据中心搬迁准备

简介:

第3章

数据中心搬迁中的x86自动化运维

作者简介

吴传玉,具有10年以上x86服务器平台系统管理经验,熟悉Windows及Redhat Linux系列运维,自2008年接触VMware虚拟化产品,获得RHCT、VMware VCP和HCNA认证。善于使用各类脚本工具编制日常运维的脚本。目前就职于某大型金融企业基础设施运维部门,负责容灾及研发测试环境x86整体运维工作。

本章主要介绍在大型数据中心搬迁的过程中,如何利用自行编制的各类脚本,低成本、高效率又准确地完成大量节点的逻辑搬迁工作。


3.1 数据中心搬迁准备


3.1.1 数据中心搬迁介绍

世间万物都存在着自身的生命周期,大到宇宙恒星的诞生与消亡,小到细胞从一次分裂完成开始到下一次分裂结束所经历的全过程,都离不开生命周期。

作为承载着公司核心竞争、运维能力的数据中心,也无法回避生命周期的问题。当数据中心的空间、电力等基础硬件无法支持公司业务需求的高速扩展时,公司的决策层势必会考虑采用更合理的方案,以满足日益增长的业务需求。第一种是在保持现有数据资源不变的情况下,建立第二个数据中心(非容灾中心);另一种是新建一个条件更优越的数据中心以替代旧的数据中心。

采用第一种方式,可以平滑地进行扩容,但从长远来看双倍的运维成本会加重公司的负担。如果采用第二种方式,虽然在搬迁过程中对基础层、应用层运维人员的要求相对较高,但从长远来看可为公司节省可观的运维开支,主要的成本仅在于一次性搬迁的方案所承担的开支。

大型金融企业中,基础运维人员相对于应用运维、开发人员、测试人员来说是属于更底层、更核心的角色。从整体运维的宏观结构来看,基础运维位于一个漏斗的底部出口位置,支撑着众多应用业务系统的基础需求。总结起来就是底层硬件架构多元化、需求种类多、运维量大,如果涉及搬迁则工作量更大更繁琐。

因我主要负责的是x86平台的非生产环境日常运维工作,且正参与数据中心的搬迁项目。故本章将从系统层基础运维人员的角度出发,介绍在大型数据中心搬迁的过程中,如何自行编制脚本,从而降低成本、高效准确地完成大量节点的逻辑搬迁工作。

首先介绍一下物理搬迁与逻辑搬迁的对比。

数据中心的搬迁一般分为两类:物理搬迁和逻辑搬迁。

如果物理设备及其上的逻辑节点数量少且搬迁距离较短,对可用性的要求不高,能够进行短期的停机,那么这种小型数据中心,一般较适用于同城数据中心的物理搬迁。

如果涉及的节点数量多且搬迁距离较长,对可用性要求较高,无法满足短期停机的要求,则需要考虑逻辑搬迁。

3.1.2 搬迁环境介绍

此次我所参与的搬迁存在诸多制约因素,如硬件种类繁多、应用关联性大、搬迁周期短、搬迁成本缩减等。基于以上现状分析,最终确定按应用环境,逐批次实施逻辑搬迁。

搬迁批次的定义如表3-1所示。

表3-1 搬迁批次定义

批次 搬迁环境 资源准备及搬迁思路

1 容灾环境 ①新购计算资源放置在目标数据中心,预先完成虚拟化环境的部署

②新购存储放置在源数据中心,通过存储复制技术完成灾备逻辑节点的复制。将完成复制的新存储物理搬迁至目标数据中心,释放之上的逻辑节点至新购计算资源,完成后续配置

注意:由于节点量大,通过广域网链路进行存储复制对带宽的要求相当高,故采用局域网内完成存储复制的工作

2

研发环境

①利用批次1中已完成逻辑迁移的存储资源,通过存储复制技术完成研发测试环境逻辑节点的复制。将批次1留下的计算资源与完成研发测试环境复制的存储资源物理搬迁至目标数据中心,释放之上的逻辑节点,完成后续配置

②对批次2中研发测试环境已完成逻辑搬迁的计算与存储资源进行物理搬迁,补充至目标数据中心

注意:循环利用上批次释放的物理资源进行后续批次搬迁,可以有效地控制硬件成本

 

3.1.3 搬迁前的准备工作

搬迁过程不仅仅是物理设备位置的改变,还需要对虚拟化层及各个节点内的参数进行调整。由于金融企业的环境特殊,公司安全部门禁止自行配置自动化运维管理工具,因此只能利用现有的技术做文章了。

在此次迁移过程中,我利用了平时运维常用的一些系统自带的脚本工具。

这些工具分为三类,其中有用于虚拟化层的工具vCLI、PowerCLI,有用于Linux环境的Bash,还有用于Windows环境的批处理、WMIC和注册表。

vCLI:vSphere CLI,命令行管理接口。

PowerCLI:VMware vSphere PowerCLI,是一款功能强大的命令行工具,可自动执行vSphere的各方面管理,包括主机、网络、存储、虚拟机、客户操作系统等。

Bash:Bourne-Again Shell,是一个为GNU计划编写的Unix Shell,是许多Linux发行版的默认Shell,Bash的命令语法是Bourne Shell命令语法的超集。数量庞大的Bourne Shell脚本大多不经修改即可在Bash中正常执行。

批处理:Batch,也称为批处理脚本。顾名思义,批处理就是对某些对象进行批量处理,通常被认为是一种简化的脚本语言,它一般应用于DOS和Windows系统中。批处理文件的扩展名为bat。

WMIC:WMIC扩展WMI(Windows Management Instrumentation,Windows管理工具),提供了对从命令行接口和批命令脚本执行系统管理的支持。

注册表:Registry,是Microsoft Windows中的一个重要的数据库,用于存储系统和应用程序的设置信息。

3.1.4 搬迁信息收集

俗话说“九层之台,起于垒土”,因此对于搬迁来讲,基础信息至关重要。我们需要准确掌握现有搬迁环境所涉及的所有物理与逻辑信息,才能更好地完成搬迁任务。因此搬迁的首要任务就是收集所有的资源信息。

1.?计算资源信息收集

作为目标端新设备的配置依据,应收集(包含但不限于)如下信息:型号、序列号、CPU、MEM、硬件管理IP、HBA WWN号。

编辑文件/tmp/getESXIinfo.sh,保存内容如下:

# 获取物理设备型号

xh=`esxcli hardware platform get | grep "Product Name" | awk -F: '{print $2}'`

# 获取物理设备序列号

SN=`esxcli hardware platform get | grep "Serial Number" | awk -F: '{print $2}'`

# 获取物理CPU个数

cpunum=`esxcli hardware cpu list | grep "CPU:" | wc -l`

# 获取物理内存容量(以GB计算)

mem=`esxcli hardware memory get | grep "Physical Memory" | awk -F" " '{print

$3}'`

TotalMem=` expr $mem / 1024 / 1024 / 1024 `

# 获取硬件管理IP

vmkip=` esxcli network ip interface ipv4 get | grep vmk0 | awk '{print $2}'`

#获取HBA WWN信息

wwn=`esxcli storage core adapter list | grep link-up | awk -F: '{print $2}'

| awk '{print $1}'`

wwn1=`echo $wwn | awk -F" " '{print $1}'`

wwn2=`echo $wwn | awk -F" " '{print $2}'`

echo $xh,$SN,$cpunum,$TotalMem,$vmkip,$wwn1,$wwn2 >/tmp/$vmkip.csv

可将以上脚本文件上传至所有ESXI系统,以备批量收集信息之用。图3-1为显示结果。

 

图3-1 显示结果

2.?存储资源信息收集

基于现有x86环境对ESXI主机通过FC和FCoE协议分配外挂存储,因此目标数据中心仍保持原有架构不变,数据传输采用基于同构存储的LUN COPY方式。

首先需要确定哪些LUN COPY盘在目标端会挂给哪些ESXI主机,需要收集的信息如下:

目标ESXI IP

逻辑卷名

存储naa号(WWN号)

因为同一组中的外挂存储盘是通过共享的方式同时映射给同一群集内的多台ESXI主机的,所以只需要对同一群集中的一台ESXI进行操作即可。

命令收集信息如下:

esxcli storage vmfs extent list | sort $1 | awk '{if($5==1){print $1 "," $4}}'(注:

1 表明是外挂盘,3 表明是内置盘)。

以下为同一群集内某台ESXI的外挂存储盘的逻辑卷名及存储号,如图3-2所示。

 

图3-2 ESXI的外挂存储盘逻辑卷名及存储号

3.虚拟网络信息收集

虚拟网络信息的收集,对于在新环境中每台ESXI需要分配多少个逻辑上联口、多少vSwitch和网段VLAN的定义至关重要。

因此我们编辑以下/tmp/getnetworkinfo.awk文件,用于收集现有ESXI的vSwitch Name、Uplinks(上联口)和Portgroups信息。

文件内容如下:

$1 ~ /Name:/ {print $1,$2}

$1 ~ /Uplinks:/ {print $0}

$1 ~/Portgroups:/ {print $0}

我们编辑并执行以下/tmp/getnetworkinfo.sh文件,该文件会将getnetworkinfo.awk文件作为执行的过滤参数。

文件内容如下:

esxcli network vswitch standard list | awk –f /tmp/getnetworkinfo.awk

接下来就可以根据整理的各类信息完成后续逻辑迁移所需要的自动配置了。


相关文章
|
1天前
|
机器学习/深度学习 存储 人工智能
智能化运维:未来数据中心的守护者
【6月更文挑战第13天】随着技术的飞速发展,传统的运维模式已难以满足现代数据中心的需求。本文将探讨智能化运维的概念、优势以及如何通过AI和机器学习技术提升数据中心的管理效率和安全性。
|
1天前
|
运维 Prometheus 监控
现代IT运维的自动化趋势与实践
在当今数字化转型的浪潮中,IT运维正经历着一场深刻的变革。本文探讨了现代IT运维中的自动化趋势,详细阐述了自动化技术在运维中的应用,通过具体案例展示了自动化工具如何提高效率、降低成本,并确保系统的稳定性和安全性。
|
2天前
|
运维 监控 Devops
DevOps文化下的自动化运维实践
本文将探讨在DevOps文化背景下,自动化运维的重要性及其实现方式。通过分析自动化运维的优势和挑战,文章提供了具体的实施策略和案例,旨在帮助读者理解如何在DevOps实践中融入自动化运维,以提高软件开发和部署的效率与质量。
|
3天前
|
机器学习/深度学习 运维 监控
智能化运维:未来数据中心的守护者
【6月更文挑战第11天】在数字化浪潮不断推进的今天,数据中心作为企业信息架构的核心,其稳定性和高效性对企业运营至关重要。本文将探讨智能化运维如何通过先进的技术手段,实现对数据中心的实时监控、自动化管理与故障预防,从而确保企业IT基础设施的高可用性和性能优化。
|
3天前
|
机器学习/深度学习 运维 监控
智能化运维:未来数据中心的守护神
【6月更文挑战第11天】随着技术的不断进步,智能化运维正在成为数据中心不可或缺的力量。本文将探讨智能化运维的重要性、实现方式以及它如何改变数据中心的运作模式。
|
6天前
|
机器学习/深度学习 运维 监控
智能化运维:未来数据中心的守护者
【6月更文挑战第8天】本文探讨了智能化运维在现代数据中心的重要性与应用,分析了其如何通过自动化和机器学习技术提升效率、降低成本并增强系统的稳定性。文章将详细介绍智能化运维的关键组件,包括自动化工具、监控软件以及故障预测机制,并通过案例分析展示这些技术在实际环境中的应用效果。
13 5
|
8天前
|
机器学习/深度学习 人工智能 运维
智能化运维:未来数据中心的守护者
【6月更文挑战第6天】本文探讨了智能化运维在数据中心管理中的关键作用,分析了其对提高效率、降低成本和增强系统可靠性的重要性。文章还介绍了智能化运维技术的最新发展,包括自动化工具、人工智能和机器学习的应用,并讨论了实施过程中的挑战与机遇。
|
16天前
|
运维 Kubernetes 持续交付
构建高效自动化运维体系:基于容器技术的持续集成与持续部署实践
【5月更文挑战第30天】随着云计算和微服务架构的兴起,传统的运维模式已难以满足快速迭代和高可用性的需求。本文探讨了如何利用容器技术构建一个高效、可靠的自动化运维体系,重点分析了Docker和Kubernetes在这一过程中的关键作用,并提出了一套基于这些技术的持续集成(CI)与持续部署(CD)解决方案。通过实际案例和操作步骤的详细阐述,文章为读者提供了一种实现自动化运维的有效途径,同时对未来运维技术的发展趋势进行了展望。
|
16天前
|
运维 Kubernetes 持续交付
构建高效自动化运维体系:基于Docker和Kubernetes的实践
【5月更文挑战第30天】 在当今的快速迭代和持续部署的软件发布环境中,自动化运维的重要性愈发凸显。本文旨在探讨如何利用容器化技术与微服务架构,特别是Docker和Kubernetes,来构建一个高效、可伸缩且自愈的自动化运维体系。通过详细分析容器化的优势及Kubernetes的集群管理机制,文章将提供一个清晰的指南,帮助读者理解并实现现代软件部署的最佳实践。
|
16天前
|
运维 监控 Devops
构建高效自动化运维系统:DevOps在企业级应用的实践
【5月更文挑战第30天】 随着信息技术的飞速发展,企业对软件交付速度和稳定性的要求越来越高。传统的运维模式已无法满足快速迭代和高效稳定的需求,因此,本文将探讨如何通过实施DevOps文化、流程和工具,构建一个高效的自动化运维系统。文章将详细描述DevOps的核心理念、关键技术组件以及如何在组织中落地实施策略,旨在帮助企业提升运维效率,加速产品的上市时间,同时保证系统的高可用性和稳定性。