转载自:http://xjsunjie.blog.51cto.com/999372/1626297
3月28日一个春日晴朗的午后,我有幸参加了51cto学院和人民邮电出版社信息技术分社联合举办的“鸟哥”大陆行LINUX技术沙龙。说到鸟哥,很多学习Linux的人,可以说都知道。鸟哥的LINUX私房菜影响了一代IT人,至今畅销不衰,成为技术图书中为数不多的经典佳作。这次技术沙龙,因为鸟哥的到来,显得与众不同,让人印象深刻。
在轻松愉快的氛围下,参与沙龙的两岸LINUX专家围绕着“容器虚拟化下运维调度层的设计“、”LINUX在云计算的应用“、”可视化安全集成运维平台最佳实践“等三个议题展开了思想的碰撞。现在我整理归纳了当时讨论的问题内容,以飨广大网友。
一、linux容器虚拟化下运维调度层的设计
虚拟化是一个广义的术语,在计算机方面通常是指计算元件在虚拟的基础上而不是真实的基础上运行。虚拟化技术可以扩大硬件的容量,简化软件的重新配置过程。CPU的虚拟化技术可以单CPU模拟多CPU并行,允许一个平台同时运行多个操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率——百度百科。
虚拟化可以分为对硬件的虚拟和对操作系统或者对软件的虚拟。在硬件虚拟化这个层面,又有三种不同的技术:
1)Full Virtualization(全虚拟化),几乎是完整地模拟一套真实的硬件设备。大部分操作系统无须进行任何修改即可直接运行在全虚拟化环境中。像kvm、vmware等技术是全虚拟化。
2)Partial Virtualization(部分虚拟化),仅仅提供了对关键性计算组件或者指令集的模拟。操作系统可能需要做某些修改才能够运行在部分虚拟化环境中。
3)Paravirtualization(半虚拟化),不对硬件设备进行模拟,虚拟机拥有独立的运行环境,通过虚拟机管理程序共享底层的硬件资源。大部分操作系统需要进行修改才能够运行在半虚拟化环境中。它的性能要稍微高于全虚拟化。像Xen。因为需要改动托管系统的内核,所以xen是不支持win虚拟机的。
Xen的虚拟化原理是在 Linux Kernel和硬件之间加入一层 Xen代码, 有Xen来管理Linux Kernel和其它的VM.相比其它的虚拟化技术, KVM是比较新的, 它需要CPU的支持。并且KVM和Linux Kernel是紧密结合的,所以Linux Kernel能够更好的管理 VM, VM的性能会比传统的虚拟化技术更好。
硬件虚拟化基本上就是在一台宿主机上虚拟了整个系统,各台虚拟机之间相互不可见。这会很明显导致很多重复的线程和重复的内存页出现,性能上肯定会有影响。所以采用这种技术,一台宿主机上虚拟机的个数肯定会有一定限制。
对于软件虚拟化,我们来讨论LXC。LXC 是 Linux Containers 的缩写,是一种基于容器的、操作系统层级(内核)的、轻量级的虚拟化技术。LXC 可以在操作系统层次上提供虚拟环境(即容器)以隔离进程和资源,每个虚拟环境拥有自己的进程和独立的网络空间。Linux容器功能是基于 cgroups 和 Namespace 来实现的. 所以要了解Linux 容器必须先了解 cgroup 和 Namespace.
cgroups 是将任意进程进行分组化管理的 Linux 内核功能.通过cgroups可以有效的隔离各类进程, 同时还可以控制进程的资源占用(CPU, 内存等等)情况. 使用Namespace, 可以让每个进程组有独立的PID, IPC和网络空间.LXC在隔离控制方面依赖于Linux内核的namespace特性,具体而言就是在clone时加入相应的flag(NEWNSNEWPID等等)。基于容器的虚拟化技术主要通过隔离操作系统内核的对象(例如 PID、UID、系统共享内存、IPC、ptys等等)来完成安全性的隔离,具体就是运用名称空间和访问权限控制等等技术,将原来的全局对象(句柄、UID等)隔离到完全不同的名称空间里,不同虚拟机之间是完全不可见的,因此它们也不能访问到名称空间之外的对象。
相对于市面上比较成熟的VMWARE虚拟化解决方案,LXC的优势:1、无需给内核打补丁;2、对宿主机没有特殊的硬件要求,在32位和64位处理器上都能运行;3、性能接近物理机;略势:1、只能运行Linux,不支持BSD、OSX、Windows;2、管理工具不够完善;3、安全隔离性差;4、不支持对网络IO的管理。结合OPENSTACK和Cloud Foundry,可以方便的进行资源调用以及支持多样的应用服务和云部署环境。
关于运维调度层的设计,大家一致认为进行业务分级、资源分级,保障高峰时的核心业务正常运行并错峰调整资源实现平衡是比较重要的。来自阿里巴巴的赵鑫磊则具体的分享了他们在这方面的经验和想法,说到了业务降级和资源预留的场景案例,大家都深有受益。
二、linux在云计算的应用
说到技术人的聚会,没有人不提到云计算的,此次沙龙也是热点。现在的计算领域正在向开源发展,而云计算Linux无疑是这一新发展方向的领跑者。云计算Linux扮演着极其重要的位置,而越来越多的企业也加入到了这个行列之中。云计算对微软操作系统的冲击是无需置疑的,Linux凭借其开源和安全性,目前在用户心中已经占据了移动位置。
云计算Linux将有什么意义呢?业界一致的观点就是云计算将架构在开源软件之上,并且大部分基础应用都将基于开源软件。因为大家都知道,作为集中式的服务平台,开放性永远是其关键要素之一,同时开源软件的灵活性和可扩展性也完全吻合云计算的发展趋势。
企业和云服务提供商把linux作为云计算的首选操作系统,其主要原因包括如下几个方面:
业务发展需要构建灵活的系统
业务发展永远是企业的最重要的目标。如今,越来越多的用户意识到——灵活的基础架构对于业务发展的重要性,比如,海量的数据量和数据处理的复杂性都需要可灵活扩展的、高性能的IT基础架构。而linux则让云计算的这种灵活性、规模经济效应和可靠性成为可能。以红帽企业linux为例,基于红帽企业linux构建的开放式混合云基础架构,可以实现应用软件在内部环境和公有云环境之间轻松的迁移和转换,同时保证研发和管理平台的连续性。
开源云平台更需要linux
云管理平台是云计算基础架构中一个非常核心的部分,而以OpenStack、Eucalyptus、CloudStack等为代表的开源云管理平台与linux平台的完美结合,将为linux的发展再添助力。而事实上,从2012年开始甚至更早,各大linux提供商就已意识到这一点,并纷纷加入到开源云管理平台的战争。八月份,linux老大红帽宣布基于开源OpenStack架构来构建和管理私有云、公有云和混合基础架构即服务(IaaS)云的红帽OpenStack软件预览版将很快与用户见面。这意味着,OpenStack未来将能够更好地用于企业生产环境,并被更多的企业和云服务提供商所接受。
低成本——企业永恒的追求
随着市场上的云服务供应商越来越多,在越来越激烈的市场竞争中,如何实现成本优势成为每个供应商必须要考虑的问题。降低自身提供的云服务的成本,对于云服务供应商来说无疑是一个相当大的优势,linux+x86的组合于是当仁不让地成为众多云服务提供商的首选。这一点对于云服务提供商来说尤为重要。无论是在传统业务领域,还是在云计算、大数据等新兴应用领域,无论是对于企业,还是对于云服务供应商,linux似乎已经成为云时代的一个必不可挡的趋势!
在这个议题中,大家还热烈的讨论了LINUX各发行版的特点以及如何选型的问题。
三、可视化安全集成运维平台最佳实践
关于可视化安全集成运维平台,李晨光老师还特意分享了他在OSSIM运维体系构建中的经验和案例。
“只有可见的,才是可运维的。”这是IT 运维人员常说的一句话。然而现实往往并不能如愿以偿,过去的很长一段时间内,企业IT 团队的精力往往都放在应用系统的建设上,很少真正对所有的应用系统做详细的梳理、弄清楚其中的逻辑关系。
要真正做好运维,运维人员已经不能仅满足于知道有哪些应用和节点部署在企业中,更需要知道它们之间是如何连接和交互的,搞清楚应用之间的逻辑关系。只有做到整体监控、统一管理,才能使IT 系统可视化,运维工作才能得心应手。
OSSIM即开源安全信息管理系统(OPENSOURCE SECURITY INFORMATION MANAGEMENT)是一个非常流行和完整的开源安全架构体系。OSSIM通过将开源产品进行集成,从而提供一种能够实现安全监控功能的基础平台。它的目的是提供一种集中式、有组织的,能够更好地进行监测和显示的框架式系统。
OSSIM由数据收集、监视、检测、审计以及控制台这五个模块构成。ossim是基于debian系统的,就组成开看,它是开源安全软件和debian的集成,但不是简单的组合在一起就完了。ossim系统是通过最前端的探测那里收集的安全事件(包括IDS、防火墙和主机),这些安全信息被ossim经过格式化处理后统一存放在ossim数据库中之后ossim sever会对其进行风险评估,严重度标记和相互关联,关联还需要有后台知识库的支持,包括资产库、漏洞库、威胁库等等。它把snort,nessus,openvas等收集的信息统一放到一个数据库里,形成了一个庞大的视图,形成可视化的友好界面。
短暂而热烈的交流,意犹未尽!鸟哥和他的书一样朴实有趣。开源的世界,让你我共同见证LINUX的辉煌!
阅读(2183) | 评论(0) | 转发(0) |