OpenNebula 3.8 — VMWare

By , May 3, 2013 1:47 pm

[1]前端节点的配置

首先需要在前端节点上安装OpenNebula,具体的方法可以参见《Ubuntu 12.04 Server安装配置OpenNebula 3.8》这篇文章。

为了简单期间,我们使用前段节点所提供的NFS服务作为ESXi节点的存储设备。在创建NFS服务的时候需要export两个目录:

$ sudo vi /etc/exports
/var/lib/one/datastores/0 *(rw,sync,no_subtree_check,root_squash,anonuid=10000,anongid=10000)
/var/lib/one/datastores/1 *(rw,sync,no_subtree_check,root_squash,anonuid=10000,anongid=10000)

然后需要在前端节点上安装libvirt,并且使得其支持VMWare。

sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder ruby libgnutls-dev libdevmapper-dev libcurl4-gnutls-dev python-dev libnl-dev libapparmor-dev libpciaccess-dev

编辑/etc/libvirt/libvirtd.conf配置libvirt,将操作权限授予给cloud组:

unix_sock_group = “cloud”

编辑/etc/libvirt/qemu.conf配置libvirt,设置VNC:

vnc_listen = “0.0.0.0″

重启libvirt:

sudo service libvirt-bin restart
sudo chown oneadmin:cloud /var/run/libvirt/libvirt-sock

Ubuntu自带的libvirt不提供对VMWare的支持。我们需要手工编译安装libvirt 1.05,并设置为支持VMWare。

wget http://libvirt.org/sources/libvirt-1.0.5.tar.gz
tar xvzf libvirt-1.05.tar.gz 
cd libvirt-1.05
./configure --with-esx --with-apparmor --sysconfdir=/etc --libdir=/usr/lib --sbindir=/usr/sbin --datarootdir=/usr/share --localstatedir=/var --libexecdir=/usr/lib/libvirt
make
sudo make install

sudo cp -a examples/apparmor/usr.* /etc/apparmor.d/
sudo cp -a examples/apparmor/TEMPLATE /etc/apparmor.d/libvirt/ 
sudo cp -a examples/apparmor/libvirt-qemu /etc/apparmor.d/abstractions/ 
sudo cp /usr/local/bin/virsh /usr/bin/virsh 
sudo /etc/init.d/apparmor restart

export PERL_LWP_SSL_VERIFY_HOSTNAME=0

测试一下是否能够通过libvirt访问ESXi节点(在下面这个命令中,esxi01是ESXi节点的主机名):

virsh -c esx://esxi01/?no_verify=1 --readonly nodeinfo

如果没有以外的话,你应该可以看到类似于下面的信息:

oneadmin@opennebula:~/libvirt-0.9.10$ virsh -c esx://esxi01/?no_verify=1 --readonly nodeinfo
Enter username for esxi01 [root]: 
Enter root's password for esxi01: 
CPU model:           Intel Core i5-3330S CPU @ 2.70G
CPU(s):              4
CPU frequency:       2693 MHz
CPU socket(s):       1
Core(s) per socket:  4
Thread(s) per core:  1
NUMA cell(s):        1
Memory size:         8283168 kB

从VMWare网站下载VMware-vSphere-CLI-5.0.0-615831.x86_64.tar.gz,按照如下步骤安装:

sudo apt-get install libxml-libxml-perl libclass-methodmaker-perl libcrypt-ssleay-perl curl libdata-uuid-libuuid-perl perl-doc uuid libuuid-perl
tar zxvf VMware-vSphere-CLI-5.0.0-615831.x86_64.tar.gz
cd vmware-vsphere-cli-distrib
perl Makefile.PL 
make

sudo perl -MCPAN -e shell

install Bundle::CPAN

编辑文件vmware-install.pl,修改下面这几行

      if ( !( $ftpproxy && $httpproxy)) {
         uninstall_file($gInstallerMainDB);
         exit 1;
      }

修改后的内容为:

      if ( !( $ftpproxy && $httpproxy)) {
#         uninstall_file($gInstallerMainDB);
#         exit 1;
      }

然后执行安装程序:

sudo ./vmware-install.pl 

安装完成后,测试一下是否可以访问ESXi主机:

esxcfg-nics -l --server esxi01 --username root

修改etc/oned.conf,取消下面这些配置的注释:

IM_MAD = [
      name       = "im_vmware",
      executable = "one_im_sh",
      arguments  = "-c -t 15 -r 0 vmware" ]

VM_MAD = [
    name       = "vmm_vmware",
    executable = "one_vmm_sh",
    arguments  = "-t 15 -r 0 vmware -s sh",
    default    = "vmm_exec/vmm_exec_vmware.conf",
    type       = "vmware" ]

修改etc/vmwarerc,提供访问ESXi节点的用户名和密码:

# Username and password of the VMware hypervisor
:username: "root"
:password: "Password"

编辑etc/vmm_exec/vmm_exec_vmware.conf,注释掉下面这一行:

#DISK = [ DRIVER = file ]

然后重新启动OpenNebula服务:

one stop
one start

[2]ESXi节点的配置

在ESXi节点上启用SSH服务,通过vSphere Client在ESXi节点上创建用户oneadmin和用户组cloud,其用户ID和用户组ID都设置为10000(与前端节点一致)。将oneadmin用户添加到root用户组,允许oneadmin用户通过SSH访问ESXi节点,并给oneadmin用户分配管理员(Administrator)权限。

通过vSphere Client将前端节点所提供的两个NFS服务分别挂载为0 和1 两个数据存储(datastore)。

用root用户登录到ESXi节点,创建目录/etc/ssh/keys-oneadmin,并将前端节点上/srv/cloud/one/.ssh/id_rsa.pub文件拷贝成为ESXi节点上的/etc/ssh/keys-oneadmin/authorized_keys,然后将该文件的所有者设置为oneadmin用户。

# cd /etc/ssh
# chown -R oneadmin keys-oneadmin

修改ESXi节点上的防火墙配置文件/etc/vmware/firewall/service.xml,在文件末尾添加VNC配置:

<!-- VNC -->
  <service id="0033">
    <id>VNC</id>
    <rule id='0000'>
        <direction>outbound</direction>
        <protocol>tcp</protocol>
        <porttype>dst</porttype>
        <port>
           <begin>5800</begin>
           <end>5999</end>
        </port>
     </rule>
     <rule id='0001'>
        <direction>inbound</direction>
        <protocol>tcp</protocol>
        <porttype>dst</porttype>
        <port>
           <begin>5800</begin>
           <end>5999</end>
        </port>
     </rule>
     <enabled>true</enabled>
     <required>false</required>
  </service>

重新启动防火墙:

# /sbin/esxcli network firewall refresh
# /sbin/esxcli network firewall ruleset list

在前端节点上运行下面这个命令,测试一下是否可以通过OpenNebula访问ESXi节点。如果配置成功的话,可以看到该节点的CPU和内存等信息。

/srv/cloud/one/var/remotes/im/run_probes vmware 0 esxi01

通过SunStone管理门户添加ESXi节点,其虚拟化平台和监控组件都设置为VMWare即可。

CY13-Q1 OpenStack, OpenNebula,Eucalyptus,CloudStack社区活跃度比较

By , April 2, 2013 5:07 pm

01

本文是对《CY12-Q4 OpenStack, OpenNebula,Eucalyptus,CloudStack社区活跃度比较》一文的补充和更新。对本文内容感兴趣的读者,可以通过电子邮件或者新浪微博(@qyjohn_)与我联系。

本文同时发布了一个英文版本,可以参见CY13-Q1 Community Analysis — OpenStack vs OpenNebula vs Eucalyptus vs CloudStack这个帖子。

需要说明的是,这个社区活跃度比较项目起源于CY11-Q4,此篇报告是到目前为止已经发布的第六个季度性的报告。尽管作者于2012年10月成为Eucalyptus公司的员工,但是本文中所表达之观点完全是作者本人的观点,而非作者所在公司的观点。还需要指出的是,作者所在的公司完全同意作者以独立的视角继续此项目。

02

本文的目的是通过论坛和邮件列表的原始数据对OpenStack、OpenNebula、Eucalyptus和CloudStack项目的社区活跃度进 行分析和比较。主要的原始数据是自2009年来这四个项目的官方论坛和邮件列表每个月所产生的讨论主题数、帖子数、以及参与讨论的总人数(邮件地址或者用 户账号)。为了获取这些数据,我写了一个Java程 序自动地从这四个项目的网站下载了所有的论坛和邮件列表信息,并且从这些信息中分析提取出我所需要的数据。程序提取的数据被导入MySQL数据库中以便进 行统计分析,统计分析的结果通过LibreOffice生成分析图表。

需要说明的是,Eucalyptus项目在今年2 月份将原来的社区邮件列表切换为基于Google group的新的邮件列表。这样的切换通常会给邮件列表的流量带来一定的影响。此外,从CY13-Q1开始,我们将CloudStack项目的users-cn邮件列表添加到我们的数据源当中。这个邮件列表目前占CloudStack相关流量的3~5%左右。未来我们还将会根据需要为此项分析添加新的数据源。

此外,我们发布CY12-Q2分析报告之后,有些读者指出来自incubator-cloudstack-dev邮件列表的数据可能有些问题。这个邮件列表里包含了一些由JIRA自动生成的邮件内容。在CY12-Q3的分析中,我们设置了一个过滤器,自动地排除了所有标题中含有”[jira]“标识符的信息。需要指出的是,我们注意到越来越多的技术讨论发生在JIRA系统当中。但是,我们暂时还是决定将来自JIRA的消息排除在此项分析之外。

03

04

图1 和图2分别是如上所述四个项目每个月所产生的讨论主题数和帖子数。可以看出:

(1) 与OpenStack和CloudStack相关的讨论数量远大于与Eucalyptus和OpenNebula相关的讨论数量;

(2) 在过去六个月中,与Eucalyptus相关的讨论数量在逐步攀升。虽然其讨论规模还远远小于与OpenStack和CloudStack相关的讨论规模,但是已经超过Eucalyptus本身的历史最高水平。

05

通常来讲,一个讨论主题得到的回复数越多,表明该主题的讨论越深入。一个论坛或者邮件列表如果只有主帖而没有回复,说明这个社区的参与程度很低。因此,平 均意义上的“讨论帖子数/讨论主题数”则反映了一个社区的参与程度,这里我们暂且称之为参与度(Participation Ratio)。

长期以来,OpenStack项目的参与度远高于其他三个项目的参与度。但是在过去十二个月中,CloudStack与Eucalyptus项目的参与度正在稳步增长,OpenStack项目的参与度正在逐步下降。目前CloudStack和Eucalyptus项目的参与度最高,接近于4;OpenStack与OpenNebula项目的参与度次之,接近于3。

06

图4 所示为这四个项目每个月参与论坛或者邮件列表讨论的总人数。可以看出,CloudStack与OpenStack的活跃用户数量要远大于OpenNebula和Eucalyptus。在过去六个月中,CloudStack, Eucalyptus和OpenStack项目的活跃用户数量都有不同程度的攀升。

值得一提的是,虽然CloudStack的活跃用户数量稍微小于OpenStack,这两个项目的主题和帖子数量是基本相当的。换句话说,CloudStack的用户在社区中比OpenStack的用户更加活跃。

07

累计社区人口(简称社区人口)指的是曾经通过论坛或者邮件列表参与过讨论的用户和开发者总数。(不包括在论坛或者邮件列表中注册但是从未公开参与讨论的社 区成员。)这些人或多或少地使用过相关产品,但是并不代表他们目前还是活跃用户。图5 所示为这四个项目的社区人口增长趋势。可以看出,OpenStack与Eucalyptus项目的社区人口遥遥领先,CloudStack与OpenNebula项目的社区人口相对较低。

在CY12-Q3报告中,我们提出了社区人口数据可能存在重复计数的问题。在CY12-Q4报告中,我们采取了进一步的措施以消除重复计数。可以认为,尽管重复计数的现象依然存在,但是已经降低到对分析结果不产生明显的影响的程度。

07

图6 所示为这四个项目每个月新增加的社区人口数量。在过去三个月中,CloudStack与OpenStack的社区人口增长速度基本相当。

与CloudStack和OpenStack向比较,Eucalyptus和OpenNebula的社区人口增长较为缓慢。

09

图7 是图4 与图6的重新组合。其中,实线部分表示的是每个月参与论坛或者邮件列表讨论的人数,虚线部分表示的是每个月新加入论坛或者邮件列表的人数。

OpenStack与OpenNebula项目的新增人口占当月活跃用户的30%左右,CloudStack与Eucalyptus项目大概是50%。如 果不考虑社区人口的规模的话,可以认为OpenStack与OpenNebula项目的粘性大于CloudStack与Eucalyptus项目。

10

图8 所示分别是本文所述四个项目的社区人口,过去一个季度的活跃用户数量,以及过去一个月的活跃用户数量。可以看出:

(1) OpenStack的社区人口最多,然后是Eucalyptus、CloudStack、OpenNebula;

(2) 在过去一个季度中,OpenStack的活跃人口最多,然后是CloudStack、Eucalyptus、OpenNebula;

(3) 在过去一个月份中,OpenStack的活跃人口最多,然后是CloudStack、Eucalyptus、OpenNebula。

11

在CY12-Q3分析中,我们首次提出了“社区活跃度指数”这样一个参数。这个参数是如下几个参数的某种组合:

(1) 当月帖子总数,代表相关讨论的规模;

(2) 当月参与度,代表每个问题获得的回帖数量;

(3) 当季活跃用户,代表从社区获得帮助的可能性(长期);

(4) 当月活跃用户,代表从社区获得帮助的可能性(短期)。

在这个分析中,我们选择如上各个社区的平均值作为参考数据,并将每个社区的数据与参考数据进行比较。我们将每个社区各个参数与平均值的比值之和称为“社区活跃度指数”。可以认为,社区活跃度指数最高的项目,是最活跃的项目。

从图9 中可以看出,目前OpenStack项目的“社区活跃度指数”最高(以明显的优势领先),然后是CloudStack、Eucalyptus、 OpenNebula。

如上所述“社区活跃度指数”的概念还非常原始,还有很大的优化空间。它有点在于用量化分析的方法取代了传统的感性分析,例如“我认为”、“我相信”、“我猜测”等等。在未来的报告中,我们将基于这个概念每个季度发布一次OpenStack、OpenNebula、 Eucalyptus、CloudStack项目的“社区活跃度指数”排名。当然,我们也会在必要的时候对相关算法进行调整,例如增加或者删除某些参数,或者是调整某些参数的权重。

12

曾经有多位读者建议我们基于Git活动对各个主流的开源IaaS项目的开发情况进行分析。我们注意到CloudStack、Eucalyptus、OpenNebula以及OpenStack项目都将代码托管在github.com上。因此,我们基于来自github.com的数据对这几个项目的开发情况进行了一些简单的分析。需要指出的是,对于OpenStack项目来说,其数据源包括了托管在github.com上的Cinder、Glance、Horizon、Keystone、Nova、Quantum和Swift子项目。

11

图10所示分别是本文所述四个项目每个月向github.com提交代码(commit操作)的次数。总体来看,OpenStack项目提交代码的频率较高,平均每个月提交代码1000次左右,活动最为密集的的一个月达到了2000次之多。OpenNebula项目提交代码的频率较低,平均每个月提交代码200次左右。CloudStack和Eucalyptus两个项目提交代码的频率在同一水平线上,但是Eucalyptus项目存在较大的波动情况,具有比较明显的批量更新的特征。

11

图11所示分别是OpenStack项目中各个子项目目每个月向github.com提交代码(commit操作)的次数。总体来看,Nova子项目提交代码的频率较高,是其他几个子项目的三倍左右。值得注意的是,尽管各个子项目提交代码的频率各不相同,但是其时程曲线基本上是一致的,波峰和波谷基本上出现在相同的时间。这个现象表明尽管OpenStack项目中各个子项目相对独立,但是具有相同或者相似的开发计划和开发进度。可以认为,OpenStack项目在子项目的管理和协调方面是做得比较好的。

15

图12所示分别是本文所述四个项目每个月向github.com提交代码(commit操作)的人数。总体来看,OpenStack项目提交代码的人数远远超过其他三个项目,并且一直保持迅猛增长的势头。CloudStack项目提交代码的人数也有所增长,但是其增长速度较为缓慢。Eucalyptus项目和OpenNebula项目提交代码的人数相对较少,并且在过去六个月当中基本上没有增长。

16

图13所示分别是OpenStack项目中各个子项目每个月向github.com提交代码(commit操作)的人数。总体来看,Nova子项目提交代码的人数较多,是其他几个子项目的三倍左右。

17

人们通常通过代码贡献者所使用的电子邮件地址来识别其所在的机构。尽管这种方式存在较大的缺陷(例如有一些机构鼓励雇员以个人的名义向开源项目贡献代码),但是还是可以从某种程度上揭示不同机构对某个开源项目的贡献力度。图14所示分别是每个月向本文所述四个项目提交代码(commit操作)的邮件地址所属域名数量。总体来看,OpenStack项目提交代码的域名数量远远超过其他三个项目,并且一直保持迅猛增长的势头。CloudStack项目提交代码的域名数量也有所增长,但是其增长速度较为缓慢。Eucalyptus项目和OpenNebula项目提交代码的域名数量相对较少,并且在过去六个月当中基本上没有增长。

11

图15所示分别是OpenStack项目中各个子项目每个月向github.com提交代码(commit操作)的域名数量。总体来看,Nova子项目提交代码的域名数量较多,是其他几个子项目的三倍左右。

下面这个表格以电子邮件所属域名的形式列出了在CY13-Q1期间向CloudStack、Eucalyptus、OpenNebula和OpenStack项目贡献代码次数最多的机构(以及贡献代码次数的百分比)。可以看出,Eucalyptus和OpenNebula属于以单一机构为主导的开源项目,而CloudStack和OpenStack属于由多家机构共同合作的开源项目。对于CloudStack项目来说,来自Citrix的影响非常明显,直接来自citrix.com和cloud.com的邮件地址占了45%。对于OpenStack项目来说,由于来自review.openstack.org的贡献是由一个代码评审系统使用一个帐号(jenkins@review.openstack.org)自动发布的,我们无法评估Rackspace对该项目的影响程度。值得注意的是,在FY13-Q1期间来自redhat.com的贡献占了9%,而来自ibm.com(linux.vnet.ibm.com和us.ibm.com)的贡献占了7%,可以认为Rackspace对OpenStack项目的控制程度正在逐步减弱。

 CloudStack  Eucalyptus  OpenNebula  OpenStack
 Domain  %  Domain  %  Domain  %  Domain  %
 citrix.com  39  eucalyptus.com  85  opennebula.org  99  review.openstack.org  48
 apache.org  26  gmail.com  13  nostalgeek.com  0.5  redhat.com  9
 gmail.com  14  fedoraproject.org  2  gmail.com  0.15  gmail.com  9
 cloud.com  6  djurdjevic.ch  0.15  linux.vnet.ibm.com  4
 bestservers.com  3  c12g.com  0.15  openstack.org  3
 schubergphilis.com  3  us.ibm.com  3
 widodh.nl  2  hp.com  2
 zonker.net  1  nicira.com  2
 tcloudcomputing.com  1  cloudscaling.com  1
 gnsa.us  1  intel.com  1

下面这个表格以电子邮件所属域名的形式列出了在CY13-Q1期间向OpenStack项目各个子项目贡献代码最多的机构(以及贡献代码次数的百分比)。

 Cinder  Glance  Horizon  Keystone
 Domain  %  Domain  %  Domain  %  Domain  %
 review.openstack.org  47  review.openstack.org  45  review.openstack.org  46  review.openstack.org  45
 solidfire.com  9  redhat.com  9  gmail.com  15  gmail.com  19
 redhat.com  7  linux.vnet.ibm.com  9  hp.com  8  redhat.com  14
 gmail.com  7  rackspace.com  8  redhat.com  8  linux.vnet.ibm.com  4
 hp.com  5  gmail.com  8  strikeawe.com  7  openstack.org  2
linux.vnet.ibm.com  5  hp.com  7  da.jp.nec.com  3  suse.cz  2
 il.ibm.com  3  markwash.net  7  99cloud.net  2  hp.com  2
 intel.com  2  inaugust.com  3  nttmcl.com  1  ca.ibm.com  1
 citrix.com  2  us.ibm.com  1  metacloud.com  1  us.ibm.com  1
 emc.com  1  intel.com  1  ispras.ru  1  cern.ch  1

 

 Nova  Quantum  Swift
 Domain  %  Domain  %  Domain  %
 review.openstack.org  50  review.openstack.org  40  review.openstack.org  44
 redhat.com  10  openstack.org  11  gmail.com  16
 gmail.com  8  redhat.com  9  swiftstack.com  10
 us.ibm.com  5  nicira.com  7  enovance.com  4
 linux.vnet.ibm.com  5  gmail.com  5  not.mn  3
 cloudscaling.com  3  linux.vnet.ibm.com  4  brim.net  3
 openstack.org  2  intel.com  4  us.ibm.com  2
 codestud.com  2  da.jp.nec.com  3  il.ibm.com  2
 rackspace.com  1  dreamhost.com  2  intel.com  2
 hp.com  1  mirantis.com  2  weirdlooking.com  2  ————————-

与本文相关的PDF版本幻灯片可以从这里下载。如果您需要重新分发本文内容,敬请您保留相关作者信息。

CY13-Q1 Community Analysis — OpenStack vs OpenNebula vs Eucalyptus vs CloudStack

By , April 2, 2013 5:07 pm

01

This article is an update version of my previous article CY12-Q4 Community Analysis — OpenStack vs OpenNebula vs Eucalyptus vs CloudStack. Readers who are intested in further discussions please contact me via email at the above-mentioned address.

A Chinese version of this article is published at the same time, which can be found at CY13-Q1 OpenStack, OpenNebula, Eucalyptus, CloudStack社区活跃度比较.

It should be noted that this community analysis project was initiated in CY11-Q4, and this particular report is the 6th quarterly report being published since. Although the author became an employee of Eucalyptus Systems Inc in October 2012, the opinion presented in this report belongs strictly to the author rather than the employer of the author. It should also be noted that the employer of the author completely agreed that the author could continue this project with an independent perspective.

02

 

The objective of this article is to compare the OpenStack, OpenNebula, Eucalytpus and CloudStack user and developer communities, base on the communications between community members in the form of mailing lists or pubic forum discussions. The data being discussed include the total number of topics (threads), messages (posts), and participants (unique email addresses or registered members). To obtain the above-mentioned data, a Java program was written to retrieve all the forum posts and mailing list messages into a MySQL database for further processing. The analysis results were presented in the form of graphs generated by LibreOffice.

It should be noted that the Eucalyptus project moved from the original community mailing lists to a Google group based mailing list in mid February. Such changes will usually bring some impact on the traffic to the mailing list. Also, starting from CY13-Q1 we are adding the users-cn mailing list for the CloudStack project into this analysis. This mailing list currently represents 3~5% of the CloudStack mailing list traffic. We will add other data source into this analysis in the future when such data source is big enough to produce an impact.

Also, when the CY12-Q2 report was published, some people questioned the inclusion of the incubator-cloudstack-dev mailing list. This particular mailing list contains a lot of messages that are automatically generated by JIRA. In CY12-Q3, we set up a filter to reject all messages with identifier “[jira]” in the subject. It should be noted that there are increasing level of technical discussions happened in the JIRA activities. However, at this point we still decided to filter out messages from JIRA.

03

04

 

Figure 1 and 2 represent the monthly number of topics (threads) and posts (messages). It can be seen that

(1) the volume of OpenStack and CloudStack related discussions is much higher than that of Eucalyptus and OpenNebula; and

(2) during the past 6 months, Eucalyptus related discussions are growing. Although the volume of Eucalyptus related discussions is still smaller than OpenStack and CloudStack, it has exceeded the peak created by itself three years ago.

05

Generally speaking, the number of replies to a specific topic represents the attention being received, and the depth of discussion for that particular topic. When the number of master posts (the original post that started a particular topic) is more than the number of replies, it is safe to conclude that the participation of the forum or mailing list is very low. Therefore, the ratio between “the number of  posts” and “the number of topics” represents the participation rate of an online community. In this study we call this ratio the Participatin Ratio.

In the past the OpenStack project had a much higher participation ratio than the others. However, during the past 6 months, the participation ratio of CloudStack and Eucalyptus are growing steadily, while the participation ratio of OpenStack is decreasing gradually. Currently CloudStack and Eucalyptus have the highest participation ratios, which are close to 4. OpenStack and OpenNebula have relatively low participation ratios, which are close to 3.

06

Figure 4 shows the number of monthly participants of the four projects being discussed. It can be seen that the active participants of CloudStack and OpenStack are much higher than OpenNebula and Eucalyptus. During the past 6 months, the number of active participants for CloudStack, Eucalyptus and OpenStack are growing at various degrees.

It should be noted that although the number of active participants of CloudStack is somewhat less than OpenStack, but the volume of discussion (in terms of monthly number of threads and messages) of the two projects are on the same level. This indicates that the active members in the CloudStack club are talking more than those in the OpenStack club (on average).

07

Accumulated Community Population refers to the total number of users and developers who have participated in forum or mailing list discussions. (This number does not include those who have registered into discussion forums or mailing lists but have never participated in any open discussions.) These are people who have tested or used a specific product for a while, but not necessary currently an active user.

In our CY12-Q3 report, we raised the problem of possible duplicated population counting due to the membership overlap in forums and mailing lists, and carried some measurements to eliminate duplications. Starting from our CY12-Q4 report, further measurements were taken to de-duplication. It is safe to say that some degree of duplication still exists, but does not have a significant impact on the analysis results.

07

Figure 6 shows the monthly population growth of the four projects being discussed. During the past 3 months, the populations of OpenStack and CloudStack are growing at about the same pace.

The populations of Eucalyptus and OpenNebula are growing at relatively slow paces, as compared to that of CloudStack and OpenStack.

09

Figure 7 is a combination of Figure 4 and Figure 6. The solid lines represent the monthly participants, while the dash lines represent the monthly new members.

For OpenStack and OpenNebula, around 30% of their monthly participants are new members.  For CloudStack and Eucalyptus, around 50% of their monthly participants are new members. This indicates OpenStack and OpenNebula communities are more “sticky” than CloudStack and Eucalyptus communities.

10

Figure 8 shows the total community population, active participants of the past quarter, and active participants of the past month, of the four projects being discussed. It can be seen that

(1) OpenStack has the largest total population, followed by Eucalyptus, CloudStack, and OpenNebula;

(2) OpenStack has the largest active population during the past quarter, followed by CloudStack, Eucalyptus, and OpenNebula;

(3) OpenStack has the largest active population during the past month, followed by CloudStack, Eucalyptus, and OpenNebula.

11

In our CY12-Q3 report, we invented the concept of “Community Activeness Index”. This magic number should be the combination of the following parameters:

(1) monthly messages, which represents the volume of the discussions;

(2) participation ratio, which represents the average number of answers to a question;

(3) active population of the past quarter, which represents the possibility to get help from community in the long term; and

(4) active population of the past month, which represents the possibility to get help from the community in the short term.

In this analysis, we choose the average values of these parameters as the reference data set, and compare the corresponding parameters of each community with the reference data set. Then we call the sum of the relative values of a community the “community activeness index” of the community. Now we can say the project with the highest “community activeness index” is THE most active project in this area.

As can be seen from Figure 9, OpenStack is currently THE most active project (with obvious advantage), followed by CloudStack, Eucalyptus, and OpenNebula.

The above-mentioned concept of “community activeness index” is still very primitive, with a lot of space to optimize. However, it is an attempt to replace the old-fashion “I think”, “I believe” and “I guess” practices with quantative analysis. In our future community analysis, we will continue to use this concept to provide a quarterly ranking for OpenStack, OpenNebula, Eucalyptus, and CloudStack. Improvements to the algorithm (such as adding/removing parameters or changing the weight of different parameters) will be make when necessary.

12

We are seeing increasing number of suggestions to analyze the git activities of these open source IaaS projects. We also noticed that all of these four projects host their source code on github.com. So, in this CY13-Q1 report, we try to do some basic analysis base on the data from github.com. It should be noted that for the OpenStack project, the data source includes the Cinder, Glance, Horizon, Keystone, Nova, Quantum and Swift sub-projects hosted on github.com.

11

Figure 10 shows the monthly number of commit operations for these four projects. Generally speaking, the commit frequency of the OpenStack project is much higher than the others, with an average number of 1000 commits per month (and a peak value of 2000 commits in mid 2011). The commit frequency of the OpenNebula project is relatively small, with an average of 200 commits per month. The commit frequencies of CloudStack and Eucalyptus are similar, but there is significant fluctuation for the Eucalyptus project, which seems to be a typical batch-commit behavior.

11

Figure 11 shows the monthly number of commit operations for the sub-projects of OpenStack. Generally speaking, the commit frequency of the Nova sub-project is about 3 times as high as the other sub-projects. It should be noted that although the commit frequency of these sub-projects are different, but they exhibit similar time-series curves, and their highs and lows occur at the same period of time. This indicates that although these sub-projects are relatively independent, but they work around the same development plan and the same release schedule. This is an indicator that the OpenStack project is well organized in terms of sub-project management.

15

Figure 12 shows the monthly number of contributors (identified by unique github.com accounts) for these projects. Generally speaking, the number of OpenStack contributors is much higher than the other three projects, and is growing rapidly. The number of CloudStack contributors also exhibits some growth, but the growth is relatively slow. The number of Eucalyptus and OpenNebula contributors is relatively small, and does not exhibit any growth during the past 6 months.

16

Figure 13 shows the monthly number of contributors (identified by unique github.com accounts) for the sub-projects of OpenStack. It can be seen that the number of Nova contributors is about 3 times as big as the other sub-projects.

17

People usually try to identify the institute to which a contributor belongs to by his/her email address. It is true that such method is defect in nature (different institutes have different policies regarding contributing to open source projects, some institutes even encourage their employees to contribute to open source projects with their personal account), but still this parameter can be used to show the contributions of certain institutes to certain open source projects. Figure 14 shows the monthly number of unique institutes (identified by the domain name of the contributor’s email address) contributing to these projects. We can see that the number of contributing institutes for OpenStack is much larger than the other three projects, and is growing rapidly. The number of contributing institutes for CloudStack is also growing, but at a relatively slow pace. The number of contributing institutes to Eucalyptus and OpenStack is relatively small, and does not exhibit any growth during the past 6 months.

11

Figure 15 shows the monthly number of contributing institutes to the sub-projects of OpenStack. It can be seen that the number of contributing institutes for Nova is about 3 times as big as the other sub-projects.

The following table lists those institutes that make the most contributions to these projects during CY13-Q1, according to the number of commit operations on github.com, along with the percentage of their commit operations. It can be seen that both Eucalyptus and OpenNebula are open source projects dominated by a single institute, while CloudStack and OpenStack are open source projects contributed by multiple institutes. For the CloudStack projects, influence from Citrix is quite obvious, over 45% of github.com commits come from accounts belonging to citrix.com and cloud.com. For the OpenStack project, it is not that easy to determine the influence of Rackspace, because the majority of the commits come from a code review system (review.openstack.org) with a single github.com account (jenkins@review.openstack.org). However, we noticed that during CY13-Q1 redhat.com contributed 9% of the commits, while ibm.com (linux.vnet.ibm.com and us.ibm.com combined) contributed 7% of the commits. It is safe to say that the influence of Rackspace on the OpenStack project is gradually decreasing.

 CloudStack  Eucalyptus  OpenNebula  OpenStack
 Domain  %  Domain  %  Domain  %  Domain  %
 citrix.com  39  eucalyptus.com  85  opennebula.org  99  review.openstack.org  48
 apache.org  26  gmail.com  13  nostalgeek.com  0.6  redhat.com  9
 gmail.com  14  fedoraproject.org  2  gmail.com  0.2  gmail.com  9
 cloud.com  6  djurdjevic.ch  0.1  linux.vnet.ibm.com  4
 bestservers.com  3  c12g.com  0.1  openstack.org  3
 schubergphilis.com  3  us.ibm.com  3
 widodh.nl  2  hp.com  2
 zonker.net  1  nicira.com  2
 tcloudcomputing.com  1  cloudscaling.com  1
 gnsa.us  1  intel.com  1

The following table lists those institutes that make the most contributions to the sub-projects of OpenStack during CY13-Q1, along with the percentage of their commit operations.

 Cinder  Glance  Horizon  Keystone
 Domain  %  Domain  %  Domain  %  Domain  %
 review.openstack.org  47  review.openstack.org  45  review.openstack.org  46  review.openstack.org  45
 solidfire.com  9  redhat.com  9  gmail.com  15  gmail.com  19
 redhat.com  7  linux.vnet.ibm.com  9  hp.com  8  redhat.com  14
 gmail.com  7  rackspace.com  8  redhat.com  8  linux.vnet.ibm.com  4
 hp.com  5  gmail.com  8  strikeawe.com  7  openstack.org  2
 linux.vnet.ibm.com  5  hp.com  7  da.jp.nec.com  3  suse.cz  2
 il.ibm.com  3  markwash.net  7  99cloud.net  2  hp.com  2
 intel.com  2  inaugust.com  3  nttmcl.com  1  ca.ibm.com  1
 citrix.com  2  us.ibm.com  1  metacloud.com  1  us.ibm.com  1
 emc.com  1  intel.com  1  ispras.ru  1  cern.ch  1

 

 Nova  Quantum  Swift  
 Domain  %  Domain  %  Domain  %  
 review.openstack.org  50  review.openstack.org  40  review.openstack.org  44
 redhat.com  10  openstack.org  11  gmail.com  16
 gmail.com  8  redhat.com  9  swiftstack.com  10
 us.ibm.com  5  nicira.com  7  enovance.com  4
 linux.vnet.ibm.com  5  gmail.com  5  not.mn  3
 cloudscaling.com  3  linux.vnet.ibm.com  4  brim.net  3
 openstack.org  2  intel.com  4  us.ibm.com  2
 codestud.com  2  da.jp.nec.com  3  il.ibm.com  2
 rackspace.com  1  dreamhost.com  2  intel.com  2
 hp.com  1  mirantis.com  2  weirdlooking.com  2  ————————-

For your convienience, a PDF version of this presentation can be downloaded from here. Please kindly keep the author information if you want to redistribute the content.

在Ubuntu 12.04上配置iSCSI Target服务

By , March 25, 2013 2:29 pm

今天自己按照网上搜来的教程自己在Ubuntu 12.04上配置了iSCSI Target服务,在这里简单地做个纪录。操作系统是全新安装的Ubuntu 12.04,配置一块500 GB的SATA笔记本硬盘。安装操作系统时将硬盘划分为两个分区,其中一个50 GB的分区(/dev/sda1)挂载为操作系统的根分区;另外一个450 GB的分区(/dev/sda2)作为提供存储服务的空间,暂时不挂载。

安装完操作系统之后,安装必要的软件:

$ sudo apt-get install chkconfig lvm2 iscsitarget iscsitarget-dkms

创建物理卷/dev/sda2:

$ sudo pvcreate /dev/sda2

在物理卷/dev/sda2上创建一个volume group:

$ sudo vgcreate -s 32M vg_target00 /dev/sda2

看一下刚才创建的volume group:

$ sudo vgdisplay

--- Volume group ---
VG Name vg_target00
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 1
Act PV 1
VG Size 419.19 GiB
PE Size 32.00 MiB
Total PE 13414
Alloc PE / Size 0 / 0
Free PE / Size 13414 / 419.19 GiB
VG UUID vZplQx-DRjE-Kd4k-tr4e-RV6m-nIr2-k7SEvt

在如上volume group中创建一个逻辑卷lv_target00:

$ sudo lvcreate -L 50G -n lv_target00 vg_target00

看一下刚才创建的逻辑卷:

$ sudo lvdisplay

--- Logical volume ---
LV Name /dev/vg_target00/lv_target00
VG Name vg_target00
LV UUID gD9RO2-xAqr-3u5c-mM1H-O3l8-E3ra-XRT9QT
LV Write Access read/write
LV Status available
# open 0
LV Size 50.00 GiB
Current LE 1600
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 252:0

修改文件/etc/default/iscsitarget,启用iSCSI Target服务:

ISCSITARGET_ENABLE=true

修改文件/etc/iet/ietd.conf,配置iSCSI Target服务的参数(这里假定使用iSCSI Target服务的机器IP为192.168.100.104):

Target iqn.2013-03.world.server:target0
Lun 0 Path=/dev/mapper/vg_target00-lv_target00,Type=blockio
initiator-address 192.168.100.104
incominguser test_user test_pass

重启一下iscsitarget服务:

$ sudo service iscsitarget restart

将iscsitarget服务设置为开机后自动启动:

$ sudo chkconfig iscsitarget on

看一下刚刚启动的iscsitarget服务:

$ sudo ietadm --op show --tid=1

Wthreads=8
Type=0
QueuedCommands=32
NOPInterval=0
NOPTimeout=0

到这里为止,iSCSI Target服务就已经配置完毕了。接下来我们在需要挂载iSCSI Target的机器(也称为iSCSI Initiator)上做一些配置:

$ sudo apt-get install open-iscsi

修改配置文件/etc/iscsi/iscsid.conf:

# line 39: uncomment
node.session.auth.authmethod = CHAP

# line 43,44: uncomment and set username and password which set on iSCSI Target
node.session.auth.username = test_user
node.session.auth.password = test_pass

使用下面这个命令发现iSCSI Target服务(这里假定提供iSCSI Target服务的机器IP为192.168.100.5):

$ sudo iscsiadm -m discovery -t sendtargets -p 192.168.100.5 
192.168.100.5:3260,1 iqn.2013-03.world.server:target0

使用下面这个命令确认iSCSI Target服务的具体信息:

$ sudo iscsiadm -m node -o show

使用下面这个命令登陆到iSCSI Target服务:

$ sudo iscsiadm -m node --login

使用下面这个命令确认登录session的情况:

$ sudo iscsiadm -m session -o show

这个时候你应该能够通过/proc/partitions看到多出来一个分区(sdb):

$ more /proc/partitions

major minor  #blocks  name

  11        0    1048575 sr0
   8        0    8388608 sda
   8        1     248832 sda1
   8        2          1 sda2
   8        5    8136704 sda5
 252        0    7581696 dm-0
 252        1     520192 dm-1
   8       16   52428800 sdb

也可以使用fdisk命令查看分区情况,应该可以看到/dev/sdb的相关信息:

$ sudo fdisk -l

Disk /dev/sdb: 53.7 GB, 53687091200 bytes
64 heads, 32 sectors/track, 51200 cylinders, total 104857600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/sdb doesn't contain a valid partition table

这个时候就可以正常地格式化、挂载、和使用/dev/sdb了。

如果不打算继续使用这个分区了,可以从iSCSI Target退出服务:

$ sudo iscsiadm -m node --logout

使用PHP-AWS操作Eucalyptyus私有云(1)

By , March 12, 2013 7:22 pm

PHP-AWS是一个用来操作各种AWS服务的类库,目前支持EC2、S3、SQS和AWIS四种服务,也可以用来操作各种与AWS相兼容的其他云服务。这篇博客文章以EC2服务为例,演示如何使用PHP-AWS对基于Eucalyptus的私有云进行操作。

首先从github上下载PHP-AWS类库:

git clone https://github.com/tylerhall/php-aws/

进入php-aws目录,修改class.ec2.php文件,主要是设定身份认证信息和EC2端点。在这里我使用的是桉树社区云(Eucalyptus Community Cloud,ECC)服务的帐号进行测试。

var $_key = “EC2_ACCESS_KEY”;
var $_secret = “EC2_SECRET_KEY”;
var $_server = “http://eucalyptus.ecc.eucalyptus.com:8773/services/Eucalyptus”;

下面这段程序,列出所有可用的映像:

require_once(“class.ec2.php”);
$ec2 = new EC2();
$images = $ec2->getImages();
foreach ($images as $image_id=>$image)
{
$image_location = $image["location"];
print_r($image_id . ” ” . $image_location . “\n”);
}

下面这段程序,启动一个虚拟机实例(需要将emi-XXXXXXXX替换成实际的EMI名称):

$ec2->runInstances(“emi-575A398B”, 1, 1, “key_name”);

下面这段程序,列出所有虚拟机实例:

$instances = $ec2->getInstances();
foreach ($instances as $instance_id=>$instance)
{
$image_id = $instance["imageId"];
$state = $instance["state"];
$dns = $instance["dns"];
print_r($instance_id . ” ” . $image_id . ” ” . $state . ” ” . $dns . “\n”);
}

下面这段程序,销毁一个虚拟机实例(需要将i-XXXXXXXX替换成实际的实例名称):
 
$ec2->terminateInstances(“i-0DF73F93″);

Panorama Theme by Themocracy