一些storage 的概念以及与VMware的关系

本文探讨了ALUA技术如何使中端阵列表现得更像企业级活动-活动阵列,并详细讨论了路径选择策略,如固定路径选择(Fixed ALUA)及循环路径选择(Round Robin)等,在不同场景下的应用及优缺点。

Active-Passive/Active

The default owner refers to which storage processor owns a LUN and is responsible for sending IOs to the backend disk.  This is a critical differentiator to mention behind an enterprise and mid-range array.  Simply put on an enterprise active-active array any storage processor can send IO to any backend disk.  Whereas under a mid-range active-passive array only one SP can send IO to a disk at a time.  These SPs can however run active-passive passive-active for different LUNs which allows you to balance IO out across the different SPs.

In comes a bit of complication however, due to something called ALUA, there is now the ability for a mid-range array to work similar to an enterprise active-active array.  Note, ALUA is enabled by default when registering ESX hosts to vSphere 4.1 and EMC CX/NS flare 29+.  It allows ESX/i to send IO down any path to a storage processor and that processor will accept the IO either send it to backend disk directly or internally redirect the IO to its partner SP that then sends the IO to backend disk.  Without ALUA this situation where IO was being received down different paths would cause a ping-pong effect where a LUN would change owners constantly in order to service IO (very bad).  With ALUA, this does not happen.  However what will happen is after a certain threshold the SP will recognize that it would be more efficient to have its partner SP own the LUN and thus the backend disk for the LUN and will pass its “current owner” status to its partner.

 

So in summary ALUA enables a mid-range array to behave more like an active-active array from ESX/i’s perspective, but let’s look at some more details in the stack..

 

Pathing choices

The goal as I see it for running an efficient storage stack via block protocols is to maximize IO capabilities and minimize management overhead and risk.  So in simple terms, EMC has software called PowerPath/VE that in my opinion allows alleviates most of what I will describe next.

 

Trespasses

We’ve described a few things, and the most critical thing that we are going to move forward with is around the lun owernship; this being current or default.  Current referring to what SP can send IO to a LUN and a LUNs backend disk and default referring to what SP is set to be the owner on array bootup or a non-trespassed situation.  A LUN being in a trespass state simply means the LUN is currently owned by the SP that isn’t it's default owner.

 

The question at this point is, why would a LUN enter a trespass state?  There is a list of reasons why this may happen, let’s start from a general point and move into more cluster and VMware specific reasons.  Trespasses can happen manually, by the array, or caused due to ESX/i operations.  From a manual perspective, at any point you can force a trespass (move to opposite SP) from the GUI/CLI of the storage array.  What’s important to get here is that even if I manually make trespassing decisions they can be overridden by the array or the hypervisor right away.  So from a manual perspective, I force trespasses from the GUI/CLI.  I may decide to do this to untrespass a LUN, or if I know I will be removing paths and want to force IO down a certain SP.  On the more automatic side, a LUN can be trespassed by an SP for many conditions.  An NDU “non-disruptive upgrade” to an array will cause LUNs to be trespassed from one SP to the other to ensure data access LUN access during the whole upgrade.  After the upgrade, the LUNs may exist solely on one SP and those LUNs with current owner not equal to default owner are considered  trespassed.  There are many other reasons from an array perspective. .

 

Moving more into the VMware world, we are talking about a cluster of hosts, each making their own decision as to what path should be used.  These hosts are using pre-determined decision trees to set these paths.  However, the decision trees are all happening among the hosts at different times.  For example, when using FIXED ALUA pathing and an ESX/i server boots up it will assign the active path to be based on what the current owner of a LUN is.  There may be a trespass of this LUN for some reason after this, and another ESX/i host then applies the same decision tree.  It then decides its active path will go down the new current owner SP.  At this point you have two ESX/i servers that made pathing choices down different SPs.  Problem here?  Not a huge one since ALUA allows for both SPs to receive IOs.  Problem comes in where the SPs may in the backend trespass the LUN whenever thresholds are met and it decides it’s more efficient to service the LUN from partner SP and you predetermined balance of LUNs per SP is thrown off.  As well, there is extra overhead in sending IO through more channels, ie. the internal link between SP is an extra hop (more CPU cycles, less use of cache).

 

Other situations that you may run in to where this would happen..  An array just did an NDU, all LUNs are currently owned (not default) by the secondary SP (it is first to upgrade, so will own LUNs at end of NDU).  If you then bootup your ESX/i hosts they will set active paths to one SP.  So some of your LUNs will be trespassed and stuck as trespassed if pathing is FIXED.  One more example, and this one may actually be the most relevant..  If there is one host in the cluster of any size that does not have established pathing to an SP, all IO will attempt to traverse the path it has for that LUN.  Sounds bad?  It is, in reality all it takes is one misconfigured host to throw a cluster out of balance.  This is why we suggest reviewing best practices and ensure you have 4 paths to a mid-range array, 2 to each SP.  So there we have it, a few situations where due to systems making pathing decisions independently of some authoritative source, causes inconsistent pathing to mid-range arrays.

 

Ok, so I have a lot of trespassing going on, how do I fix it?

 

It depends =).. The larger the ESX/i environment, the more challenging this can be to fix.  Meaning, if I have a cluster of four hosts I can pretty easily go through and adjust active paths to match via the vCenter GUI.  However, the larger the cluster the more difficult it is.  For example, 4 hosts times 4 datastores yields 16 checks.  Scale that up to 30 hosts and 30 datastores, that’s 900 checks.. Ouch!

 

The Easy Solution

PowerPath/VE is the slam dunk for this.  If we are hard set on using block protocols for datastore access and we don’t want to think about the management of the paths then PP/VE is your software.  We describe it as path management software that adaptively manages paths.  Simply put, VMware’s NMP (native multipathing) does not make any decisions based on authoritative information.  I believe it’s critical in larger environments to do this.  PPVE uses array side information to make pathing decisions dynamically for you.  So in essence, paths that are uncongested and available are used at all times and are adapted to as things change on the fan-in/target array port.  In my opinion, this is far and away the most comprehensive way to ensure optimal block access to a storage array for VMware.

 

The reboot it method

Since the decision tree happens when a ESX/i server first boots an option to fix your active pathing without using a GUI/CLI would be to just place the host into maintenance mode and reboot.  Not a bad method since there is no effect to VMs due to ESX/i migrating VMs online to another host due to entering maintenance mode.  When rebooting however, you need to ensure that LUN is owned by the default owner so the pathing decision can be correct.  And to mention to before booting any ESX/i server up, make sure your LUNs are currently owned by the right SP!  A manual trespass of a LUN or all LUNs to their default owner SP can be done via CLI/GUI.

 

The scripting method

Not for the faint of heart, and I really can’t support it.  See the following link for a script I wrote to choose active paths across an ESX/i cluster based on authoritative information from the array (default owner) https://community.emc.com/thread/113885?tstart=0.

 

Round robin

It is possible to fix the trespassing conditions by putting a host in maintenance mode, switching to round robin pathing, and then trespassing luns to appropriate owners.  When round robin uses its decision tree for pathing choices it chooses the current owner as its active paths.  So it is susceptible to not being balanced similar to FIXED.  It however acts a bit differently under certain conditions.  Under FIXED, there is no time the active path will change.  Under RR the active paths will change when a LUN is trespassed via user intervention.  So if you’re digging into ALUA and RR, the thought may be that if I trespass a LUN from the array, the ESX/i server will still send traffic down what is set as ACTIVE paths.  This is not the case.  ALUA will keep active paths static only during array initiated trespass conditions.  So all of the manual/scripting work to balance paths can be achieved by just enabling RR and ensuring there aren’t trespasses on the array.  So all in all, a pretty easy solution if you’re willing to go to RR!

 

So what’s EMC’s official pathing stance for the mid-range?

The discussion above was mostly focused discussing the storage stack and aimed at FIXED ALUA and PPVE around a problem and solution.  It is important to note that FIXED ALUA is currently what will be chosen automatically by ESX/i 4/4.1 when a hypervisor first boots for EMC CX/NS arrays.  EMC’s best practices are to use ROUND ROBIN (only caveat is for arrays running multiple iSCSI initiators and pre flare 30 code).  RR is a common best practice among array vendors, and EMC is no different.  We do however highly suggest using PPVE instead of round robin to attain adaptive load balancing.

 

 

原文地址:

http://blog.sina.com.cn/s/blog_86ca10130100x4s7.html

内容概要:本文介绍了一种基于多目标粒子群算法(MOPSO)的微电网优化调度模型,综合考虑风能、光伏、储能系统、柴油发电机、燃气轮机以及主电网之间的能量交互等多种分布式能源的协同运行。通过构建以运行成本最小化、碳排放最低化和系统可靠性最优化为目标的多目标优化模型,利用Matlab平台实现MOPSO算法求解,完成对微电网在不同运行场景下的能量管理调度方案优化。该模型能够有效平衡经济性环保性之间的关系,适用于含多类型分布式电源的复杂微电网系统,具有较强的工程应用价值和科研参考意义; 适合人群:具备一定电力系统基础知识和Matlab编程能力的研究生、科研人员及工程技术人员,尤其适合从事微电网、智能电网、综合能源系统、可再生能源集成优化调度等领域研究的专业人士; 使用场景及目标:①用于多能源耦合微电网系统的协同优化调度研究;②支持多目标智能优化算法在能源系统中的建模求解实践,帮助用户掌握MOPSO在实际工程问题中的应用方法;③为学术论文复现、毕业设计、科研项目开发提供完整的代码实例技术支撑; 阅读建议:建议读者结合Matlab代码理论文档,深入理解目标函数构建、约束条件处理及Pareto最优解集生成机制,重点关注算法参数设置、多目标权衡分析结果可视化,并可通过调整能源配置或引入新约束进行二次开发创新研究。
内容概要:本文系统研究了基于模型预测控制(MPC)的滚动优化方法在微电网多时间尺度能量管理调度中的应用。通过构建包含风能、光伏、储能等多种分布式能源的微电网综合系统模型,充分利用MPC的前瞻性预测滚动优化机制,实现对系统内部能量流的精细化、动态化调控。研究重点解决了新能源出力强不确定性带来的调度挑战,兼顾系统运行的经济性、稳定性可靠性,在日前、日内及实时等多个时间尺度上实现了优化决策的协同。文中配套提供了完整的Python代码实现,涵盖模型构建、约束处理、目标函数设定求解全过程,具有较强的可复现性工程参考价值。; 适合人群:具备一定电力系统、优化理论基础和Python编程能力的研究生、科研人员及从事微电网、综合能源系统、能源互联网等领域研究的工程技术人员。; 使用场景及目标:①深入理解MPC在复杂能源系统调度中的核心原理技术优势;②学习并复现多时间尺度滚动优化的完整建模求解流程;③为微电网能量管理系统(EMS)的开发、相关学术研究或工程项目提供直接的算法实现参考技术支撑; 阅读建议:建议读者结合所提供的Python代码进行逐行研读调试,亲自动手修改系统参数、负荷曲线或新能源出力数据,以深刻体会MPC算法的动态响应特性优化效果,进而在此基础上开展二次开发创新性研究。
智能安防是依托人工智能、大数据、物联网等前沿技术构建的新一代安全防护体系,彻底打破了传统安防“被动监控、事后追溯”的局限。它不再是孤立的摄像头、门禁和报警器的简单组合,而是通过全域感知设备的互联互通,实现对人员、车辆、环境等多维度数据的实时采集智能分析。从社区出入口的人脸无感通行、异常行为识别,到道路上的违章智能抓拍、重点区域的入侵预警,再到企业园区的消防隐患预判、设备故障自动告警,智能安防能在毫秒级完成风险研判,把安全防线从“事后处置”前移到“事前预防”。如今,它早已渗透到城市治理、居家生活、商业运营等各类场景,成为守护公共安全私人空间的核心技术支撑。 不同于传统安防依赖人工盯守的高成本模式,智能安防凭借算法的持续迭代,不断拓展安全防护的边界。它可以通过对历史数据的深度挖掘,提前识别人群聚集、消防通道占用等潜在风险,联动公安、物业、应急等多部门快速响应,大幅降低安全事件的发生概率和处置时长。在老旧小区改造中,智能安防设备的加装解决了过去流动人口管理难、高空抛物溯源难等长期痛点;在家庭场景里,智能门锁、可视门铃、燃气泄漏报警器等设备组成的居家安防网络,让用户通过手机就能随时掌握家中安全状态。随着数字城市建设的推进,智能安防正从单一的安全工具,进化为构建智慧城市安全底座的关键组成部分,为人们的日常工作生活筑牢更高效、更精准的防护屏障。
内容概要:本文针对“考虑算力负荷时空迁移特性的多微电网-共享储能协同优化调度”开展深入研究,提出了一种融合算力负荷动态迁移特征的多微电网系统协同优化模型,并基于Matlab完成仿真代码实现。研究核心在于揭示算力负荷(如数据中心、边缘计算等)电力负荷之间的耦合关系,通过引入共享储能机制实现多微电网间的能量互补灵活调度,从而提升系统在复杂时空负荷环境下的运行经济性、稳定性能源利用效率。文中系统阐述了模型架构设计、多目标优化函数构建(涵盖成本最小化、可再生能源消纳最大化等)、关键约束条件(如功率平衡、储能容量、网络潮流等)以及高效求解算法的应用,具备较强的理论深度工程实践价值。; 适合人群:具备电力系统、能源互联网、优化理论或智能调度相关基础知识,从事微电网运行、共享储能配置、算力能源协同管理等领域研究的研究生、科研人员及工程技术开发者。; 使用场景及目标:①应用于含有动态算力负荷的多微电网系统协同调度优化决策;②为共享储能资源的规划配置、运行策略制定及商业模式设计提供量化分析工具;③推动“东数西算”背景下能源算力基础设施的深度融合协同发展。; 阅读建议:建议结合Matlab代码实现部分进行动手仿真实验,重点关注算力负荷时空特性建模方法优化模型求解过程的实现细节,推荐使用实际历史数据或典型场景进行验证,并尝试拓展至更复杂的网络结构或多目标权衡分析。
内容概要:本文围绕考虑能量-物流耦合的港口综合能源系统优化调度问题展开研究,构建了涵盖电能、氢能、热能等多种能源形式港口货物装卸、运输等物流活动协同优化的数学模型。研究采用Matlab进行代码实现,充分考虑风能等可再生能源出力的不确定性及时序性作业特征,提出一种能够有效降低系统运行成本、提升能源综合利用效率并减少碳排放的优化调度策略。文中系统阐述了目标函数设计、多类型约束建模及高效求解算法的选择过程,并通过具体仿真案例验证了所提模型方法在调度效果和鲁棒性方面的优越性。; 适合人群:具备电力系统、综合能源系统或运筹优化等相关背景,熟悉Matlab编程,从事能源系统规划、运行优化等领域科研工程应用的人员,尤其适合研究生、高校研究人员及能源行业工程师。; 使用场景及目标:①用于港口综合能源系统的规划设计运行管理决策,提升多能协同效率;②为含多能互补物流耦合特性的复杂能源系统提供建模思路求解技术支持;③支撑科研论文复现、学术研究深化及实际工程项目的方案论证优化。; 阅读建议:建议读者结合Matlab代码理论内容同步学习,重点理解能量-物流耦合机制的数学表征、多目标优化的处理技巧以及约束条件的精细化建模方法,宜在掌握基本优化理论的基础上开展仿真调试结果分析。
内容概要:本文系统介绍了名为《【复现】考虑数据中心共享储能计算负荷时空迁移特性的虚拟电厂优化运行方法(Matlab代码实现)》的技术资源,聚焦于融合数据中心算力负荷调度电力系统储能协同管理的虚拟电厂优化运行模型。该方法充分考虑了计算负荷在时间和空间上的可迁移特性,结合共享储能机制,构建了提升能源利用效率系统经济性的综合优化框架,适用于“算力-电力”深度耦合的新型电力系统研究。文中不仅提供了完整的Matlab仿真代码、数学模型及配套论文资料,还强调科研需具备缜密逻辑、善用资源,并倡导在扎实基础上进行创新思考,以实现科研突破。; 适合人群:具备电力系统、能源互联网、优化调度等相关领域基础知识的研究生、科研人员及工程技术人员,特别适合从事虚拟电厂、数据中心能源管理、共享储能、综合能源系统等方向研究的专业人士。; 使用场景及目标:①用于复现和深入理解计及算力负荷时空迁移特性的虚拟电厂优化模型;②支撑高水平科研论文撰写、科研课题攻关或学位论文的仿真验证工作;③掌握利用Matlab进行复杂能源系统建模、优化求解仿真实践的关键技能。; 阅读建议:建议读者严格按照资料目录顺序系统学习,同步下载并运行网盘中的完整资源(代码、模型、论文),重点关注其优化建模的理论推导代码实现细节,坚持理论分析仿真实验相结合,以深刻把握“算力-电力”协同优化的核心机制技术精髓。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值