色婆ijqwj 发表于 2018-6-2 07:37:25

OpenStack Operations Guide 第四章 Compute Nodes

  Choosing a CPU
  CPU的选择非常重要,首先确保你的CPU支持虚拟化,VT-x / AMD-v。记得在BIOS开启这个功能哦。
  CPU的cores也会影响最终效果,现在的CPU通常都最多支持12 cores,如果Intel CPU支持超频,12就变成了24啦。如果你的服务器支持多CPU,那core数量就更多啦。
  超线程:
  是否开启超线程取决于你的实际环境。举个例子,关闭超线程在激烈的计算环境中是有益的。
  我们建议根据你自己的负载进行关闭和开启测试,来确定到底需不需要开启超线程。
  Choosing a Hypervisor
  Hypervisor提供软件来管理虚拟机访问底层硬件。Hypersior创建,管理,监控虚拟机。OpenStack支持:
  KVM / LXC / QEMU / ESX / ESXi / Xen / Hyper-V / Docker
  或许选择hypervisor的最关键的因素是你环境的现状或者是你可能对某个Hypervisor比较熟悉。
  在OpenStack中,KVM是最广泛应用的,其次是XEN / LXC / VMware / Hyper-V,QEMU / Docker很少被使用。
  在一个环境中可以使用host aggregates或者cell部署不同的Hypervisor。但是,单个计算节点只能运行一个Hypervisor.
  Instance Storage Solutions
  三种模式:
  Off compute node storage - shared file system
  On compute node staroge - shared file system
  On compute node storage - noshared file system
  计算服务和存储服务有着不同的需求,通常计算节点要求更多的CPU和内存。如果你的物理主机数量有限而你又想运行更多的实例,可以在同一个节点上运行计算和存储服务。
  我们会在下面几个章节中讨论这三种模式。
  

  Off Compute Node Storage - Shared File System
  这个模式下,实例都被放在计算节点以外的存储节点上。如果你把计算和存储节点分开,那你可以认为你的计算节点是stateless的。只要你没有在计算节点上运行任何实例,你可以随时把它离线或删除,对你的云环境没有任何影响。
  优势:
  如果一个计算几点宕机可以很容易恢复实例
  维护一个专用的存储系统更为简单
  你可以任意扩容
  劣势:
  大量的IO可能会影响与之无关的实例
  使用网络可能会影响性能
  On Compute Node Storage - Shared File System
  这个模式中,每个计算节点都指定一些列的磁盘空间,然后通过分布式文件系统将这些磁盘空间聚合成一个挂载点。
  优势:
  当你需要额外存储空间时可以轻松横向扩展。
  劣势:
  和nonshared storage相比,使用分布式文件系统可能让你丢失本地数据。
  恢复实例比较复杂,依赖于你的其他主机。
  服务器的硬盘槽位可能会限制你主机的硬盘数量
  使用网络会降低性能
  On Compute Node Storage - Nonshared File System
  这种模式中,每个计算节点都有足够的磁盘来承载运行在自身的实例。
  优势:
  Heavy I/O不会和其他计算节点互相影响
  Direct I/O有着更好的性能
  劣势:
  一个计算节点宕机,实例也会丢失。
  依赖服务器磁盘槽位,不能扩展。
  迁移实例很复杂。
  Issues with Live Migration
  KVM live block migration允许没有共享存储也可以实现在线迁移。在较早KVM/QEMU基于块的迁移被认为是不可靠的,现在在QEMU1.4和libvirt1.0.2中有了更可靠的无共享存储迁移,这与openstack完全兼容。但是,本书的作者们都没有一手的经验。
  Choice of File System
  如果你想实现基于共享存储的在线迁移,你需要配置一个分布式文件系统。
  NFS
  GlusterFS
  MooseFS
  Lustre
  我们在实际部署中都用过这几种,如果你对这些都不熟悉我们推荐用NFS。
  

  Overcommitting
  OpenStack允许你过量使用CPU和内存,这样你可以运行更多实例,当然代价是降低性能。
  CPU分配比例16:1
  举例,一个物理节点有12核心,scheduler看到的是196个可用的虚拟核心。通常一个实例需要4核心,那么最终可以运行48个实例
  虚拟实例=(OR*PC)/VC
  OR CPU overcommit raito (virtual cores per physical core)
  PCNumber of physical cores
  VCNumber of virtual cores per instance
  内存分配比例1.5:1
  一个物理节点有48G内存,scheduler拥有72G内存可以分配。
  你必须根据你的场景选择合适的CPU RAM allocation ratio。
     
  Logging
  OpenStack会产生大量有用的日志信息。你需要考虑使用一个日志服务器来收集分析日志(如logstash)。
  

  Networking
  Openstack的网络非常复杂,我们会在第七章介绍
  
页: [1]
查看完整版本: OpenStack Operations Guide 第四章 Compute Nodes