精华内容
下载资源
问答
  • 数据中心SAN存储架构设计的八大原则  SAN是当今全球各地每一家大型企业机构最为关键的网络资源。没有SAN就没有存储访问和应用支持,业务功能也不能完成。没有业务功能就没有生产力;没有生产力企业也就无法生存。...

    数据中心SAN存储架构设计的八大原则

      SAN是当今全球各地每一家大型企业机构最为关键的网络资源。没有SAN就没有存储访问和应用支持,业务功能也不能完成。没有业务功能就没有生产力;没有生产力企业也就无法生存。设计SAN来满足关键业务需求正因此成为保持企业本身生存能力的一个战略性组件。

      数据中心SAN设计大部分常见参数包括:

      可用性 —存储数据必须始终可被应用所访问到

      性能 —可接受的、可预测的、一致的I/O响应时间

      效率 —不浪费任何资源(端口、带宽、存储、电源)

      灵活性 —优化数据路径以有效利用容量

      可扩展性 —随时按需增加连接和容量

      可服务性 —加快故障排除和问题解决

      可靠性 —在SAN中设计的冗余且可靠的操作

      可管理性 —优化传输和存储管理

      成本 —设计费用控制在预算内,掌握实时运营支出

      实际上,这些基本参数的适应范围可能依据客户的不同、SAN部署的不同而有所不同。一款经深思熟虑的SAN设计可综合考虑到所有这些因素,遵循博科SAN设计原则将有助于协调不同需求之间的矛盾。此外,即便是复杂的大型数据中心SAN也可从一个崭新角度中获得收益。只有从这些基本需求着手来分析现有基础设施,这样才能找出其中能采用新SAN设计加以解决的差距及弱点,而在分析的同时仍可重新规划现有的基础设施组件。

      原则1: 最小化所管理Fabric架构的数量

      这其中包括了物理Fabric架构和虚拟Fabric架构,因为每个虚拟Fabric架构代表着一个管理责任。Fabric架构越少就越容易管理,这道理很简单。然而,在某些情况下,功能、安全及物理限制等问题往往要求有额外的Fabric架构。只有确定SAN管理单元并经由SAN路由提供资源共享,这样或许能在避免资源隔离的同时减少所需Fabric架构数量。

      原则2: 最小化每个Fabric架构中交换机数

      使用如导向器等较大型交换元件可简化管理,将可能的Fabric架构中断情况降至最少。在单个Fabric架构中一般拥有8到12个网域,Fabric架构事件期间要求交换机间合作要很少,这样持续存储事务才更为可靠。例如:Fabric OS中博科接入网关(AG)功能就可显著减少需管理域ID的数量、优化到SAN的服务器连接。

      原则3: 限制Fabric架构规模

      Fabric架构规模应加以限制,节点连接数量约在1,000到2,000个之间。尽管一些生产数据中心SAN能支持4,000或更多可用端口,但这些是例外情况,并不是常规情况。限制节点连接数有助于将每个Fabric架构的风险度降至最低。此外,若节点多于2,000个将使得分区、分区集及端口别名的管理工作复杂化,远远超过管理软件工具所能承受的实际上限。如果需要额外的端口,那么就要部署额外的SAN管理单元并通过SAN路由来链接SAN到SAN的资源。

      原则4: 使用RAS水平高的交换机

      即便拥有冗余Fabric架构用于故障切换,也不会有人希望任一条数据路径出现问题。高可靠性、可用性和可服务性(RAS)元件是高可用存储环境的基石。共享存储端口应始终连接到RAS性能高的交换机及导向器。博科公司在交换机和导向器中设计加入了高RAS,因此即便是核心/边缘SAN设计也能享受到最高RAS体验。

      原则5: 避免过载比,以免造成拥塞或性能降低

      当工作负载的情况良好时从服务器连接到存储端口的过载比是可以接受的,但任何过载比都应适当地加以设计。过载比比率在通过Fabric架构的所有相关数据路径时都应是一致的。例如:如果存储端口过载比的比率是7:1,那么主机和存储间过载比比率就不能高于这个数字。只有这样,交换机间以及交换机和导向器间所合并ISL才能容纳服务器集所提供的总工作负载。博科公司独家提供的ISL干线合并(ISL Trunking)软件使得多条ISL能充当为拥有高性能聚合吞吐量的单条链路使用,还可进一步使用干线集(trunk sets)来容纳高容量交换机到交换机流量。此外,由于不同应用提供的是不同工作负载,因此主机的连接类型应分为多种,应将交换比率较低的高带宽服务器与交换比率较高的中低带宽服务器分离开来。

      原则6: 大型环境采用核心-边缘模式

      核心-边缘设计模式可支持更大型多Fabric架构的创建,还可与SAN路由技术结合使用来提供最高达4,000个的资源共享及双层设备连接;核心-边缘SAN设计可为所有存储端口提供一个可靠定位,防止高带宽服务器浪费ISL带宽。与网状设计相比较,核心-边缘战略有助于简化日常管理任务,便于解决所有Fabric架构问题。

      原则7: 针对存储流量进行设计

      在SAN环境中,事务响应时间是以几毫秒进行衡量的,而不象在LAN基础设施中那样普遍是几百毫秒来计算。由于SAN流量不能容忍有任何不可预知的交付或停机情况发生,因此牢靠的SAN设计必须提供可靠且一致的I/O响应。在数据路径中交换元件至少应比最快磁盘响应时间快上一个数量级。此外,通过Fabric架构的延迟性会随着发起设备和目标设备间节点跳数(hop)以及ISL添加而加剧。要防止Fabric架构总延迟性与磁盘访问时间处于同一个级别,这就要求采用帧的切入路由选择(cut-through routing)技术来进行高性能交换。博科公司交换机和导向器经过优化,可将交换延迟性降至最低,在端口组内提供本地化交换来加快交付。对于关键应用来说,通过联合定位服务器和存储可实现到交换机、刀片及端口组流量的本地化,从而在最大提升了吞吐量的同时仍提供对整个Fabric架构中其它资源的访问。

      原则8: 保持简单

      通过对SAN管理单元进行设计,管理工作简化、出错的机率减少,可用性也由此得到提高。经仔细构思和实施的SAN设计可便于随时增加新的服务器和存储目标,同时用户不必头疼于复杂的Fabric架构路径。围绕多个SAN管理单元和SAN路由而设计的大型数据中心存储网络更易于扩展,使得管理员通过可靠且一致的SAN设计战略即能满足其企业不断增长的业务需求

    转载于:https://blog.51cto.com/yaojingkai/740134

    展开全文
  • SAN是当今全球各地每一家大型企业机构最为关键网络资源。没有SAN就没有存储访问和... 数据中心SAN设计大部分常见参数包括: 可用性 — 存储数据必须始终可被应用所访问到 性能 — 可接受、可预测、一致...
    SAN是当今全球各地每一家大型企业机构最为关键的网络资源。没有SAN就没有存储访问和应用支持,业务功能也不能完成。没有业务功能就没有生产力;没有 生产力企业也就无法生存。设计SAN来满足关键业务需求正因此成为保持企业本身生存能力的一个战略性组件。  数据中心SAN设计大部分常见参数包括:
      可用性 — 存储数据必须始终可被应用所访问到
      性能 — 可接受的、可预测的、一致的I/O响应时间
      效率 — 不浪费任何资源(端口、带宽、存储、电源)
      灵活性 — 优化数据路径以有效利用容量
      可扩展性 — 随时按需增加连接和容量
      可服务性 — 加快故障排除和问题解决
      可靠性 — 在SAN中设计的冗余且可靠的操作
      可管理性 — 优化传输和存储管理
      成本 — 设计费用控制在预算内,掌握实时运营支出
       实际上,这些基本参数的适应范围可能依据客户的不同、SAN部署的不同而有所不同。一款经深思熟虑的SAN设计可综合考虑到所有这些因素,遵循博科 SAN设计原则将有助于协调不同需求之间的矛盾。此外,即便是复杂的大型数据中心SAN也可从一个崭新角度中获得收益。只有从这些基本需求着手来分析现有 基础设施,这样才能找出其中能采用新SAN设计加以解决的差距及弱点,而在分析的同时仍可重新规划现有的基础设施组件。
      原则1: 最小化所管理Fabric架构的数量
       这其中包括了物理Fabric架构和虚拟Fabric架构,因为每个虚拟Fabric架构代表着一个管理责任。Fabric架构越少就越容易管理,这道 理很简单。然而,在某些情况下,功能、安全及物理限制等问题往往要求有额外的Fabric架构。只有确定SAN管理单元并经由SAN路由提供资源共享,这 样或许能在避免资源隔离的同时减少所需Fabric架构数量。
      原则2: 最小化每个Fabric架构中交换机数
      使用如导向器等较 大型交换元件可简化管理,将可能的Fabric架构中断情况降至最少。在单个Fabric架构中一般拥有8到12个网域,Fabric架构事件期间要求交 换机间合作要很少,这样持续存储事务才更为可靠。例如:Fabric OS中博科接入网关(AG)功能就可显著减少需管理域ID的数量、优化到SAN的服务器连接。
      原则3: 限制Fabric架构规模
       Fabric架构规模应加以限制,节点连接数量约在1,000到2,000个之间。尽管一些生产数据中心SAN能支持4,000或更多可用端口,但这些 是例外情况,并不是常规情况。限制节点连接数有助于将每个Fabric架构的风险度降至最低。此外,若节点多于2,000个将使得分区、分区集及端口别名 的管理工作复杂化,远远超过管理软件工具所能承受的实际上限。如果需要额外的端口,那么就要部署额外的SAN管理单元并通过SAN路由来链接SAN到 SAN的资源。
      原则4: 使用RAS水平高的交换机
      即便拥有冗余Fabric架构用于故障切换,也不会有人希望任一条数据路径出 现问题。高可靠性、可用性和可服务性(RAS)元件是高可用存储环境的基石。共享存储端口应始终连接到RAS性能高的交换机及导向器。博科公司在交换机和 导向器中设计加入了高RAS,因此即便是核心/边缘SAN设计也能享受到最高RAS体验。
      原则5: 避免过载比,以免造成拥塞或性能降低
       当工作负载的情况良好时从服务器连接到存储端口的过载比是可以接受的,但任何过载比都应适当地加以设计。过载比比率在通过Fabric架构的所有相关数 据路径时都应是一致的。例如:如果存储端口过载比的比率是7:1,那么主机和存储间过载比比率就不能高于这个数字。只有这样,交换机间以及交换机和导向器 间所合并ISL才能容纳服务器集所提供的总工作负载。博科公司独家提供的ISL干线合并(ISL Trunking)软件使得多条ISL能充当为拥有高性能聚合吞吐量的单条链路使用,还可进一步使用干线集(trunk sets)来容纳高容量交换机到交换机流量。此外,由于不同应用提供的是不同工作负载,因此主机的连接类型应分为多种,应将交换比率较低的高带宽服务器与 交换比率较高的中低带宽服务器分离开来。
      原则6: 大型环境采用核心-边缘模式
      核心-边缘设计模式可支持更大型多Fabric架 构的创建,还可与SAN路由技术结合使用来提供最高达4,000个的资源共享及双层设备连接;核心-边缘SAN设计可为所有存储端口提供一个可靠定位,防 止高带宽服务器浪费ISL带宽。与网状设计相比较,核心-边缘战略有助于简化日常管理任务,便于解决所有Fabric架构问题。
      原则7: 针对存储流量进行设计
       在SAN环境中,事务响应时间是以几毫秒进行衡量的,而不象在LAN基础设施中那样普遍是几百毫秒来计算。由于SAN流量不能容忍有任何不可预知的交付 或停机情况发生,因此牢靠的SAN设计必须提供可靠且一致的I/O响应。在数据路径中交换元件至少应比最快磁盘响应时间快上一个数量级。此外,通过 Fabric架构的延迟性会随着发起设备和目标设备间节点跳数(hop)以及ISL添加而加剧。要防止Fabric架构总延迟性与磁盘访问时间处于同一个 级别,这就要求采用帧的切入路由选择(cut-through routing)技术来进行高性能交换。博科公司交换机和导向器经过优化,可将交换延迟性降至最低,在端口组内提供本地化交换来加快交付。对于关键应用来 说,通过联合定位服务器和存储可实现到交换机、刀片及端口组流量的本地化,从而在最大提升了吞吐量的同时仍提供对整个Fabric架构中其它资源的访问。
      原则8: 保持简单
       通过对SAN管理单元进行设计,管理工作简化、出错的机率减少,可用性也由此得到提高。经仔细构思和实施的SAN设计可便于随时增加新的服务器和存储目 标,同时用户不必头疼于复杂的Fabric架构路径。围绕多个SAN管理单元和SAN路由而设计的大型数据中心存储网络更易于扩展,使得管理员通过可靠且 一致的SAN设计战略即能满足其企业不断增长的业务需求。

    转载于:https://blog.51cto.com/amwon/497312

    展开全文
  • 跟着作者65节课彻底搞懂Java并发原理专栏,一...出版书籍:《Tomcat内核设计剖析》、《图解数据结构与算法》、《图解Java并发原理》、《人工智能原理科普》。 单线程原则 单线程原则是最简单规则,就是说在单个.

    跟着作者的65节课彻底搞懂Java并发原理专栏,一步步彻底搞懂Java并发原理。

    作者简介:笔名seaboat,擅长工程算法、人工智能算法、自然语言处理、架构、分布式、高并发、大数据和搜索引擎等方面的技术,大多数编程语言都会使用,但更擅长Java、Python和C++。平时喜欢看书写作、运动、画画。崇尚技术自由,崇尚思想自由。出版书籍:《Tomcat内核设计剖析》、《图解数据结构与算法》、《图解Java并发原理》、《人工智能原理科普》。

    单线程原则

    单线程原则是最简单的规则,就是说在单个线程内前面的代码happens-before于后面的代码。比如下面的例子,在主线程内step-1比step-2输出更早,四个输出操作按照代码顺序执行。

    单线程规则

    锁原则

    锁原则是指某个锁解锁前的操作happens-before于接下去获取该锁后的其它操作。以synchronized的锁为例,我们都知道进入和离开synchronized大括号就是加锁和解锁操作,那么假如线程一先获取锁则解锁前的所有操作都happens-before于线程二获取该锁后的其它操作。反之亦成立。

    该例子可能输出以下两种情况,因为happens-before原则保证了可见性。第一种情况是线程一解锁前的操作对线程二获取锁后的操作可见,所以线程一的x=3而线程二的x=7。第二种情况是线程二解锁前的操作对线程一获取锁后的操作可见,所以线程二的x=4而线程一的x=7。

    thread1 x = 3
    thread2 x = 7
    
    thread2 x = 4
    thread1 x = 7
    

    锁原则

    volatile原则

    volatile原则是指对某个volatile变量的写操作和写操作之前的所有操作都happens-before于对这个volatile变量的读操作和读操作之后的所有操作。比如下面例子中,x是volatile变量而y为非volatile变量。线程一对y和x进行写操作,那么线程二在对x和y读操作时就能看到x和y的最新值,即输出“thread2 x,y = 4,2”。这里x写操作前的所有操作都对x读操作后的所有操作可见。

    volatile原则

    线程start原则

    线程start原则是指某个线程在调用另外一个线程的start方法前的所有操作都happens-before于刚被启动的线程中的所有操作。看下面的例子,主线程中先执行x=3,然后创建thread1并调用它的start方法。运行后输出为“thread1 x = 6”,调用start方法前的x=3对于线程一中是可见的。

    线程start原则

    线程join原则

    线程join原则是指如果线程A调用了线程B的join方法,那么线程B的所有动作都happens-before于线程A中join方法后面的所有动作。如下例子中,主线程启动线程一后并调用join方法等待线程一执行完才返回,那么线程一中的x=x+2操作对主线程中join后面可见,所以输出结果为“main-thread x = 2”。

    线程join原则

    线程interrupt原则

    线程interrupt原则是指线程A调用了线程B的interrupt方法,那么线程A在调用interrupt方法之前的所有动作都happens-before于线程B中被interrupt后的所有动作。如下程序中,线程一启动后开始睡眠,主线程执行x=x+2后睡眠两秒,然后调用线程一的interrupt方法,线程一被中断后输出“thread1 x = 2”。

    线程interrupt原则

    finalize原则

    finalize原则是指对象的所有操作都happens-before于该对象的finalize方法。如下代码中,创建VisibilityDemo10对象后对其属性进行修改,然后销毁该对象。调用System.gc()能使该对象被垃圾回收器回收,回收前会调用finalize方法,该方法输出“finalize方法 x = 4”。

    finalize原则

    传递原则

    最后,happens-before还具有传递原则,即是指如果A happens-before于B,且B happens-before于C,那么A就happens-before于C。看下面的例子,主线程中的x=3操作happens-before于线程一中所有操作,线程一中的x=x*2操作happens-before于线程二中的所有操作,最终输出为“thread2 x = 12”。由传递原则可以知道,主线程中的thread1.start()之前的操作happens-before于线程二中的所有操作。

    展开全文
  • 24、条MSF基本原则哪几条与团队模型有关?拥有共同远景/关注业务价值 /灵活敏捷,主动应变 /向团队成员授权/鼓励开放式沟通/职责清晰,责任共享 25、微软运营框架将配置管理定义为一个非常重要过程,关于...
  • 开头 此文希望能给想跳槽和面试朋友一些参考。 金九银十已过,面试狂热季也已结束,小编也正是选择了在金九十银跳槽,之前在腾讯做了五年Android开发工作...1、设计思想六大原则 2、三大设计模式 3、数据结构 4、算法

    开头

    此文希望能给想跳槽和面试朋友一些参考。

    金九银十已过,面试的狂热季也已结束,小编也正是选择了在金九十银跳槽,之前在腾讯做了五年Android开发工作,之后感觉公司不一定能继续提供给我想要的发展空间与前景。说白了,有家室,我需要更高的薪酬让他们过上更好的生活。正好赶上金九银十,一口气投了八分简历,面试历程结束后成功连收了:字节,阿里,小米等多个offer。今天给大家分享的正是一些面试常见问题和部分面经分享。

    第一章:设计思想与代码质量优化

    1、设计思想六大原则
    2、三大设计模式
    3、数据结构
    4、算法

    第二章:程序性能优化

    1、启动速度和执行效率优化
    2、布局检测与优化
    3、内存优化
    4、耗电优化
    5、网络传输与数据存储优化
    6、APK大小优化
    7、屏幕适配
    8、OOM问题原理解析
    9、ANR问题解析
    10、Crash监控方案


    第三章:开发效率优化

    1、分布式版本控制系统Git
    2、自动化构建系统Gradle


    第四章:一线大厂在APP性能优化的实践

    1、启动优化
    支付宝APP:通过安装包重排布局优化Android端启动性能
    抖音BoostMultiDex 优化实践:Android 低版本上APP 首次启动时间减少80%
    手机淘宝在APP启动优化的思考和实践

    2、流畅度
    Android中的卡顿丢帧原因分析
    应用宝、讯飞输入法无障碍服务导致的整机卡顿分析
    今日头条图文详情页秒开实践

    3、APK大小优化
    抖音在APK包大小资源优化方面的实践

    4、布局优化
    优酷APP响应式布局技术全解析

    5、网络优化
    手机淘宝在网络的链路优化
    百度APP在网络深度优化的实践

    6、手机淘宝双十一亿万用户浏览APP性能优化项目揭秘

    7、高德APP全链路源码依赖分析

    8、彻底干掉OOM的实战经验分享

    9、微信 Android终端内存优化实践

    最后笔者收集整理了一份Flutter高级入门进阶资料PDF

    以下是资料目录和内容部分截图



    里面包括详细的知识点讲解分析,带你一个星期入门Flutter。还有130个进阶学习项目实战视频教程,让你秒变大前端。学不会来打我!

    utter。还有130个进阶学习项目实战视频教程,让你秒变大前端。学不会来打我!
    [外链图片转存中…(img-LLmh8le8-1619673765890)]
    以上资料皆无偿分享,领取方式:点击我的GitHub即可免费获取

    展开全文
  • 第一部分是第1、 2章,介绍了软件架构师练就的方法、软件架构设计模式、软件架构开发模型、软件架构模式、软件架构思维、软件架构编程思想以及软件架构设计原则等,为软件架构设计的基本理论;第二部分是第3-5章,介绍...
  • 豆芽最终目标是为基于友邻信息获取方式提供便利,所以架构设计也是为此服务。而架构与当前网页端设计基本相同,则是因为现在网页端正是一个符合这个目标设计,并且与移动端导航也可以很好地契合。 让我们...
  • 其中使用Struts作为系统整体基础架构,负责MVC分离,在Struts框架模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持,Spring做管理,管理Struts和Hibernate。 WebStorage HTML新增本地存储解决...
  • 背景 《SRE Google运维解密》里提到SRE自动化系统一个bug导致几乎所有的数据中心机器被成功下线并进行硬盘...这个原则在我以后会发布系列文章《架构设计「三纪律项注意」》中也会介绍一些。今天先从另一个...
  • 地理信息系统(GIS)是一门实践性很强...同时也鼓励中小企业依靠特色和创新,争取超常规发展,最终形成、中、小相结合较为完善GIS企业架构,实现规模化生产和经营。  (3)建立现代企业制度,稳定队伍  ...
  • asp.net知识库

    2015-06-18 08:45:45
    与DotNet数据对象结合自定义数据对象设计 (二) 数据集合与DataTable 与DotNet数据对象结合自定义数据对象设计 (一) 数据对象与DataRow ASP.NET中大结果集分页[翻译] .net 2.0 访问Oracle --与Sql Server...
  • 软件工程教程

    热门讨论 2012-07-06 23:10:29
    通过演示及讲述,讲解课程设计的整体情况,针对其设计提出一些技术及细节问题确认是否真正理解课程设计中的要点、是否掌握了进行系统设计的知识和能力、是否本人完成。如通发现没有真正设计或者不清楚技术细节,则...
  • 内容涵盖绝部分 Android 程序员所需要技能:「数据结构算法」「程序架构」「设计模式」「性能优化」「组件化」「插件化」「热修复」「NDK技术」「自定义View」「性能优化」「Android源码分析」「深入理解Kotlin...
  • 软件工程知识点

    2012-12-02 21:34:25
    概要设计是针对软件系统结构设计,用于从总体上对软件构造、接口、全局数据结构和数据环境等给出设计说明,并以“概要设计说明书”形式提交书面报告,其结果将成为详细设计与系统集成基本依据。 模块是概要...
  • 基于spring-ladp统一用户中心结构设计以及代码结构设计 基于ldap实现统一用户代码 spring data jpa 使用技巧 ta jpa扩展支持动态sql jpa data 对象关联 springboot使用hibernate validator校验 ...
  • c语言编写单片机技巧

    2009-04-19 12:15:17
    为了避免上述问题除了设法分割两电路block之外,设计电路板之前充分检讨设计构想,才是根本应有手法,基本上设计高频电路用电路板必需掌握下列三大原则:  高质感。  不可取巧。 ...
  • ASP.NET精品课程+源代码

    千次下载 热门讨论 2009-01-05 20:15:51
    ASP.NET将脚本,超文本和强大的数据库访问功能结合在一起,并提供了众多的服务端组件可供程序直接调用,为网站设计的程序开发员们提供了极的方便。ASP.NET是微软推出的新一代语言,底层采用.Net框架,提供了比WEB...
  • 面向对象高级知识 - “三支柱” / 类与类之间关系 / 垃圾回收 / 魔术属性和方法 / 混入 / 元类 / 面向对象设计原则 / GoF设计模式 迭代器和生成器 - 相关魔术方法 / 创建生成器两种方式 / 并发和异步编程 - 多...

空空如也

空空如也

1 2
收藏数 37
精华内容 14
关键字:

数据架构设计的八大原则