您现在的位置:首页 >> 技术中心 >> IBM SmartCloud Provisioning 产品介绍与应用
IBM® SmartCloud Provisioning (ISCP)的主要特性是 High scale 和 Low touch。所谓 High scale 是指 SmartCloud Provisioning 具有非常迅捷的部署能力。它采用了端对端对等平行和分布式技术,允许多任务并行执行从而有能力管理数千的服务器,使得一次构建可以在分钟内完成,而一个小时可以构建千余虚拟机;Low touch 是指 SmartCloud Provisioning 具有非常便捷的操作管理,使管理与控制的客观要求最小化,提供自动恢复以及高容错性从而大大增强了用户管理的便捷性。
下面是 SmartCloud Provisioning 的基础架构图。
从拓扑图可以看出,一个典型的 Smart Cloud Provisioning 系统环境包括两种类型的服务器,计算节点 (Compute Node)和存储节点 (Storage Node)。存储节点偏重磁盘以及网络 I/O,提供映像与卷宗服务,用于管理所有面向存储的资源和任务;计算节点提供 CPU 与内存资源,用于承载部署虚机,处理所有面向计算的资源和任务。其他的服务器包括:PXE Server ( 又称 first-box) 提供 DHCP、DNS、HTTP 以及 TFTP 服务,用于快速构建所有网络上的 SmartCloud Provisioning 组件;Zookeeper 是 Apache Hadoop 的子项,提供分布式应用程序协调服务;HBase 是 Apache Hadoop 的子项,是分布式、面向列的开源数据库,提供分布式存储系统;Web Service 通过 RESTful web services 接口,接收管理者和用户发出的请求,把工作交给云来做; 控制台(Web Console 和 Web Admin Console)提供给终端用户和管理员可操作用户界面;LDAP Server 负责用户认证管理;Virtual Image Library 提供映像管理服务;ICON (Image Construction and Composition Tool)帮助用户构建基础映像,映像通常包含操作系统和其它软件。通常,计算节点和存储节点需要部署在物理机上,PXE Server 安装在物理机上,而 ZooKeeper、Hadoop + HBase、Web Service 以及 Web Console 和 Web Admin Console 则可在虚拟机上安装,在存储节点或者计算节点的(主机)物理机上运行。
在典型的最小化部署架构中,需要准备四台机器(四台机器中至少有一台支持虚拟化技术的物理机器做计算节点),这四台机器通过高速交换机连接成局域网。连接设备推荐用高速交换机,以保证各服务器各节点之间的迅速实时交互。一个典型的最小化部署架构为:
在图 2 所展示的最小架构中,PXE 服务器、计算节点 compute、存储节点 storage-1 和 storage-2 都安装在物理机上,而其他的服务做为虚拟机分布在计算节点 compute、存储节点 storage-1 和 storage-2 上,包括 3 个 zookeeper 服务,3 个 hbase 服务,1 个 admincosole 服务,1 个 webconsole 服务,1 个 webservice 服务和一个 ldap-server 服务。各个节点和服务的作用在上段中已经做了详细描述,在此不再赘述。
PXE 服务器必须满足下面的条件
1 .已经安装了操作系统 Redhat Enterprise Linux 6.0 x86_64 或者 6.1 x86_64。
2 .有 Redhat Enterprise Linux 6.0 x86_64 或者 6.1 x86_64 的 ISO 文件
3 .安装了或者有下列软件包:
Redhat Enterprise Linux 6.1 x86_64 ruby-devel-1.8.7.299-7.el6.x86_64.rpm ruby-rdoc-1.8.7.299-7.el6.x86_64.rpm rubygems-1.3.7-1.el6.noarch.rpm ruby-ri-1.8.7.299-7.el6.x86_64.rpm ruby-docs-1.8.7.299-7.el6.x86_64.rpm livecd-tools-031-1.el6.1.x86_64.rpm python-imgcreate-031-1.el6.1.x86_64.rpm |
Redhat Enterprise Linux 6.0 x86_64 ruby-ri-1.8.7.299-4.el6.x86_64.rpm rubygems-1.3.7-1.el6.noarch.rpm ruby-rdoc-1.8.7.299-4.el6.x86_64.rpm ruby-devel-1.8.7.299-4.el6.x86_64.rpm ruby-docs-1.8.7.299-4.el6.x86_64.rpm ruby-irb-1.8.7.299-4.el6.x86_64.rpm livecd-tools-031-1.el6.1.x86_64.rpm python-imgcreate-031-1.el6.1.x86_64.rpm |
4 . 用下列命令关闭 iptables 服务:
chkconfig iptables off && /etc/init.d/iptables stop |
5 . 禁用 SELinux:
1). 在编辑模式下打开文件 /etc/selinux/config.
2). 修改属性值 SELINUX=enforcing 为 SELINUX=disabled.
3). 重启机器 .
ISCP 安装有两种方式,图形化方式和命令行方式。图形化安装相对比较简单,可以一次安装完成,而命令行方式则需要多步骤操作。本文介绍图形化方式的安装。安装时长取决于网络速度和机器的性能,在实验环境里,100M 的交换机,计算节点是 x3650,存储节点是两台支持虚拟技术的普通 PC 机,安装时长大概为 1.5 小时。
图形化安装方式不需要用户太多的干预,用户只需要输入必要的安装参数,选择安装类型即可。为了解析安装,本文特地把安装过程分为四个步骤:
1.解压缩安装包,运行安装包中的安装程序:
[root@host IBM_SmartCloud_Provisioning]# ./install.sh |
2.点击 Next,接受用户使用许可协议。
3.在前提条件检查(Prerequisite Check)页面,输入 Red Hat Enterprise Linux 镜像文件的存储路径,ruby rpm 包的存储路径和 livecd-tools rpm 包的存储路径,点击 Next。
4.在选择安装类型页面选择安装类型
5. 本文选择最小化安装,并点击 Next,系统会进入 Network Options 页面,在此设置 DNS 后缀 (DNS Suffix)、网络地址 (Network Address)、网络掩码 (Netmask)、DHCP IP 地址区间,网关 (Gateway),父 DNS 服务器 (Parent DNS Server) 和 NTP 服务器。设置完成后,点击 Next。
6. 进入 Summary 页面,对用户的一些设置进行总结。确认无误后,点击 Next,安装程序开始安装。
首先,安装程序把安装需要的文件解压缩到 /var/lib/tftpboot 下面,然后创建 REDHAT 和 ISCP 的两个库文件(repository),最后在 PXE 服务器上安装配置 DHCP、DNS、TFTP 服务。在 PXE 服务器安装完成后,系统会弹出一个信息框,提醒管理员 PXE 服务器(又叫做 First-Box 服务器)安装完毕,可以开始安装存储节点和计算节点。
安装程序会自动检测存储节点和计算节点的状态,在这两类节点都安装完毕后,会自动安装 kernel 服务。
图形化安装程序会自动检测计算节点和存储节点的状态,在这两种节点都准备好了后,安装程序会自动在这些节点上安装核心服务。如果计算节点和存储节点都是物理机且 CPU 支持虚拟化,那么安装程序会在这些物理机上平均分配 kernel 节点,举例来说,假如有三台 zookeeper(最小化配置),zookeeper-1 会创建在 storage-1 上,而 zookeeper-2 会创建在 storage-2 上,zookeeper-3 会创建在计算节点上,以此顺序安装后续 kernel 服务。如果只有计算节点支持虚拟化技术,那么所有的服务会安装在计算节点上。等待 kernal 服务安装完成。在所有的组件安装完成后,安装程序会重启所有服务从而结束安装。
安装完成后,使用浏览器连接 web 用户界面,可以使用火狐浏览器 ( 要求版本在 3.6 以上 ),输入 http://<webconsole>:8080/welcome.html,用户将能看到 web 用户终端的登录界面;输入 http://<webadminconsole:9080/login, 用户将能看到 web 管理员终端的登录界面。
登录到 storage-1 节点上,运行以下命令,验证存储节点和计算节点是否活动。
[root@storage-1 cli]# ./iaasrc [root@storage-1 cli]# ./iaas-describe-nodes |
从下表可以看出,本文的实验环境包括一个计算节点(compute node)和两个存储节点(storage node)。
Jid | cpu_load | Deployed VMs | hyper_type | ipaddress | disk_used_pct | is_manager | availability | enabled | version | free_memory | start_time --------------------------------------------------------------------------------------- kvm_rack1.v001a64c2fd76 | 1.09 | 7 | kvm | 192.168.1.177 | 9 | y | kvm-1-1-3-13744 | yes | 1.2.0.0-171 | 13744 | Thu Dec 01 16:42:36 +0800 2011 --1 total hyper nodes-- |
Jid | cpu_load | ipaddress | available (MB) | is_manager | used (MB) | version | capacity (%) | start_time ----------------------------------------------------------------------------------- storage.storage-1 | 0.42 | 192.168.1.186 | 50856 | y | 40569 | 1.2.0.0-171 | 44 | Thu Dec 01 16:42:02 +0800 2011 storage.storage-2 | 0.44 | 192.168.1.187 | 122643 | n | 51460 | 1.2.0.0-171 | 29 | Thu Dec 01 16:42:10 +0800 2011 --2 total storage nodes-- |
如何为 ISCP 环境制作映像文件,用户可以参考帮助文件,本文在这里不再介绍。在 ISCP 安装完成之后,把制作好的映像文件复制到至少两个存储节点的目录 /iaas/iaas-store/files,然后通过 web 终端或者管理员终端或者命令行终端注册映像文件,注册完成后用户就可以使用了。
IBM® SmartCloud Provisioning 支持两种用户界面,Web 界面(Web UI)和命令行界面(CLI)。Web UI 提供基于 Web 的界面,用户可直接操作,包括用于终端用户进行常规操作的 Web UI,以及用于管理员执行管理控制操作的管理控制台 Admin Console,目前 Web UI 暂不支持界面定制;CLI 提供命令行界面用于用户操作,命令行方式涵盖所有常规操作以及管理控制功能。
IBM® SmartCloud Provisioning 预置两种用户角色,End User 终端用户 和 Administrator 管理员,采用基于角色的权限访问控制,管理员可以创建具有特定特权集的自定义角色。服务器根据分配给用户或用户组的角色,来决定要允许哪些访问特权和请求。
通常在成功安装配置 SmartCloud Provisioning 之后,管理员可以通过 Web Admin Console 或 CLI 创建并注册一系列终端用户;并在存储节点上创建一系列虚拟映像;并将映像注册发布以备终端用户使用;接下来终端用户即可以使用 Web UI 或者 CLI 开始构建虚拟机等操作。
IBM® SmartCloud Provisioning 管理界面提供了用于设置和管理与云基础结构相关的关键资源的功能。管理员通过 Admin Console 对云基础结构进行管理。
首先通过浏览器访问 Web 管理界面,使用管理员认证信息来登录。
这里,管理员可以对用户账户及配额信息 (Accounts and Quotas);云基础结构 (Cloud Infrastructure);虚拟映像和已部署 VM (Virtual Images and Deployed VMs);网络池 (Network Pools)进行管理与监控,下面将分别进行介绍。
管理 账户与配额(Accounts and Quotas)
在页面上方导航栏中,选择打开账户与配额(Accounts and Quotas),管理员可注册需要为其授予对 Web UI 访问权的任何 LDAP 用户。系统会为已注册用户分配一个缺省访问标识,已注册用户需要此标识才能访问他们部署的虚拟机。 注册用户后,管理员可以为这些用户分配访问角色,并且可以将他们分到具有指定的资源使用率配额的组中。 然后,管理员可以监视这些用户随时间变化的资源使用率。如图 6:
在页面左侧导航栏选择用户(Users),组(Groups),访问标识(Access IDs)标签页。
管理虚拟映像和已部署 VM (Virtual Images and Deployed VMs)
在页面上方导航栏中,选择虚拟映像和已部署 VM (Virtual Images and Deployed VMs),管理员可注册发布到映像目录的虚拟映像,用户可以用此虚拟映像部署虚拟机。 注销虚拟映像可将其从目录中除去。 您还可以查看已从每个虚拟映像部署的虚拟机的列表。如图 7:
在页面左侧导航栏选择虚拟映像(Virtual Images),已部署 VM(Deployed VMs)标签页。
管理网络池 (Network Pools)
在页面上方导航栏中,选择网络池 (Network Pools),创建静态 IP 地址池和虚拟 LAN 池,用户可以在 Web UI 中保留这些池,并且可以将他们用于已部署的虚拟机。如图 8:
在页面左侧导航栏选择虚拟 LAN(Virtual LANs),静态 IP(Static IPs)标签页。
管理云基础结构(Cloud Infrastructure)
在页面上方导航栏中,选择云基础结构(Cloud Infrastructure),管理员可查看和浏览构成 IBM® SmartCloud Provisioning 基础结构的存储节点和计算节点的列表。 例如,您可以浏览每个存储节点上可用的虚拟映像的列表。 如图 9:
在页面左侧导航栏选择超级节点(Hyper Nodes),存储节点(Storage Nodes)标签页。
同时系统还提供一些通用功能便于管理员操作管理,如:
在管理员完成基础管理设置(见 Web 管理界面一节)后 , 终端用户有了相应的访问权限以及可以操作的资源,接下来用户即可以登录 Web UI 或者 CLI 开始申请并使用相应资源,如申请构建虚拟机等操作。
IBM® SmartCloud Provisioning 的资源组成包括虚拟映像 (Virtual Images),已部署虚拟机 (Deployed VMs),卷 (Volumes),网络地址 (Addresses),密钥对(Key Pairs),虚拟局域网 (VLans)。 终端用户可以在 Web 用户界面上针对这些资源进行操作。
首先通过浏览器访问 Web UI,使用管理员创建好的用户认证信息来登录。
登录后,打开 资源 (Resources)标签页;如图 10:
虚拟映像(Vitual Images)
用户可以浏览系统中的映像文件,选择映像申请虚拟机,执行部署操作。
打开 虚拟映像(Virtual Images)标签页,如上图 10。
用户选择虚拟映像部署虚拟机。选择状态为可用(Available)的虚拟映像,点击启动(Launch)按钮,如图 11:
用户可指定部署虚机数量,部署虚机类型等基本信息,并提交启动部署。特别指出这里面的类型(xSmall 超小,Small 小型,Medium 中等,Large 大型,xLarge 超大)是指:
– xsmall: 1 处理器 + 512 MB 内存 – small: 1 处理器 + 1 GB 内存 – medium: 1 处理器 + 2 GB 内存 – large: 2 处理器 + 4 GB 内存 – xlarge: 2 处理器 + 8 GB 内存 |
提交后,通过虚拟映像部署成功并启动的虚机将显示在 已部署 VM 列表中(详见下节),用户可以访问这些虚拟机资源以及进行相关管理操作。
已部署 VM(Deployed VMs)
用户可以在这里查看、管理自己的虚拟机。
用户访问虚拟机时,根据操作系统的不同可采用远程桌面或者 SSH 方式连接。同时,用户可根据需要对虚拟机进行启动、停止、终止、克隆更多虚机、附加卷、关联 IP 地址,以及下载密钥对等管理操作。
打开 已部署 VM (Deployed VMs)标签页,如图 12:
地址(Addresses)
打开 地址(Addresses)标签页,如图 13:
用户可以分配新的 IP 地址,释放地址,关联虚机 IP 地址,以及解除关联。
卷(Volumes)
打开 卷(Volumes)标签页,如图 14:
用户可以创建卷,删除卷,将卷附加到虚拟机上,以及从部署的虚机上拆离卷。
VLAN
打开 VLAN 标签页。用户可以分配新的 VLAN,释放 VLAN。
密钥对(Key Pairs)
打开 密钥对(Key Pairs)标签页。用户可以创建密钥对,删除及下载密钥对。
CLI 可以被置于任何一个 RHEL 6 的 SmartCould Provisioning 服务器上。 使用前,需要修改配置文件 isaac,指定访问标识 ID 和密钥文件:
#!/bin/bash export IAAS_ENDPOINT=http://webservice:5678/query/ export IAAS_ACCESS_ID=”u99999” export IAAS_PRIVATE_KEY=”/iaas/keys/u99999.key” export IAAS_SERVICE_PUBLIC_KEY=”/iaas/keys/webservice.pk” export IAAS_TIMEOUT=”30” |
启动时,运行如下命令激活环境变量:
# source iaasrc |
从上图 15 可以看到,CLI 包含非常多的命令,涵盖了所有可以在 Web UI 上的功能。
下面举例说明如何来使用这些 CLI 命令,
查看用户标识信息
iaas-describe-access-by-user
该命令执行结果如下,
[root@storage-1 cli]#./iaas-describe-accesses-by-user access_id | user_name | roles | group | create_date | state --------------------------------------------------------------------------------- admin | admin | default_admin_role, default_user_role | admingroup | Fri Aug 19 10:51:35 +0800 2011 | normal u00734 | cliuser@ibm.com | default_user_role | | Tue Aug 23 10:26:59 +0800 2011 | unregistered u24146 | cliuser@ibm.com | default_user_role | | Tue Aug 23 10:27:48 +0800 2011 | locked u59533 | cliuser@ibm.com | default_user_role | | Tue Aug 23 10:27:44 +0800 2011 | normal |
创建用户
iaas-create-user –u <usesr> -p <password>
该命令带有参数,执行时按需指定即可,如下例所示,创建用户名为 cliuser1@cn.ibm.com,密码为 123456 的用户:
[root@storage-1 cli]#./iaas-create-user -p 123456 -u cliuser1@isaac.ibm.com user_name ---------------------- cliuser1@isaac.ibm.com |
注册虚拟映像
iaas-register-image –f <image_format> -a <image_arch>\ -s <image_disk_driver> -t <image_type> -d<image_description> -I <\ image_id> -p <image_platform> [-k <kernel_id> -v <enable_virtio>\ -r <ramdisk_id> ] |
该命令带有可选项,用 [] 标识,用户可以选择添加。
[root@storage-1 cli]#./iaas-register-image -f raw -a x86_64 -s ide -t image -d "Centos 55 x86_64" -i centos-curl -p linux image_id | type | status | description | owner | platform | arch | size(GB) | enable_virtio | format | disk driver --------------------------------------------------------------------------------------- centos-curl | image | available | centos | admin | linux | x86_64 | 1.0 | no | raw | ide |
修改配额信息
iaas-modify-quota -g <group> [-p <quota_policy{shared|peruser}>] \ [-o instnum=<xx>,nr_virt_cpu=<xx>,memory=<xx>,\ volume=<xx>,image=<xx>,eip=<xx>] |
该命令带有待选项,用 {} 标识,并且用 | 区分各互斥的待选项。
[root@storage-1 cli]#./iaas-modify-quota -g cligroup -p peruser -o instnum=20 key | quota_policy | quota_options -------------------------------------------------------------------------------------- cligroup | peruser | instnum=20 eip=10 memory=20480 volume=40 nr_virt_cpu=20 image=100 |
这里就不对每一条命令进行描述了,用户可以通过 –help 来查询具体命令的详细使用信息。
IBM® SmartCloud Provisioning 是典型的 IaaS 云,为用户提供基础设施服务,在后台采用 KVM、Xen 和 VmWare 的虚拟化技术,存储采用 Hadoop 分布式文件系统,终端用户界面使用简单,易于操作。管理员 WEB 界面 (web admin console) 和命令行界面 (CLI) 允许管理员对 ISCP 服务器进行管理。相比其他的 IaaS 云产品,IBM® SmartCloud Provisioning 有三个特点:
Tivoli 产品家族里也有一些产品,虽然不能完全归类为云计算产品,但是也能象 IaaS 产品一样部署操作系统和软件,如 Tivoli Provisioning Manager(TPM),借助后台的虚拟化技术(KVM, VMware 和 LPAR),部署虚拟机、软件和安全补丁。TPM 是为企业级用户打造的产品,主要用户为企业的管理员,功能繁多而且复杂,在虚拟机部署和磁盘管理方面,极大的依赖于后端的虚拟技术。
IBM 还有很多的云计算产品,如正在走向通往 PaaS 路上的 IBM Workload Deployer, 通过使用已有的软件虚拟映像和模式,或者定制已有的软件虚拟映像和模式再使用,在私用云中安全地部署、管理和维护这些软件虚拟映像和模式,从而为云用户提供虚拟应用程序实例。而 LotusLive 是 SaaS 云产品, 集合了针对业务的在线协作解决方案和社交网络服务,通过 LotusLive,用户可以随时随地进行在线会晤、共享文件、交谈、管理项目以及与潜在客户联网。与 SmartCloud Provisioning 提供 IT 基础设施服务相比,Workload Deployer 主要提供应用程序中间件等的平台服务,而 LotusLive 则主要提供软件服务。
Q1: IBM® SmartCloud Provisioning 运行环境里有若干服务在运行,如果需要重新启动,该以什么样的顺序进行?
A1: 请参考安装帮助手册里的“Restarting All Services”一节。概括说来,需要按照以下顺序重启服务:LDAP -> zookeeper -> hbase -> rest server > storage bot -> compute bot ->web service -> web console 和 web admin console。
Q2: 为什么在 IBM® SmartCloud Provisioning 里注册的映像文件总是处于不可用状态?
A2: 检查映像文件是否同时存在于至少两个存储节点上(/iaas/iaas-store/files),如果是,在 CLI 里检查是否所有的存储节点是活动状态。
Q3: 创建实例总是不成功,如何去 debug?
A3: 首先在 web 界面上获取该实例的名字,然后登录到计算节点上,用 virt-viewer 去查看该实例的状态。同时,查看 /var/log/iaas/ 下的 LOG 文件,以确定具体原因。
Q4:对于简体中文或者其他国家 / 地区的用户,如何能够看到语言的终端界面?
A4: 使用 Firefox 7.0.1,设置简体中文或者其他语言为优先语言,访问服务器,就可以看到语言的终端界面。
综合本文所述,IBM® SmartCloud Provisioning 是一款简单易用功能完善的云产品,无论是作为私有云部署在企业内部供企业使用,还是做为公有云提供给市场用户所用,都会大大节省 IT 资源,极大促进云计算的发展。
学习
广州公司: 广州市中山大道89号华景软件园C410-411 上海公司: 上海市浦东新区浦建路729弄东方金座1804
Copyright 2009 Techsung Communications International Inc. All Rights Reserved 粤ICP备09140814号-4