首页 文章 精选 留言 我的

精选列表

搜索[文档解析],共10000篇文章
优秀的个人博客,低调大师

解析VMware存储协议之iSCSI

我们最近对VMware存储协议做了大量研究和测试,最后我总结出来在最重要的三个因素中——光纤通道(FC)、iSCSI和NAS(NFS)——iSCSI是最特别的。 首先,我觉得讨论协议和讨论重复数据删除一样很保险,但是让我来说一说我的看法。如果现在让你决定,摆在你面前的选择无非就是:8Gb光纤通道(也许是4Gb)、1GbiSCSI或者是采用了NFS的10Gb以太网。 如果是创建一个VMware存储架构的话,你会基于以下几个因素作出决定:性能、成本和易用性。当然,还有其他像安全性和可靠性的一些问题。但是大多数用户更关心前者。另外还有规格大小的问题——你最有可能选择你目前使用的规格或者你同事使用的规格。 如果纯粹谈性能的话,大多数人得承认光纤从很多方面来说都具有性能优势,而且如果你的主机和相关工作负载真的可以利用这个性能优势的话,那么你最有可能选择光纤。对许多用户来说,iSCSI和NFS的性能水平是可以接受的,尤其是刚开始的时候。 如果你可以轻松地通过iSCSI或者NFS维持I/O性能、而且两种协议在存储I/O性能方面也旗鼓相当,那么你将对比两者的易用性和成本。在很多人看来,iSCSI曾经是一项具有易用性的关键技术。人们普遍认为iSCSI是通过IP运行的,所以它的易用性肯定更高一些。我从2002年开始接触iSCSI技术,非常清楚这一点,尤其是当用户摆脱使用软件发起端(Software Initiator),而且他们可以接受标准以太网卡的性能。 而当你需要扩展iSCSI的时候iSCSI就开始给你带来难题。例如,在一个ESX环境下,你可能希望通过添加一个iSCSI HBA来进行扩展以卸载IP开销或者从SAN启动ESX Server.当开始调节性能的时候,你可能系统添加多个HBA、安装VLAN或者采取其他调节措施。这些都是可能的,但是很快你就会在进行架构规划的时候遇到难题,希望远离光纤通道架构来避免架构规划。 与此同时,光纤通道领域已经开始着眼于加强技术的易用性。虽然易用性会基于你的背景有所不同,许多人——包括我自己在内——发现光纤就像iSCSI一样即装即用,尤其是当你进行协议扩展的时候。你还会认为,使用iSCSI达到性能极限肯定会比光纤早。 不管哪种协议,你都要遇到基于块的访问问题,也就是VMFS或者RDM.这不是一个大问题,主要取决于你的背景,但却难倒了不少人。过去,唯一的选择就是块存储,所以无论是不是难题,或者没有选择余地,那么你就不得不解决它。NFS改变了这种情况,它能够处理对VMware存储的文件访问路径。 者:佚名 来源:51CTO

优秀的个人博客,低调大师

解析VMware存储协议之NFS

VMware 3.x提供了一项可以利用加载NFS的文件系统来托管VMware虚拟机镜像文件功能——VMDK。在缓慢开始发展之后,NFS获得了VMware存储越来越多的青睐。然而你必须了解现在普遍存在一些误导概念。 首先,这并不是关于光纤通道与IP协议的争论,而是关于NFS与VMFS。实际上,这甚至不能算是NFS与VMFS的争论,NFS只是一个传输协议。因此归根结底地说应该是VMFS与所选NAS的文件系统之间的争论。每个NAS制造商——EMC、NetApp或者Onstor——都有他们自己的文件系统,而且这些文件系统的价值应该与VMFS进行对比。也就是说,由于NAS的共享特点,这些厂商提供的功能都是大同小异的。 VMFS是VMware在块系统中提供用来托管虚拟机镜像的文件系统,这个系统在SAN中是可共享、可形成集群的。但是正如文件系统一样,它有自身的局限性,而NFS可以很好地解决这些局限性。NAS和使用NFS的NAS从本质上说都是基于共享的设备。VMDK实际上是一些文件,所以说,针对文件进行设计以满足任务要求的想法并不是本质上的飞跃。 在NFS中VMware最大的亮点就是日常运作,它是到目前为位置最容易配合运行的环境。使用NFS加载服务来创建分配VMware Datastore或者配置VMotion非常简单。重新配置这些资源库的大小——更大或者更小——就像虚拟机一样简单,而且不需要中断服务。相比之下,在使用VMFS的时候,大多数VMware管理者在进行数据存储或者扩展VMDK的时候都必须停止虚拟机运行,以保证其安全性。不管你采取了多少预防措施,缩减数据存储大小可能会导致很严重的问题,因此通常不建议用户这么做。 事实上,NFS是一种基于IP的协议,不过不是基于IP的存储协议,因此大大简化了操作并且降低了成本。然而你不能忽略规划环节。如果发生性能问题,那么扩展一个IP架构的复杂性就远远超过了光纤通道的复杂性。 使用IP遇到性能瓶颈要早于使用光纤通道,因为很多基础架构仍然是基于1Gb以太网的。10Gb以太网能够解决大多数性能瓶颈问题,但是由于队列问题,VMware主机中一个标准的10Gb以太网NIC只能提供现有带宽的40%~50%。为了解决这个难题,VMware开发出NetQueue,当它与英特尔、Neterion或者Solarflare等厂商提供的支持卡结合起来的时候,几乎能够完全实现线速度。所有这些会导致成本和复杂性的增加,再一次削弱了它的一些优势。 NFS/NAS和VMware的结合还存在其他一些挑战。你不能通过使用这种方法来启动ESX服务器,只能启动虚拟机,所以如果你希望从共享系统中启动所有应用的话,你还需要其他协议。其次,它不支持RDM,因此也就不支持Microsoft Clusters。如果这对你很重要的话,你同样需要使用其他协议。最后,从目前来看,NFS似乎是最后一个支持像VMotion和Site Recovery Manager这样VMware新功能的协议。 我们看到,NAS/NFS是低I/O需求工作负载的理想介质,光纤则是针对高需求工作负载的理想选择。 51CTO编者注:本文作者George Crump是Storage Switzerland网站创始人,该网站为存储用户、供应商和集成商提供战略咨询和分析。此前,他曾担任过美国最大集成商的首席技术官。 作者:George Crump 来源:51CTO

优秀的个人博客,低调大师

中国传感行业未来趋势解析

中投顾问发布的《2016-2020年中国传感器行业深度调研及投资前景预测报告》指出,近年来,传感器正处于传统型向新型传感器转型的发展阶段。新型传感器的特点是微型化、数字化、智能化、多功能化、系统化、网络化,它不仅促进了传统产业的改造,而且可导致建立新型工业,是21世纪新的经济增长点。 传感器产业作为国内外公认的具有发展前途的高技术产业,以其技术含量高、经济效益好、渗透能力强、市场前景广等特点为世人瞩目。 2007-2014年我国传感器行业得到较好的发展,行业工业总产值总体呈上升趋势,在GDP中的占比维持在0.10%-0.15%之间。 在发展高科技,实现产业化、大力加强传感器的开发和在国民经济中的普遍应用等一系列政策导向和支持下,在蓬勃发展的中国电子信息产业市场的推动下,传感器已形成了一定的产业基础,并在技术创新、自主研发、成果转化和竞争能力等方面有了长足进展。一批基于MEMS(微机电系统)技术的新型传感器正在进入市场。传感器设计技术、材料控制技术、生产技术、可靠性技术和测试技术不断发展成熟,量产能力逐步提高。力学量传感器、气体传感器、温度传感器、光学传感器、电压敏传感器等传统传感器,不仅在国内市场份额逐步增长,同时还有部分出口。 中投顾问发布的《2016-2020年中国传感器行业深度调研及投资前景预测报告》表示,在国家大力加强传感器的开发和应用的一系列政策引导和支持下,我国传感器行业面临良好的发展前景,未来成长空间可期。 我国传感器行业发展趋势 一是产业规模将迅速扩大。在物联网、移动互联网和高端装备制造快速发展的推动下,传感器的典型应用市场发展迅速。预测未来5年将是中国传感器市场稳步快速发展的5年,平均销售增长率将达到30%以上。 二是汽车电子、信息通信成为增长最快的典型应用市场。2013年,中国传感器四大应用领域为工业、汽车电子产品、通信电子产品、消费电子产品专用设备,其中工业和汽车电子产品占市场份额的42%左右,而发展最快的是汽车电子和通信电子应用市场。此外,医疗、环境监测、油气管道、智能电网、可穿戴设备等领域的创新应用将成为新热点,有望在未来创造更多的市场需求。 三是流量传感器、压力传感器和温度传感器仍将占据市场主要份额。流量传感器和压力传感器广泛应用于工业控制、汽车电子、自动化控制等领域,这些领域的高速发展将带动这些传感器继续保持主要市场份额。此外,随着智能家居、智能穿戴、消费电子等应用领域的发展,温度传感器市场份额也会稳步提升。 本文转自d1net(转载)

优秀的个人博客,低调大师

Android启动过程深入解析

当按下Android设备电源键时究竟发生了什么? Android的启动过程是怎么样的? 什么是Linux内核? 桌面系统linux内核与Android系统linux内核有什么区别? 什么是引导装载程序? 什么是Zygote? 什么是X86以及ARM linux? 什么是init.rc? 什么是系统服务? 当我们想到Android启动过程时,脑海中总是冒出很多疑问。本文将介绍Android的启动过程,希望能帮助你找到上面这些问题的答案。 Android是一个基于Linux的开源操作系统。x86(x86是一系列的基于intel 8086 CPU的计算机微处理器指令集架构)是linux内核部署最常见的系统。然而,所有的Android设备都是运行在ARM处理器(ARM 源自进阶精简指令集机器,源自ARM架构)上,除了英特尔的Xolo设备(http://xolo.in/xolo-x900-features)。Xolo来源自凌动1.6GHz x86处理器。Android设备或者嵌入设备或者基于linux的ARM设备的启动过程与桌面版本相比稍微有些差别。这篇文章中,我将解释Android设备的启动过程。深入linux启动过程是一篇讲桌面linux启动过程的好文。 当你按下电源开关后Android设备执行了以下步骤。 Android启动流程/过程 第一步:启动电源以及系统启动 当电源按下,引导芯片代码开始从预定义的地方(固化在ROM)开始执行。加载引导程序到RAM,然后执行。 第二步:引导程序 引导程序是在Android操作系统开始运行前的一个小程序。引导程序是运行的第一个程序,因此它是针对特定的主板与芯片的。设备制造商要么使用很受欢迎的引导程序比如redboot、uboot、qi bootloader或者开发自己的引导程序,它不是Android操作系统的一部分。引导程序是OEM厂商或者运营商加锁和限制的地方。 引导程序分两个阶段执行。第一个阶段,检测外部的RAM以及加载对第二阶段有用的程序;第二阶段,引导程序设置网络、内存等等。这些对于运行内核是必要的,为了达到特殊的目标,引导程序可以根据配置参数或者输入数据设置内核。 Android引导程序可以在\bootable\bootloader\legacy\usbloader找到。 传统的加载器包含的个文件,需要在这里说明: init.s初始化堆栈,清零BBS段,调用main.c的_main()函数; main.c初始化硬件(闹钟、主板、键盘、控制台),创建linux标签。 更多关于Android引导程序的可以在这里了解。 第三步:内核 Android内核与桌面linux内核启动的方式差不多。内核启动时,设置缓存、被保护存储器、计划列表,加载驱动。当内核完成系统设置,它首先在系统文件中寻找”init”文件,然后启动root进程或者系统的第一个进程。 第四步:init进程 init是第一个进程,我们可以说它是root进程或者说有进程的父进程。init进程有两个责任,一是挂载目录,比如/sys、/dev、/proc,二是运行init.rc脚本。 init进程可以在/system/core/init找到。 init.rc文件可以在/system/core/rootdir/init.rc找到。 readme.txt可以在/system/core/init/readme.txt找到。 对于init.rc文件,Android中有特定的格式以及规则。在Android中,我们叫做Android初始化语言。 Android初始化语言由四大类型的声明组成,即Actions(动作)、Commands(命令)、Services(服务)、以及Options(选项)。 Action(动作):动作是以命令流程命名的,有一个触发器决定动作是否发生。 语法 on <trigger> <command> <command> <command> Service(服务):服务是init进程启动的程序、当服务退出时init进程会视情况重启服务。 语法 service <name> <pathname> [<argument>]* <option> <option> ... Options(选项) 选项是对服务的描述。它们影响init进程如何以及何时启动服务。 咱们来看看默认的init.rc文件。这里我只列出了主要的事件以及服务。 Table Action/Service 描述 on early-init 设置init进程以及它创建的子进程的优先级,设置init进程的安全环境 on init 设置全局环境,为cpu accounting创建cgroup(资源控制)挂载点 on fs 挂载mtd分区 on post-fs 改变系统目录的访问权限 on post-fs-data 改变/data目录以及它的子目录的访问权限 on boot 基本网络的初始化,内存管理等等 service servicemanager 启动系统管理器管理所有的本地服务,比如位置、音频、Shared preference等等… service zygote 启动zygote作为应用进程 在这个阶段你可以在设备的屏幕上看到“Android”logo了。 第五步 在Java中,我们知道不同的虚拟机实例会为不同的应用分配不同的内存。假如Android应用应该尽可能快地启动,但如果Android系统为每一个应用启动不同的Dalvik虚拟机实例,就会消耗大量的内存以及时间。因此,为了克服这个问题,Android系统创造了”Zygote”。Zygote让Dalvik虚拟机共享代码、低内存占用以及最小的启动时间成为可能。Zygote是一个虚拟器进程,正如我们在前一个步骤所说的在系统引导的时候启动。Zygote预加载以及初始化核心库类。通常,这些核心类一般是只读的,也是Android SDK或者核心框架的一部分。在Java虚拟机中,每一个实例都有它自己的核心库类文件和堆对象的拷贝。 Zygote加载进程 加载ZygoteInit类,源代码:/frameworks/base/core/java/com/android/internal/os/ZygoteInit.java registerZygoteSocket()为zygote命令连接注册一个服务器套接字。 preloadClassed “preloaded-classes”是一个简单的包含一系列需要预加载类的文本文件,你可以在<Android Source>/frameworks/base找到“preloaded-classes”文件。 preloadResources() preloadResources也意味着本地主题、布局以及android.R文件中包含的所有东西都会用这个方法加载。 在这个阶段,你可以看到启动动画。 第六步:系统服务或服务 完成了上面几步之后,运行环境请求Zygote运行系统服务。系统服务同时使用native以及java编写,系统服务可以认为是一个进程。同一个系统服务在Android SDK可以以System Services形式获得。系统服务包含了所有的System Services。 Zygote创建新的进程去启动系统服务。你可以在ZygoteInit类的”startSystemServer”方法中找到源代码。 核心服务: 1.启动电源管理器; 2.创建Activity管理器; 3.启动电话注册; 4.启动包管理器; 5.设置Activity管理服务为系统进程; 6.启动上下文管理器; 7.启动系统Context Providers; 8.启动电池服务; 9.启动定时管理器; 10.启动传感服务; 11.启动窗口管理器; 12.启动蓝牙服务; 13.启动挂载服务。 其他服务: 1.启动状态栏服务; 2.启动硬件服务; 3.启动网络状态服务; 4.启动网络连接服务; 5.启动通知管理器; 6.启动设备存储监视服务; 7.启动定位管理器; 8.启动搜索服务; 9.启动剪切板服务; 10.启动登记服务; 11.启动壁纸服务; 12.启动音频服务; 13启动耳机监听; 14.启动AdbSettingsObserver(处理adb命令)。 第七步:引导完成 一旦系统服务在内存中跑起来了,Android就完成了引导过程。在这个时候“ACTION_BOOT_COMPLETED”开机启动广播就会发出去。 最新内容请见作者的GitHub页:http://qaseven.github.io/

优秀的个人博客,低调大师

mac党如何解析bootchart

关于bootchart,网上已经有很丰富的文章介绍了。但是,这些文章都是讲在Linux下如何使用。 做为开发Android的mac用户,还要使用Linux机器做中转,实在是太麻烦了。尤其是Ubuntu 12.04上默认的bootchart工具还有问题,需要更新python脚本。 事实可以更简单,我们直接在mac上build一个bootchart工具就好了么。 步骤: 从http://www.bootchart.org/download.html下载最新代码 解压 如果没有ant工具就装一个.bootchart是用java写的,用ant的build.xml做为makefile ant java -jar bootchart.jar /path/to/bootchart.tgz Enjoy it!

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册